DE69124784T2 - HDTV-Empfänger - Google Patents

HDTV-Empfänger

Info

Publication number
DE69124784T2
DE69124784T2 DE69124784T DE69124784T DE69124784T2 DE 69124784 T2 DE69124784 T2 DE 69124784T2 DE 69124784 T DE69124784 T DE 69124784T DE 69124784 T DE69124784 T DE 69124784T DE 69124784 T2 DE69124784 T2 DE 69124784T2
Authority
DE
Germany
Prior art keywords
signals
signal
frame
vector
buffer
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 - Lifetime
Application number
DE69124784T
Other languages
English (en)
Other versions
DE69124784D1 (de
Inventor
Scott C Knauer
Kim N Matthews
Arun Narayan Netravali
Eric D Petajan
Robert J Safranek
Peter H Westerink
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.)
AT&T Corp
Original Assignee
AT&T 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
Application filed by AT&T Corp filed Critical AT&T Corp
Application granted granted Critical
Publication of DE69124784D1 publication Critical patent/DE69124784D1/de
Publication of DE69124784T2 publication Critical patent/DE69124784T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Circuits Of Receivers In General (AREA)
  • Color Television Systems (AREA)

Description

  • Die vorliegende Erfindung betrifft Empfänger für die Erzeugung eines Bildrahmen-Ausgangssignals, und sie findet Anwendung in Digitalempfängern für DPCM-codierte Signale.
  • Der Entwurf von Empfängern unterliegt dem Zwang des Entwurfs von Sendern, auf die der Empfänger ansprechen soll. Dieses Prinzip wird beim Entwurf von HDTV-Empfängern eingehalten. Zum besseren Verständnis der Betriebsweise eines Empfängers ist es daher hilfreich, die Codierung, die in einem Sender vorgenommen wird, zu beschreiben, da dann die im Empfänger durchgeführte Decodierung selbstevident ist.
  • Im Stand der Technik befindet sich eine Anzahl von Fernsehsignal-Codierern die in wesentlichen eine Differential- Impulscode-Modulations(DPCM)-Codierung verwenden. Als Beispiel sei die US-A-4 794 455 vom 27. Dezember 1988 von S. Ericson genannt, die ein Codierverfahren und eine solche Einrichtung beschreibt, die adaptives Filtern einsetzt. Dieser ist einer von vielen Codierern, die eine Codierschleife verwenden. Die Schleife enthält einen Subtrahierer, der von einem anliegenden Signal ein Schätzwertsignal entfernt, einen Verdichter, der das Differenzsignal, das am Verdichter anliegt, codiert, einem Rekonstruktor, der das Differenzsignal wiederherstellt und eine innere Schleife. Die innere Schleife enthält einen Addierer, der das vorher entfernte Schätzwertsignal wieder hinzufügt, einen Fahmen-Pufferspeicher, einen Bewegungskompensator und eine adaptive Filterung, um das Schätzwertsignal zu bilden. Ein Empfänger für solch einen Sender muß den Rekonstruktor und die innere Schleife des Senders doppelt enthalten.
  • Der Bewegungskompensator innerhalb des Empfängers muß mit dem des Senders identisch sein, und auch die adaptive Filterung im Empfänger muß mit derjenigen des Senders identisch sein.
  • Es macht daher Sinn, wenn man den Stand der Technik von HDTV Empfängern durchsieht, auch den Stand der Technik bei HDTV Sendern zu überprüfen.
  • Die Überprüfung des Standes der Technik zeigt jedoch, daß die Quantisierer, welche die Funktion des Verdichters im Ericson-Patent wahrnehmen, entweder vollständig fest und linear, fest und nichtlinear oder bezüglich des Signals irgendwie adaptiv sind. Es wurden jedoch keine ausdrücklichen Versuche unternommen, eine Ausgangsbitrate auf eine gegebene Bitrate zu zwingen. Auch übersetzen alle bekannten Kompensatoren Bildblöcke fester Größe und es wird kein Vorteil aus der Tatsache erzielt, daß bestimmte Bildmerkmale größere Blockgrößen in bestimmten Bereichen des codierten Bildes erlauben würden. Weiterhin verwendet keine der bekannten inneren Schleifen einen Abschwächungsfaktor, der bezüglich der Natur von zu codierenden Bildsignale sensitiv ist. Es ist somit die Aufgabe der Erfindung, einen Empfänger zu schaffen, der sich wie ein RDTV Sender verhält, ohne jedoch die oben aufgezeigten Mängel bekannter Codierer aufzuweisen.
  • Gemäß der vorliegenden Erfindung wird ein in Patentanspruch 1 beanspruchter Empfänger vorgesehen.
  • In einem Ausführungsbeispiel der Erfindung enthält ein HDTV Empfänger einen Rekonstruktions-Abschnitt und einen Abschnitt mit einer inneren Schleife. Der Rekonstruktions- Abschnitt umfaßt einen Empfangsabschnitt für die Entgegennahme der Antennensignale eines Fernsehempfängers, zur Abtrennung der Komponentensignale von den empfangenen Signalen und für die Decodierung der abgetrennten Signale. Die decodierten Signale werden einem Quantisierungsdecoder zugeführt, der auf ein Vektor-Codebuch und auf angelegte quantisierte Vektorsignale anspricht. Die Ausgangssignale des Quantisierungsdecoders werden einer inversen DCT-Schaltung zugeführt. Die innere Schleife enthält einen Addierer für die Addition eines Schätzwertsignals zu den Ausgangssignalen der DCT-Schaltung, einen Rahmen-Pufferspeicher, einen Bewegungskompensator, der der sowohl große, als auch kleine Blöcke übersetzen kann und eine Abschwächerschaltung, welche die Ausgangssignale des Bewegungskompensators entsprechend dem empfangenen Abschwächungssteuersignal moduliert. Die Eingangssignale des Rahmen-Pufferspeichers werden auf übliche Weise verstärkt und Anzeigeschaltungen zugeführt, um die gebräuchlichen Ausgangssignale eines Fernsehempfängers zu bilden.
  • Kurze Beschreibung der Zeichnungen
  • Fig. 1 zeigt eine Blockschaltbild eines Vorwärts- Schätzwertabschnittes eines digitalen HDTV- Codierers;
  • Fig. 2 zeigt ein Blockschaltbild eines Codierschleifenabschnitts eines HDTV-Codierers, der mit dem Vorwärts-Schätzwertabschnitt in Fig. 1 zusammenarbeitet;
  • Fig. 3 zeigt eine Hardware-Organisation für einen Detektor für einen Grob-Bewegungsvektor;
  • Fig. 4 zeigt einen Hardware-Organisation für einen Fein- Bewegungsvektor-Detektor, der die Ausgangssignale des Grob-Bewegungsvektor-Detektors berücksichtigt;
  • Fig. 5 veranschaulicht den räumlichen Zusammenhang dessen, was man als eine "Scheibe" von Bilddaten betrachtet;
  • Fig. 6 zeigt einen Weg auf, wie ein Mix von Bewegungsvektoren in ein vorgegebenes Bit-Budget paßt;
  • Fig. 7 zeigt eine Ausführung zur Auswertung eines Abschwächungsfaktors, α;
  • Fig. 8 zeigt die Anordnung eines Superblockes, der im QVS- Block 38 der Fig. 2 quantifiziert ist;
  • Fig. 9 zeigt wie ein Satz von Selektionsfehlersignalen in Vorbereitung auf eine Codebuch-Vektorauswahl berechnet wird;
  • Fig. 10 zeigt ein Blockschaltbild des QVS-Blockes 38;
  • Fig. 11 zeigt ein Blockschaltbild eines inversen Quantisierungsblockes 39;
  • Fig. 12 zeigt den Aufbau des Wahrnehmungsdecoders 49;
  • Fig. 13 zeigt den Aufbau des Wahrnehmungsprozessors 93;
  • Fig. 14 zeigt ein Blockschaltbild der Texturprozessoren 96 und 98;
  • Fig. 15 zeigt ein Blockschaltbild eines digitalen HDTV- Empfängers;
  • Fig. 16 zeigt einen modifizierten Vorwärts- Schätzwertblockes, der einen von zwei Sätzen von Schätzwertfaktoren auswählt; und
  • Fig. 17 zeigt einen Rahmen-Pufferspeicher, der eine Maßnahme für temporäre Filterung enthält.
  • Ausführliche Beschreibung
  • Wie oben schon angedeutet ist der beste Weg zum Verständnis der Arbeitsweise eines Fernsehempfängers, wenn man zuerst die Codierung versteht, die im Sender angewendet wird, auf den der Empfänger anspricht. Daher wird im folgenden eine ausführliche Beschreibung des Codierers eines HDTV Senders gegeben, gefolgt von einer Beschreibung des kompatiblen Empfängers. Die zuletzt erwähnte Beschreibung steht vorwiegend im Zusammenhang mit Fig. 15.
  • In Fig. 1 wird das Eingangssignal an Leitung 10 angelegt. Diese ist ein digitalisiertes Videosignal, das als eine Folge von Budrahmen eintrifft. Dieses Eingangssignal wird an einen Mittleren-Rahmen-Prozessor 11, einen Pufferspeicher 12 und an einen Bewegungsvektor-Erzeuger 13 verzögert und an eine Anzahl von Elementen in der Fig.1 angelegt, wie im folgenden beschrieben wird. Er wird auch zu der Codierschleife der Fig.2 von dem Pufferspeicher 52 übertragen. Der Bewegungsvektor- Erzeuger 13 erzeugt die Bewegungsvektoren, die an den Bewegungsvektor-Selektor-/Codierer 14 angelegt werden und danach durch die Pufferspeicher 15 und 32 geleitet werden, von wo die codierten Bewegungsvektoren zu der Codierschleife der Fig.2 gesendet werden. Die uncodierten Ausgangssignale des Bewegungsvektor-Selektors-/Codierers 14 werden auch an den Bewegungskompensator-Block 16 und an den Pufferspeicher 17, auf den der Pufferspeicher 50 folgt, angelegt, von wo die uncodierten Bewegungsvektoren zu der Codierschleife der Fig. 2 gesendet werden.
  • Die Ausgangssignale des Pufferspeichers 12 werden an den Pufferspeicher 18 und danach an die Pufferspeicher 19 und 51 angelegt, von wo sie zur Codierschleife der Fig.2 gesendet werden. Die Ausgangssignale des Pufferspeichers 18 werden an den Pufferspeicher 22 und den Abschwächungsfaktor-Prozessor 20 gegeben, und die Ausgangssignale des Pufferspeichers 19 werden an den Bewegungskompensator 16 angelegt. Die Ausgangssignale des Bewegungskompensators 16 werden an den Pufferspeicher 21 und den Abschwächungsfaktor-Prozessor 20 angelegt.
  • Das mittlere Rahmensignal des Pufferspeicher 25 wird vom Ausgangssignal des Pufferspeichers 21 im Subtrahierer 26 und vom Ausgangssignal des Pufferspeichers 22 im Subtrahierer 27 subtrahiert. Die Ausgangssignale des Subtrahierers 26 und des Abschwächungsprozessors 20 werden an den Multiplizierer 23 und die Ausgangssignale des Multiplizierers 23 an den Subtrahierer 28 angelegt. Das Ausgangssignal des Abschwächungsprozessors 20 wird auch über den Pufferspeicher 31 zu der Codierschleife der Fig. 2 gesendet. Das Element 28 subtrahiert das Ausgangssignal des Multiplizierers 23 vom Ausgangssignal des Subtrahierers 27 und führt das Resultat der DCT-Transformationsschaltung 30 zu. Das Ausgangssignal der Transformationsschaltung 30 wird an den Prozessor 53 angelegt, der die Skalierungsfaktoren Sij und Signal-Standardabweichung berechnet und ihre Resultate zur Fig. 2 sendet. Das Ausgangssignal des Subtrahierers 27 wird an die DCT-Transformationsschaltung 29 angelegt, und das Ausgangssignal der DCT Transformationsschaltung 29 wird zur Codierschleife in Fig. 2 gesendet.
  • Um ein Gefühl für die zeitlichen Beziehungen der verschiedenen Elemente in Fig. 1 zu bekommen, ist es nützlich, einen Fixpunkt zu setzen, beispielsweise durch Sicherstellung daß das Eingangssignal auf Leitung 10 dem Bildsignal des Rahmens t entspricht, d.h. daß das Eingangsignal auf Leitung 10 der Rahmen I(t) ist. Alle Pufferspeicher in Fig.1 speichern und verzögern die Daten um den Wert eines Rahmens. Daher ist das Ausgangssignal des Pufferspeichers 12 I(t-1), das Ausgangssignal des Pufferspeichers 18 I(t-2), das Ausgangssignal des Pufferspeichers 19 I(t-3) und das Ausgangssignal des Pufferspeichers 51 I(t-4).
  • Der Bewegungsvektor-Erzeuger 13 generiert die Bewegungsvektoren MV(t), die (irgendwo in der Codierschaltung und der Decodierschaltung) bei der Erzeugung eines Näherungswertes des Rahmens I(t), basierend auf der Information des Rahmen I(t-1) mithelfen. Es braucht einige Zeit, um die Bewegungsvektoren zu erzeugen (wobei eine innere Verzögerung eingeführt wird, welche die Verzögerung im Erzeuger 13 gleich einer Verzögerung um einen Rahmen macht) Daher entspricht das Ausgangssignal des Erzeugers 13 (nach der Verarbeitungsverzögerung) einem Satz von Bewegungsvektoren MV(t-1). Nicht alle der im Bewegungsvektor-Erzeuger 13 erzeugten Bewegungsvektoren werden tatsächlich verwendet. Somit werden die Ausgangssignale des erzeugers 13 zum Bewegungsvektor-Selektor/Codierer 14 übertragen, in dem der Selektionsprozeß stattfindet. Da der Selektionsprozeß ebenfalls Zeit kostet, sind die Ausgangssignale des Selektor/Codierers 14 die MV(t-2)- und die CODIERTEN MV(t-2)- Signale, welche die Bewegungsvektoren und ihre codierten Darstellungen sind, die bei der Erzeugung der Näherungswerte des Rahmens I(t-2), basierend auf der Information des Rahmens I(t-3), mithelfen. Ein solches I(t-3)-Signal wird in der Tat im Bewegungskompensator 16 erzeugt, welcher das I(t-3)-Signal des Pufferspeichers 19 und die Bewegungsvektoren des Selektor/Codierers 14 nimmt, um daraus ein versetztes Rahmensignal DF(t-2) zu erzeugen, das dem Signal I(t-2) angenähert ist. Die Pufferspeicher 17 und 50 erzeugen die MV(t-4)-Signale, während die Pufferspeicher 15 und 32 die KODIERTEN MV(t-4)-Signale erzeugen.
  • Wie oben angegeben, erzeugt der Prozessor 11 ein mittleres Rahmensignal. Da das mittlere Signal nicht bekannt sein kann bevor der Rahmen beendet ist, bezieht sich das Ausgangssignal des Prozessors 11 auf den Rahmen t-1. Anders festgestellt, ist das Ausgangssignal des Prozessors 11 M(t-1) und das Ausgangssignal des Pufferspeichers 25 M(t-3).
  • Der Prozessor 20 für den Abschwächungsfaktor empfängt die Signale I(t-2) und DF(t-2). Da die Ausführung seiner Funktion nicht ohne Zeitverlust erfolgt (eine interne Verzögerung ist eingebaut, um sicher zu stellen, daß eine Verzögerung um genau einen Rahmen erfolgt), entspricht daher das Ausgangssignal des Prozessors 20 dem Abschwächungsfaktor des Rahmens (t-3). Das Ausgangssignal des Prozessors 20 wird daher mit L(t-3) bezeichnet. Diese Ausgangssignal wird im Pufferspeicher 31 verzögert, was bewirkt, daß L(t-4) zur Codierschleife gesendet wird.
  • Letztlich verlaufen die Prozesse innerhalb der Elemente 26-30 relativ schnell, so daß das transformierte Bild ( T) und die versetzte Rahmendifferenz (DFDT), Ausgangssignale der Elemente 29 und 30 jeweils dem Rahmen IT(t-3) und DFDT(t-3) und die Ausgangssignale des Prozessors 53 Sij (t-4) und (t-4) entsprechen.
  • Fig. 2 enthält die Codierschleife, welche Signale verwendet, die im Abschnitt für eine Vorwärtsabschätzung in Fig. 1 erzeugt werden. Die Schleife selbst enthält die Elemente 36,37,38,39,40,41,54,42,43,44 und 45. Das Bildsignal I(t-4) wird an den Subtrahierer 36 angelegt, nachdem das mittlere Rahmensignal M(t-4) von diesem im Subtrahierer 35 abgezogen wurde. Das Signal, das vom Subtrahierer 36 erzeugt wird ist der Differenz zwischen dem Bild I(t-4) und dem besten Schätzung des Bildes I(t-4), das von den Daten des vorhergehenden Rahmens gewonnen wurde, die in der Codierschleife enthalten sind (mit den von Subtrahierer 44 ausgenommenen Rahmenmittelwerten des vorhergehenden Rahmens und mit dem vom über den Multiplizierer 45 eingeführten Abschwächungsfaktor). Die Rahmendifferenz wird an die DCT Transformationsschaltung 37 angelegt, welche eine zweidimensionale Transformations-Domäneninformation über das Rahmendifferenzsignal des Subtrahierers 36 erzeugt. Diese Information wird im Quantisier-und-Vektor-Selektor (QVS) 38 in Vektoren codiert und zu den Codierern 46 und 47 weitergeleitet. Die von QVS 38 vorgenommene und zu dem Codierer 47 übertragene Codierung wird in dem Maße revertiert, wie es durch den inversen Quantisierer 39 möglich ist, und sie wird an die inverse DCT Schaltung 40 angelegt.
  • Das Ausgangssignal der inversen DCT Schaltung 40 sind den Ausgangssignalen des Subtrahierers angenähert. Sie stimmen jedoch nicht mit dem Signal des Subtrahierers 36 überein, da nur ein Teil der codierten Signale an das Element 39 angelegt werden und weil sie wegen des Informationsverlustes durch den Codierprozeß des Elementes 38 verfälscht sind. Es trat auch eine Verzögerung wegen des Signaldurchlaufs durch die Elemente 37,38,39 und 40 ein. Diese Verzögerung ist durch die Verzögerung angepaßt, die vom Pufferspeicher 48 verursacht wurde, bevor die Ausgangssignale des Pufferspeichers 48 und der inversen DCT Transformationsschaltung 40 im Addierer 41 kombiniert und an den Addierer 54 angelegt wurden. Der Addierer 54 addiert das mittlere Rahmensignal M(t-4) und führt das Resultat dem Pufferspeicher 42 zu. Der Pufferspeicher 42 vervollständigt die Verzögerung des Pufferspeichers 48, vermindert um die Verzögerungen in den Elementen 43,44 und 45 (um eine volle Rahmenverzögerung zu bilden), und überträgt sie zu dem Bewegungskompensator 43.
  • Der Bewegungskompensator 43 reagiert auf die Bewegungsvektoren MV(t-4).Er erzeugt einen Schätzwert des Bildsignals I(t-4), basierend auf dem Näherungswert von I(t-5), der vom Pufferspeicher 42 angeboten wird. Wie zuvor schon angegeben wurde, wird dieser Schätzwert um das mittlere Rahmensignal des vorhergehenden Rahmens M(t-5) durch die Aktion des Subtrahierers 44 vermindert. Das mittlere Rahmensignal des vorhergehenden Rahmens wird vom Pufferspeicher 55 abgeleitet, der mit M(t-4) gespeist wird. Die Ergebnisse des Subtrahierers 44 werden an den Multiplizierer 45 angelegt, der die Ausgangssignale des Subtrahierers 44 mit dem Abschwächungsfaktor multipliziert. Das Resultat der Multiplikation bildet das Signal an den negativen Eingang des Subtrahierers 36.
  • Es sei nebenbei erwähnt, daß die Operation des Bewegungskompensators 43 linear ist. Daher sind, wenn die Operation des Pufferspeichers 42 ebenfalls linear ist, -was bedeutet, daß er die ankommenden Signale nicht abschneidetder Addierer 54 und der Subtrahierer 44 (und Pufferspeicher 55) vollständig überflüssig. Sie werden nur gebraucht, wenn der Pufferspeicher 44 sein ankommenden Signale abschneidet, um den erforderlichen Speicher zu sparen.
  • In Verbindung mit dem Pufferspeicher 42 ist noch eine andere Verbesserung möglich. Wenn die Verarbeitung in den Elementen 36,37,38,39 und 40 und die entsprechende Verzögerung des Pufferspeichers 48 kleiner sind, als das vertikale Rahmen- Zurückverfolgungsintervall, dann kann das Ausgangssignal des Pufferspeichers mit seinem Eingangssignal in dem Sinne synchronisiert werden, daß die Pixel eines Rahmens den Pufferspeicher zur selben Zeit verlassen, wie die entsprechenden Pixel des vorhergehenden Rahmens den Puffer verlassen. Eine temporale Filterung kann dann an diesem Punkt vorgenommen werden, indem der Pufferspeicher 42 durch eine Pufferschaltung, wie in Fig. 17 gezeigt, ersetzt wird. In der Pufferschaltung 42 wird ein ankommendes Pixel mit einem abgehenden Pixel verglichen. Wenn die Differenz größer ist, als ein bestimmter Schwellenwert, dann wird das Speicherelement in der Schaltung 42 mit dem Durchschnitt von zwei verglichenen Pixeln geladen. Ansonsten wird das Speicherelement 42 nur mit dem ankommenden Pixel geladen.
  • QVS 38 spricht auch auf den Wahrnehmungscodierer 49 und auf Sij(t-4) an. Dieser Codierer reagiert auf Signale Y(t-4) und (t-4). Die Signale Sij(t-4) werden auch zur inversen Quantisierungsschaltung 39 und zur Pufferspeicher-voll-und Formatierer-Block (BBF) 56 übertragen. Der BEF Block 56 empfängt Information von den Codierern 46 und 47, das Abschwächungssignal L(t-4) und die CODIERTE MV(t-4) Information vom Pufferspeicher 32 in Fig. 1. Der BBF Block sendet die Voll-Information zu dem Wahrnehmungscodierer 49 und alle seine empfangene Information zu nachfolgenden Schaltungen, wo die Signale verstärkt, entsprechend moduliert und zu einer Sendeantenne für terrestrische Abstrahlung übertragen werden.
  • Der BBF Block dient zwei eng miteinander verwandten Funktionen. Er packt die von den Codieren erzeugte Information durch Anwendung entsprechender Fehlerkorrektur-Codes und ordnet die Information, und er speist die Information in den Wahrnehmungscodierer 49 ein, um ihn über den Grad der Füllung des Ausgangspufferspeichers zu informieren. Letztere Information dient im Wahrnehmungscodierer 49 zur Steuerung von QVS 38 und des inversen Quantisierers 39 und folglich zur Steuerung der Bitrate des nächsten Rahmens.
  • Die obige allgemeine Beschreibung gibt ausreichend detaillierte Darlegung des Codierers in einem HDTV Sender. Die nachfolgenden Beschreibungen ergründen in größerer Ausführlichkeit jede der verschiedenen Schaltungen, die in den Fig. 1 und 2 enthalten sind.
  • Rahmen-Mittelwert-Schaltung 11
  • Der Mittel-oder Durchschnittswert eines Signals innerhalb eines Rahmens ist mit einem einfachen Akkumulator zu gewinnen, der nur die Werte aller Pixel in dem Rahmen aufaddiert und dann die Summe durch eine feste Zahl dividiert. Die Addition einer binären Zahl von Pixeln bietet die leichteste Divisionsimplementation, aber auch die Division durch einen andere Zahl ist ebenso mit einer sehr einfachen konventionellen Hardware (z.B. mit Tabellensuche) möglich. Wegen dieser Einfachheit kann hier auf eine weitere Beschreibung der Schaltung 11 verzichtet werden.
  • Bewegungsvektor-Erzeuger 13
  • Der Bewegungsvektor-Erzeuger vergleicht zwei auf einander folgende Bilder I(t) und I(t-1), mit Blick auf die Feststellungsbereiche oder Blöcke im laufenden Bildrahmen I(t), die am besten mit den Bereichen des vorhergehenden Rahmens I(t-1) übereinstimmen. Es ist das Ziel, eine relative Versatzinformation zu erzeugen, welche die Erstellung einer Näherung des laufenden Bildrahmens aus einer Kombination von Versatzinformation und dem vorhergehenden Bildrahmen gestattet.
  • Insbesondere wird der laufende Rahmen in n x n Pixeiblöcke eingeteilt, und es wird eine Durchsuchung in jedem Block des laufenden Rahmens vorgenommen, um einen n x n Block im vorhergehenden Rahmen zu finden, der so gut, wie möglich mit einem Block im laufenden Rahmen übereinstimmt.
  • Wenn es gewünscht wird, eine erschöpfende Suche nach dem besten Versatz eines n x n Pixelblockes in einer Umgebung einer K x K Pixelanordnung vorzunehmen, dann sind alle möglichen Versätze zu prüfen, ob es unter diesen (K-1) x (K-n) gibt. Für jeden solcher Versätze ist die Größe des Unterschiedes (z.B. in absolutem, RMS- oder quadratischen Sinne) zwischen der n x n Pixelanordnung im laufenden Rahmen und dem n x n Teil der K x K Pixelanordnung im vorhergehenden Rahmen zu bestimmen, der dem ausgewählten Versatz entspricht. Der Versatz mit dem kleinsten Unterschied ist der bevorzugte Versatz, und dieser wird als Bewegungsvektor bezeichnet.
  • Ein wichtiger Faktor im Zusammenhang mit der Hardware- Realisierung des oben erwähnten Suchprozesses ist die riesige Menge von Berechnungen, die durchgeführt werden müssen, um den absolut optimalen Bewegungsvektor zu finden. Wenn zum Beispiel das Bild in Blöcke zu 8 x 8 Pixel eingeteilt würde und das Bild 1024 x 1024 Pixel enthalten würde, dann wäre die Gesamtzahl von Blöcken, die in Übereinstimmung gebracht werden müßten 2¹&sup4;.
  • Wenn eine erschöpfende Durchsuchung über das gesamte Bild durchgeführt werden würde, um die beste Übereinstimmung festzustellen, dann wäre die Zahl der Durchsuchungen für jeden Block etwa 2²&sup0;. Die Gesamtzahl (für alle Blöcke) wären dann etwa 2³&sup4; Durchsuchungen. Diese "astronomische" Zahl bedeutet zu viele Durchsuchungen!
  • Eine Möglichkeit zur Begrenzung der notwendigen Anzahl von Durchsuchungen besteht darin, die Umgebung der Blöcke, deren Bewegungsvektor gesucht wird, zu begrenzen. Zusätzlich zu einer direkten Verringerung der Zahl von Durchsuchungen die vorgenommen werden müssen, hat diese Möglichkeit den Nutzen, daß eingeschränktere Umgebungsgrenzen die Zahl der Bits begrenzt, die notwendig sind, um die Bewegungsvektoren (kleinerer Bereich) zu beschreiben, und das vermindert auch die Last der Übertragung. Unter Berücksichtigung solcher Gründe, wird die Umgebungsdurchsuchung sowohl in horizontaler als auch vertikaler Richtung auf ± 32 Positionen begrenzt. Das bedeutet, daß wenn z.B. ein 32 x 16 Pixel Block betrachtet wird, sich die Umgebungsdurchsuchung auf 80 x 80 Pixel bezieht, und die Zahl der Durchsuchungen für jeden Block 212 ist (verglichen mit 220).
  • Wie oben schon angedeutet wurde, kann der Vorhersagefehler auf eine Summe der Quadrate der Unterschiede bezogen werden, aber es ist wesentlich einfacher die absoluten Werte der Unterschiede zu nehmen. Daher vergleicht hier der Bewegungsvektor-Erzeuger Blöcke von Pixeln im laufenden Rahmen mit solchen im vorhergehenden Rahmen durch Bildung von Vorhersagefehler-Signalen, die der Summe über den Block mit der absoluten Differenz zwischen den Pixeln entspricht.
  • Um die Komplexität und den Umfang der Durchsuchungen weiter zu Verringern, wird eine zweistufige hierarchische Bewegungsabschätzung verwendet. In der ersten Stufe wird die Bewegung grob geschätzt und in der zweiten Stufe wird die Grobabschätzung verfeinert. Eine grobe Übereinstimmung wird in der ersten Stufe durch Verringerung der Auflösung des Bildes um den Faktor 2, sowohl in horizontaler, als auch in vertikaler Richtung erreicht. Dadurch wird der Durchsuchungsbereich um den Faktor 4 verringert, wodurch sich nur noch 2¹² Blöcke in einer 1024 x 1024 Bildanordnung ergeben. Die in der ersten Stufe erzeugten Bewegungsvektoren werden dann zur zweiten Stufe übertragen, in der dann eine Durchsuchung in der Umgebung des Grobversatzes durchgeführt wird, die in der ersten Stufe gefunden wurde.
  • Fig. 3 zeigt den Aufbau der ersten (Grob-) Stufe der Bewegungsvektor-Erzeugers. In Fig. 3 wird das Eingangssignal einem zweidimensionalen, 8 Pixel x 8 Pixel Tiefpaßfilter 61 zugeführt. Das Filter 61 entfernt Frequenzen, die höher sind, als die halbe Abtastrate der ankommenden Daten. Der Subabtaster 62 folgt auf das Filter 61. Er führt eine Subabtastung seines Eingangssignals mit dem Faktor 2:1 durch. Die Arbeit des Filters 61 stellt sicher, daß keine Alternativ- Resultate aus der Subabtastung des Elementes 62 auftreten, da es Signale entferut, die oberhalb der Nyquist-Rate des Subabtasters liegen. Das Ausgangssignal des Subabtasters 62 ist ein Bildsignal, das nur halb so viele Pixel je Bildzeile und nur halb so viele Zeilen im Bild aufweist. Dieses entspricht einer vierfachen Reduktion in der Auflösung, wie oben schon erwähnt wurde.
  • In Fig. 1 ist der Bewegungsvektor-Erzeuger 13 so dargestellt, daß er auf das Signal I(t) auf der Eingangsleitung 10 und auf das I(t-1) Signal am Ausgang des Pufferspeichers 12 anspricht. Diese geschah nur zur Erläuterung, damit die Betriebsweise des Bewegungsvektor- Erzeugers 13 im Kontext mit der Beschreibung der Fig. 1 klar verständlich wird. Tatsächlich ist es aber vorteilhaft, wenn der Bewegungsvektor-Erzeuger 13 nur auf I(t) anspricht, jedenfalls soweit die Schaltverbindungen in Fig. 1 betroffen sind und wenn die Verzögerung des Pufferspeichers 12 in die Schaltung des Bewegungsvektor-Erzeugers 13 integriert ist.
  • In Übereinstimmung mit dieser Idee, enthält Fig. 3 einen Rahmenspeicher 63, der auf die Ausgangssignale des Subabtasters 62 anspricht. Das subabgetastete Signal I(t) am Ausgang des Rahmenspeichers 63 wird zu dem Bewegungsabschätzer 64 übertragen.
  • Die Steuerung des Speichers 63 ist ziemlich einfach. Die Daten gelangen sequentiell, Zeile auf Zeile, in den Bewegungsabschätzer-Block 64. Für jeweils sechzehn Zeilen des subabgetasteten I(t) Signals muß der Speicher 63 sechzehn Zeilen des subabgetasteten I(t-1) Signals an den Bewegungsabschätzer-Block 64 übertragen; ausschließlich des Vorwärtsversatzes von sechzehn Zeilen. Die anderen (vorhergehenden) 32 Zeilen des subabgetasteten Bildes I(t-1), die von dem Block 64 benötigt werden, sind schon von den vorhergehenden zwei Sätzen von sechzehn Zeilen des subabgetastenen Signals I(t), die vom Bewegungabschätzungs- Block 64 angelegt wurden, im Block 64.
  • Der Bewegungsabschätzer 64 erzeugt für jeden Block im Bild mehrere Vorhersagefehler-Signale. Diese mehreren Vorhersagefehler-Signale werden zu einem Rechner 65 für die beste Übereinstimmung übertragen, der das kleinste Vorhersagefehler-Signal feststellt. Der Versatz, der diesem Vorhersagefehler-Signal entspricht wird als der Bewegungsvektor des Blockes ausgewählt.
  • Ausgedrückt in mehr mathematischen Termen, kann der Vorhersagefehler definiert werden als die Summe der absoluten Differenzen der Pixelwerte, bei einem Block der Breite w und der Höhe h im laufenden Rahmenblock, mit b(x,y,t), wobei t der laufende Rahmen und x und y die Nord- West-Koordinaten des Blockes sind, als:
  • wobei r und s jeweils der Versatz in x- und y-Richtung sind. Der Bewegungsvektor mit der besten Übereinstimmung ist der Versatz (r,s), der den kleinsten Vorhersagefehler ergibt.
  • Die Auswahl des Bewegungsvektors erfolgt im Rechner 65. In solchen Fällen, in denen mehrere Vektoren den gleichen minimalen Fehler aufweisen, wählt der Rechner 65 denjenigen mit der kleinsten Größe. Für den Zweck dieser Auswahl werden die Größen im Rechner 65 als die Summe der Größe des horizontalen und vertikalen Versatzes, d.h. r + s definiert.
  • In der zweiten Stufe des Bewegungsvektor-Erzeugers 13 wird eine neu definierte Bestimmung hinsichtlich des besten Versatzwertes vorgenommen, der innerhalb der Umgebung des in der ersten Stufe ausgewählten Versatzes ausgewählt werden kann. Die zweite Stufe unterscheidet sich von der ersten in dreierlei Hinsicht. Erstens führt sie eine Durchsuchung in einer bestimmten Umgebung durch. Zweitens wertet sie die Werte der Vorhersagefehler für 8 x 8 Blöcke und eine 4 x 2 Anordnung von 8 x 8 Blöcken aus (die tatsächlich ein 32 x 16 Block sind). Und drittens interpoliert sie das Endergebnis mit einer Genauigkeit von einem halben Pixel.
  • Fig. 4 zeigt ein allgemeines Blockschaltbild der zweiten Stufe des Erzeugers 13. Wie schon in Fig.3 wird das Eingangssignal an den Rahmenspeicher 66 angelegt. Die Eingangsdaten und Ausgangsdaten des Speichers 66 werden zu dem Bewegungsabschätzer 67, sowie die Ausgangssignale des Bewegungsabschätzers zu dem Rechner 68 für die beste Übereinstimmung übertragen. Der Abschätzer 67 spricht auch auf die grobe Bewegungsvektor-Abschätzung an, die in der ersten Stufe des Erzeugers 13 erzeugt wird, wodurch der Abschätzer veranlaßt wird, die Bewegung in der Umgebung des Bewegungsvektors, der in der ersten Stufe des Erzeugers 13 ausgewählt wurde, abzuschätzen.
  • Der Rechner 68 erzeugt Ausgangssignal-Sätze zu je 10 Signalen je Satz. Er erzeugt acht 8 x 8 - Block Bewegungsvektoren, einen 32 x 16 Bewegungsvektor, der einen Bildbereich umfaßt, der von den 8 x 8 - Blöcken abgedeckt ist und ein Maß der Verbesserung der Bewegungsspezifikation (d.h. einen niedrigeren Vorhersagefehler), als man ihn erhalten würde, wenn die acht 8 x 8 Bewegungsvektoren an Stelle des zugeordneten 32 x 16 Bewegungsvektors verwenden würde. Das Maß der Verbesserung kann auf beliebige Weise erzeugt werden, jedoch ist ein einfacher Weg, wenn man die Vorhersagefehler der 8 x 8 - Blöcke beibehält, die Summe dieser Vorhersagefehler bildet und die erzeugte Summe vom Vorhersagefehler des 32 x 16 Bewegungsvektors abzieht.
  • Die vom Rechner 68 ausgegebenen Bewegungsvektoren werden in Fig. 4 zu dem Halbpixel-Abschätzer 69 übertragen. Die Halbpixel-Bewegung wird aus den Veränderungen der Vorhersage rings um den Bereich des minimalen Fehlers abgeleitet. Eine einfache Methode, die im Abschätzer 69 verwendet wird, besteht darin, die Halbpixel-Bewegung unabhängig in x- und y-Richtung durch die Einpassung einer Parabel durch die drei Punkte rund um das Minimum und durch Lösung der Parabelgleichung und das Auffinden der Lage des Minimums der Parabel, abzuleiten. Da nur eine Halbpixel-Genauigkeit gewünscht ist, ist dieser Prozess auf die Durchführung folgender Vergleiche vereinfacht:
  • wenn (px-1 - px)< (px+1 - px)/3 dann x'=x-½ (2)
  • und
  • wenn (px+1 - px)< (px-1 - px)/3 dann x'=x+½ (3),
  • wobei Px der Vorhersagefehler an der Stelle x und x' der abgeleitete Halbpixel-Bewegungsvektor ist.
  • Die Suchoperationen in beiden Stufen des Bewegungsvektor- Erzeugers 13 können über die Ecken des Bildes hinaus ausgedehnt werden, um eine verbesserte Vorhersage eines Objektes, das in den Rahmen eintritt zu ermöglichen. Die Werte der Pixel außerhalb des Bildes sollten gleich dem Wert des am dichtesten daran liegenden bekannten Pixels gesetzt werden.
  • Oben ist die Struktur des Bewegungsvektor-Erzeugers 13 beschrieben. Der gesamte Rechenprozeß kann von konventionellen Prozessoren ausgeführt werden. Das Verfahren, das am meisten von Spezialrechnern profitieren kann, ist der Bewegungsabschätzungs-Prozess der Elemente 64 und 67; einfach wegen der Zahl der verlangten Operationen. Diese Prozesse können mit Spezialchips der LSI Logic Corporation verwirklicht werden, die einen Video-Bewegungsabschätzungs-Prozessor (L64720) anbietet. Von diesen können dann eine Anzahl für beliebige größere Blöcke und Bereiche kombiniert werden. Diese Kombination von L64720 Chips ist in einer Anwendungsnotiz der LSI Logic Corporation angegeben, die den Titel "LG720 (MEP) Video Motion Estimation Processor" trägt.
  • Bewegungsvektor-Selektor/Codierer 14
  • Der Grund für die Einführung von 32 x 16-Blöcken liegt in der Erwartung, daß ein voller Satz von Bewegungsvektoren für 8 x 8-Blöcke nicht mit den Bits codiert werden kann, die in dem für die Bewegungsvektoren zugeteilten Budget vorhanden sind. Andererseits erfordert das Senden von nur 32 x 16 - Block Bewegungsvektoren 28.672 Bits -- die sich aus der Multiplikation der 14 Bits je Bewegungsvektor (7 Bits für den horizontalen und 7 Bits für den vertikalen Versatz) mit 32 Blöcken in der horizontalen und 64 Blöcken in der vertikalen Richtung ergeben. Mit anderen Worten, es wird erwartet, daß der endgültige Satz von Bewegungsvektoren eine Mischung aus 8 x 8 - Blöcken bestehenden Bewegungsvektoren und aus 32 x 16 - Blöcken bestehenden Bewegungsvektoren ist. Es folgt daher daraus, daß eine Auswahl aus der endgültigen Mischung der Bewegungsvektoren, die eventuell vom HDTV Sender gesendet werden, getroffen werden muß und daß diese Auswahl in das vorgegebenebitbudget paßt. Da die Anzahl der Bits, die einen Bewegungsvektor definieren von der Wirksamkeit der Komprimiercodierung abhängt, denen die Bewegungsvektoren unterzogen werden, folgt, daß die Auswahl der Bewegungsvektoren und die Komprimierung der ausgewählten Bewegungsvektoren eng verflochten sind.
  • Die grundlegende Philosophie, die im Selektor/Codierer 14 dahintersteht, besteht darin, das Bitbudget mit soviel detaillierter Information zu füllen, wie es möglich ist. Das heißt, es ist das Ziel so viele 8 x 8 Bewegungsvektoren wie möglich zu verwenden. Unser Verfahren besteht darin, mit dem Satz von 32 x 16 - Block Bewegungsvektoren zu beginnen, diese Folge von Bewegungsvektoren zu komprimieren, ein Maß der Anzahl der vom vorgegebenen Bitbudget übriggebliebenen Bits zu erstellen und dann in einen iterativen Prozess einzutreten, der die übriggebliebenen Bits zuteilt. Um den Prozess zu vereinfachen, werden die 32 x 16 Bewegungsvektoren in Sätze gruppiert, und jeder Satz wird als eine Einheit codiert. Die Sätze oder Scheiben, die wir verwenden sind 2 x 3-Anordnungen (sechs 32 x 16 Bewegungsvektoren in allem), wie in Fig. 5 dargestellt.
  • Der Codierprozess beginnt mit Codierer 14 (Fig. 1) der die Codes für die ersten sechs oben beschriebenen 32 x 16 Bewegungsvektoren erzeugt und diese Codes mit einem variablen Längencode, wie bei einem Huffman-Codierer, komprimiert. Der erste Code in der Gruppe spezifiziert einen ersten 32 x 16 Bewegungsvektor in der Scheibe in absolutem Sinne. Danach werden die übrigen 5 Bewegungsvektoren durch den Unterschied zwischen den Vektoren und dem ersten Vektor spezifiziert. Den 32 x 16 - Blöcken in der Scheibe folgt ein eingeschobenes Bit, um anzuzeigen, ob irgendeiner der 32 x 16 - Blöcke in der Scheibe ebenfalls durch die verfeinerte Information der 8 x 8 Vektoren spezifiziert ist. Wenn das der Fall ist, dann wird ein Code bereitgestellt, der spezifiziert welche der Blöcke auf diese Weise verfeinerter spezifiziert sind, und danach spezifizieren bis zu 6 mal acht oder 48 Codes die enthaltenen 8 x 8 Bewegungsvektoren.
  • So bildet das codierte Format der Scheibe (unter Bezug auf Fig. 5.) folgendes Paket:
  • Fig. 6 zeigt ein Blockschaltbild des Selektor/Codierer 14. Mit jedem 32 x 16 Bewegungsvektor, den er vom Halbpixel-Abschätzer 69 empfängt, empfängt er auch die zugehörigen 8 x 8 Bewegungsvektoren und die Verbesserungsinformation. Die ankommenden 32 x 16 Bewegungsvektoren werden zu dem Huffman Codierer 70 übertragen, die 8 x 8 Bewegungsvektoren werden zu dem Speicher 71 gesendet und die Verbesserungsinformation wird an den Sortierer 72 gegeben. Dem Sortierer 72 ist ein Speicher 73 für die Speicherung der relevanten Information bezüglich der Verbesserungssignale zugeordnet, die in ihrer Reihenfolge nach der Größe der Verbesserung sortiert sind; wobei die relevante Information in der Kennzeichnung des 32 x 16 Blockes besteht, der dem Verbesserungswert zugeordnet ist.
  • Der Huffman Codierer 16 codiert die ersten sechs Felder des Scheibenpakets und speichert diese Information in den Speicher 74 ein. Gleichzeitig akkumuliert er die im Codiervorgang erzeugten Bits im Akkumulator 75. Die Zahl der Bits, die im Akkumulator erzeugt wurden, wird mit dem vorgegebenen Bitbudget (das eine feste Zahl ist) in einem Schwellenwert-Detektor 76 verglichen. Solange, wie das Bitbudget nicht überschritten wird, sendet der Schwellenwert- Detektor 76 ein Signal zum Speicher 73, das von diesem einen Zugriff auf den Identifizierer an der Spitze der sortierten Warteschlange (und seine Entfernung aus der Warteschlange) verlangt. Der vom Speicher 73 ausgegebene Identifizierer wird zum Speicher 71 übertragen, wo er diesen veranlaßt, die acht 8 x 8 Bewegungsvektoren, die dem 32 x 16 - Block zugeordnet sind, auszuspeichern. Die vom Speicher 71 gelieferten Bewegungsvektoren werden zu dem Huffman Codierer 70 übertragen, der die Information komprimiert, die komprimierte Information dem Speicher 74 hinzufügt (gesteuert vom Ausgangssignal des Speichers 73) und die komprimierten Bits im Akkumulator 75 akkumuliert. Dieses vervollständigt eine Iteration.
  • Die Operation der Schwellenwert-Schaltung 76 und die gesamte Iteration wird solange wiederholt, bis das Bitbudget überschritten wird. An diesem Punkt enthält der Speicher 74 die entsprechende Mischung von codierten Bewegungsvektoren, die zum Pufferspeicher 15 in Fig.1 übertragen werden. Wie in Fig.6 gezeigt, werden die uncodierten, zu der Huffman Schaltung 70 übertragenen Bewegungsvektoren auch zum Speicher 77 übertragen. Diese Vektoren werden zu der Bewegungskompensatorschaltung 16 und zu dem Pufferspeicher 17 in Fig. 1 übertragen.
  • Bewegungskompensatorschaltungen
  • Um seine Ausgangssignale zu erzeugen, benötigt die Bewegungskompensatorschaltung 16 (Fig. 1) nur Zugang zu den Daten im Pufferspeicher 19, gesteuert von den Bewegungsvektoren, die vom Bewegungsvektor-Selektor/Codierer 14 ausgewählt wurden. Dieses wird leicht dadurch erreicht, daß der Pufferspeicher 19 als ein Speicher mit wahlfreiem Zugriff mit Multiplexsteuerung ausgebildet ist. Die für den Bewegungskompensator bestimmten Signale werden von den Bewegungsvektoren gesteuert, während die für den Pufferspeicher 15 bestimmten Ausgangssignale von einem sequentiellen Zähler gesteuert werden.
  • Die Bewegungskompensatorschaltung 43 (in Fig. 2) ist mit der Bewegungskompensatorschaltung 16 identisch.
  • Abschwächerschaltung
  • Die Abschwächerschaltung enthält einen Abschwächungs- Prozessor 20 und einen Multiplizierer 23. Der Multiplizierer 23 modifiziert die Signale der Bewegungs-Kompensatorschaltung 16 vor ihrer Übertragung zu dem Subtrahierer 28. Der Subtrahierer schließt das Mittelwert-Signal von Betrachtungen in dem Bemühen aus, den dynamischen Bereich der in den DCT Transformations-Schaltungen 29 und 30 betrachteten Signale einzuschränken.
  • Die Verarbeitung innerhalb des Elementes 20 erfordert natürlich einige Zeit, weshalb in Fig.1 die Pufferspeicher 21 und 22 vorgesehen sind. Der Pufferspeicher 22 verzögert das zu dem Subtrahierer 28 übertragene Bildsignal, und der Pufferspeicher 21 verzögert die Bewegungsvektor-Signale, die von der Bewegungs-Kompensatorschaltung 16 gesendet werden.
  • Wenn man seine Aufmerksamkeit dem Abschwächungs-Prozessor 20 zuwendet, dann ist die eine Möglichkeit, die Abschwächungsschaltung als ein Mechanismus für die Verringerung der DFD (versetzte Rahmendifferenz) zu sehen, die am Ausgang des Subtraktors 28 erzeugt wird. Die gesamte Bemühung, gute Bewegungsvektoren zu erzeugen, besteht daher darin, die DFD Ausgangssignale des Subtrahierers 28 zu reduzieren. In dem Umfang, wie die Abschwächungs-Schaltung weiter die DFD reduzieren kann, ist sie hilfreich.
  • Ein Weg zur Verringerung der DFD besteht darin, die DFD als Funktion der Abschwächungsvariablen &alpha; zu minimieren. Das heißt, daß es notwendig ist &alpha; so zu definieren, daß
  • wobei I das Bildrahmensignal des Pufferspeichers 18, DF das versetzte Rahmensignal der Bewegungs-Kompensatorschaltung 16,
  • &alpha; der multiplikative Abschwächungswert und E{X} der erwartete Wert von X ist. Die Lösung der obigen Gleichung ist.
  • Daher berechnet in einer Ausführungsform der Prozessor 20 nur &alpha;, gemäß Gleichung (5) als Reaktion auf die Signale I(t-2) und DF(t-2). Die Berechnungen, die in dem Prozessor 20 durchgeführt werden, sind in solch einem Falle einfache Multiplikationen und Mittelwertbildungen (summieren und dividieren), so daß sie hier nicht weiter beschrieben werden. So genügt es festzustellen, daß der Prozessor 20 ein konventioneller Arithmetikprozessor (z.B. eine integrierte DSP-Schaltung) sein kann.
  • Obgleich die im Prozessor 20 durchgeführten Rechnungen Standard sind, sind sie doch ziemlich zahlreich (jedoch nicht irgendwie annähernd so zahlreich, wie die Rechnungen, die für die Auswahl der Bewegungsvektoren notwendig sind). Etwas einfachere Berechnungsaufgaben können dem Prozessor 20 zugeteilt werden, wenn man das folgende beachtet.
  • Betrachtet man die Grenzen, denen der Abschwächungsfaktor unterworfen werden sollte, dann ist es beispielsweise klar, daß es dem Abschwächungsfaktor nicht erlaubt werden kann, 1.0 zu erreichen und dort zu bleiben. Etwas Abschwächung des aktuellen Bildes muß es immer geben. Ansonsten kann ein Empfänger, der sich frisch auf einen Sender abstimmt, das Bild nicht aufbauen, da jegliche historische Information fehlt; d.h. es hat niemals eine "vorhergehende Rahmen" Information gegeben, auf welche die Bewegungsvektoren erfolgreich angewendet werden können. Auch würde ein Störsignal, das vom Empfänger aufgenommen würde, niemals verschwinden. Daher muß der maximale Pegel auf einen Langzeitwert des Abschwächungsfaktors, wie beispielsweise 15/16 eingestellt werden.
  • Es ist ebenso klar, daß wenn eine Änderung der Szene erfolgt, der beste Wert für den Abschwächungsfaktor Null ist, da er die alte Szene vollständig aufgibt und mit dem Aufbau einer neuen beginnt. Es sei bemerkt, daß Änderungen der Szene beim kommerziellen TV-Programmen relativ häufig vorkommen. Wenn &alpha; auf Null gesetzt wird, dann hilft dieses auch die notwendige historische Information für frisch abgestimmte Empfänger oder für Empfänger, die eine wegen Störungen verstümmelte historische Information haben, einzufangen.
  • Jedoch sollte der Wert von &alpha; nicht zu lange bei Null gehalten werden, da dieses eine große Übertragungslast erzeugt.
  • In Anbetracht des oben schon Gesagten, braucht der vom Prozessor 20 durchgeführte Prozess in seiner einfachsten Form nur das Auftreten von Änderungen einer Szene festzustellen und bei jedem solchem Auftreten &alpha; auf 0 zu setzen. Danach kann &alpha; bei einer vorgewählten Rate mit jedem Rahmen inkrementiert werden, so daß nach m Rahmen es &alpha; erlaubt wird, &alpha;max (d.h. 15/16) zu erreichen. Wenn natürlich eine andere Änderung der Szene innerhalb der m Rahmen auftritt, wird &alpha; wieder auf 0 gesetzt und die Inkrementierung neu gestartet. Dieser einfache Vorgang für die Entwicklung von &alpha; kann einfach mit einer Szenenänderungs-Bestimmungsschaltung realisiert werden. Diese Szenenänderungs-Bestimmungsschaltung kann einfach eine Schaltung sein, welche die Größen der versetzten Rahmendifferenz-Signale aufaddiert; d.h.
  • &Sigma; It-2 - DFt-2 .
  • Dieses ergibt ein Maß, das, wenn es mit einem Schwellenwert verglichen wird, bestimmt, ob eine Szenenänderung stattgefunden hat. Dieses ist in Fig. 7 dargestellt, in der das Element 34 das Summensignal
  • &Sigma; It-2 - DFt-2
  • erzeugt und dieses Signal zu der Schwellenwertschaltung 58 überträgt. Das Ausgangssignal der Schaltung 58 wird an eine Sperrleitung des Addierers 59 angelegt, welcher den Wert im Schwellwert-Register 60 zu dem Wert im Register 57 addiert. Das Ausgangssignal des Register 57 ist der Abschwächungsfaktor &alpha;.
  • Ein noch anderes Verfahren besteht darin, am Eingang des Multiplizierers 23 eine feste Abschwächung zu verwenden und danach einen Zwei-Pegel-Abschwächungsfaktor zu erzeugen. Durch die Anordnung des Prozessors 53 am Ausgang der DCT- Transformation 29 (zusätzlich zum Prozessor am Ausgang der DCT-Transformation 30) werden zwei (t-4)-Signale erzeugt.
  • Der Abschwächungsfaktor, der an die Codierschleife von Fig. 2 gesendet wurde, wird auf der Basis der zwei gebildeten (t-4)-Signale ausgewählt. Wenn eine Änderung einer Szene eintritt, werden sich die beiden -Signale nicht sehr von einander unterscheiden, weil der Rahmen eine schwache Vorhersage haben wird, die sich aus einem hohen Wert der DFD Standardabweichung ergibt. Tatsächlich könnte die Abweichung der DFD höher sein, als die Standardabweichung des Originalrahmens. In einem solchen Fall (d.h. wenn die beiden -Signale sich um mehr als den gewählten Schwellenwert unterscheiden), ist es klar, daß eine Abschwächung von 1 (keine Vorhersage) gewählt werden muß, und daher wird der Abschwächungsfaktor &alpha; = 0 zur Fig. 2 gesendet.
  • Das Blockschaltbild des Vorwärtsabschätzungsabschnitts des Codierers (d.i. Fig. 1) kann etwas durch Übernahme dieses Abschwächungsverfahrens vereinfacht werden. Dieses ist in Fig. 16 zu sehen, wo der Prozessor 20, sowie eine Anzahl von Pufferspeichern weggelassen wurden. Andererseits mußten ein anderer Prozessor 53, ein Subtrahierer, eine Schwellenwertvorrichtung und ein Selektor, der einen von zwei Sätzen von Maßstabsfaktoren auswählt, und Standardabweichungsmittel und ein Abschwächungsfaktor von oder 15/16 hinzugefügt werden.
  • DCT-Transformationsschaltungen
  • Die Transformationsschaltungen 29 und 30 (Fig.1) und 37 und 40 (Fig. 2) erzeugen eine zweidimensionale Transformation. Die Schaltungen 29,30 und 37 wandeln Information aus dem Zeitbereich in Information im Frequenzbereich um, und die Schaltung 40 führt das Umgekehrte durch. Die Hardware für die Erzeugung zweidimensionaler Transformationen kann der Lehre aus der US-PS 4 829 465 vom 9. Mai 1989 mit dem Titel "High Speed Cosine Transform" folgen.
  • Prozessor 53
  • Der Prozessor 53 errechnet Signale Sij des Maßstabsfaktors und das Signal der Standardabweichung für den Rahmen. Bei einer 8 x 8 Transformation gibt es 64 Signale für den Maßstabssfaktor. Die Signale des Maßstabsfaktors werden durch Auswertung von alle Blöcke
  • erzeugt, wobei sij die ij-Koeffizienten der Frequenz sind, die von dem DCT Element 30 erzeugt werden und K&sub1; die Anzahl der 8 x 8 - Blöcke in dem Rahmen ist. Die Standardabweichung ist ein einzelner Wert für den Rahmen und sie entspricht alle Pixel
  • wobei K&sub2; die Anzahl der Pixel im Rahmen angibt. Natürlich können diese Berechnungen mit einem konventionellen Prozessor ganz einfach durchgeführt werden, da sie nur das Quadrieren, Addieren und das Wurzelziehen erfordern. Weil die Antwort noch nicht sichergestellt werden kann, bevor der gesamte Rahmen verarbeitet wurde, werden die Ausgangssignale des Prozessors 53 mit Sij(t-4) und (t-4) markiert.
  • Quantisierer-und Vektor-Selektor(QVS) 38
  • Die DCT Transformations-Schaltung 37 erzeugt Gruppen von 8 x 8 Frequenzbereich-Koeffizienten. Um die Codierung im QVS 38, der auf die Schaltung 37 folgt, zu vereinfachen, ist es am besten, diese Sätze zu gruppieren; und eine solche mögliche Gruppierung ist eine 2 x 2 Anordnung. Dieses zeigt Fig. 8, wo eine 2 x 2 Anordnung von 8 x 8 Sätzen von Koeffizienten (linke Seite der Fig.) so kombiniert sind, daß sie einen 64-Zellen Superblock-Vektor bilden (rechte Seite der Fig.), wobei jede Zelle 4 Mitglieder hat. Eine erste Stufe der Vereinfachung wird dadurch eingeführt, daß eine Beschränkung derart vorgenommen wird, daß die Koeffizienten in jeder Zelle nur mit einem Quantisierer quantisiert werden. Ein bestimmter Grad von Kompliziertheit wird dadurch eingeführt, daß es erlaubt wird, daß ein anderer Quantisierer benutzt wird, um andere Zellen zu quantisieren. Die Anzahl der verschiedenen Quantisierer wird auf eine vorgewählte Anzahl begrenzt, beispielsweise 4, um die Hardware zu verringern und die Codierung zu vereinfachen. Diese (Neben-)Information, welche die Information ist, welche die Wahl oder Selektionen identifiziert, muß zum Empfänger übertragen werden. Die Anzahl der Auswahlmöglichkeiten (Muster oder Vektoren) ist 64&sup4;. Eine Definition dieses Umfangs von Auswahlmöglichkeiten in binärer Form würde 128 Informationsbits erfordern, was mehr ist, als für eine Benutzung wünschenswert wäre.
  • Daher wird eine zweite Stufe von Vereinfachung durch eine zufällige Auswahl eingeführt, mit der nur eine begrenzte Anzahl von Mustern verwendet wird, die den Superblock-Vektor darstellen. Diese Anzahl kann beispielsweise 2048 sein, die nur 11 Bits für ihre Codierung benötigen würde. Eine variable Längencodierung könnte diesen Betrag noch weiter reduzieren. Die 2048 ausgewählten Muster werden in einem Vektorcodebuch gespeichert.
  • Betrachtet man die Aufgabe, einen Codebuch-Vektor zu wählen, mehr in mathematischen Termen für jeden Transformations-Koeffizienten, der quantisiert ist, dann kann ein Quantisierungsfehler definiert werden durch
  • q = x -Q(x) , (8)
  • wobei Q(x) der Quantisierungswert des Zellenmitglieds x ist (der erhalten wird, wenn zuerst x codiert und dann decodiert wird). Für die gleiche Sichtbarkeit von Fehlern über das Bild, ist es für diesen Quantisierungsfehler wünschenswert, daß dieser gleich einer Zielverzerrungshöhe d ist, die vom Wahrnehmungscodierer 49 erhalten wird. Es wird natürlich erwartet, daß eine Benutzung der Codebuchvektoren nicht diese Zielverzerrungshöhe in allen Fällen ergibt. Daher definieren wir einen Auswahlverzögerungsfehler durch
  • e = q - d . (9)
  • Dieser totale Selektionsfehler für eine Zelle ist die Summe der individuellen Selektionsfehler von Gleichung (9) über eine 2x2-Anordnung der Zellmitglieder; und der Selektionsfehler über alles für den Superblock-Vektor ist die Summe der totalen Selektionsfehler der 64 individuellen Zellen.
  • Der Prozess für die Auswahl der geeigneten Codebuchvektoren betrachtet jeden der Codebuchvektoren und den Codebuchvektor, der den kleinsten Selektionsfehler über alles hat. In solchen Fällen, in denen zwei verschiedene Codebuchvektoren den gleichen oder fast den gleichen Selektionsfehler über alles bieten, ist der Vektor, der dann ausgewählt wird, derjenige, welcher weniger Bits ergibt, wenn der Superblock quantisiert wird.
  • Bevor mit der ausführlichen Beschreibung des Blockschaltbildes von QVS 38 fortgefahren wird, ist es angebracht, zuerst das Element in QVS 38 zu beschreiben, das den Selektionsfehler auswertet. Dieses Element ist in Fig. 9 dargestellt.
  • Fig. 9 enthält drei parallele Pfade, die jedem der 3 nicht-trivialen Quantisierer entsprechen, die für das System ausgewählt wurden ("wirf die Zelle raus" ist der vierte "Quantisierer", aber er stellt ein triviales Quantisierungsschema dar). Die Pfade sind identisch.
  • Die Maßstabsfaktoren, die in dem Vorwärtsabschwächungs- Abschnitt der Fig. 1 erzeugt werden, werden effektiv genutzt, um einen Satz von Standardquantisierern an die Daten anzupassen. Dies geschieht dadurch, daß zuerst das Eingangssignal im Dividierer 90 durch den Maßstabsfaktor geteilt wird. Die skalierten Signale werden dann in jedem Pfad an den (Quantisierer) 81 und an den Subtrahierer 83 angelegt. Die quantisierten Ausgangsdaten des Codierers 81 werden im Decodierer 82 decodiert und im Multiplizierer 78 mit den Maßstabsfaktoren multipliziert. Das Ergebnis ist das Signal plus das Quantisierungsrauschen. Das Quantisierungsrauschen wird dadurch isoliert, daß das Ausgangssignal des Multiplizierers 78 vom Originalsignal, das an den Dividierer 90 angelegt wird, subtrahiert wird. Die Subtraktion wird im Subtrahierer 83 durchgeführt. Natürlich verwendet jedes der Codierer- und Decodiererpaare in Fig. 9 einen anderen Quantisierer.
  • Das Ausgangssignal eines jeden der Subtrahierer 83 ist das Quantisierungs-Fehlersignal q für die verwendete Quantisierungsstufe. Die Höhe der Globalziel-Verzerrung d wird im Subtrahierer 84 von q subtrahiert, und die Resultate werden im Akkumulator 85 addiert. Entsprechend den Gleichungen (8) und (9) sind die Subtrahierer 83 und 84 Vorzeichengröße- Subtrahierer, welche die Höhe der Differenz ergeben. Die Ausgangssignale von jedem Akkumulator 85 liefern den Selektionsfehler für diejenige Zelle, die am Eingang des Quantisierers 81 empfangen wird, basierend auf der Quantisierungsstufe des zugeordneten Quantisierers 81.
  • Die vom Quantisierer 81 quantisierten Signale, welche die anderen Ausgangssignale des Pfades bilden, werden auch an den Ratenrechner 86 angelegt, welcher ein Maß der Anzahl von Bits erzeugt, das benötigt würde, um das Signal der ankommenden Zelle zu beschreiben, wenn der Quantisierer 81 als der am besten zu benutzende Quantisierer ausgewählt würde. Zusammenfassend ergibt sich folgendes, jedes Element 80 in Fig.9 empfängt Zelleninformation und liefert ein quantisiertes Signal, ein Selektionsfehler-Signal und eine Rateninformation für jede mögliche Quantisierungsstufe des Systems.
  • Der vierte Pfad, der in Fig.9 nicht dargestellt ist, ist ein Pfad, der einen "0 Quantisierer" verwendet. Er bietet überhaupt kein quantisiertes Signal, eine Rate für dieses quantisierte Signal, die 0 ist und ein Fehlersignal, das gleich seinem Eingangssignal ist. Die Zielverzerrung wird von diesem subtrahiert, und es wird der absolute Wert akkumuliert, wie bei den anderen Quantisierern.
  • Fig.10 präsentiert eine Ausführungsform von QVS 38. Die Eingangssignale vom DCT-Transferelement 37 (Fig.2) werden zuerst zu dem Pufferspeicher 178 übertragen, um die Superblock-Vektoren (Anordnung von Zellen, wie sie auf der rechten Seite in Fig.8 gezeigt sind) zu erzeugen. Die 64 Zellen des Superblock-Vektors werden jeweils zu einem anderen von den 64 Blöcken 80 übertragen. Wie schon im Zusammenhang mit Fig.9 beschrieben wurde, erzeugt jeder Block 80 eine Anzahl von Ausgangs-Trippeln, wobei jedes Trippel ein quantisiertes Signal abgibt, ein Maß der Höhe des Selektionsfehlers der Zelle, als Antwort auf eine gegebene Quantisierungsstufe und die sich ergebende Anzahl von Bits für die Codierung der Zelle mit einer gegebenen Quantisierungsstufe. Die Ausgangssignale der 64 Blöcke 80 werden zu 64 Selektorblöcken 79 übertragen.
  • Die 64 Selektorblöcke sprechen auf die Blöcke 80 an, sowie auf den Codebuch-Vektorblock 87. Der Block 78 enthält einen Satz von Codebuchvektoren, welche die oben beschriebenen Quantisierungs-Fehlermuster sind. Im Betrieb geht der Block 80 zyklisch durch die Codebuchvektoren und liefert diese alle parallel zu den 64 Selektorblöcken. Insbesondere wird jedes der 64 Elemente eines Vektorcodebuches in einen anderen der 64 Blöcke 79 eingespeist. Gesteuert von den angelegten Codebuchvektor-Signalen, selektiert jeder Selektorblock 79 ein geeignetes von den Ausgangstrippeln mittels seines zugeordneten Blockes 80 und überträgt das ausgewählte Trippel zu der Kombinierschaltung 88. Die Ausgangssignale der Kombinierschaltung 88 sind eine Folge von quantisierten Superblocksignalen und zugeordneten Fehler-über-Alles-Signalen und Ratensignalen für die verschiedenen Codebuchvektoren, die vom Codebuchblock 87 sequentiell geliefert werden. Diese Trippelsignale über alles werden zu der Schwellenwertschaltung 89 übertragen.
  • Die Schwellenwertschaltung 89 spricht auch auf den Codebuchblock 87 an. Sie bewahrt Information auf, die sich auf die Identität des Codebuchvektors, der die geringste Selektionsfehlerstufe über alles erzeugt hat, auf die Anzahl von Bits, die dieser Codebuchvektor benötigt, um den Superblockvektor zu quantisieren und, natürlich, auf den Superblockvektor selbst bezieht. Wie schon zuvor angedeutet, ist in Fällen wo zwei Codebuchvektoren gleiche oder sehr ähnliche Selektionsfehlerstufen über alles ergeben, der Vektor, der ausgewählt wird derjenige, welcher die kleinere Anzahl von Bits benötigt, um den Superblockvektor zu quantisieren.
  • Der Prozess der Schwellenwertschaltung 89 kann leicht innerhalb zweier Hardware-Abschnitte durchgeführt werden. Im ersten Abschnitt wird ein Vergleich zwischen dem laufenden Selektionsfehler über alles und dem Selektionsfehler über alles, der zur Schwellenwertschaltung 89 übertragen wird, vorgenommen. Der Selektionsfehler über alles, der größer ist, wird willkürlich veranlaßt, irgend eine maximale Rate anzunehmen. Die Einstellung der maximalen Rate ist wünschenswert, wenn der anliegende Selektionsfehler über alles gleich oder fast gleich ist, wie der laufende kleinste Selektionsfehler über alles. Im zweiten Abschnitt wird ein Vergleich zwischen den Raten durchgeführt, und der Selektionsfehler über alles mit der kleineren Rate wird als der neue laufende kleinste Selektionsfehler über alles ausgewählt. Nachdem alle Codebuchvektoren berücksichtigt wurden, gibt die Schwellenwertschaltung 89 die Identität eines (optimalen) Codebuchvektors und seine Werte für den Superblockvektor aus, der vom Pufferspeicher 178 geliefert wurde. Dieser Prozess wird dann für den nächsten Superblockvektor wiederholt.
  • Von der Schwellenwertschaltung 89 werden die Codebuch- Identifizierung und die quantisierten Werte der Superblockzellen zu einer Verringerungs-Entscheidungsschaltung 115 übertragen. Wie früher schon erwähnt wurde, ist es in einem digitalen HDTV-System, das die Kommunikation über terrestrische Übertragung zum Ziele hat, wichtig, eine geziemende Verringerung bereitzustellen; insbesondere, da die vorhandene analoge TV-Übertragung tatsächlich eine solche geziemende Verringerung bietet.
  • Eine geziemende Verringerung wird durch Sortieren der erzeugten Information erreicht, und durch eine Bestimmung von verschiedener Information für eine verschiedene Behandlung. Die Anzahl von verschiedenen Behandlungen, die man haben möchte, liegt im Ermessen des Entwicklers. In einem System, wie in Fig.2 dargestellt, ist diese Anzahl zwei (Codierer 46 und 47). Das Kriterium für eine Unterscheidung kann sich auf die räumliche Auflösung, die zeitliche Auflösung oder beispielsweise den dynamischen Bereich beziehen.
  • Bei einem strikt temporalen Ansatz beispielsweise kann die Aufgabe des Blocks 115 ganz einfach sein. Die Idee kann sein, einfach jedem ungraden Rahmen zu erlauben, alle oder einen großen Teil seiner Information zu haben, die für eine überragende Behandlung bestimmt ist und jedem geraden Rahmen zu gestatten, die meiste, wenn nicht alle seine Information zu haben, die für eine geringere Behandlung bestimmt ist. Entsprechend einem solchen Ansatz muß die Verringerungs- Entscheidungsschaltung 115 nur wissen, ob der Rahmen gerade oder ungerade ist, und sie muß in der Lage sein, Proportionen zuzuteilen. Während ungerader Rahmen müssen die meisten Signale zum variablen Längencodierer 47 für eine überragende Behandlung und während gerader Rahmen müssen die meisten Signale zu dem variablen Längencodierer für eine geringere Behandlung übertragen werden.
  • Für den Ansatz einer räumlichen Auflösung für eine unterschiedliche Behandlung, ist es wünschenswert, den niederfrequenten Komponenten im Bild den Vorzug vor den hochfrequenten Komponenten im Bild zu geben. Dieses kann in dem in Fig.2 dargestellten System auf zweierlei Weise einfach durchgeführt werden. Es wurde experimentell bestimmt, daß die Codebuchvektoren des Blockes 87 eine Sammlung von Vektoren bilden, die nach der Zahl der höherfrequenten Komponenten, die im Vektor enthalten sind, geordnet werden können. Basierend hierauf muß die Schaltung 115 für die Verringerungsentscheidung nur wissen, welcher Codebuchvektor gerade gesendet wird (diese Information ist von der Schwellenwertschaltung 89 verfügbar) und sie muß ihre Eingangsinformation entweder entsprechend zum Codierer 47 oder 46 dirigieren. Alternativ hierzu können die niederfrequenten Zellen aller Vektoren für eine bevorzugte Behandlung bestimmt und zu dem Codierer 47 gesendet werden.
  • Es sei im Vorübergehen erwähnt, daß die obige Diskussion darüber, welche Information, zu dem Codierer 47 und welche Information zu dem Codierer 46 gesendet wird, sich auf die quantisierten Signale der Superblockvektoren und nicht auf die Identität der Codebuchvektoren selbst bezieht. Schließlich muß, wo die niederfrequenten Koeffizienten aller Superblockvektoren zu dem Codierer 47 gesendet werden, die Identität aller Superblockvektoren zu dem Codierer 47 gesendet werden.
  • Variable Längencodierer 46 und 47
  • Die variablen Längencodierer 46 und 47 können konventionelle Codierer sein, wie beispielsweise Huffman Codierer. Der Grund dafür, weshalb zwei verwendet werden, liegt darin, daß der Codierer 47 in einer Weise codiert werden muß, die eine bessere Aussicht auf einen fehlerfreien Empfang der codierten Signale bietet. Daher mag die Codierung im Codierer 47 sich von der Codierung im Codierer 46 unterscheiden.
  • Natürlich mag die Codierung an sich im Codierer 47 für nicht ausreichend gehalten werden, um die Chancen eines fehlerfreien Empfangs der im Codierer 47 codierten Signale zu verbessern. Daher kann im BBF Block 56 oder sogar über den Block 56 hinaus eine zusätzliche Codierung durchgeführt werden.
  • Inverser Quantisierer 39
  • Der inverse Quantisierer spricht auf die Maßstabsfaktoren Sij an, aber bezüglich der quantisierten Superblocksignale spricht er nur auf die Ausgangssignale von QVS 38 an, die an den variablen Längencodierer angelegt werden. Mit anderen Worten, der inverse Quantisierer 39 arbeitet so, als habe er einen sehr mäßigen Empfang, wobei ihn keines der Signale des Codierers 46 erreicht. Ein Blockschaltbild des Blockes 39 ist in Fig.11 dargestellt. Wie in Fig.11 gezeigt, enthält der inverse Quantisierer 39 ein Vektorcodebuch 102, das mit dem Codebuch 87 identisch ist, und einen Quantisierungs-Decodierer 103. Mit der direkten Hilfe des Codebuchs 102, revertiert der Decoder 103 den Quantisierungseffekt von QVS 38. Es ist natürlich verständlich, daß das von Quantisierungscodierer von QVS 38 eingeführte Quantisierungsrauschen nicht revertiert werden kann, daß aber mindestens der allgemeine Pegel des Anfangssigals wiederhergestellt wird. Es sei beispielsweise gesagt, daß die Quantisierungsstufen innerhalb von QVS 38, alle Stufen von 0-8 auf "0", alle Stufen zwischen 8 und 16 auf "1" und alle Stufen von 24-32 auf "3" konvertiert hat. Für eine solche Anordnung kann der inverse Quantisierer 39 eine "0" auf 4, eine "1" auf 12, eine "2" auf 20 und eine "3" auf 28 konvertieren. Ein Eingangssignal von 22 würde von QVS 38 auf "3" quantisiert und die quantisierte "3" würde in der Schaltung 39 invers auf 20 quantisiert. Die Quantisierungfehler-Stufe würde in diesem Falle 2 sein.
  • Wahrnehmungscodierer 49
  • Bevor mit der Beschreibung des Wahrnehmungscodierers fortgefahren wird, sollte herausgestellt werden, daß die Wahl, welche Funktionen in dem Vorwärtsabschätzungs-Block 56 und welche Funktionen im Wahrnehmungscodierer enthalten sind, etwas willkürlich ist. Wie es aus der folgenden Beschreibung offenkundig wird, könnten einige Funktionen leicht in den Vorwärtsabschätzungs-Block 56 eingebracht werden.
  • Die Primäre Aufgabe des Wahrnehmungscodierers 49 besteht in der Unterstützung von QVS 38 bei der Aufnahme eines Eingangsbildrahmens und diesen so gut wie möglich mit der Anzahl von Bits darzustellen, die je Rahmen zugeteilt sind. Der Prozeß, der die transformierte versetzte Rahmendifferenz am Ausgang des Elementes 37 (Fig.2) erzeugt, ist so konstruiert, daß er eine Darstellung erzeugt, die eine geringere statistische Redundanz im Transformationsbereich aufweist. An dieser Stelle, existiert noch alle Information, die nötig ist, um das Originalbild zu rekonstruieren. Es wurde nur in eine Darstellung transformiert, die weniger Bits zur Darstellung benötigt, als das Original. Wenn genug Bits zur Verfügung stünden, würde es möglich sein, ein codiertes Bild zu erzeugen, das Bit für Bit mit dem Original äquivalent wäre.
  • Mit Ausnahme der am meisten trivialen Eingangssignale, sind nicht genügend Bits vorhanden, um das Signal mit diesem Grad der Wiedergabegüte darzustellen. Es muß daher das Problem gelöst werden, ein codiertes Bild zu erzeugen, das so dicht, wie möglich am Original liegt, wobei die verfügbaren Bits verwendet werden, und das dem Zwang unterliegt&sub1; daß die Ausgabe von einem menschlichen Beobachter betrachtet wird. Es ist dieser Zwang, den der Wahrnehmungscodierer über das Zielverzerrungs-Signal, das er zu QVS 38 sendet, einführt. Mit anderen Worten, es werden zwei Zwänge ausgeübt: 1) Das Resultat muß eine im wesentlichen konstante Bitrate am Ausgang von BEF 52 sein und 2) der Fehler, wie er von einer Person wahrgenommen wird, muß klein gemacht werden.
  • Ein Weg zur Durchführung der Bitzuteilung, besteht darin, ein lineares System anzunehmen und den quadratischen Mittelwertfehler zwischen dem Originalbild und dem codierten Bild zu minimieren. Dieses ist der Ansatz, der bei vielen Bildcodierern verwendet wird. Das Problem bei diesem Ansatz ist, daß das menschliche Sehsystem kein lineares System ist und daß es keine quadratische Mittelwertmetrik verwendet. Der Zweck des Wahrnehmungscodierers 49 besteht daher darin, Wahrnehmungsschwellenwerte für die Vornahme von Bitzuteilungen, basierend auf den Eigenschaften des menschlichen Sehsystems, zur Verfügung zu stellen. Zusammen bilden sie die Zielverzerrungs-Stufe in den Fig. 9 und 10.
  • Der Wahrnehmungsschwellenwert bietet ein Mittel für die Durchführung der Bitzuteilung, so daß die in einem codierten Bild vorliegende Verzerrung einem menschlichen Beobachter so erscheint, als wäre sie gleichmäßig verteilt. Das heißt, daß obwohl Wahrnehmungs-Schwellenwerte verwendet werden, die codierten Artefakte, die vorliegen, alle etwa die gleiche Sichtbarkeit haben; und wenn die Bitrate des Systems reduziert wird, wird die wahrgenommene Qualität des codierten Bildes allgemein abnehmen, ohne irgendwelche offensichtlichen (d.s. lokalisierte) Codierfehler zu erzeugen.
  • Fig.12 zeigt das Blockschaltbild des Wahrnehmungscodierers 49. Es enthält den Wahrnehmungs- Schwellenwerterzeuger 937 der auf das IT(t-4) Signal vom Vorwärtsabschätzungsblock der Fig.1 anspricht, einen Ratenprozessor, der auf das Pufferspeicher-Voll-Signal vom Ausgangspufferspeicher im BFF Block 56 anspricht und einen Multiplizierer 92 für die Bildung der Zielverzerrungs-Signale in Abhängigkeit von den Ausgangssignalen des Erzeugers 93 und Prozessors 91.
  • Die Ausgabe des Wahrnehmungs-Schwellenwerterzeugers 93 ist ein Satz von Schwellenwerten, einer für jedes Element im Frequenzbereich, das vom Element 38 (Fig.2) empfangen wurde, die eine Abschätzung der relativen Sichtbarkeit der Codierungsverzerrung an dieser räumlichen Stelle und für dieses Frequenzband geben. Wie weiter unten ausführlich beschrieben, hängen diese Schwellenwerte vom Bildinhalt des Originalbildes ab, und deshalb passen sich die Bitzuteilungen den Variationen im Eingangssignal an.
  • Ein Bildmerkmal, dem im Erzeuger 93 Rechnung getragen wird, ist die Frequenzempfindlichkeit. (Im Kontext dieser Offenbarung, beschäftigen wir uns mit den Koeffizienten im Transformationsbereich, die sich auf die Schnelligkeit der Änderungen im Bild beziehen und nicht mit dem, was man normalerweise als "Frequenz" bedenkt. In den nächsten wenigen Abschnitten wird es jedoch für hilfreich gehalten, zu beschreiben, was im Bereich der "Frequenz" passiert.) Frequenzempfindlichkeit wertet die Tatsache aus, daß die Modulationstransferfunktion (MTF) visueller Systeme nicht flach verläuft. Die relative Visibilität als Funktion der Frequenz beginnt bei einer annehmbar guten Stufe, steigt mit der Frequenz bis zu einem Spitzenwert an, bei irgend einer Frequenz und fällt danach mit der Frequenz bis unter die relative Visibilität bei niedrigen Frequenzen ab.
  • Die MTF-Funktion bedeutet, daß bei hohen Frequenzen mehr Quantisierungsfehler eingeschleust werden können, als bei niedrigen Frequenzen. Daher werden die Wahrnehmungs- Schwellenwerte für die hochfrequenten Subbänder höher sein, als für die niedriger frequenten Subbänder. Die absolute Frequenz, bei der der Spitzenwert der Visibilität auftritt, hängt von der Bildschirmgröße und dem Betrachtungsabstand ab. Annäherungsweise jedoch tritt der Spitzenwert der Visibilität nahe am oberen Ende der niedrigsten Frequenzelemente auf, die an QVS 38 angelegt werden. Da auch die HVS empfindlich gegen niederfrequentes Flimmern ist, wird der Gleichstrom-(DC)- Schwellenwert auf einen Wert gesetzt, der wesentlich kleiner, als der strikt von der MTF benötigte Wert ist.
  • Die Ausdehnung des Wahrnehmungs-Schwellenwerts auf texturierte Eingangssignale erfordert eine Definition der Textur. "Textur" kann als der Betrag der Wechselstrom-(AC-) Energie an einer gegebenen Stelle betrachtet werden, die mit der Visibilität dieser Energie gewichtet ist. Tatsächlich jedoch ist die HVS sehr empfindlich gegen Verzerrungen längs der Kanten, aber weniger empfindlich gegen Verzerrungen quer über die Kanten. Diesem wird durch Einführung des Konzeptes der Direktionalität Rechnung getragen. Anstelle einer Berechnung einer einzelnen Texturabschätzung über alle Frequenzen, werden separaten Abschätzungen für horizontale, vertikale und diagonale Komponenten (RawHoriz, RawDiag und Rawvert Komponenten) vorgenommen, von denen horizontale Textur-(HorizTex), diagonale Textur-(DiagTex) und vertikale Textur-(VertTex) Signale gemäß den Gleichungen (10), (11) und (12) erzeugt werden.
  • HorizTex = RawHoriz+0.50xRawDiag (10)
  • DiagTex = 0.25xRawHoriz+RawDiag+0.25xRawVer (11)
  • VerTex = 0.5xRawDiag+RawVert, (12)
  • wobei RawHoriz über 8x8-Fenster
  • eine Summation nur über die oberste Reihe des 8 x 8 Fensters ist; RawVert über 8x8-Fenster
  • eine Summation nur über die linke Spalte des 8 x 8 Fensters ist und RawDiag über 8x8-Fenster
  • eine Summation uber die übrigen Frequenzelemente im Fenster ist.
  • Tatsächlich können die Summationen auf den Quadrant mit der niedrigsten Frequenz beschränkt sein, da diese Koeffizienten über 90% der Energie in typischen 8 x 8 Fenstern enthalten.
  • Die abschließende Komponente im Erzeuger 93 trägt der zeitlichen Maskierung Rechnung. Wenn an einer festen Stelle in einer Szene eine große Änderung des Bildinhalts zwischen zwei Rahmen auftritt, dann ist HVS weniger empfindlich gegen hochfrequente Details an dieser Stelle im laufenden Rahmen. Durch die Feststellung des Auftretens großer zeitlicher Unterschiede können die Wahrnehmungs-Schwellenwerte an dieser Stelle für den laufenden Rahmen vergrößert werden. Dieses erlaubt, daß Bits, die den hochfrequenten Details an diesen Stellen zugeteilt worden wären, für andere Teile des Bildes verwendet werden.
  • In Fig.13 wird die transformierte Bildinformation (deren Mittelwert entfernt wurde) IT(t-4) an den Addierer 101 , den Pufferspeicher 94, den Subtrahierer 94, den Prozessor 96 für die laufende Textur und an die Basisschwellenwert- Aufsuchtabelle 111 angelegt. Der Addierer 101 kombiniert die (0,0) Koeffizienten von T (t-4) mit dem Mittelwert-Signal M(t-4), um eine lokale Helligkeitsabschätzung zu bilden und sendet das Ergebnis zu einer Helligkeitskorrektur- Abschneideschaltung 97. Somit wandelt die Schaltung 97 die (0,0) Transformations-Koeffizienten in lokale Helligkeitskorrektur-Steuersignale um und überträgt sie zur Helligkeitskorrektur-Aufsuchtabelle 110.
  • Die anderen 63 Subbänder werden in zwei Datenströme gesplittet. Einer geht zum Rahmenpufferspeicher 94 und zu zum Subtrahierer 95, wo eine zeitliche Rahmendifferenz erzeugt wird. Diese Differenz dient zur Berechnung der zeitlichen Maskierungskorrektur, durch das Anlegen der zeitlichen Rahmendifferenz an den Texturprozessor 98. Der andere Pfad wird direkt mit dem Texturprozessor 96 verbunden. Die Texturprozessoren 86 und 98 implementieren jeweils die Gleichungen (10) bis (15).
  • Wie in Fig. 14 gezeigt, enthält ein Texturprozessor eine Aufsuchtabelle (LUT) 114, welche die Bildsignale T(x,y) des Rahmens t-4 empfängt und die Faktoren MTF(x,y) T²(i,j) des Rahmens für die Gleichungen (13), (14) und (15) erzeugt. Der Selektor 105 leitet jeden Faktor entweder zu dem RawHoriz Akkumulator 106, RawVert Akkumulator 107 oder RawDiag Akkumulator 108. Die erzeugten Rohtextur-Abschätzwerte werden im Kombinierer 109 entsprechend den Gleichungen (10), (11) und (12) addiert und ergeben die projektierten Richtungstextur- Abschätzwerte.
  • Fortsetzend mit Fig. 13, werden zwei Sätze von projektierten Richtungstextur-Abschätzwerte, die in den Prozessoren 96 und 98 erzeugt wurden, durch den Kombinierer 99 geschleust, welcher ein kombiniertes Textursignal entsprechend folgender Gleichung erzeugt:
  • kombinierte Textur = T&sub0; (Ausgangssignale von 96) + T&sub1; (Ausganssignale von 98) (16) ,
  • worin T&sub0; und T&sub1; feste Wichtungskonstanten sind; typisch 0.5.
  • Die kombinierten Texturabschätzwerte werden zu einer Abbildungs-LUT 100 übertragen, welche die Texturkorrektur- Faktoren erzeugt, entsprechend:
  • Texturkorrektur = 1 + K&sub1; log(1 + K&sub2; Kombinbinierte Textur) (17),
  • wobei K&sub1; eine Konstante von typisch zwischen 0.5 und 2 und K&sub2; eine Konstante von typisch zwischen 1/1000 und 1/10000 ist. LTU konvertiert Texturabschätzwerte im Bereich Richtungsleistung in Schwellenwertkorrekturen im Amplitudenbereich um.
  • Die Ausgangssignale von LUT 100 werden zu der Helligkeitskorrektur-Aufsuchtabelle 110 übertragen&sub1; welche auch auf die Helligkeitskorrektur-Signale des Blockes 97 anspricht. Diese Tabelle multipliziert die Textur- Schwellenwertkorrekturen im Amplitudenbereich mit dem geeigneten Helligkeits-Korrekturfaktor. Das Ausgangssignal der Aufsuchtabelle 110 wird schließlich zur Dasisschwellenwert- Aufsuchtabelle 111 übertragen, die das Bildsignal mit dem Ausgangssignal der Tabelle 110 moduliert und dadurch einen Wahrnehmungsschwellenwert für jedes Frequenzelement jedes Blockes des Eildsignals T(t-4) erzeugt. Die Basisschwellenwert-LUT nimmt den entsprechenden Richtungstextur/Helligkeitskorrekturfaktor und überträgt einen frequenzabhängigen Basisschwellenwert. Das heißt, sie erzeugt Signale PTij (t-4), welche die 64 Signale für jeden Rahmen sind, und zwar eines für jeden der Frequenzkoeffizienten, der von der DCT Schaltung 37 zu QVS 38 übertragen werden.
  • Wie oben festgestellt wurde, ist eines der Ziele des Wahrnehmungscodierers 49, sicherzustellen, daß die Rate der von QVS 38 (über BFF 56) zu den nachfolgenden Schaltungen gelieferten Bits im wesentlichen konstant ist. Dieses wird dadurch erreicht, daß sichergestellt wird, daß auf geeignete Weise der Füllungsgrad des Pufferspeichers in BFF 56 gesteuert wird.
  • Die Pufferspeicher-Steuerung innerhalb des Codierers der Fig. 2 basiert auf einer Modifizierung einer rahmenbreiten Zielverzerrung innerhalb QVS 38. Wenn sich der Pufferspeicher bis auf einen Punkt auffüllt, der höher liegt, als ein Bezugspegel, dann wird eine größere Zielverzerrung eingestellt, um dem Pufferspeicher zu erlauben, seinen Füllungsgrad zu verringern. Andererseits, wenn der Füllungsgrad des Pufferspeichers niedriger, als der Bezugspegel ist, wird dann eine niedrigere Zielverzerrung eingestellt.
  • Wenn ein bestimmter Füllungsgrad Bt des Pufferspeichers gegeben ist, dann kann der gewünschte Füllungsgrad für den Pufferspeicher für den nächsten Rahmen formuliert werden als:
  • Bp+1 = Bref + (Bp - Bref) x k&sub0; (18),
  • wobei Bref der gewünschte Pegel des Pufferspeicher- Füllungsgrades, Bp der Pufferspeicher-Füllungsgrad beim Rahmen p und k&sub0; ein Pufferspeicher-Steuerparameter ist, der konstant ist,
  • 0 > k&sub0; > 1. (19).
  • Aber Bp+1 = Bp + Rp+1 - ROH (20),
  • wobei Rp+1 die Anzahl von Bits ist, die mit dem Rahmen p+1 in den Pufferspeicher herein kommen und ROH die Anzahl von Bits (Kanalkapazität) ist, die den Pufferspeicher mit jedem Rahmen verlassen.
  • Wir haben experimentell festgestellt, daß eine gute Zielrate bei einer gewählten Verzerrungsstufe D,RT(D) berechnet werden kann (unter Verwendung des t-4 Rahmenbezugs in Fig.2) und wobei T für "Ziel" steht, gemäß Gleichung (21).
  • wobei die Standardabweichung im Prozessor 53 (Fig.1) und die Parameter a und b aus den zwei vorhergehenden Rahmen berechnet werden zu
  • und
  • Die Minimierungsoperation in Gleichung (22) ist nur eingefügt, um Instabilitäten für kleine Werte des Nenners zu vermeiden. Unter Verwendung der Gleichungen (21), (22) und (23) ist die Zielverzerrung
  • Wenn man die Rate RT in Gleichung (24) durch die Meßwerte des Pufferspeicher-Füllungsgrades ersetzt (mit Hilfe der Gleichung (15), ergibt sich
  • Die Berechnung der Gleichung (25) wird im Prozessor 91 durchgeführt. Sie benötigt die Konstante k&sub0;, die Konstante Bref, der -Wert des laufenden Rahmens ( t-4), den Wert des vorhergehenden Rahmens für D, und B, (D(t-5), (t-5) und B(t-5) und den davorliegenden Wert von B (d.i. B(t-6)). Die Sigma- Werte kommen vom Prozessor 53 (Fig.1), und die B-Werte kommen vom BFF Block 56. Natürlich werden die verschiedenen verzögerten Bilder von B und von entsprechenden Registern innerhalb des Prozessors 91 geliefert. Die exponential- und anderen Rechnungen, die für Gleichung (25) erforderlich sind, können entweder berechnet oder in Tabellen nachgeschlagen werden.
  • Der D-Wert, der vom Prozessor 91 erzeugt wurde, wird zum Multiplizierer 92 übertragen, um den Wahrnehmungsschwellenwert, der im Block 93 erzeugt wurde, zu verändern. Die geänderten Wahrnehmungsschwellenwert-Signale werden, wie oben beschrieben, zu den Selektoren 79 in Fig.10 übertragen.
  • Pufferspeicher-Füllungsgrad und Formatierer
  • Wie oben schon angedeutet, muß die Pufferspeicher- Füllungsgradschaltung 56 den Wahrnehmungscodierer 49 mit Information über den Pufferspeicher-Füllungsgrad beliefern. Natürlich beinhaltet dieses, daß der Block 56 einen Pufferspeicher enthält, der gefüllt ist. Dieses ist tatsächlich der Fall. Der BFF Block 56 akkumuliert die verschiedenen Datensegmente, die zu übertragen sind und leitet sie an die Modulationsschaltung, die Leistungsverstärkerschaltung und an die Sendeantenne weiter.
  • Zum Rekapitulieren, der Block 56 empfängt die folgenden Signale:
  • 1. Die codierten Bewegungsvektoren CODIERTE MV(t-4). Diese sind eine Sammlung von Huffman-codierten Paketen, von denen jedes Paket die Bewegungsvektoren einer Scheibe beschreibt, wie es im Zusammenhang mit den Fig. 5 und 6 im Detail beschrieben ist.
  • 2. Abschwächungsfaktor-Signale L(1-4).
  • 3. Maßstabsfaktoren
  • 4. Codierte Information vom Codierer 47, welche die Identität der Codebuchvektoren darstellt, die vom Codebuch 87 ausgewählt wurden und die quantisierten Superblockvektoren.
  • 5. Codierte Information vom Codierer 46 (sehr ähnliche Information vom Codierer 47).
  • Wie oben angedeutet wurde, wird die codierte Information des Codierers 47 als wichtiger angesehen, als die codierte Information des Codierers 46 und deswegen wird, nur nachdem die codierte Information des Codierers 46 akzeptiert wurde und Raum im Pufferspeicher-Block 56 übrig ist, die Information des Codierers 46 für eine Hereinnahme ins Auge gefaßt. Jedoch wird, sogar bezüglich der Information des Codierers 47, zuerst der Pufferspeicher des Blockes 56 mit der wichtigeren Information gefüllt. Ein Unterfüllungsgrad des Pufferspeichers in BFF56 wird durch Abgabe von Dummy-Daten an die folgenden Schaltungen gehandhabt, um im Kanal eine konstante Bitrate aufrecht zu erhalten. Dieses höchst unwahrscheinliche Ereignis wird leicht dadurch behandelt, daß einfach die Daten an der Pufferspeicher-Adresse 0 erneut übertragen werden.
  • Ein Pufferspeicher-Überlauf wird dadurch gehandhabt, daß einfach Daten, die nicht mehr in den Pufferspeicher hineinpassen, nicht übertragen werden, in welchem Falle es dann ratsam ist, die am wenigsten signifikanten Daten zuerst zu unterdrücken. Mit "unterdrücken" meinen wir, einige der Daten, die sich im Pufferspeicher befinden, nicht zu übertragen und den Pufferspeicher für die Daten des nächsten Rahmens zu leeren und den Pufferspeicher nicht mit neuen Daten zu laden, die von geringer Bedeutung sind. Natürlich ist die Messung des Füllungsgrades des Pufferspeichers mit den Wahrnehmungsschwellen im Wahrnehmungsblock 49 kombiniert, um eine globale Zielverzerrungsstufe zu bilden, die den Ausgangssignalen des Pufferspeichers des Blockes 56 erlauben, mit allen erzeugten Daten besiedelt zu werden; einschließlich der Daten von Codierer 46 Die primäre Konsequenz der Codierung im Codierer 46 ist es, eine kompliziertere Codierung bei den Daten vom Codierer 47 zuzulassen, die im Gegenzug die Empfangsfähigkeit solcher Signale verbessert.
  • Die Information, die von anderen Quellen, als dem Codierer 46 empfangen werden, müssen in einer Weise übertragen werden, die wahrscheinlich zu korrektem Empfang führt. Das bedeutet, daß der Formatierer-Abschnitt des Blocks 56 die Information in einer Weise codieren muß, die das sicherstellt. Dieses kann mit konventionellen Codierern erreicht werden, die mit Fehlerkorrektur-Codes arbeiten. Die Signale, die von anderen Codierern, als Codierer 46 erzeugt werden, werden mit leistungsfähigen Fehlerkorrektur-Codes codiert, während die Signale, die vom Codierer 46 empfangen werden, mit weniger leistungsfähigen (oder vielleicht ganz ohne) Fehlerkorrektur- Codes codiert werden.
  • In der Co-Anmeldung, Serial No. 07/611.225, ist ein System zu Codierung von Signalen angegeben, welches das Konzept der Code-Konstellation verwendet. Code- Konstellationen können mit einigen Codes in der Konstellation gebildet werden, die gegen alle andere Code eine große Hamming-Distanz haben, während andere Codes in der Konstellation gegen andere Codes eine kleiner Hamming-Distanz aufweisen. Die Prinzipien einer derartigen Codierung können in vorteilhafter Weise in den Formatierer-Abschnitt des Blockes 56 oder in Schaltungen jenseits des Blockes 56 eingebaut werden, um die Ziele einer geziemenden Verringerung zu erreichen.
  • Decodierer im HDTV-Empfänger
  • Fig.15 zeigt ein Blockschaltbild eines HDTV-Empfängers, der mit dem oben beschriebenen Codierer des HDTV-Senders konform ist. Er empfängt die Signale, z.B. von einer Antenne und decodiert sie im Block 211, um Signale zu erhalten, die in den BFF Block 56 im Sender geladen werden. Diese Signale sind die Codenbuchvektor-Identifizierer, die quantisierten Superblockvektor-Signale, die Abschwächungsfaktoren, die Maßstabsfaktoren, die Rahmenmittelwerte und die Bewegungsvektoren. Der Empfang dieser Signale, ihre Trennung von den kombinierten empfangenen Signalen, die Fehlercode- Überprüfungen und die Decodierung der variablen Längencodes werden alle im Block 211 vorgenommen.
  • Die Verarbeitung im Decodierer beginnt mit den Codenbuchvektor-Identifizierern, die an einen Codebuchvektor 201 angelegt werden und den quantisierten Vektorsignalen und den Maßstabsfaktoren, die an einen Quantisierungs-Decodierer 202 angelegt werden. Die Blöcke 201 und 202 entsprechen jeweils den Blöcken 102 und 103 der Fig.11, und sie bilden zusammen ein inverses Quantisierungselement, das dem Element 39 der Fig. 2 ähnlich ist. Wie bei Fig.2 werden die Ausgangssignale des inversen Quantisierungselementes an eine inverse DCT Transformationsschaltung angelegt (in Fig.15 ist dies die Schaltung 203); und diese Ausgangssignale werden im Addierer 204 mit schon im Decodierer gespeicherten Signalen kombiniert.
  • Da die quantisierten Vektorsignale eines Rahmens von Bildsignalen mit verzögerten Rahmenmittelwerten erzeugt werden&sub1; lassen die Ausgangssignale des Addierers 204 die Rahmenmittelwerte vermissen. Dieses wird im Addierer 205 geheilt, der die Rahmenmittelwerte hinzu addiert. Die Ausgangssignale des Addierers 205 bilden die Rahmen- Ausgangssignale des Decodierers des HDTV-Empfängers. Diese Ausgangssignale werden zu der Verstärker- und Bildwiedergabe- Schaltung 212 und zum Rahmen-Pufferspeicher 206 übertragen, wo der Informationswert eines Rahmens gespeichert ist. Für jeden Rahmen, der in dieser Pufferspeicher-Schaltung 206 gespeichert ist, gibt diese Pufferspeicher-Schaltung den vorhergehenden Rahmen aus. Das Signal des vorhergehenden Rahmens wird im Bewegungskompensations-Block 207 vermehrt, der als Antwort auf die angelegten Bewegungssignale einen Schätzwert des laufenden Rahmens bildet. Der Bewegungskompensations-Block 207 ist mit dem Bewegungskompensations-Block 43 in Fig.2 identisch. Der Rahmenmittelwert wird von den Ausgangssignalen des Bewegungskompensations-Blockes 207 subtrahiert, indem von diesem der Rahmenmittelwert des vorhergehenden Blockes im Subtrahierer 209 subtrahiert wird. Der Mittelwert des vorhergehenden Rahmens wird von Pufferspeicher 208 geholt, in den der Mittelwert des laufenden Rahmens eingefügt wird. Schließlich werden die Ausgangssignale des Subtrahierers 209 an den Multiplizierer 210 angelegt, der diese Signale mit dem Abschwächungsfaktor-Signal multipliziert. Die Ausgangssignale des Multiplizierers 210 sind die Signale, die, wie oben beschrieben, im Addierer 204 verwendet werden.

Claims (10)

1. Empfänger zur Erzeugung eines Bildrahmen-Ausgangssignals mit:
einem inversen Signalquantisierer (201, 202), der auf empfangene Codebuch-Vektoridentifiziersignale und quantisierte Vektorsignal anspricht,
einer Transformationseinrichtung (203), die auf den inversen Signalquantisierer anspricht,
einer ersten Einrichtung (204) zur Addition erzeugter Schätzwertsignale zu Ausgangssignalen der Transformationseinrichtung zwecks Erzeugung von Vorausgangssignalen,
einer zweiten Einrichtung (205) zur Addition eines empfangenen mittleren Rahmensignals zu dem Vorausgangssignal zwecks Erzeugung des Bildrahmen- Ausgangssignals,
einer Speichereinrichtung (206), die auf das Bildrahmen- Ausgangssignal anspricht,
einem Rahmenbewegungskompensator (207), der auf Ausgangssignale der Speichereinrichtung und auf empfangene Bewegungsvektorsignale zur Abänderung der Signale der Speichereinrichtung anspricht,
einer Subtrahiereinrichtung (208, 209), die unter Ansprechen auf das empfangene mittlere Rahmensignal ein weiteres mittleres Rahmensignal von Signalen der Speichereinrichtung subtrahiert, welche durch den Rahmenbewegungskompensator abgeändert worden sind, und einer Einrichtung (210) zur Multiplizierung des Ausgangssignals der Subtrahiereinrichtung mit einem Abschwächungsfaktorsignal zwecks Erzeugung der Schätzwert signale.
2. Empfänger nach Anspruch 1, bei dem der inverse Signalquantisierer ferner auf empfangene Skalliersignale anspricht.
3. Empfänger nach Anspruch 1 mit einer Einrichtung (211) zum Empfang und zur Decodierung von Eingangssignalen für die Erzeugung der Vektorcodebuch-Identifiziersignale, der quantifizierten Vektorsignale, des mittleren Rahmensignals, der Bewegungsvektorsignale und des Abschwächungsfaktorsignals, und eine auf das Rahmenausgangssignal ansprechende Verstärkungs- und Anzeigeeinrichtung (212).
4. Empfänger nach Anspruch 1, bei dem die Transformationseinrichtung eine Einrichtung zur inversen diskreten Kosinustransformation ist.
5. Empfänger nach Anspruch 1, bei dem die Substrahiereinrichtung einen Puffer (208) umfaßt, der unter Ansprechen auf die empfangenen mittleren Rahmensignale das weitere mittlere Rahmensignal erzeugt.
6. Empfänger nach Anspruch 1, bei dem der inverse Quantisierer aufweist:
ein auf die empfangenen Vektorcodebuch- Identifiziersignale ansprechendes Vektorcodebuch (201) und
einen Quantisierdecoder (202), der auf die empfangenen quantisierten Vektorsignale und Ausgangssignale des inversen Quantisierers anspricht.
7. Empfänger nach Anspruch 6, mit einer Einrichtung (211) zum Empfang und zum Decodieren von Eingangssignalen zur Erzeugung der Vektorcodebuch- Identifiziersignale, der quantisierten Vektorsignale, des mittleren Rahmensignals, der Bewegungsvektorsignale und des Abschwächungsfaktorsignals, und eine auf das Rahmenausgangssignal ansprechende Verstärkungs- und Anzeigeeinrichtung (212).
8. Empfänger nach Anspruch 1, bei dem die Speichereinrichtung umfaßt:
einen Speicher ("Speicher" in Fig. 17), eine Mittelwert-Bildungseinrichtung ("M.wert" in Fig. 17) zur Addition von Elementen des Bildrahmen- Ausgangssignals zu entsprechenden, im Speicher abgelegten Elementen und Division des Ergebnisses durch zwei zur Erzeugung von Mittelwert-Signalelementen, eine Vergleichseinrichtung (Subtrahierer und Verstärker in Fig. 17) zum Vergleichen der absoluten Differenz zwischen den Elementen des Bildrahmen-Ausgangssignals und den entsprechenden, im Speicher abgelegten Elementen mit einem Schwellenwert, und
eine Schalteinrichtung ("Sch" in Fig. 17), die unter Ansprechen auf die Vergleichseinrichtung die Mittelwert- Signalelemente wählt, wenn die absolute Differenz den Schwellenwert übersteigt, und die Elemente des Bildrahmen-Ausgangssignals wählt, wenn der Schwellenwert nicht überschritten wird, und die so ausgewählten Elemente an den Speicher gibt.
9. Empfänger nach Anspruch 8, bei dem der Schwellenwert ein Pseudozufallspegel ist.
10. Empfänger nach Anspruch 8, bei dem der Schwellenwert ein sich pseudozufallsartig ändernder Schwellenwert ist.
DE69124784T 1990-12-11 1991-11-29 HDTV-Empfänger Expired - Lifetime DE69124784T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/626,355 US5134477A (en) 1990-12-11 1990-12-11 Hdtv receiver

Publications (2)

Publication Number Publication Date
DE69124784D1 DE69124784D1 (de) 1997-04-03
DE69124784T2 true DE69124784T2 (de) 1997-06-12

Family

ID=24510055

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69124784T Expired - Lifetime DE69124784T2 (de) 1990-12-11 1991-11-29 HDTV-Empfänger

Country Status (6)

Country Link
US (1) US5134477A (de)
EP (1) EP0490537B1 (de)
JP (1) JP2633429B2 (de)
CA (1) CA2054593C (de)
DE (1) DE69124784T2 (de)
MX (1) MX9102425A (de)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2068751C (en) * 1991-05-24 1998-05-19 Tokumichi Murakami Image coding system
JP3002019B2 (ja) * 1991-07-04 2000-01-24 富士通株式会社 セル廃棄補償機能を有する画像符号化伝送方式
US5325126A (en) * 1992-04-01 1994-06-28 Intel Corporation Method and apparatus for real time compression and decompression of a digital motion video signal
US5367385A (en) * 1992-05-07 1994-11-22 Picturetel Corporation Method and apparatus for processing block coded image data to reduce boundary artifacts between adjacent image blocks
KR940003404A (ko) * 1992-07-23 1994-02-21 이헌조 프레임 간/프레임 내 움직임 보상 시스템
US5305102A (en) * 1992-07-27 1994-04-19 At&T Bell Laboratories HDTV receiver
US5331348A (en) * 1992-07-27 1994-07-19 At&T Bell Laboratories Adaptive leak HDTV encoder
US5367343A (en) * 1992-07-30 1994-11-22 Global Telecommunications Industries, Inc. Motion enhanced compressed video system
US5278647A (en) * 1992-08-05 1994-01-11 At&T Bell Laboratories Video decoder using adaptive macroblock leak signals
US5301019A (en) * 1992-09-17 1994-04-05 Zenith Electronics Corp. Data compression system having perceptually weighted motion vectors
KR950005621B1 (ko) * 1992-09-30 1995-05-27 주식회사금성사 영상 디코더
US5710603A (en) * 1992-10-07 1998-01-20 Daewoo Electronics Co., Ltd. Method for detecting motion vectors
US5365552A (en) * 1992-11-16 1994-11-15 Intel Corporation Buffer fullness indicator
EP0622959B1 (de) * 1992-11-17 1999-08-11 Fujitsu Limited Vorrichtung zur digitalen videoübertragung
JPH06343172A (ja) * 1993-06-01 1994-12-13 Matsushita Electric Ind Co Ltd 動きベクトル検出方法及び動きベクトル符号化方法
KR950002458A (ko) * 1993-06-02 1995-01-04 이헌조 영상신호의 압축/신장 장치
KR950012664B1 (ko) * 1993-08-18 1995-10-19 엘지전자주식회사 1050라인 비월주사식 모니터 디스플레이 영상포맷을 갖는 에치디티브이(hdtv)수신장치
KR960010487B1 (ko) * 1993-08-18 1996-08-01 엘지전자 주식회사 움직임 벡터를 이용한 순차주사식 영상포맷변환장치
EP0644698A3 (de) * 1993-09-14 1997-03-05 Gold Star Co B-Bild Verarbeitungsvorrichtung mit halbpixel Bewegungskompensation für einen Bildkodierer.
KR970003102B1 (ko) * 1993-09-17 1997-03-14 대우전자 주식회사 영상 복호기에서의 하프 픽셀 움직임 보상 회로
US5508949A (en) * 1993-12-29 1996-04-16 Hewlett-Packard Company Fast subband filtering in digital signal coding
US5835532A (en) * 1994-03-21 1998-11-10 Rca Thomson Licensing Corporation Blind equalizer for a vestigial sideband signal
US5457495A (en) * 1994-05-25 1995-10-10 At&T Ipm Corp. Adaptive video coder with dynamic bit allocation
US5734432A (en) * 1994-07-15 1998-03-31 Lucent Technologies, Inc. Method of incorporating a variable rate auxiliary data stream with a variable rate primary data stream
JP3655651B2 (ja) * 1994-09-02 2005-06-02 テキサス インスツルメンツ インコーポレイテツド データ処理装置
JPH0888848A (ja) * 1994-09-12 1996-04-02 Daewoo Electron Co Ltd 量子化パターンコードブック構成方法
US5734419A (en) * 1994-10-21 1998-03-31 Lucent Technologies Inc. Method of encoder control
CA2157066C (en) * 1994-10-21 1999-09-21 Nelson Botsford Iii Method for controlling a compressed data buffer
JP2605641B2 (ja) * 1994-11-14 1997-04-30 日本電気株式会社 可変ビットレート判別方法及び装置
TW293227B (de) * 1994-11-24 1996-12-11 Victor Company Of Japan
US5646687A (en) * 1994-12-29 1997-07-08 Lucent Technologies Inc. Temporally-pipelined predictive encoder/decoder circuit and method
US5623313A (en) * 1995-09-22 1997-04-22 Tektronix, Inc. Fractional pixel motion estimation of video signals
KR100213048B1 (ko) * 1995-09-29 1999-08-02 윤종용 아날로그와 디지탈 비디오 모드를 갖는 수신기와 그 수신방법
US5668599A (en) * 1996-03-19 1997-09-16 International Business Machines Corporation Memory management for an MPEG2 compliant decoder
US6175650B1 (en) 1998-01-26 2001-01-16 Xerox Corporation Adaptive quantization compatible with the JPEG baseline sequential mode
US6252994B1 (en) 1998-01-26 2001-06-26 Xerox Corporation Adaptive quantization compatible with the JPEG baseline sequential mode
JP3388459B2 (ja) * 1999-03-25 2003-03-24 日本電気株式会社 画像縮小/復元装置、画像縮小/復元方法および画像縮小/復元用プログラムを記録した記録媒体
KR100618972B1 (ko) * 1999-08-02 2006-09-01 삼성전자주식회사 가변장 코딩 방법 및 장치
US6793678B2 (en) 2002-06-27 2004-09-21 Depuy Acromed, Inc. Prosthetic intervertebral motion disc having dampening
AU2004212942A1 (en) 2003-02-14 2004-09-02 Depuy Spine, Inc. In-situ formed intervertebral fusion device
US20040267367A1 (en) 2003-06-30 2004-12-30 Depuy Acromed, Inc Intervertebral implant with conformable endplate
US8636802B2 (en) 2004-03-06 2014-01-28 DePuy Synthes Products, LLC Dynamized interspinal implant
WO2008070863A2 (en) 2006-12-07 2008-06-12 Interventional Spine, Inc. Intervertebral implant
US8900307B2 (en) 2007-06-26 2014-12-02 DePuy Synthes Products, LLC Highly lordosed fusion cage
US8551173B2 (en) 2008-01-17 2013-10-08 DePuy Synthes Products, LLC Expandable intervertebral implant and associated method of manufacturing the same
KR20110003475A (ko) 2008-04-05 2011-01-12 신세스 게엠바하 팽창성 추간 임플란트
US9526620B2 (en) 2009-03-30 2016-12-27 DePuy Synthes Products, Inc. Zero profile spinal fusion cage
US9393129B2 (en) 2009-12-10 2016-07-19 DePuy Synthes Products, Inc. Bellows-like expandable interbody fusion cage
US8979860B2 (en) 2010-06-24 2015-03-17 DePuy Synthes Products. LLC Enhanced cage insertion device
US9907560B2 (en) 2010-06-24 2018-03-06 DePuy Synthes Products, Inc. Flexible vertebral body shavers
JP5850930B2 (ja) 2010-06-29 2016-02-03 ジンテス ゲゼルシャフト ミット ベシュレンクテル ハフツング 離反椎間インプラント
US9402732B2 (en) 2010-10-11 2016-08-02 DePuy Synthes Products, Inc. Expandable interspinous process spacer implant
US9717601B2 (en) 2013-02-28 2017-08-01 DePuy Synthes Products, Inc. Expandable intervertebral implant, system, kit and method
US9522070B2 (en) 2013-03-07 2016-12-20 Interventional Spine, Inc. Intervertebral implant
US11426290B2 (en) 2015-03-06 2022-08-30 DePuy Synthes Products, Inc. Expandable intervertebral implant, system, kit and method
US11510788B2 (en) 2016-06-28 2022-11-29 Eit Emerging Implant Technologies Gmbh Expandable, angularly adjustable intervertebral cages
EP3474782A2 (de) 2016-06-28 2019-05-01 Eit Emerging Implant Technologies GmbH Expandierbare und winkeleinstellbare gelenkige bandscheiben-cages
US10531099B2 (en) * 2016-09-30 2020-01-07 The Mitre Corporation Systems and methods for distributed quantization of multimodal images
US10888433B2 (en) 2016-12-14 2021-01-12 DePuy Synthes Products, Inc. Intervertebral implant inserter and related methods
US10398563B2 (en) 2017-05-08 2019-09-03 Medos International Sarl Expandable cage
US11344424B2 (en) 2017-06-14 2022-05-31 Medos International Sarl Expandable intervertebral implant and related methods
US10940016B2 (en) 2017-07-05 2021-03-09 Medos International Sarl Expandable intervertebral fusion cage
US11446156B2 (en) 2018-10-25 2022-09-20 Medos International Sarl Expandable intervertebral implant, inserter instrument, and related methods
US11426286B2 (en) 2020-03-06 2022-08-30 Eit Emerging Implant Technologies Gmbh Expandable intervertebral implant
US11850160B2 (en) 2021-03-26 2023-12-26 Medos International Sarl Expandable lordotic intervertebral fusion cage
US11752009B2 (en) 2021-04-06 2023-09-12 Medos International Sarl Expandable intervertebral fusion cage

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4703350A (en) * 1985-06-03 1987-10-27 Picturetel Corporation Method and apparatus for efficiently communicating image sequences
US4794455A (en) * 1987-01-07 1988-12-27 Pictel Corporation Method and apparatus employing adaptive filtering for efficiently communicating image sequences
JPS63267080A (ja) * 1987-04-24 1988-11-04 Nippon Telegr & Teleph Corp <Ntt> 映像信号伝送方式
EP0624985B1 (de) * 1987-04-28 2001-03-14 Mitsubishi Denki Kabushiki Kaisha System zur Bildcodierung und -decodierung
DE3733038C2 (de) * 1987-09-30 1994-01-05 Siemens Ag Verfahren und Schaltungsanordnung zur Bilddatenreduktion für digitale Fernsehsignale
US5028995A (en) * 1987-10-28 1991-07-02 Hitachi, Ltd. Picture signal processor, picture signal coder and picture signal interpolator
US4897855A (en) * 1987-12-01 1990-01-30 General Electric Company DPCM system with adaptive quantizer having unchanging bin number ensemble
US5010401A (en) * 1988-08-11 1991-04-23 Mitsubishi Denki Kabushiki Kaisha Picture coding and decoding apparatus using vector quantization
US5063444A (en) * 1990-03-19 1991-11-05 At&T Bell Laboratories High definition television arrangement with signal selections adapted to the available transmission capacity
US5040062A (en) * 1990-03-19 1991-08-13 At&T Bell Laboratories Television signal arrangement where selected signals are encoded digitally
US5043808A (en) * 1990-03-19 1991-08-27 At&T Bell Laboratories High definition television arrangement employing motion compensated prediction error signals
US5038209A (en) * 1990-09-27 1991-08-06 At&T Bell Laboratories Adaptive buffer/quantizer control for transform video coders
FR2764890B1 (fr) * 1997-06-24 1999-08-27 Adir Nouveaux derives chromeniques, leur procede de preparation et les compositions pharmaceutiques qui les contiennent

Also Published As

Publication number Publication date
JPH04314289A (ja) 1992-11-05
EP0490537A2 (de) 1992-06-17
CA2054593A1 (en) 1992-06-12
JP2633429B2 (ja) 1997-07-23
MX9102425A (es) 1992-06-01
DE69124784D1 (de) 1997-04-03
CA2054593C (en) 1997-01-14
EP0490537B1 (de) 1997-02-26
EP0490537A3 (en) 1993-05-26
US5134477A (en) 1992-07-28

Similar Documents

Publication Publication Date Title
DE69124784T2 (de) HDTV-Empfänger
DE69125582T2 (de) HDTV-Kodierer mit adaptiver Dämpfung
DE3884802T3 (de) Verfahren und vorrichtung zur adaptiven blocktransformationscodierung von bildern.
EP0309669B1 (de) Verfahren zur szenenmodellgestützten Bilddatenreduktion für digitale Fernsehsignale
DE3855648T2 (de) Verfahren und vorrichtung für eine hierarchische kodierung zum wirksamen übertragen von bildfolgen
DE69032177T2 (de) Kodierungsgerät
DE3851468T2 (de) Kodierungsverfahren von Bildsignalen.
DE69215997T2 (de) Videosignalübertragungsgerät und Verfahren davon
DE3789273T2 (de) Kodierungssystem zur Reduktion der Redundanz.
EP0201679B1 (de) Verfahren zur Bilddatenreduktion für digitale Fernsehsignale
DE69015695T2 (de) Einrichtung zur Transformationskodierung.
DE19861377B4 (de) Ein verbessertes Kompressions- und Dekompressionssystem mit reversiblen Wavelets und verlustbehafteter Rekonstruktion
DE69734831T2 (de) Adaptive steuerung der datenrate für digitale videokompression
DE3852615T2 (de) Digitales system zum reduzieren und uebertragen von bilddaten, das visuell gewichtete transformationskoeffizienten verwendet.
DE69116869T2 (de) Digitale bildkodierung mit einer zufallsabtastung der bilder
DE69124536T2 (de) Bildkodiervorrichtung
DE69836696T2 (de) Verfahren und vorrichtung zur durchführung einer hierarchischen bewegungsschätzung unter verwendung einer nicht-linearen pyramide
DE69122595T2 (de) Aufzeichnungs- und Abspielgerät
DE3837590A1 (de) Verfahren zum reduzieren der datenrate von digitalen bilddaten
DE4442643B4 (de) Verfahren zum Abschätzen der Bewegung in einem Bewegtbild
DE60309039T2 (de) Verfahren und vorrichtung zur optimierung der bildschärfe während der kodierung
DE69730148T2 (de) Speichereffiziente komprimierung und quantisierung für bildsignale
DE69126525T2 (de) Digitale bildverarbeitung mit filterung der blockkanten
DE3486396T2 (de) Vektor-Quantisierer.
DE3626916A1 (de) Verfahren zur uebertragung eines videosignales

Legal Events

Date Code Title Description
8364 No opposition during term of opposition