-
Die
vorliegende Erfindung betrifft Videodecodierer und insbesondere
Videodecodierer zum Decodieren und Dekomprimieren komprimierter
codierter Videodatenströme,
zum Beispiel durch diskrete Cosinustransformation codierter Videodatenströme.
-
Der
MPEG-2-Standard (Moving Pictures Experts' Group, MPEG) ist ein Komprimierungs-/Dekomprimierungsstandard
für Videoanwendungen. Der
Standard beschreibt (1) einen codierten und komprimierten Datenstrom
mit deutlich verringerter Bandbreite und (2) die Dekomprimierung
dieses Datenstroms. Die Komprimierung ist eine subjektive verlustbehaftete
Komprimierung mit einer nachfolgenden verlustfreien Komprimierung.
Die codierten und komprimierten digitalen Videodaten werden anschließend in
einem mit dem MPEG-2-Standard
kompatiblen Decodierer, d.h. mit einem MPEG-2-kompatiblen Decodierer, dekomprimiert
und decodiert.
-
Der
MPEG-2-Standard wird unter anderem z.B. von C.A. Gonzales und E.
Viscito in „Motion
Video Adaptive Quantization In The Transform Domain", IEEE Trans Circiuts
Syst Video Technol, Bd. 1, Nr. 4, Dezember 1991, S. 374 bis 378,
von E. Viscito und C.A. Gonzales in „Encoding of Motion Video
Sequences for the MPEG Environment Using Arithmetic Coding", SPIE, Bd. 1360,
S. 1572 bis 1576, (1990), von D. LeGall in „MPEG: A Video Compression
Standard for Multimedia Applications", Communications of the ACM, Bd. 34,
Nr. 4, April 1991, S. 46 bis 58, von S. Purcell und D. Galbi in „C Cube
MPEG Video Processor",
SPIE, Bd. 1659, 1992, S. 24 bis 29, und von D.H. LeGall in „MPEG Video
Compression Algorithm",
Signal Process Image Commun, Bd. 4, Nr. 2, 1992, S. 129 bis 140,
beschrieben.
-
Der
MPEG-2-Standard definiert einen Datenstrom und einen Decodierer
für Komprimierungsverfahren
mit hohem Komprimierungsgrad, das eine Komprimierung eines Bilddatenstroms
erlaubt, die durch Intraframe-Codierung allein oder durch Interframe-Codierung
allein nicht erreichbar ist, während die
Vorteile des Direktzugriffs der reinen Intraframe-Codierung erhalten
bleiben. Die Kombination aus blockweiser Frequenzdomänen-Intraframe-Codierung
und interpolativer/prädiktiver
Interframe-Codierung des MPEG-2-Standards
führt zu
einer Ausgewogenheit zwischen der Intraframe-Codierung bzw. der
Interframe-Codierung jeweils für
sich allein genommen.
-
Der
MPEG-2-Standard für
die interpolative und prädiktive
Codierung mit Bewegungskompensation nutzt die zeitliche Redundanz.
Dabei wird davon ausgegangen, dass das jeweilige Bild „lokal" als Verschiebung
des Bildes zu einem vorangehenden und/oder späteren Zeitpunkt modelliert
werden kann. „Lokal" bedeutet, dass die
Amplitude und die Richtung der Verschiebung nirgendwo im Bild gleich
sind.
-
Der
MPEG-2-Standard beschreibt die prädiktive und interpolative Interframe-Codierung
und die Frequenzdomänen-Intraframe-Codierung.
Zur Verringerung der zeitlichen Redundanz bedient er sich der blockweisen
Bewegungskompensation und zur Verringerung der räumlichen Redundanz der blockweisen
Komprimierung mit diskreter Cosinustransformation. Nach dem MPEG-2-Standard
wird eine Bewegungskompensation durch prädiktive Codierung, interpolative
Codierung und durch mit Codes variabler Länge codierte Bewegungsvektoren
erreicht. Die bewegungsrelevanten Informationen gehen aus einer
Matrix von 16×16
Pixeln hervor und werden zusammen mit der räumlichen Information übertragen.
Die Bewegungsinformation wird durch Codes variabler Länge, zum
Beispiel Huffman-Codes, komprimiert.
-
Der
MPEG-2-Standard bietet durch die Verwendung verschiedener prädiktiver
und interpolativer Werkzeuge eine Verringerung der zeitlichen Redundanz.
Dies ist in 1 dargestellt. 1 zeigt
drei Arten von Rahmen oder Bildern, interne Bilder „I", vorhergesagte Bilder „P" und bidirektionale
interpolierte Bilder „B". Dabei ist zu beachten,
dass bei der Interframe-Codierung
wie bei der IP- und IPB-Codierung die Bildübertragung nicht in derselben
Reihenfolge erfolgt, wie das Bild angezeigt wird. Das wird speziell
in 1 dargestellt.
-
Die
Bewegungskompensation zielt auf die Redundanz zwischen Bildern ab.
Die Erzeugung von vorhergesagten Bildern „P" aus internen Bildern „I" und aus bidirektionalen
codierten Bildern „B" aus einem Paar eines
früheren
und eines zukünftigen
Bildes ist ein Hauptmerkmal des Verfahrens nach dem MPEG-2-Standard.
-
Die
internen Bilder „I" liefern einen mäßigen Komprimierungsgrad
und stellen Zugriffspunkte für den
Direktzugriff dar, z.B. bei Videobändern oder CD-ROMS. Aus praktischen
Gründen
wird etwa jede halbe Sekunde, also alle zehn bis zwanzig Bilder,
ein internes Bild „I" bereitgestellt.
Das interne Bild „I" erhält nur Informationen
von sich selbst. Es empfängt Informationen
weder von einem vorhergesagten Bild „P" noch von einem bidirektionalen interpolierten
Bild „B". Szenenwechsel erfolgen
vorzugsweise bei internen Bildern „I".
-
Vorhergesagte
Bilder „P" sind in Bezug auf ein
vorangehendes Bild codiert. Vorhergesagte Bilder „P" werden als Ausgangspunkt
für zukünftige Bilder,
sowohl für
Bilder „P" als auch für Bilder „B", verwendet.
-
Bidirektionale
Bilder „B" weisen den höchsten Komprimierungsgrad
auf. Zu deren Wiederherstellung sind sowohl ein vorangehendes als
auch ein zukünftiges
Bild erforderlich. Bidirektionale Bilder „B" werden niemals als Referenzbild verwendet.
-
Als
Bewegungskompensationseinheit nach dem MPEG-2-Standard dient die
Makroblockeinheit. Die Makroblöcke
nach dem MPEG-2-Standard
weisen eine Größe von 16×16 Pixeln
auf. Die Bewegungskompensation besteht aus einem Vektor für die vorwärts vorhergesagten
Makroblöcke,
einen Vektor für
die rückwärts vorhergesagten
Makroblöcke
und zwei Vektoren für
die bidirektional vorhergesagten Makroblöcke. Die jedem Makroblock zugeordnete Bewegungsinformation
wird anders als die im Referenz-Makroblock vorhandene Bewegungsinformation
codiert. Auf diese Weise wird ein Pixel-Makroblock durch Verschieben
eines Pixel-Makroblocks eines vorangehenden oder eines zukünftigen
Bildes vorhergesagt.
-
Die
Differenz zwischen den Quellenpixeln und den vorhergesagten Pixeln
wird Bestandteil des entsprechenden Bitstroms. Der Decodierer fügt zum Block
der vorhergesagten Pixel einen Korrekturausdruck hinzu und erzeugt
so den wiederhergestellten Block.
-
Gemäß der obigen
Beschreibung und der Darstellung in 1 kann jeder
Makroblock eines vorhergesagten Bildes „P" in Bezug auf nächstgelegene vorangehende interne
Bild „I" oder in Bezug auf das
nächstgelegene
vorangehende vorhergesagte Bild „P" codiert werden.
-
Gemäß der obigen
Beschreibung und der Darstellung in 1 kann jeder
Makroblock eines bidirektionalen Bildes „B" durch Vorwärtsvorhersage vom nächstgelegenen
vorangehenden Bild „I" oder „P" durch Rückwärtsvorhersage
vom nächstgelegenen
zukünftigen
Bild „I" oder „P" oder bidirektional
unter Verwendung sowohl des nächstgelegenen
vorangehenden Bildes „I" oder „P" als auch des nächstgelegenen
zukünftigen
Bildes „I" oder „P" codiert werden.
Eine komplett bidirektionale vorhersage liefert das geringste Rauschen.
-
Die
Bewegungsinformation wird zusammen mit jedem Makroblock gesendet,
um zu zeigen, welcher Teil des Referenzbildes zur Vorhersage verwendet
werden soll.
-
Wie
oben erwähnt,
werden die Bewegungsvektoren nur in Bezug ihre die Differenzen zu
den Bewegungsvektoren des vorangehenden angrenzenden Blocks codiert.
Zur Codierung der Bewegungsdifferenzvektoren wird die Codierung
mit variabler Länge
eingesetzt, sodass zur Codierung des Bewegungsvektors im Normalfall
nur wenige Bits benötigt werden,
weil der Bewegungsvektor eines Makroblocks etwa gleich dem Bewegungsvektor
eines vorangehenden Makroblocks ist.
-
Räumliche
Redundanz ist die Redundanz innerhalb eines Bildes. Da die Bewegungskompensation
gemäß der obigen
Beschreibung in Makroblöcken erfolgt,
war es wünschenswert,
beim MPEG-2-Standard
ein Verfahren zur blockweisen Verringerung der räumlichen Redundanz zu verwenden.
Dabei stellen die diskrete Cosinustransformation und die Codierung
des Bildes mittels der diskreten Cosinustransformation die geeignetste
Methode dar. Die Codierung mittels der diskreten Cosinustransformation wird
mit der gewichteten skalaren Quantisierung und der Lauflängencodierung
kombiniert, um einen noch höheren
Komprimierungsgrad zu erreichen.
-
Die
diskrete Cosinustransformation ist ein orthogonales Transformationsverfahren.
Da bei orthogonalen Transformationen eine Auswertung in der Frequenzdomäne erfolgt,
arbeiten sie mit Filtergruppen. Die diskrete Cosinustransformation
ist auch lokal ausgerichtet. Das heißt, der Codierungsprozess erfasst
ein räumliches
Fenster von 8×8
Pixeln, das zur Berechnung von 64 Transformationskoeffizienten oder
-teilbändern
ausreicht.
-
Ein
weiterer Vorteil der diskreten Cosinustransformation besteht darin,
dass es schnelle Codierungs- und Decodierungsalgorithmen gibt. Außerdem wird
die Zerlegung in Teilbänder
mittels der diskreten Cosinustransformation ausreichend gut beherrscht,
sodass psychische Wahrnehmungskriterien gut berücksichtigt werden können.
-
Nach
der diskreten Cosinustransformation sind viele Koeffizienten für die höheren Frequenzen gleich
null. Diese Koeffizienten sind zickzackförmig angeordnet (siehe 2)
und werden in Paare nach Lauflängenamplitude
(Lauflängenstufe)
umgewandelt. Jedes Paar zeigt die Anzahl der Koeffizienten gleich
null und die Amplitude des Koeffizienten ungleich null an. Hierbei
erfolgt die Codierung mit einem Code variabler Länge.
-
Die
Codierung mittels der diskreten Cosinustransformation erfolgt gemäß 2 in
drei Stufen. In der ersten Stufe werden die Koeffizienten der diskreten
Cosinustransformation berechnet. Im zweiten Schritt werden die Koeffizienten
quantisiert. Im dritten Schritt werden die quantisierten Transformationskoeffizienten
nach der Umordnung der Daten in eine zickzackförmige Abtastreihenfolge in
(Lauflängenamplituden)-Paare
umgewandelt.
-
Die
Quantisierung kann als Verschiebung um ein oder mehr Bits nach rechts
angesehen werden. Die Quantisierung ermöglicht sehr hohe Komprimierungsgrade
und eine hohe Ausgangsbitrate und sorgt dafür, dass eine hohe Bildqualität erhalten bleibt.
-
Die
Quantisierung kann adaptiv erfolgen, wobei interne Bilder „I" durch eine fein
abgestufte Quantisierung verhindern, dass das wiederhergestellte
Bild eine grobe Blockstruktur aufweist. Das ist insofern wichtig,
als interne Bilder „I" Energiewerte bei
allen Frequenzen beinhalten. Die Bilder „P" und „B" hingegen enthalten nur niederfrequente
Energiewerte und können
mit einer gröberen
Quantisierung codiert werden.
-
Eine
Herausforderung, der die Entwickler von Decodierern gegenüberstehen,
ist die Anpassung eines einzelnen Decodierersystems an eine Vielzahl
von Anzeigeformaten und gleichzeitig die Beachtung der vollen Kompatibilität mit den
Leuchtdichte-/Farbsättigungsbeziehungen
und dem MPEG-2-Standard.
-
MPEG-2-Videodecodier-/Anzeigefunktionen werden
zur Formatänderung
(Umwandlung des Seitenverhältnisses)
des decodierten Quellenvideostroms benötigt, um mit den Anforderungen
der Umgebung zurechtzukommen, in welche die Decodierer-/Anzeigefunktion
installiert wird.
-
Die
angezeigten Ausgabewerte des Decodierer-Chips muss mit der CCIR-Empfehlung 601 kompatibel
sein. Diese Empfehlung gibt die Anzahl der Leuchtdichte- und Farbsättigungspixel
in einer aktiven Zeile an und wie die Teilabtastung der Farbsättigungspixel
in Bezug auf die Leuchtdichtesignale zu erfolgen hat. Das mit 4:2:2
definierte Format wird in den meisten Fällen von der Industrie unterstützt. Diese
definiert 720 aktive Leuchtdichtesignale (Y) und 360 Farbdichtesignale
(Cb-, Cr-Paare), wobei jede Zeile von Leuchtdichtesignalen eine
entsprechende Zeile von Farbdichtesignalen aufweist. Die CCIR-Empfehlung 656 definiert
weiterhin die Anzahl der aktiven Zeilen für den NTSC- und den PAL-Standard
zu 480 bzw. 576.
-
Decodierte
Bilder können
unter Umständen die
Forderungen der CCIR-Empfehlung 601 nicht gänzlich erfüllen. Zum
Beispiel kann das Eingabevideo für 352 vertikale
Pixelspalten formatiert sein, die jedoch erweitert werden müssen, um
auf einer Videoanzeige (Katodenstrahlröhre, CRT) den vorhandenen Raum
von 704 vertikalen Spalten aufzufüllen. Infolge der Verdoppelung
der horizontal anzuzeigenden Pixel ist dies als 1:2-Erweiterung
(eins zu zwei) bekannt. Diese Verdoppelung kann mittels eines beliebigen
in der Technik bekannten Verfahrens erfolgen, z.B. durch Pixelwiederholung
(jedes Pixel wird in horizontaler Richtung einmal wiederholt) oder
Mittelwertbildung benachbarter Pixel zum Erzeugen eines neuen Pixels
zwischen beiden.
-
Gemäß der vorliegenden
Erfindung wird ein digitaler Videodecodierer mit einem Datenpuffer,
einem Decodierer variabler Länge,
einem Dequantisierer, einem Decodierer mit inverser diskreter Cosinustransformation,
einem Bewegungskompensator, einem horizontalen FIR-Mehrphasendigitalfilter
(Finite Impulse Response, endliche Impulsantwort) mit vier gefalteten
parallelen Multiplikatoreinheiten mit einem auf dem Multiplikator
aufgesetzten Addierer zur Verarbeitung der Bildschirmausgangswerte,
einem Videoausgang für
eine Anzeigeeinheit und einer Steuereinheit bereitgestellt.
-
Gemäß einem
anderen Aspekt stellt die vorliegende Erfindung ein Verfahren zum
Decodieren eines digitalen Videodatenstroms in einem Decodierer bereit,
wobei das Verfahren das Empfangen eines Datenstroms in einem Puffer
des Decodierers, die Decodierung des Datenstroms mit Codes variabler Länge, das
Dequantisieren des decodierten Datenstroms, die inverse diskrete
Cosinustransformation des dequantisierten Datenstroms, die Bewegungskompensation
des Datenstroms nach der inversen diskreten Cosinustransformation
und das Ausführen von
Faltungsmultiplikationen parallel in 4-Tupeln durch einen seriellen
Faltungsaddierer umfasst, bevor die Multiplikationen zum Erzeugen
einer Faltungssumme von Pixeln des bewegungskompensierten Datenstroms
ausgeführt
werden, um die Ausgangswerte für
die Videoanzeige zu erweitern.
-
Bei
einer bevorzugten Ausführungsart
der vorliegenden Erfindung wird ein System der Erfindung mit einem
digitalen Videosignaldecodierer bereitgestellt. Das System eignet
sich zum Empfangen codierter, komprimierter digitaler Videosignale von
einem Netzwerk oder einem Hostrechner und zum Übertragen der decodierten digitalen
Videosignale an eine Bildschirmeinheit. Die Elemente des Decodiersystems
beinhalten einen FIFO-Datenpuffer, einen Decodierer für einen
Code variabler Länge,
einen Dequantisierer, eine Invertereinheit für diskrete Cosinustransformation,
einen Bewegungskompensator, ein horizontales FIR-Mehrphasenfilter
zur Verarbeitung der Ausgangswerte für die Anzeigeeinheit, einen
Videoausgang zur Anzeigeeinheit und eine Steuereinheit.
-
Komplexere
Formatänderungsverfahren zum
Anpassen des Seitenverhältnisses
der Anzeigeausgangswerte an das Seitenverhältnis der Anzeigeeinheit beinhalten
die Verwendung einer FIR-Übertragungsfunktion
(Finite Impulse Response, endliche Impulsantwort), um eine Faltungssumme
zu erzeugen und somit nach der Analyse mehrerer Eingangspixel ein
neues Pixel zu interpolieren. Diesem Verfahren wird der Vorzug gegeben,
wenn eine größere Genauigkeit
in der entstehenden erweiterten Videoanzeige gefordert wird, was
eine Ausführungsart der
Erfindung darstellt.
-
Während ein
FIR-Filterverfahren für
die horizontale Erweiterung sorgt, kann die Anzeigefunktion zur
Umwandlung verschiedener Seitenverhältnisse erforderlich sein.
Die in der Industrie üblichen
Bildformate haben Seitenverhältnisse
von 1:2, 3:4, 2:3 und andere. Da die Videoanzeigefunktionen sehr
preisabhängig
sind, ist es wünschenswert,
die horizontale Erweiterungsfunktion so zu konzipieren, dass alle
erforderlichen Formatumwandlungen durch dieselbe digitale Schaltlogik
erledigt werden. Dieser Multiplexansatz der digitalen Schaltlogik
ist insofern von Vorteil, als die zur Realisierung der Anzeigefunktion
benötigte
Schaltkreisfläche verringert
wird, denn diese stellt insbesondere bei VLSI-Schaltkreisen einen wichtigen Faktor
bei der Ermittlung der Fertigungskosten für die Decodierer-/Anzeigefunktion
dar. In letzter Zeit ist es üblich
geworden, eine Anzeigefunktion mit mehreren verschiedenen Formatumwandlungen
auszustatten, sodass auf diese Funktion ausgerichtete Verfahren
von Nutzen sein können,
um die benötigte
Chipfläche
zu verringern.
-
Das
FIR-Verfahren wird durch eine Faltungssumme realisiert, wobei sich
jedes Ausgangspixel aus der Summierung einzelner Multiplikationsergebnisse
von Eingangsdaten (digitale Pixelwerte) und einem vorgegebenen Impulsantwortkoeffizienten
(entsprechend der konkret gewünschten
horizontalen Erweiterung) ergibt. Diese Koeffizienten werden in manchen
Fällen
symmetrisch festgelegt, damit die Anzahl der bei den einzelnen Ausführungsformen
nötigen
Multiplikationen verringert wird. Auch die übrigen parallel auszuführenden
Multiplikationen zum Erzeugen eines einzigen Faltungsergebnisses
werden so miteinander verknüpft,
dass möglichst
wenig Chipfläche
in Anspruch genommen wird. Ein Teil der vorliegenden Erfindung befasst
sich mit der Verknüpfung
der Multiplikationen.
-
Wenn
das Ursprungsbild decodiert wird, können Teile der Farbdichtewerte
unter Umständen
auf unterschiedliche Weise unterabgetastet werden, wobei ein Verfahren
eine einfache Dezimierung und ein anderes ein digitales Filter betrifft.
Das bedeutet, dass die abgetasteten Farbdichtewerte eine bestimmte
räumliche
Lage in Bezug auf die Leuchtdichtewerte einnehmen. Wenn dieses Bild
dann der Nachbearbeitung unterzogen wird, muss diese räumliche
Beziehung so genau wie möglich
eingehalten werden, weil es ansonsten zu Verzerrungen in Form einer
Farbverschiebung kommen kann. Das ist insbesondere bei der Funktion
MPEG-2-Pan/Scan (Schwenken/Suchlauf) wichtig, bei der die Genauigkeit
im Subpixelbereich eine große
Rolle spielt. Ein anderer Teil der Erfindung betrifft eine Anzeigefunktion,
mit deren Hilfe aus der horizontalen Anzeigeerweiterungsfunktion
heraus genauere Farbdichtewerte erzeugt werden können, ohne dass diese höhere Genauigkeit
durch Einschränkungen
des Chipaufbaus erkauft werden muss.
-
Bei
einer bevorzugten Ausführungsart
der vorliegenden Erfindung wird ein System bereitgestellt, das die
Geschwindigkeit des Decodierungsprozesses nicht nur beibehält, sondern
sogar erhöht.
-
Bei
einer besonders bevorzugten Ausführungsart
der vorliegenden Erfindung wird ein MPEG-2-kompatibler Decodierer
bereitgestellt, der für
viele Anzeigeformate, d.h. Seitenverhältnisse, verwendet werden kann
und gleichzeitig mit den Leuchtdichte-/Farbdichtestandards und dem MPEG-2-Standard
kompatibel ist.
-
Bei
einer besonders bevorzugten Ausführungsart
der vorliegenden Erfindung wird die Latenz des Filternetzwerks verringert,
um die Anzahl der zusätzlich
benötigten
Pipelineregister zu verringern und die Kompaktheit des Systems insgesamt
zu verbessern.
-
Beispiele
der vorliegenden Erfindung eignen sich insbesondere zur Umformatierung
von Ausgangsbildern mit verschiedenen Anzeigeformaten. Beispiele
der vorliegenden Erfindung eignen sich ebenso zur Decodierung von
Fernsehrundfunksignalen, Kabel-TV-Signalen, Satelliten-TV-Signalen
und Signalen von digitalen Netzen sowie für das hochauflösende Fernsehen,
das interaktive Fernsehen, Multimediasysteme, Video auf Anforderung,
Videokonferenzschaltungen und digitale Videoaufzeichnung. Die vorliegende
Erfindung kann in Form von eigenständigen Geräten, als Set-Top-Box oder als
digitale Unterhaltungselektronikeinheit oder Ähnliches, als Bauteil eines
Fernsehgerätes,
eines Personal Computers, eines Arbeitsplatzrechners oder eines
anderen Computers, als Einheit auf einer oder mehreren Leiterplatten
oder als Teil eines Videorekorders oder einer speziellen Telefonkonferenzeinheit
realisiert werden.
-
Im
Folgenden werden bevorzugte Ausführungsarten
der vorliegenden Erfindung unter Bezug auf die beiliegenden Figuren
beschrieben, wobei:
-
1 die
drei Arten von Bildern und ihre Beziehungen untereinander gemäß dem MPEG-2-Standard
zeigt, d.h. interne Bilder „I", vorhergesagte Bilder „P" und bidirektionale
vorhergesagte Bilder „B";
-
2 die
Reihenfolge der Komprimierungsschritte eines Rahmens oder eines
Bildes einschließlich
der Berechnung der Koeffizienten der diskreten Cosinustransformation,
der Komprimierung der Koeffizienten der diskreten Cosinustransformation
und der Zickzack-Anordnung der quantisierten Koeffizienten der diskreten
Cosinustransformation zeigt;
-
3 ein
Flussdiagramm ist, das die logische Schrittfolge des mit dem MPEG-2-Standard kompatiblen
Decodierers zeigt;
-
4 ein
Blockschaltbild der Funktionseinheiten eines mit dem MPEG-2-Standard
kompatiblen Decodierers ist, der zur Realisierung der vorliegenden
Erfindung dient;
-
5 ein
Blockschaltbild eines Decodierungs-Teilsystems eines mit dem MPEG-2-Standard kompatiblen
Decodierers ist, der zur Realisierung der vorliegenden Erfindung
dient;
-
6 ein
Blockschaltbild eines Decodierers ist, der zur Realisierung der
vorliegenden Erfindung in einer speziellen Umgebung bzw. in einer TV-Set-Top-Box
dient;
-
7 ein
Blockschaltbild eines Decodierers, ist, der zur Realisierung der
vorliegenden Erfindung in einer Umgebung eines Personal Computers
dient;
-
8 die
Lage der Leuchtdichte- und Farbdichtesignale in einem Format 4:2:0
zeigt;
-
9 die
Lage der Leuchtdichte- und Farbdichtesignale in einem Format 4:2:2
zeigt;
-
10 die
horizontale Lage der MPEG-2-Farbdichtesignale zeigt;
-
11 horizontale
Lage der MPEG-1-Farbdichtesignale zeigt;
-
12 die
Phasenbeziehungen zwischen den Leuchtdichte- und Farbdichtesignalen
für die
Erweiterung auf das Format 4:3 zeigt;
-
13 eine
allgemeine Einheit zur horizontalen Erweiterung zur Realisierung
der vorliegenden Erfindung zeigt;
-
14 eine
allgemeine Einheit zur horizontalen Erweiterung zur Realisierung
der vorliegenden Erfindung zeigt;
-
15 einen
allgemeinen Multiplizierer zeigt;
-
16 einen
Faltungsaddierer zeigt, der einen Multiplikanden-Port versorgt;
-
17 einen
Faltungsaddierer zeigt, der einen Multiplikator-Anschluss (multiplier port) versorgt;
-
18 einen
Faltungsaddierer zeigt, der einen Multiplikator-Anschluss mit allen in einem Netz aufsummierten
Zwischenprodukten versorgt.
-
Das
System, das Verfahren und die Vorrichtung, die der Realisierung
der vorliegenden Erfindung dienen, empfangen codierte, komprimierte
digitale Videodaten vom Schnittstellenbus eines Hostrechners, dekomprimieren
und decodieren die digitalen Videodaten und liefern über eine
Bildschirmschnittstelle, die im Folgenden als Pixelbus und als Formatumwandlungsmittel
bezeichnet wird, als FIR-Mehrphasenfilter
dekomprimierte und decodierte digitale Videodaten an einen Bildschirmausgang.
Die Umwandlung von digitalen in analoge Daten erfolgt außerhalb
des Systems, obwohl bei einer Ausführungsart nach dem Pixelbus
ein Digitalpnalog-Umsetzer (Digital to Analog Converter, DAC) eingeschaltet
sein kann.
-
Bei
einer bevorzugten Ausführungsart
der Erfindung ist das Decodierungssystem vollständig mit dem Hauptprofil des
MPEG-2-Standards
auf der in der MPEG-Dokumentation definierten Hauptstufe kompatibel.
Somit kann das System komprimierte Videodaten mit einer Übertragungsrate
von 15 MBit/s empfangen und das System mit einer Taktfrequenz von
40 MHz arbeiten. Beim MPEG-2-Standard heißt das Datenformat für komprimierte
und codierte Daten YCbCr (4:2:0).
-
3 zeigt
in verallgemeinerter Form den internen Datenfluss des Systems zur
Unterstützung des
MPEG-2-Standards. Insbesondere führen
die ankommenden komprimierten und codierten Daten 31 zu
einem Demultiplexer 41, wo sie in zwei Datenströme 51 und 61 gedemultiplext
werden. Der Datenstrom 61 geht zum Decodieren weiter zum
Huffman-Decodierer 71b mit dem Code variabler Länge (Variable
Length Code, VLC) und weiter zu einem inversen Quantifizierer 81 und
wird dort dequantifiziert. Der dequantifizierte Code geht dann weiter
zu einem Prozess 91 zur inversen diskreten Cosinustransformation
(Inverse Discrete Cosine Transform, IDCT), wo der dequantifizierte
Code in eine Pixelanordnung umgewandelt wird.
-
Der
zweite Datenstrom durchläuft
ebenfalls einen Huffman-Decodierer 71a mit
dem Code variabler Länge,
wo er decodiert wird und die entstehenden Bewegungsvektoren 101 zu
einem Bewegungskompensator 131 weiterlaufen. Die Huffman-Decodierer 71a und 71b sind
zwar als logisch getrennte und verschiedene Einheiten dargestellt,
können
jedoch strukturell und elektronisch dasselbe Bauelement darstellen.
-
Der
Bewegungskompensator 131 empfängt auch einen vom ersten Datenstrom 61 und
vom bewegungskompensierten Datenstrom abgeleiteten Datenstrom, der
im Summierer 141 durch Summierung erzeugt wurde. Die Ausgangsdaten
des Summierers 141 führen
zum (nicht gezeigten) Pixelbus und zum Speicher, d.h. zum Speicher
für zukünftige Rahmen 111 und
zum Speicher für
vorangehende Rahmen 121. Der Inhalt des Speichers für zukünftige Rahmen 111 und
des Speichers für
vorangehende Rahmen 121 wird zum Bewegungskompensator 131 geleitet.
-
4 zeigt
das Blockschaltbild des Decodiersystems 201 der Erfindung.
Das E/A-System beinhaltet drei von der Hostrechnerschnittstelle 202 kommende
Busse und zwei zur Bildschirmschnittstelle 208 führende Busse.
Die Busse von der Hostrechnerschnittstelle 202 beinhalten
den Datenbus 203, den Adressbus 2O5 und den Steuerbus 207.
Der Datenbus 203 kann ein 16 Bit oder ein 32 Bit breiter
Bus sein oder eine beliebige andere Breite haben, jedoch kann der
Bus auch ein serieller, ein bidirektionaler oder unidirektionaler
Bus sein. Der Adressbus 205 kann ein 6 Bit breiter Bus
sein, obwohl auch andere Busbreiten denkbar sind, ohne vom Geltungsbereich der
Erfindung abzuweichen. Der Steuerbus 207 ist ein 7 Bit
breiter Bus, jedoch sind auch andere Busbreiten denkbar, ohne vom
Geltungsbereich der Erfindung abzuweichen.
-
Bei
den Schnittstellenbussen 208 für den Bildschirm handelt es
sich um den Datenbus 209 und den Steuerbus 211.
Der Datenbus 209 dient zur Übertragung der Pixeldaten.
Der Steuerbus 211 dient zur Synchronisierung und Steuerung.
-
Das
System beinhaltet eine Hostrechner-Bussteuerung 231, einen
FIFO-Puffer 241, ein Decodierer-Teilsystem 301,
eine Steuereinheit 401, einen Befehlsspeicher 402,
eine Bussteuerung für den
Bildschirm 501 und eine Speicherverwaltung 600.
-
Der
Speicher ist ein externer Speicher 601 und beinhaltet einen
Puffer für
komprimierte Daten 611 zum Empfangen der Daten von der
Hostschnittstelle 202 über
den FIFO-Puffer 241 sowie Rahmenpuffer 621, 623 und 625 zum
Empfangen und Speichern der decodierten Rahmen, einschließlich der zukünftigen
und vorangehenden Rahmen.
-
Die
Schnittstelle zwischen der Speicherverwaltung 600 und dem
Speicher 601 beinhaltet einen Adressbus 221, einen
bidirektionalen Datenbus 223 und einen Steuerbus 225.
-
Die
in 5 detailliert dargestellte Decodiereinheit 301 besteht
aus Funktionseinheiten, die durch die Steuereinheit 401 und
den zugehörigen
Befehlsspeicher 402 gesteuert werden. Diese für die Decodierung
vorgesehenen Funktionseinheiten beinhalten den Huffman-Decodierer 311 mit
dem Code variabler Länge,
den inversen Quantisierer oder Dequantisierer 321, die
inverse diskrete Cosinustransformationseinheit 331 und
die Bewegungskompensationseinheit 341.
-
Die
Steuereinheit 401 stellt bezüglich der Steuerung des Decodierers
die zentrale Schaltstelle dar. Der Mikrocode der Steuereinheit 401 ist
in einem Befehlsspeicher 402 gespeichert. Die Steuereinheit wirkt
mittels eines externen Prozessors über den Hostrechner- oder Systembus
für höhere Programmbefehle
und Status mit dem Hostrechnersystem zusammen. Die Steuereinheit 401 ist
für die
Steuerung und Lenkung der anderen Funktionselemente sowie zur globalen
Synchronisierung dieser Einheiten zuständig.
-
Die
Steuereinheit 401 ist mit dem Huffman-Decodierer 311 mit
dem Code variabler Länge verbunden.
Dadurch kann der codierte Datenstrom analysiert werden. Die Analyse
der codierten Datenströme
und die Verarbeitung der Kopfdaten erfolgt durch die Steuereinheit 401 in
Zusammenarbeit mit dem VLC-Huffman-Decodierer 311.
-
Der
VLC-Huffman-Decodierer 311 enthält Tabellen zum Decodieren
des Datenstroms und eine lokale Zustandsmaschine zur Steuerung der
Decodierung der Lauflängen-/Stufendaten
für Makroblöcke. Der
VLC 311 wird durch die Steuereinheit 401 gesteuert,
wenn vom komprimierten Bitstrom Kopfdaten und Blocklauflängen-/Stufensymbole
weitergeleitet werden. Eine lokale Ablaufsteuerung decodiert die
Lauflängen-/Stufensymbole
und wirkt bei der Verarbeitung der decodierten Signale mit dem inversen Quantifizierer 321 zusammen.
-
Hierzu
ist anzumerken, dass die Codierung variabler Länge, z.B. die Huffman-Codierung,
ein statistisches Codierungsverfahren ist, bei dem Symbolen Codewörter zugeordnet
werden. Kurzen Codewörtern
werden Symbole mit hoher Eintrittswahrscheinlichkeit und längeren Codewörtern Symbole mit
geringer Eintrittswahrscheinlichkeit zugeordnet.
-
Die
im MPEG-2-VLC-Decodierer verwendeten Codes stammen aus dem MPEG-2-Standard.
Die Codes bilden eine unter der Bezeichnung Präfix-Codes bekannte Codeklasse.
Bei einem Präfix-Codesystem
stellt kein gültiger
Code den Präfix
eines anderen Codes dar. Die Anzahl der jedem Codewort zugeordneten
Bits ist variabel und kann von mindestens 1 bis höchstens
16 reichen. Die zur Darstellung einer Folge von Symbolen verwendeten
codierten Bits sind eine Bitfolge variabler Länge. Diese Bitfolge muss nacheinander
decodiert werden, um die ursprüngliche
Symbolfolge wiederherzustellen. Die Huffman-Codierung erzeugt wie
oben erwähnt
Codetabellen anhand der Eintrittswahrscheinlichkeiten der Symbole.
Die erzeugten Codes sind Codes mit einer Mindestredundanz. Die vom
MPEG-2-Standard verwendete Huffman-Codierung geht von einem statischen
Codierungsalgorithmus aus. Die bei der Huffman-Codierung verwendete
Codierungsprozedur verläuft
verlustfrei, da die Folge der codierten Symbole durch den Decodierungsprozess
wiederhergestellt wird.
-
Der
inverse Quantifizierer 321 empfängt von der VLC-Einheit 311 die
codierten Lauflängen-/Stufensymbole
(Lauflänge/Amplitude)
und gibt einen Block von 64 Koeffizienten aus, die zur inversen
diskreten Cosinustransformation 331 gesendet werden. Der
inverse Quantifizierer 321 wandelt die lauflängen-/-stufencodierten
Symbole in Nullen und Symbole um, hebt die Zickzack-Anordnung der
Daten auf, wendet die differenzielle Impulscodemodulation (Differential
Pulse Code Modulation, DPCM) zur Decodierung der Koeffizienten der
diskreten Cosinustransformation an und dequantifiziert die Daten.
-
2 zeigt
die zickzackförmige
Abtastreihenfolge der Koeffizienten der diskreten Cosinustransformation.
Der Koeffizient in der linken oberen Ecke ist der DC-Koeffizient.
-
Alle
anderen Koeffizienten werden als AC-Terme angesehen. Die Zahlen
zeigen die Reihenfolge an, in der die Koeffizienten zur Lauflängen- und
Stufencodierung gelesen werden.
-
Nach
der Lauflängencodierung
wird der Prozess fortgesetzt, indem die Zickzackordnung der Daten
aufgehoben wird. Das bedeutet, dass die „Stufen"daten in einem Block oder einer Matrix
von 8 mal 8 Pixeln an ihre richtigen Stellen gebracht werden. Die „Lauflänge" bezeichnet die Länge der übersprungenen
Stellen, d.h. Nullen. Die Pegel müssen ebenfalls durch Quantisierung
weiter verarbeitet werden.
-
Bei
der Quantisierung, d.h. bei der Codierung, wird die Stufe durch
eine als „Quantisierungsfaktor" bezeichnete Zahl
dividiert und wird zum quantisierten Koeffizienten. Durch die Quantisierung
und Dequantisierung kommt es bei den decodierten Daten in gewissem
Umfang zu Datenverlusten. Beim Decodierungsprozess werden der nicht
mehr zickzackförmig
angeordnete quantisierte Koeffizient („Stufe") mit dem Quantisierungsfaktor multipliziert, um
einen dequantisierten Koeffizienten zu erzeugen. Der Quantisierungsfaktor
wird durch den Decodierer zum Decodieren des Datenstroms verwendet
und ist Bestandteil des am Decodierer ankommenden Datenstroms. Dieser
Koeffizient ist ein Wert in der Frequenzdomäne und wird wieder zur inversen
diskreten Cosinustransformationseinheit 331 zurückgeführt, um
wieder in ein Signal in der Zeitdomäne zurück transformiert zu werden.
-
Die
Intraframeblöcke,
die auch als Bilder „I" oder Rahmen „I" bekannt sind, enthalten
DC-Koeffizienten, die nach dem Differenzimpulscode-Modulationsverfahren
codiert sind. Darunter ist zu verstehen, dass der DC-Wert des vorangehenden
Wertes den DC-Wert des aktuellen Blocks von 8 mal 8 Pixeln vorhersagt.
Die quantisierte Differenz wird dann codiert. Die Codierung des
DC-Koeffizienten nach dem Differenzimpulscode-Modulationsverfahren kann auf alle drei
Komponenten angewendet werden, d.h. auf die Komponente Y, die Komponente
Cb und die Komponente Cr. Nach der Codierung nach dem Differenzimpulscode-Modulationsverfahren
durchlaufen die DC-Koeffizienten
des Blocks mit den 8 mal 8 Pixeln den Prozess der inversen Quantisierung
und werden dann zur Einheit 331 zur inversen diskreten
Cosinustransformation gesendet.
-
Nach
der Dequantisierung eines Signalblocks in der Dequantisiereinheit 321 führt die
Einheit 331 zur inversen diskreten Cosinustransformation eine
zweidimensionale inverse diskrete Cosinustransformation mit dem
Block von 8 mal 8 Pixeln durch und erzeugt so einen wiederhergestellten
Bildblock. Bei Bedarf wird der wiederhergestellte Bildblock zu dem
von der Bewegungskompensationseinheit 341 kommenden vorhergesagten
Block hinzugefügt.
Die Einheit 331 zur inversen diskreten Cosinustransformation
und die Bewegungskompensationseinheit 341 synchronisieren
durch diesen Summierungsschritt ihre Ausgabeergebnisse. Die Summierungsergebnisse
werden zum Speicher 601 gesendet, um an den Bildschirm
ausgegeben zu werden und um als Referenzbild zu dienen.
-
Die
Bewegungskompensationseinheit 341 empfängt von der Steuereinheit 401 Befehle
und eine Adresse und führt
die erforderlichen Interpolationen durch, um vorhergesagte Bildblöcke zu erzeugen. Der
nach der Vorhersage ausgegebene Block wird mit dem Ausgabewert der
inversen diskreten Cosinustransformation synchronisiert und durch
den Summierungsschritt zum Ausgabewert des durch die inverse diskrete
Cosinustransformation wiederhergestellten Blocks addiert.
-
Die
Bewegungskompensation nutzt die zeitliche Redundanz in Videobildern
dahingehend, dass sie die Differenz zwischen einem aktuellen Block
und einem Block in einem vorangehenden Bild oder in einem zukünftigen
Bild codiert. Unter dem Begriff Bewegung ist zu verstehen, dass
sich die Bildelemente im aktuellen Bild an einem anderen Ort befinden
als im Referenzbild. Diese Verschiebung wird durch Bewegungsvektoren
wiedergegeben. Diese Bewegungsvektoren und die codierten Differenzen
zwischen dem aktuellen und dem zukünftigen Bild erzeugen das bewegungskompensierte
Bild.
-
Die
Bewegungskompensation beinhaltet die Vorhersage ausgehend von vorangehenden
oder von zukünftigen
oder von beiden Bildern unter Verwendung von Bewegungsbildelementen
mit ganzer oder halber Bildelementgenauigkeit. Die Bewegungskompensation
wird bei Videodatenströmen
sowohl mit als auch ohne Halbbildarstellung durchgeführt.
-
In
einer Umgebung einer speziellen digitalen Unterhaltungselektronikeinheit
in 6 ist ein Decodierersystem zur Realisierung der
vorliegenden Erfindung dargestellt. Das System empfängt Eingangsdaten
vom Kabel oder einem vorgeschalteten Rundfunkmittel 651.
Diese Eingangsdaten werden im Demultiplexer 661 in Video-,
Audio- und ASCII-Abschnitte
gedemultiplext. Das System beinhaltet den Videodecodierer 11 gemäß der Erfindung,
einen Audio-Decodierer 21, einen ASCII-Generator 31 und
einen Infrarotempfänger 41.
Der ASCII-Generator 31, der Audio-Decodierer 41 und
der Video-Decodierer 11 stellen
mittels des NTSC-Generators (National Television Standard Committee,
Nationales Komitee für Fernsehstandards) 51 Ausgangssignale
bereit.
-
Umgebung eines
Personal Computers
-
In
einem Personal Computer, einem Arbeitsplatzrechner oder einer Rechnerumgebung
kommen die komprimierten Videoeingangsdaten entweder von einer Speichereinheit
oder einem Netzwerkadapter zur Datenübertragung. Die Videodaten
werden üblicherweise
paketweise über
einen E/A-Systembus übertragen.
Das bedeutet, dass das System der Erfindung eine begrenzte Zeit
lang in der Lage sein muss, blockweisen Datenverkehr mit hohen Übertragungsraten
zu bewältigen
und dann anderen Einheiten die Benutzung des E/A-Systembusses zu
gestatten, während
die codierten Daten verarbeitet werden. Dies wird durch die Verwendung
des internen FIFO-Puffers 241 ermöglicht, der groß genug
sein muss, um solche Blockübertragungen
zu bewältigen. In
einer Rechnerumgebung wird der dekomprimierte videodatenstrom auf
der Bildschirmschnittstelle (Pixelbus) bereitgestellt, der direkt
an eine Videosteuereinheit angeschlossen werden kann.
-
Alternativ
kann der Videodatenstrom auf einem Systembus mit hoher Bandbreite
an einen Bildpuffer eines Grafikprozessors gesendet werden.
-
7 zeigt
eine typische PC-Systemumgebung. Die Figur zeigt den Systembus 701 mit
diversen Systembus-Teilsytemen, z.B. einem Netzwerkadapter 703,
einem SCSI-Adapter 705, einem Systemspeicher 707 und
einem Hostprozessor 709. Das System gemäß der Erfindung ist über eine
Grafikadapterkarte 711 mit dem Systembus 701 verbunden und
beinhaltet einen digitalen Signalprozessor 713, den Decodierer 201 gemäß der Erfindung,
einen DRAM 601 und einen SRAM 602. Die Grafikadapterkarte 711 stellt
eine Schnittstelle zu einer optionale Bildschirm- Tochterkarte 715, einem Grafikbildschirm 717 oder
zu beiden bereit.
-
E/A-Prozessor
-
Das
System verfügt über drei
externe Schnittstellen, eine Hostschnittstelle 202, eine
Bildschirmschnittstelle 208 und eine Speicherschnittstelle 221, 223 und 225.
-
Die
Hostschnittstelle 202 ist die vorrangige Schnittstelle
für Steuerungsaufgaben
und komprimierte Daten. Diese Schnittstelle 202 ist eine
16 Bit breite Slave-Schnittstelle und gewährleistet den Zugriff des Hostprozessors,
d.h. des Datenübertragungsnetzes,
auf die internen Register, den lokalen Speicher und die Funktionseinheiten
des Systems. Die Hostschnittstelle 202 ist die Schnittstelle
des Systems für
Befehle, Status und codierte Daten. Befehle in höheren Programmiersprachen und
Status werden zwischen dem Decodierersystem der Erfindung und dem
Hostsystem über
diese Hostschnittstelle 202 abgewickelt.
-
FIR-MEHRPHASENERWEITERUNG
DES SEITENVERHÄLTNISSES
-
Die
horizontale Erweiterung zur Anpassung an verschiedene Bildschirmformate
beginnt mit der Verarbeitung der Farbsättigungs-Differenzsignale. Die
Farbsättigungs-Differenzsignale
werden normalerweise vor der MPEG-2-Codierung aus dem Ursprungsbild
gewonnen. Das Abtastformat der Farbdichtewerte ist wie folgt definiert:
4:2:0
Farbsättigungs-Differenzsignale
werden sowohl in vertikaler als auch in horizontaler Richtung mit
der halben Auflösung
der Leuchtdichte unterabgetastet (8);
4:2:2
Farbsättigungs-Differenzsignale
werden nur in horizontaler Richtung mit der halben Auflösung der Leuchtdichte
unterabgetastet (9);
4:4:4: die Anzahl der
Leuchtdichtewerte und der Farbdichte-Differenzwerte ist gleich.
-
Auf
der Hauptstufe und beim Hauptprofil von MPEG-2 bestehen die komprimierten
Daten aus einer Farbdichte 4:2:0. Die meisten MPEG-2-Decodierer
geben die dekomprimierten Videodaten im Format 4:2:2 aus. Dies ist
in 8 und 9 dargestellt. Die in 10 dargestellte
horizontale Anordnung der Farbdichtewerte ist auf die Anordnung
der Leuchtdichtewerte für
MPEG-2 ausgerichtet. Eine ausgerichtete Anordnung wird dadurch erzeugt,
dass zuerst genauso viele Farbdichtepixel wie Leuchtdichtepixel
angenommen werden und dann jedes zweite Pixel gestrichen wird.
-
Bei
MPEG-1 sind die Farbdichtewerte mittig zwischen den benachbarten
Leuchtdichtewerten gemäß 11 angeordnet,
welche die horizontale Stellung der MPEG-1-Farbdichtesignale zeigt.
-
Der
Prozess der Neuformatierung erfolgt mit Hilfe eines digitalen FIR-Filters.
Der Prozess behandelt das Leuchtdichtesignal (Y) und jedes Farbdifferenzsignal
(U, V) unabhängig
voneinander und wendet auf jeden Satz von Abtastwerten dieselbe
Faltungssumme an, um eine neue Zeile von digitalen Daten zu erzeugen.
-
Das
digitale Filter verwendet verschiedene unterschiedliche Phasen,
um noch genauer zu steuern, wie die Farbdichtewerte während der
Erweiterung räumlich
in Bezug auf die Leuchtdichtewerte angeordnet werden. Diese Vorgehensweise
wird bei den meisten Mehrphasenfiltern zur Bilderweiterung (Änderung
des Seitenverhältnisses)
angewendet. Das Mehrphasenfilter verwendet ankommende MPEG-2-Farbdichtewerte,
die räumlich
wird in 10 angeordnet werden, und liefert
die Farbdichtewerte für
das erweiterte Format 4:2:2, dessen räumliche Anordnung in 11 genauer
dargestellt ist.
-
Das
MPEG-2-Merkmal Schwenken und Suchlauf erfordert, dass das Ursprungsbild
um Teile von Bildelementen verschoben wird. Obwohl die MPEG-2-Syntax
eine Genauigkeit von 1/16 Bildelement zulässt, reicht in der Praxis 1/4
Bildelement aus, um bei jeder Schwenkgeschwindigkeit eine gleitende Schwenkbewegung
darzustellen. Das Merkmal Schwenken und Suchlauf verwendet ein Erweitungsfilter
im Format 3:4.
-
12 zeigt
die Phasenbeziehungen zwischen der Leuchtdichte und der Farbdichte
für verschiedene
Positionen zwischen den Bildelementen im Erweiterungsfilter im Format
3:4. Die geteilten Bildelementpositionen sind links durch Dezimalbrüche dargestellt
und beginnen für
das erste nicht ganze Bildelement in der Mitte des ersten ganzen
Leuchtdichtewertes y(0) mit dem Wert 0,00, werden für jede weitere
Position um 0,25 erhöht
und enden mit dem Wert 1,75. Die Reihe endet nach der Formel modulo acht,
wenn das Startpixel zum nächsten
ganzen Farbdichtewert y(2) wechselt. Diese Verfahrensweise lässt sich
auf andere Genauigkeitsstufen ausdehnen, zum Beispiel für eine Genauigkeit
von 1/3 Bildelement oder mehr, wobei in 12 eine
Genauigkeit von 1/4 Bildelement dargestellt ist.
-
Die
Ausführungsart
dieses Erweiterungsfilters mit dem Format 3:4 benutzt vier Phasen,
um die Positionierung der Farbdichtewerte in Bezug auf die Leuchtdichtewerte
vor der Erweiterung noch genauer zu steuern. Somit ist das Filter
durch eine richtige Initialisierung dieser Phasensteuerung in der
Lage, sowohl die erweiterten Leuchtdichtewerte als auch die Farbdichtewerte
bis hinunter zur Auflösung
von 0,25 Bildelementen genau zu positionieren.
-
Ausgehend
von 12 als Referenzzustand könnte ein Beispiel in der Beschränkung des
Filters auf die Initialisierung mit einer Pixelabweichung von 0,00
(ganzes Bildelement, vollständiges
Bildelement) für
alle Fälle
bestehen. Der genaueste Wert der Chrominanzphase wäre dann
gleich 3.
-
Bei
der Projektierung der Bildschirmanzeigefunktionen spielen die Kompaktheit
und die Genauigkeit der Schaltlogik zur Verarbeitung der horizontalen FIR-Bilderweiterung
eine große
Rolle. Die hier dargestellten Lösungen
fassen die Hardware für
verschiedene horizontale Erweiterungsverhältnisse zu einer einzigen Einheit
zusammen.
-
Derartige
zusammengefasste Einheiten sind so aufgebaut, dass die bei der FIR-Transformation durchgeführten Multiplikationen
parallel erfolgen und anschließend
die Ergebnisse mit der Genauigkeit zusammengefasst werden, welche
der Genauigkeit der Eingangswerte der horizontalen Erweiterungseinheit entspricht.
Eine solche Struktur ist in 13 dargestellt.
Jüngst
sind bei diesen Entwürfen
acht Multiplizierer verwendet worden, um ein neues gefaltetes Pixel
mit der erforderlichen Genauigkeit zu erzeugen.
-
Die
erforderliche Übertragungsgeschwindigkeit
der resultierenden Daten in die eigentliche Bildschirmeinheit muss
mit der CCIR-Empfehlung 601 kompatibel sein und steht einem
kompakten Aufbau im Wege. Diese hohe Datenrate bedingt, dass die
horizontale Bildschirmeinheit mit einer derart hohen Frequenz geschaltet
wird, dass die Latenzzeit der Einheit überschritten wird. Deshalb
müssen
Pipelineregister eingeführt
werden, welche die Struktur in mehrere Zyklen aufteilen.
-
Wenn
für die Übertragungsfunktion
Koeffizienten gefunden werden können,
die zu einem Punkt symmetrisch sind, kann das oben erwähnte Netzwerk „gefaltet" werden, um die Anzahl
der Multiplizierer durch die Einfügung eines Additionsschrittes
vor den Multiplikationen auf vier zu verringern. Durch diesen Schritt
zur Verringerung der Chipfläche
nimmt der Bedarf an Pipelineregistern zur Erreichung der geforderten
Zyklusstruktur zu, sodass ein Kompromiss zwischen der Fläche für Register
und Addierer und der Fläche
für die
Multiplizierer gefunden werden muss. Durch die Verwendung serieller
Addierer (ohne Übertragvorgriff)
wäre die
Einbeziehung dieses Faltungsschritte für das Erreichen einer größeren Kompaktheit
von Vorteil, jedoch zum Preis einer noch größeren Latenzzeit. Diese gefaltete
Schaltung ist in 14 dargestellt.
-
Ein
Aspekt der vorliegenden Erfindung besteht darin, die Latenzzeit
dieses Netzwerks zu verringern, um den Bedarf nach mehr Pipelineregistern zu
verringern und somit eine größere Kompaktheit
zu erreichen.
-
Jede
Multiplikation beinhaltet unabhängig von
der Ausführungsform
die Erzeugung von Zwischenprodukten, indem ein Operand als Multiplikator und
der andere Operand als Multiplikand behandelt wird und somit die
Zwischenprodukte in der allgemein bekannten Weise gemäß 15 angeordnet werden.
Diese Zwischenprodukte können
mittels eines der bekannten Verfahren aufsummiert werden und das
Produkt bilden, zum Beispiel mittels der Wallace-Bäume oder
der Additionsmatrizen, die beide aus Addierern mit Übertragspeicherung
oder aus Mehrfachbitzählern
bestehen. Die Anzahl der in den Eingangsdaten enthaltenen Bits ist
etwa gleich der maximalen Anzahl von Bits, die zur Darstellung der Koeffizienten
benötigt
werden, was im Folgenden gezeigt werden soll.
-
Es
wird davon ausgegangen, dass die Daten für den Koeffizienten leicht
verfügbar
sind. Die Ausgangswerte des seriellen Faltungsaddierers können entweder
in den Eingang des Multiplikanden oder des Multiplikators eingegeben
werden. Diese beiden Möglichkeiten
sind in 16 und 17 dargestellt. Die
beiden Figuren zeigen, dass die Ausgangwerte des seriellen Faltungsaddierers
am besten in den Multiplikatoreingang eingegeben werden.
-
Bei 16 ist
zu beachten, dass jeder Versuch zur Codierung der Koeffizienten
zur Verringerung der Anzahl der Zwischenprodukte, zum Beispiel mittels
einer Variante des Booth-Algorithmus, die Latenzzeit für den kritischen
Pfad B verringert, jedoch wird gleichzeitig die zur Speicherung
der codierten Koeffizienten benötige
Chipfläche
vergrößert. Wenn die
Bildschirmeinheit mehrere verschiedene Formatumwandlungen durchführen muss,
müssen
möglicherweise
mehrere Sätze
Koeffizienten gespeichert werden.
-
Man
beachte, dass die Wellenfront der Berechnungen zur Erzeugung und
Zusammenfassung der Zwischenprodukte unmittelbar auf die Wellenfront
der Erzeugung der Summe des Faltungsaddierers folgt.
-
Die
Schaltungen in 16 und 17 berechnen
das Produkt für
jede der vier Multiplikationen bis zu Ende und leiten das Ergebnis
weiter an ein Summierungsnetzwerk weiter, wo die vier Produkte schließlich zu
einem einzigen Wert zusammengefasst werden, der das neue Pixel darstellt.
vermutlich die wichtigste Aufgabe für ein einzufügendes Pipelineregister
bestünde
dabei in der Zwischenspeicherung der vier Produkte oder der wichtigsten
Teile der Produkte und Teile des 4-2-Netzwerks, deren Berechnungen bis zum
Ende des Zyklus abgeschlossen sind. Der zweite Zyklus, der zur Durchführung der 4-1-Verringerung
dient, wird problemlos innerhalb eines Zyklus abgeschlossen.
-
Zur
Verringerung der Latenzzeit ist es insbesondere wichtig, eines der
Segmente des kritischen Pfades zu beseitigen. Das in 18 dargestellte Netzwerk
verringert diese Latenzzeit.
-
Das
in 18 gezeigte Netzwerk berechnet nicht das gesamte
Produkt für
die vier Multiplikationen. Stattdessen fasst das Netzwerk einzelne
Zwischenprodukte aller vier Multiplikationen zusammen. Das Netzwerk
benutzt einen in einer Matrixkonfiguration angeordneten gemeinsamen
4-2-Zähler.
Jede der vier Multiplikationen steuert hierzu ein Zwischenprodukt bei,
das zur Voraddition im gemeinsamen 4-2-Zähler verwendet wird.
-
Die
Eigenschaften des kritischen Pfades sind denen des in 17 gezeigten
Netzwerks sehr ähnlich.
Die Wellenfront des gefalteten Addierer schreitet zuerst voran.
Sobald die ersten beiden niedrigstwertigen Bits (Least Significant
Bit, LSB) erzeugt worden sind und die zugehörigen Zwischenprodukte in der
4-2-Matrix vorliegen, kann der Übertragungsteil
der 4-2-Zählermatrix
fortfahren. Die Verzögerung
durch den gefalteten Addierer ist etwas geringer als die Verzögerung des
kritischen Pfades durch die 4-2-Zählermx, sodass die Wellenfront
bei der Erzeugung der Zwischenprodukte für den Voradditionsteil des
zusammengefassten q4-2-Zählers
geringfügig
vor der Wellenfront des Übertragungsteils der
4-2-Zählermatrix
liegt. Sobald der gefaltete Addierer das höchstwertige Bit (Most Significant
Bit, MSB) berechnet hat und das höchstwertige Zwischenprodukt
in die Matrix eingetragen ist, braucht die Matrix nur die Berechnung
der letzten paar Zeilen abzuschließen. Die Latenz für den 2-1-Addierer
(kritischer Pfad D) ist im Wesentlichen beseitigt. Die Latenzzeit
für den
kritischen Pfad E ist nur geringfügig länger als die Latenzzeit für den kritischen
Pfad B oder C, da dieses einzelne Netzwerk bis zu vier Zwischenprodukte
verringert. Da alle vier Multiplikationen an dieser Berechnung beteiligt
gewesen sind, können
die niedrigstwertigen Bits des Produkts zudem weggelassen werden.
Somit besteht ein Grund zum Einfügen
eines Pipelineregisters in der Zwischenspeicherung der Summe und
des Übertrags, die
vom Netzwerk erzeugt wurden. Dieses Netzwerk benutzt lediglich ein
Registerpaar anstelle der bei den früheren Schaltungen benötigen vier
Register.
-
Obwohl
die Erfindung unter Bezug auf bestimmte bevorzugte Ausführungsarten
und beispielhafte Darstellungen beschrieben wurde, soll der Geltungsbereich
der Erfindung nicht dadurch eingeschränkt, sondern nur durch die
beiliegenden Ansprüche
definiert werden.