-
Die
Erfindung betrifft im allgemeinen Videoverarbeitungssysteme und
insbesondere Videoverarbeitungssysteme, die in der Lage sind, eine
Mehrzahl von Videosignalformaten, wie z.B. verschiedene hochauflösende Formate
und Formate mit Standardauflösung,
zu empfangen und zu verarbeiten.
-
Gegenwärtige Fernsehempfänger, wie
z.B. NTSC- (National Television Standards Committee) Fernsehempfänger, beinhalten
einen Videoverarbeitungsschaltkreis, der typischerweise ein Videosignal
verarbeiten muß,
das nur einem einzigen, vorbestimmten Videoformat entspricht. Von
zukünftigen
digitalen Fernsehempfängern
(DTV) wird erwartet, daß sie
im wesentlichen in Übereinstimmung
mit den Übertragungsnormen, die
von dem Advanced Television Standards Committee (ATSC) errichtet
wurden, implementiert sind. Ein ähnlicher
Standard ist der europäische
digitale Videosendestandard (DVB). Ein komprimiertes digitales Videosystem
wird beschrieben in dem ATSC-Digitalfernsehnormdokument A/53, das
hier durch Bezugnahme aufgenommen wird. Darüber hinaus hat die Moving Pictures
Experts Group (MPEG) verschiedene Standards, die digitale Datenliefersysteme
betreffen, entwickelt. Der erste, bekannt als MPEG-1, bezieht sich
auf die ISO/IEC-Normen
11172 und wird hier durch Bezugnahme aufgenommen. Der zweite, bekannt
als MPEG-2, bezieht sich auf die ISO/IEC-Normen 13818 und wird hier
durch Bezugnahme aufgenommen.
-
Die
neuen DTV-Normen erlauben es Sendern, virtuell alle Formate bis
zu 1920 × 1080
Pixeln zu liefern. Genauer gesagt müssen DTV-Empfänger in
der Lage sein, ein Quellvideo zu empfangen, das Bildsequenzen aufweist,
die in der Ortsauflösung
(480 Zeilen, 720 Zeilen oder 1080 Zeilen), in der Zeitauflösung (60 fps,
30 fps oder 24 fps) und im Abtastformat (2:1 interlaced oder progressive
scan) variieren. Zusätzlich
ist es wünschenswert,
das Format eines empfangenen Videosignals in ein bevorzugtes Format
(d.h. ein "natives" Format) einer Anzeigeeinrichtung,
die in Verbindung mit dem Empfänger
verwendet wird, umzuwandeln.
-
In
einem Ansatz des Standes der Technik wird das Format des empfangenen
Fernsehsignals einer elektronischen Abtastumwandlung (Interpolation,
Filterung und/oder Dezimierung) ausgesetzt, um das Format des Fernsehsignals
an ein "natives
Anzeigeformat" der
in dem bestimmten DTV-Empfänger
verwendeten Anzeigevorrichtung anzupassen. Anordnungen des Standes
der Technik, die diesen Ansatz verwenden, decodieren als erstes
das empfangene Signal, um einen Videoinformationsstrom bereitzustellen.
Der Videoinformationsstrom wird dann einer z.B. vertikalen und/oder
horizontalen Interpolation oder Filterung oder Dezimierung ausgesetzt,
um das Format des Videosignals an das native Format der Anzeigevorrichtung
anzupassen. Zusätzlich
ist es bekannt, einen Einzelbildgeschwindigkeitsumwandlungsprozeß zu verwenden,
um die Einzelbildgeschwindigkeit, z.B. 24 Hz, 30 Hz, 60 Hz, an die
Einzelbildgeschwindigkeit anzupassen, die dem Anzeigeverarbeitungsschaltkreis
eigen ist.
-
Die
oben beschriebene bekannte Technik für das Anpassen von Mehrformat-Fernsehsignalen an
ein bestimmtes eigenes Anzeigeformat verwendet in nachteiliger Weise
diesel ben Berechnungsressourcen ungeachtet des Formats des empfangenen
Fernsehsignals oder des eigenen Formats der Anzeigevorrichtung.
Somit sind selbst in dem Fall des Anpassens eines Fernsehsignals
mit einem Format niedriger Auflösung
an ein eigenes Anzeigeformat mit niedriger Auflösung die von dem Videodecoder
verwendeten Berechnungsressourcen die gleichen, die verwendet würden, um
ein hochauflösendes
Fernsehsignal an ein mittleres, niedriges oder hochauflösendes eigenes
Anzeigeformat der Anzeigevorrichtung anzupassen. Es ist somit wünschenswert,
die Berechnungsressourcenverwendung eines Videodecoders (d.h. die
Verarbeitungs- und Speicherressourcen) an den Typ des empfangenen
Signalformats und dessen geeignete Decodierung in ein eigenes Anzeigeformat
eines DTV-Empfängers
oder in ein eigenes Verarbeitungsformat eines Videoverarbeitungssystems,
wie z.B. ein Videoeditiersystem, anzupassen.
-
Ein
Aspekt der Erfindung stellt ein Verfahren zum Decodieren eines komprimierten
Videostroms bereit, das den Schritt aufweist: Identifizieren eines
Quellformats des komprimierten Videostroms, Bestimmen unter Verwendung
des besagten identifizierten Quellformats von einer oder mehreren
Rechenressourcenanforderungen, die geeignet sind für die Verarbeitung
des komprimierten Videostroms, um einen dekomprimierten Videostrom
mit einem Ausgabeformat zu erzeugen, Zuweisen der Ressourcen in
Antwort auf die eine oder die mehreren bestimmten Rechenressourcenanforderungen
und Verarbeiten des komprimierten Videostroms unter Verwendung des
einen oder der mehreren zugewiesenen Rechenressourcen, um den dekomprimierten
Videostrom zu erzeugen.
-
Die
Erfindung stellt ein effizientes Mehrformat-Videosignalverarbeitungssystem
bereit, das Verarbeitungsressourcen in Antwort auf das Format eines
empfangenen Video- oder Fernsehsignals zuweist. Die Erfindung kann
verwendet werden bei der Reformatierung oder Transcodierung von
Videoinformation zwischen z.B. verschiedenen Speichermedien, Video-
oder Fernsehnormen und/oder -formaten. Die Erfindung wird ebenso
mit Vorteil eingesetzt innerhalb eines digitalen Fernsehsystems
(DTV), um ein empfangenes Videoformat an ein eigenes Anzeigeformat
anzupassen.
-
Die
Erfindung beruht teilweise auf den Beobachtungen des Erfinders,
daß die
Dekomprimierung von unterschiedlichen Bildgrößen unterschiedliche Rechenressourcen
erfordern, insbesondere in dem Fall eines nativen Anzeigeformats
hoher Auflösung
werden, wenn kleinere Bildgrößen decodiert
werden (unter Verwendung von weniger IDCT-Ressourcen), größere Interpolationen
(Berechnung von mehr Filterabgriffen) erforderlich.
-
In
einer Ausführungsform
der Erfindung erfaßt
eine Videodecoderarchitektur das Format eines empfangenen Fernsehsignals
und weist in Antwort darauf arithmetische und logische Ressourcen
zwischen der inversen diskreten Kosinustransformation (IDCT-Operationen)
und vertikalen und/oder horizontalen Interpolations- und/oder Dezimierungsoperationen
zu.
-
Ein
anderer Aspekt stellt eine Vorrichtung für das Verarbeiten eines komprimierten
Videostroms bereit mit einem Quellvideoformat, um einen dekomprimierten
Videostrom mit einem Ausgangsvideoformat zu erzeugen, das aufweist:
einen Decoder einschließlich
zuweisbarer Berechnungsressourcen für das Durchführen zumindest
einer inversen diskreten Kosinustransformationsfunktion für das Decodieren
des komprimierten Videostroms, um einen decodierten Videostrom zu erzeugen,
und einen Controller für
das Identifizieren eines Quellformats des komprimierten Videostroms
für das
Bestimmen unter Verwendung des identifizierten Quellformats von
einer oder mehreren Rechenressourcenanforderungen, die geeignet
sind für
die Verarbeitung des komprimierten Videostroms, um den decodierten
Videostrom mit dem gleichen Ausgabeformat zu erzeugen, und für das Zuweisen
der Berechnungsressourcen in Antwort auf die eine oder die mehreren
bestimmten Rechenressourcenanforderungen.
-
Die
Lehren der vorliegenden Erfindung können leicht verstanden werden
durch Inbetrachtziehen der folgenden detaillierten Beschreibung
in Verbindung mit den begleitenden Zeichnungen, in denen:
-
1 ein
High-Level-Blockdiagramm eines Videodecoders entsprechend der Erfindung
darstellt,
-
2 ein
High-Level-Blockdiagramm einer alternativen Ausführungsform eines Videodecoders
entsprechend der Erfindung darstellt,
-
3 ein
Flußdiagramm
eines Ressourcenzuweisungsverfahrens gemäß der Erfindung darstellt.
-
Um
das Verständnis
zu erleichtern, wurden identische Bezugszahlen verwendet, wo möglich, um
identische Elemente, die gemeinsam in den Figuren gezeigt sind,
zu bezeichnen.
-
Die
Erfindung wird anhand eines MPEG-artigen Decoders und Formatumwandlers
beschrieben. Während
die Erfindung eine große
Nützlichkeit
innerhalb eines digitalen Fernsehempfängers (DTV), beispielsweise eines
ATSC-Fernsehempfängers,
hat, versteht es sich für
den Fachmann, daß die
Erfindung bei jedem Mehrformat-Videoverarbeitungssystem anwendbar
ist, einschließlich
denjenigen Systemen, die an DVB, MPEG-1, MPEG-2 und andere Informationsströme angepaßt sind.
Beispielsweise kann die Erfindung verwendet werden für die Reformatierung
oder Transcodierung von Videoinformation zwischen verschiedenen
Speichermedien-, Video- oder Fernsehnormen und/oder Formaten.
-
1 stellt
ein High-Level-Blockdiagramm eines Videodecoders gemäß der Erfindung
dar. Genauer gesagt weist der Videodecoder und Prozessor der 1 einen
MPEG-artigen Decoder auf, der auf einer Block-per-Block-Basis einen
komprimierten Videoinformationsstrom IN empfängt und decodiert, um einen
Videoausgangsstrom OUT zu erzeugen. Der Videoausgangsstrom OUT ist
geeignet für
das Verbinden mit beispielsweise einem Anzeigetreiberschaltkreis
innerhalb einer Darstellungseinrichtung (nicht gezeigt). Das Anzeigeformat
des Videoausgangsstroms wird eingestellt durch Resizingoperationen
(Größenveränderungsoperationen)
in entweder der diskreten Kosinustransformationsdomäne (DCT)
oder im Pixelraum.
-
Der
MPEG-artige Decoder 100 weist ein Eingangspufferspeichermodul 111,
ein variables Längendecodermodul
(VLD) 112, ein inverses Quantisierungsmodul (IQ) 113,
ein Blockspeichermodul 114, ein Bewegungskompensationsmodul 116,
ein Ankereinzelbildspeichermodul 117, einen zuweisbaren
Prozessor 120, ein optionales vertikales Größenveränderungsmodul 142,
ein optionales horizontales Größenveränderungsmodul 143 und
einen Controller 130 auf. Der zuweisbare Prozessor 120 führt eine
inverse diskrete Kosinustransformationsfunktion (IDCT) 122,
eine Summier funktion 124, eine Interpolationsfunktion 126 und
eine Block-in-Abtastzeilen-Konvertierungsfunktion 128 durch.
Der zuweisbare Prozessor 120 beinhaltet ebenso ein Blockspeichermodul 129,
das mit den verschiedenen Komponenten innerhalb des zuweisbaren
Prozessors 120 kooperiert, um beispielsweise einen Zwischenspeicher
der Blockraum- und/oder Abtastzeilenraum-Videoinformation bereitzustellen.
-
Ein
Vektor ist ein Satz von skalaren Dateneinträgen, alle derselben Art, die
im Speicher abgelegt sind. Die Vektorelemente können so angeordnet sein, daß sie ein
festes Adreßinkrement
zwischen aufeinanderfolgenden Elementen haben, was Stride genannt
wird. Ein Vektorprozessor ist eine Gruppe von Hardwareressourcen,
einschließlich
Vektorregistern, funktionalen Pipelines, Verarbeitungselementen
und/oder Registerzählern
für das
Durchführen
von Vektoroperationen. Die Vektorverarbeitung tritt auf, wenn arithmetische
oder logische Operationen an Vektoren angewendet werden. Die Vektorverarbeitung
wird von der Skalarverarbeitung unterschieden, die auf einem Datum
oder einem Datumspaar arbeitet. Die Vektorverarbeitung ist im allgemeinen
schneller und effizienter als die Skalarverarbeitung, wie dem Fachmann
der fortgeschrittenen Computerarchitekturen bekannt ist. Aufgrund
der inhärenten
Ordnung von Videodaten (d.h. Reihen, Spalten, Einzelbilder, Felder
und dergleichen) und der komprimierten Videodaten (d.h. Scheiben,
Makroblöcke,
Blöcke
und dergleichen) sind solche Daten über die Vektorverarbeitung
veränderbar.
-
Der
zuweisbare Prozessor 120 kann irgendeine zuweisbare Verarbeitungsressource,
wie z.B. einen Vektorprozessor, eine Mehrzahl von Skalarprozessoren
in einer Mehrprozessorumgebung oder irgendein anderes Verarbeitungssystem
aufweisen, in dem arithmetische und/oder logische Verarbeitungsressourcen
zugewiesen werden können
unter Verwendung von Hardware, Software oder einer Kombination aus
Hardware und Software. Während
somit der zuweisbare Prozessor 120 hauptsächlich innerhalb
des Kontexts eines Vektorprozessors beschrieben wird, versteht es
sich, daß solch
eine Beschreibung nur aus anschaulichen Zwecken erfolgt und daß die Erfindung
nicht in einer Art und Weise aufgefaßt werden darf, daß sie lediglich
auf Vektorverarbeitungsanordnungen beschränkt wird.
-
Es
sollte bemerkt werden, daß,
während
der zuweisbare Prozessor 120 der beispielhaften Ausführungsform
eine IDCT-Funktion 122, eine Summierfunktion 124,
eine Interpolationsfunktion 126 und eine Block-in-Abtastzeilen-Konvertierungsfunktion 128 durchführt, es
nicht notwendig ist, daß alle
diese Funktionen in dem zuweisbaren Prozessor 120 aufgenommen
sind. Der zuweisbare Prozessor 120 beinhaltet diese Funktionen,
da im Kontext des beispielhaften MPEG-artigen Codierers 100 von 1 solch
eine Aufnahme die Gesamtkosten der Implementierung des MPEG-artigen Codierers
in Bezug auf die Halbleiterfläche,
die Systemkomplexität
und damit die Stückkosten
reduziert. In gleicher Weise kann der Blockspeicher 129 als
separates Modul ausgeführt
sein.
-
In
einer Ausführungsform
der Erfindung beinhaltet der zuweisbare Prozessor 120 nur
die IDCT-Funktion 122 und die Interpolationsfunktion 126,
während
die Summierfunktion 124 und die Block-in-Abtastzeilen-Konvertierungsfunktion 128 durch
speziell ausgebildete Hardware implementiert werden. In gleicher
Weise kann die Interpolationsfunktion 126 nur eine vertikale
Interpolations funktion, nur eine horizontale Interpolationsfunktion
oder sowohl eine vertikale Interpolationsfunktion als auch eine
horizontale Interpolationsfunktion bereitstellen.
-
Das
Eingangspufferspeichermodul 111 empfängt den komprimierten Videostrom
IN, anschaulich einen mit variabler Länge codierten Bitstrom, der
z.B. ein Fernsehsignalausgang hoher Auflösung (HDTV) oder ein Fernsehsignal
mit der Standardauflösung
(SDTV) von einem Transportdemultiplexer/Decoderschaltkreis (nicht
gezeigt). Das Eingangspufferspeichermodul 111 wird verwendet,
um zeitweilig den empfangenen komprimierten Videostrom IN zu speichern,
bis das variable Längendecodermodul 112 bereit
ist, die Videodaten für
die Verarbeitung zu akzeptieren. Der VLD 112 hat einen
Eingang, der mit einem Datenausgang des Eingangspufferspeichermoduls 111 verbunden
ist, um die gespeicherten variablen längencodierten Videodaten als
Datenstrom S1 abzurufen.
-
Der
VLD 112 decodiert die abgerufenen Daten, um einen Bitstrom
S2 konstanter Länge
zu erzeugen, der quantisierte Prädiktionsfehler-DCT-Koeffizienten,
einen Bewegungsvektorstrom MV und einen Blockinformationsstrom DATA
aufweist. Das IQ-Modul 113 führt eine inverse Quantisierungsoperation
auf dem Bitstrom konstanter Länge
S2 durch, um einen DCT-Koeffizientenvektor S3 zu erzeugen, der quantisierte
Prädiktionsfehlerkoeffizienten
in der Standardform, d.h. DCT-Koeffizienten
aufweist.
-
Die
IDCT-Funktion 122 des zuweisbaren Prozessors 120 führt eine
inverse diskrete Kosinustransformationsoperation auf dem DCT-Koeffizientenvektor
S3 durch, um einen Datenvektor S4 zu erzeugen, der Pixel per Pixel
Prädiktionsfehler
aufweist. Arithmetische und/oder logische Ressourcen des zuweisbaren
Prozessors 120 werden der IDCT-Funktion 122 zugewiesen,
und zwar basierend auf verschiedenen Faktoren, die unten detaillierter
beschrieben werden. Kurz gesagt werden die Ressourcen zugewiesen
basierend auf z.B. dem Videoformat eines empfangenen Videosignals,
einem nativen Videoformat, wie z.B. einem nativen Anzeigevorrichtungsformat,
irgendeiner Kombination des empfangenen und des nativen Videoformats
und anderer Faktoren.
-
Die
Summierfunktion 124 des zuweisbaren Prozessors 120 führt eine
Additionsoperation auf dem Pixel-per-Pixel-Prädiktionsfehlerstrom S4 und
einem bewegungskompensierten vorhergesagten Pixelwertstrom S6, der
durch das Bewegungskompensationsmodul 116 erzeugt wird,
durch. Die Ausgabe der Summierfunktion 124 ist somit in
der beispielhaften Ausführungsform
ein Videostrom S5, der rekonstruierte Pixelwerte im Pixelblockformat
aufweist. Der Videostrom S5, der durch die Summierfunktion 124 erzeugt
wurde, wird mit dem Ankerframespeicher 117 und der Interpolationsfunktion 126 des
zuweisbaren Prozessors 120 verbunden. Das Ankerframespeichermodul 117 empfängt diejenigen
Pixelblöcke
und speichert sie, die mit den Ankerframes innerhalb des komprimierten
Videostroms S5 verknüpft
sind.
-
Das
Bewegungskompensationsmodul 116 empfängt den Bewegungsvektorstrom
MV von dem VLD 112 und greift auf die Bildinformation zu über den
Signalpfad S7, die im Speichermodul 117 abgelegt ist. Der Bewegungsvektorstrom
MV weist Bewegungsvektorinformation auf, die von dem Bewegungskompensationsmodul 116 verwendet
wird, um individuelle Makroblöcke
basierend auf der Bildinformation, die in dem Ankerframespeichermodul 117 abgespeichert
ist, vorherzusagen.
-
Das
Bewegungskompensationsmodul 116 verwendet ein oder mehrere
gespeicherte Ankerframes (z.B. die Pixelblöcke, die in Bezug auf das letzte
I-Frame oder P-Frame des Videosignals erzeugt wurden, das am Ausgang
der Summierfunktion 124 erzeugt wurde), und der (die) Bewegungsvektor(en)
MV, der (die) von dem VLD 112 empfangen wurde(n), um die
Werte für
jeden der Mehrzahl von vorhergesagten Blöcken zu berechnen. Jeder der
Mehrzahl von vorhergesagten Blöcken
wird dann mit einem Eingang der Summierfunktion 124 als
ein bewegungskompensierter, vorhergesagter Pixelwertstrom S6 verbunden.
-
Die
Interpolationsfunktion 126 des zuweisbaren Prozessors 120 führt eine
vertikale und/oder horizontale Interpolationsoperation durch, um
die Pixelblöcke
innerhalb des Videostroms S5, der durch die Summierfunktion 124 produziert
wird, in der Größe zu verändern. Die
Größe der Größenveränderung,
die auf die Pixelblöcke
ausgeübt
wird, wird in Bezug auf ein Steuersignal SIZE, das von dem Controller 130 erzeugt
wird, bestimmt. Die Interpolationsfunktion kann eine vertikale Interpolationsfunktion,
eine horizontale Interpolationsfunktion oder sowohl eine vertikale
als auch horizontale Interpolationsfunktion aufweisen. Die Interpolationsfunktion 126 des
zuweisbaren Prozessors 120 wird verwendet, um die vertikale
und/oder horizontale Dimension eines Pixelblockes zu erhöhen, so
daß z.B.
ein Eingangsvideosignal mit relativ niedriger Auflösung (z.B. SDTV)
auf eine Anzeigeeinrichtung mit relativ hoher Auflösung (z.B.
HDTV) unter Verwendung von soviel verfügbarem Anzeigebereich wie praktisch
möglich
angezeigt werden kann.
-
Eine
vertikale Interpolation kann durchgeführt werden, um eine vertikale
Abmessung eines Pixelblockes zu erhöhen, beispielsweise durch Berechnen
und Einfügen
von zusätzlichen
Pixelzeilen innerhalb des Pixelblockes. Beispielsweise kann ein
8 × 8-Pixelblock
für ein
480 Zeilen-Bild in einen 8 × 18-Pixelblock
erhöht werden
für die
Anzeige auf einer 1080 Zeilen-Anzeigevorrichtung.
-
Eine
horizontale Interpolation kann durchgeführt werden, um eine horizontale
Dimension eines Pixelblockes durch z.B. Berechnen und Einfügen von
zusätzlichen
Pixeln innerhalb jeder Zeile von Pixeln in dem Pixelblock zu erhöhen. Beispielsweise
kann ein 8 × 8-Pixelblock
für ein
640 Pixelzeilen-Bild auf einen 16 × 8-Pixelblock für die Anzeige
auf einer 1280 Pixelzeilen-Anzeigevorrichtung erhöht werden.
-
Sowohl
eine vertikale als auch eine horizontale Interpolation kann durchgeführt werden,
um sowohl die vertikale als auch die horizontale Abmessung eines
Pixelblocks durch z.B. Berechnen und Einfügen von Extrazeilen von Pixeln
innerhalb des Pixelblockes und Berechnen und Einfügen von
Extrapixeln innerhalb jeder Zeile von Pixeln in dem Pixelblock zu
erhöhen.
Beispielsweise kann ein 8 × 8-Pixelblock
für ein
480 Zeilen, 640 Pixel-pro-Zeile-Bild auf einen 16 × 8-Pixelblock
für die
Anzeige auf einer 1080 Zeilen, 1280 Pixel-pro-Zeile-Anzeigevorrichtung
erhöht
werden.
-
Die
Block-in-Abtastzeilen-Umwandlungsfunktion 128 des zuweisbaren
Prozessors 120 führt
eine Umwandlung des interpolierten, blockbasierten Videostroms S8
von dem Blockraum in den Abtastzeilenraum durch. Das heißt, die
Block-in-Abtastzeilen-Konvertierungsfunktion 128 des zuweisbaren
Prozessors 120 wandelt den blockbasierten Videostrom S8,
der durch die Interpolationsfunktion 126 erzeugt wurde,
in einen abtastzeilenbasierten Videostrom S9 um. Der abtastzeilenba sierte
Videostrom S9 wird mit dem optionalen vertikalen Größenveränderer 122,
dem optionalen horizontalen Größenveränderer 143 oder
dem Ausgang OUT verbunden.
-
Der
optionale vertikale Größenveränderer 142 empfängt den
abtastzeilenbasierten Videostrom S9 und verändert in Antwort auf ein Steuersignal
VS von einem Controller 130 selektiv die Anzeige von vertikalen
Abtastzeilen pro Einzelbild der Videoinformation, die in dem abtastzeilenbasierten
Videostrom S9 enthalten ist. Der optionale vertikale Größenveränderer 142 erzeugt
ein vertikal in der Größe verändertes
Videosignal S10. Der optionale vertikale Größenveränderer 142 ist in
der Lage, die Anzahl von Zeilen pro Videoframe zu erhöhen durch
z.B. Verwenden von Interpolationstechniken, um die Helligkeits-
und Farbinformation von einer oder mehreren neuen Zeilen, die zwischen
zwei existierenden Zeilen eingeführt
werden, zu erhöhen.
Der optionale vertikale Größenveränderer 142 ist
ebenso in der Lage, die Anzahl von Zeilen pro Videoeinzelbild durch
beispielsweise Dezimieren eines Videoframes und durch Verwendung
von Interpolationstechniken zu verringern, um neue Abtastzeilen
mit einer reduzierten Zeilendichte zu berechnen.
-
In
einer Ausführungsform
der Erfindung wird der optionale vertikale Größenveränderer 142 nur verwendet,
um eine einfache, 2:3 vertikale Interpolation bereitzustellen, um
das 720 Zeilen-Video
in 1080 Zeilen-Video zu konvertieren. In dieser Ausführungsform
werden alle anderen vertikalen Interpolationsfunktionen (z.B. 480
in 720, 480 in 1080 und dergleichen) durch die Interpolationsfunktion 126 des
zuweisbaren Prozessors 120 durchgeführt.
-
Der
optionale horizontale Größenveränderer 143 empfängt das
vertikal in der Größe veränderte Videosignal
S10 (oder den abtastzeilenbasierten Videostrom S9) und verändert in
Antwort auf ein Steuersignal HS von dem Controller 130 selektiv
die Anzahl von Bildelementen (Pixeln) pro Zeile von Videoinformation,
die in dem empfangenen Videosignal S10 oder S9 enthalten ist. Der
optionale horizontale Größenveränderer 143 erzeugt
ein horizontal größenverändertes
Videosignal OUT. Der optionale horizontale Größenveränderer 143 ist in
der Lage, die Anzahl von Pixeln pro Zeile zu erhöhen durch z.B. Verwenden von
Interpolationstechniken, um die Helligkeits- und Farbinformation
von einem oder mehreren neuen Pixeln zu berechnen, die zwischen zwei
existierenden Pixeln eingefügt
werden. Der optionale horizontale Größenveränderer 143 ist ebenso
in der Lage, die Anzahl von Pixeln pro Zeile zu verringern durch
beispielsweise Dezimieren einer Videozeile durch Verwenden von Interpolationstechniken,
um die Anzahl von Pixeln in der Zeile zu reduzieren.
-
Der
Controller 130 empfängt
das Format (z.B. die Anzahl von Zeilen, die Anzahl von Pixeln pro
Zeile, die Framegeschwindigkeit und dergleichen), die Farbmetrie
und andere Information betreffend das decodierte Videosignal S4
von dem VLD 112 über
das Headerdatensignal HD. Der Controller 130 verwendet
diese Information und zusätzliche
Information, wie z.B. ein natives Anzeige- oder Verarbeitungsformat einer Anzeige
oder eines Videoprozessors (nicht gezeigt), der die Erfindung einsetzt,
um ein optionales vertikales Größensteuersignal
VS für
den optionalen vertikalen Größenveränderer 142 und
ein optionales horizontales Größensteuersignal
HS für
den optionalen horizontalen Größenveränderer 143 zu
erzeugen. Der Controller 130 kann optional verwendet werden,
um ein Steuersignal FR zu einem Einzelbildgeschwindigkeitswandler
(nicht gezeigt) zu liefern für
das Konvertieren der Einzelbildgeschwindigkeit des Ausgangssignals
OUT in eine andere Ein zelbildgeschwindigkeit (z.B. 60 Einzelbilder
pro Sekunde in 30 Einzelbilder pro Sekunde) in Erfüllung z.B.
des nativen Anzeige- oder Verarbeitungsformats eines Anzeige- oder
Videoprozessors, der die Erfindung einsetzt. Die native Formatinformation
kann innerhalb des Controllers 130 gespeichert werden oder
optional dem Controller 130 über ein Steuersignal NATIVE
FORMAT bereitgestellt werden.
-
Der
zuweisbare Prozessor 130 weist in Antwort auf ein Steuersignal
A vom Controller 130 Verarbeitungsressourcen zu, anschaulich
Vektorverarbeitungsressourcen, zwischen der IDCT-Funktion 122 und der vertikalen
Interpolationsfunktion 126. Der Controller 130 veranlaßt, daß die Vektorverarbeitungsressourcen zwischen
den beiden Funktionen zugewiesen werden, und zwar in Antwort auf
z.B. das Format des Eingangsvideosignals IN und des nativen Anzeige-
oder Verarbeitungsformats eines Anzeige- oder Videoprozessors, der
die Erfindung einsetzt.
-
Der
zuweisbare Prozessor 120 stellt ebenso im wesentlichen
konstante Ressourcen für
die Summierfunktion 124 und die Block-in-Abtastzeilen-Umwandlungsfunktion 128 bereit.
In einer Ausführungsform
der Erfindung sind jedoch die Ressourcen, die der Block-in-Abtastzeilen-Konvertierungsfunktion 128 zugewiesen werden,
nicht konstant. In dieser Ausführungsform
werden die Ressourcen in einer Art und Weise zugewiesen, die an
die Größe der Pixelblöcke innerhalb
des blockbasierten Videostroms S8, der durch die Interpolationsfunktion 126 erzeugt
wird, angepaßt
sind. Das heißt,
falls die Blöcke
in der Größe verändert wurden,
und zwar vergrößert wurden,
dann werden die Ressourcen, die der Block-in-Abtastzeilen-Konvertierungsfunktion 128 zugewiesen
werden, entsprechend erhöht,
um ausreichend Verarbeitungsleistung bereitzustellen.
-
Der
zuweisbare Prozessor 120 adaptiert in Antwort auf das Steuersignal
SIZE vom Controller 130 einen Größen- oder Auflösungsparameter
eines Blockes, der verarbeitet wird. Das heißt, ein empfangener N × M- (oder
N × N-)
DCT-Koeffizientenblock, der der IDCT-Verarbeitung ausgesetzt ist,
erzeugt typischerweise einen N × M-
(oder N × N-)
Pixelblock. Falls der Controller 130 bestimmt, daß der produzierte
Pixelblock in z.B. der vertikalen Richtung expandiert werden sollte
(d.h. ein 480 Zeilen-Block expandiert für die Verwendung in einer 1080
Zeilen-Anzeige), dann wird das Steuersignal SIZE verwendet, um solch
eine Expansion anzuzeigen. In Antwort wird die vertikale Interpolationsfunktion
solch eine Expansion bereitstellen (z.B. ein 8 × 8-Pixelblock in einen 8 × 18-Pixelblock
umwandeln).
-
Der
Erfinder bemerkt, daß die
Dekomprimierung von Informationsströmen, die Videoinformation mit unterschiedlichen
Bildgrößen aufweisen,
unterschiedliche Berechnungsressourcen erfordern. Wenn sich beispielsweise
die Bildgröße eines
Videostroms verringert, verringern sich ebenso die Rechenressourcen,
die erforderlich sind, um die oben beschriebene IDCT-Funktion zu
implementieren (d.h. es müssen
weniger DCT-Koeffizienten in der Zeit verarbeitet werden, aufgrund
der reduzierten Anzahl von DCT-Koeffizientenblöcken, die verwendet werden,
um die Pixelinformation in einem Einzelbild eines Videos mit reduzierter
Auflösung
darzustellen). In gleicher Weise, wenn sich die Bildgröße eines
Videostroms erhöht,
werden sich die Rechenressourcen, die erforderlich sind, um die
oben beschriebene IDCT-Funktion zu implementieren, ebenso erhöhen (d.h. mehr
DCT-Koeffizienten
sind über
der Zeit zu verarbeiten aufgrund der erhöhten Anzahl von DCT- Koeffizientenblöcken, die
verwendet werden, um die Pixelinformation in einem Einzelbild eines
Videos mit verbesserter Auflösung
darzustellen). Die Beziehung zwischen IDCT-Verarbeitungsressourcen und dem Bildformat
können berechnet
oder empirisch bestimmt werden.
-
Der
Erfinder bemerkt weiterhin, daß,
da das native Anzeige- oder Verarbeitungsformat eines Anzeige- oder
Videoprozessors, der einen decodierten Videostrom verwendet, sich
typischerweise nicht verändert,
es notwendig wird, einen decodierten Videostrom in der Größe zu verändern, um
ein Bild bereitzustellen, das z.B. einen verfügbaren Anzeigebereich der Anzeigevorrichtung
maximal ausnutzt. Nimmt man beispielsweise an, daß eine HDTV-Anzeigevorrichtung
verwendet wird, um den decodierten Videostrom anzuzeigen, werden sich,
wenn sich die Bildgröße eines
Videostroms verringert, die Rechenressourcen, die erforderlich sind,
um die oben beschriebene vertikale und/oder horizontale Interpolationsfunktion
zu implementieren, erhöhen
(d.h. die Berechnung von mehr Filterabgriffen). In ähnlicher
Weise, wenn die Bildgröße des Videostroms
das native Anzeigeformat erreicht (oder falls eine "letterbox"- oder Abschneide-
bzw. Cropping-Technik verwendet wird), werden die Rechenressourcen,
die erforderlich sind, um die oben beschriebene vertikale und/oder
horizontale Interpolationsfunktion zu implementieren, Null erreichen
(d.h. es ist nicht nötig,
Filterabgriffe zu berechnen).
-
Es
sollte ebenso erwähnt
werden, daß die
Rechenressourcen, die notwendig sind, um die oben beschriebene vertikale
und/oder horizontale Dezimierungsfunktion durchzuführen, ebenso
mit dem Verhältnis
der Bildgröße zum nativen
Format variieren. Es wird ebenso bemerkt, daß die Einzelbildgeschwindigkeitsunterschiede
zwischen einem übertragenen
Videoformat und einem nativen Anzeigeformat die Rechenressourcenanforderungen
beeinflussen. Beispielsweise, falls das transmittierte Videoformat
24 Einzelbilder pro Sekunde (fps) Videoinformation aufweist (z.B.
einen Film), dann wird mehr Zeit verfügbar, um die Interpolation
durchzuführen
und somit können
Interpolationsfilter mit mehr Abgriffen verwendet werden.
-
In
einer Ausführungsform
der Erfindung weist die IDCT-Funktion 122 des zuweisbaren
Prozessors 120 einen Vektorprozessor (d.h. einen zugewiesenen
Abschnitt von einer verfügbaren
zuweisbaren Vektorverarbeitungsressource 120) auf, die
anschaulich eine 8 Abgriffs-Multiplikations/Summationsfunktion durchführt. Ein
lokaler Speicherblock (z.B. das Blockspeichermodul 114),
anschaulich ein 8 × 8-Pixelblock,
wird verwendet, so daß sowohl
horizontale als auch vertikale Vektoroperationen durchgeführt werden
können.
Wenn das transmittierte Videoformat nicht die Anzahl von IDCT-Operationen
erfordert, um die gesamte Verarbeitungszeit zu verbrauchen (z.B.
ein empfangener SDTV-Videostrom), werden die nicht verwendeten Rechenressourcen zugewiesen,
um die Interpolationsfilterfunktion durchzuführen.
-
Die
horizontale Interpolationsfunktion wird auf dem Blockniveau durch
Interpolieren von anschaulich 8 × 8 Blöcken in eines einer Mehrzahl
von Blockformaten, die unten in Tabelle 1 gezeigt sind, durchgeführt. Falls beispielsweise
das übertragene
Videoformat (z.B. das Quellformat) ein 480 Zeilen-Format (z.B. SDTV),
dargestellt durch 8 × 8
Pixelblöcke,
ist, und das Anzeigeformat ein 180 Zeilen-Format (z.B. HDTV) ist,
dann ist der Quelle-in-Anzeige-Umwandlungsfaktor 4:9. Genauer gesagt
werden die Vektorprozessorressourcen verwendet, um eine 4:9-Interpolationsfunktion
zu bewirken (d.h. 480 Zeilen in 1080 Zeilen). Dies wird verwirklicht durch
Verändern
der Größe der Blöcke von
in der beispielhaften Ausführungsform
8 × 8
Blöcken
in 8 × 18
Blöcken.
Es sollte erwähnt
werden, daß im
Falle eines verzahnten Videos (interlaced), das anschaulich durch
8 × 4
Pixelblöcke
dargestellt wird, dasselbe Verfahren anwendbar ist.
-
-
Es
sollte erwähnt
werden, daß die
1280*720 und 1920*1080 Modi die IDCT-Verarbeitungsressourcen maximal ausnutzen.
Das heißt,
diese Modi repräsentieren
den Fall, wo der zuweisbare Prozessor 120 einen wesentlichen
Teil der Ressourcen der IDCT-Funktion 122 zugewiesen hat
und daß dieser
wesentliche Anteil einer maximalen IDCT-Funktion 122 Ressourcenzuweisung
darstellt basierend auf z.B. einer Bestimmung der maximalen IDCT-Ressourcenbelastung
für die
höchste
zu verarbeitende Auflösung
(d.h. ressourcenbeanspruchenden Auflösung). Da es keine Notwendigkeit
gibt, die vertikale Interpolationsfunktion während dieser Betriebsmoden
durchzuführen
(abhängig
von z.B. einem nativen Anzeigeformat), werden Ressourcen der Interpolationsfunktion 126 nicht
zugewiesen.
-
Die
in der Größe veränderten
Pixelblöcke,
die durch die Interpolationsfunktion 126 des zuweisbaren Prozessors 120 erzeugt
werden, werden durch die Block-in-Abtastzeilen-Konvertierungsfunktion 128 in
eine Mehrzahl von Abtastzeilen umgewandelt. In dem Fall eines 8 × 8-Pixelblocks, der
interpoliert wird, um einen 8 × 18-Pixelblock
zu erzeugen, wird beispielsweise die Block-in-Abtastzeilen-Konvertierungsfunktion 128 18
Videoabtastzeilen statt 8 Videoabtastzeilen für den Pixelblock erzeugen.
Auf diese Art und Weise kann die vertikale Dimension eines Bildes,
das gebildet wird unter Verwendung der interpolierten Pixelblöcke in der
vertikalen Richtung erhöht
werden, um vollständig
z.B. den Anzeigebereich einer HDTV-Anzeigevorrichtung auszunutzen.
Um vollständig
einen horizontalen Anzeigebereich auszunutzen, kann der horizontale
Größenveränderer 143 verwendet
werden, um zusätzliche
Pixel innerhalb jeder Abtastzeile zu interpolieren, wodurch die Länge oder
die Pixelzeile durch die Zahl von jeder Abtastzeile erhöht wird.
-
Der
Controller 130 adaptiert die Funktion bzw. den Betrieb
der vertikalen Interpolationsfunktion 126 des zuweisbaren
Prozessors 120 und den horizontalen Größenveränderer 143, um ein
Ausgangsvideosignal OUT zu erzeugen, das den Anzeigebereiche einer
Anzeigevorrichtung maximal verwendet oder ein natives oder gewünschtes
Videoformat für
die nachfolgende Verarbeitung adaptiert. Es muß erwähnt werden, daß der Controller 130 den
vertikalen Größenveränderer 142 verwenden
kann, um vertikal die Abtastmodenvideodaten in der Größe zu verändern, die
vorher durch die vertikale Interpolationsfunktion 126 des
zuweisbaren Prozessors 120 in der Größe verändert wurden. Somit gleicht
der Controller 130 optional die Ressourcenverwendung des
zuweisbaren Prozessors 120 und den Qualitätsgrad des
Ausgangsvideostroms OUT aus, um einen gewünschten Videodecodier- und
Formatierzweck zu erzielen, wie z.B. ein Eingangsvideosignal an
ein natives Anzeige- oder Verarbeitungsformat anzupassen.
-
Die
Interpolationsfunktion 126 des zuweisbaren Prozessors 120 wurde
beschrieben in Bezug auf das Vergrößern der Anzahl von Zeilen
und/oder der Anzahl von Pixeln pro Zeile eines Pixelblocks. Es versteht
sich, daß die
Interpolationsfunktion 126 des zuweisbaren Prozessors 120 ebenso
in der Lage ist, die Anzahl der Zeilen und/oder der Pixel pro Zeile
eines Pixelblocks zu verringern. In einer Ausführungsform der Erfindung wird solch
eine Verringerung in der Anzahl der Zeilen und/oder der Pixel pro
Zeile bewirkt durch Dezimieren der Zeilen und/oder Pixel pro Zeile,
um einen reduzierten vertikalen und/oder horizontalen Auflösungspixelblock zu
erzeugen. Die Dezimierung kann auf einer ganzzahligen Basis (d.h.
jede zweite oder jede dritte Zeile und/oder Pixel pro Zeile) oder
auf einer nicht-ganzzahligen Basis (d.h. alle anderthalb Zeilen
und/oder Pixel pro Zeile) durchgeführt werden. Im letzten Fall
wird eine Kombination aus einer Dezimierung und Interpolation erforderlich
sein, um die gewünschte
vertikale und/oder horizontale Auflösung für den Pixelblock zu erzeugen. Diese
Funktionalität
wird weiter in der Ausführungsform
von 2 ausgewertet.
-
Es
muß erwähnt werden,
daß in
dem MPEG-artigen Decoder 100, der oben beschrieben wurde,
die IDCT-Funktion 122 des zuweisbaren Prozessors 120 auf
beispielsweise einem DCT-Koeffizientenblock
der Standardgröße, wie
z.B. ein 8 × 8-DCT-Koeffizientenblock,
arbeitet. Somit wird ungeachtet des empfangenen Videoformats und
z.B. des nativen Anzeigeformats die IDCT-Funktion 122 in
der gleichen Art und Weise auf einer konsistenten Blockgröße durchgeführt. Während somit
der MPEG-artige Decoder 100 eine Bildgrößenveränderungsfunktionalität beinhaltet,
liegt diese Funktionalität
nicht in der Bewegungskompensationsschleife.
-
Wenn
es wünschenswert
ist, den Speicher zu reduzieren, der erforderlich ist, um den Ankerframespeicher 117 zu
implementieren (z.B. erfordert eine SDTV-Anzeigeeinrichtung nicht
die HDTV-Bewegungsgenauigkeit
und -Auflösung),
kann eine Bildreduktionsfunktionalität in die Bewegungskompensationsschleife
aufgenommen werden. Solch eine Ausführungsform der Erfindung wird
nun in Bezug auf 2 beschrieben.
-
2 stellt
ein High-Level-Blockdiagramm eines Videodecoders gemäß der Erfindung
dar. Genauer gesagt weist der Videodecoder und Prozessor der 2 ähnlich dem
Decoder 100 von
-
1 einen
MPEG-artigen Decoder auf, der auf einer Block-per-Block-Basis einen
komprimierten Videoinformationsstrom IN empfängt und decodiert, um einen
Videoausgangsstrom OUT zu erzeugen. Der Videoausgangsstrom OUT ist
geeignet für
die Verbindung mit z.B. einem Anzeigetreiberschaltkreis innerhalb
einer Darstellungseinrichtung (nicht gezeigt). Das Anzeigeformat
des Videoausgangsstroms wird eingestellt durch Größenveränderungsoperationen
in entweder dem diskreten Kosinustransformationsraum (DCT) oder dem
Pixelraum.
-
Der
MPEG-artige Decoder 200 von 2 beinhaltet
eine Vorrichtung für
das Reduzieren von Speicher- und Speicherbandbreitenerfordernissen,
wodurch die Kosten und die Komplexität des Decoders reduziert werden.
Genauer gesagt werden die Speicher- und Speicherbandbreitenanforderungen
reduziert durch Komprimieren der Bildinformation vor dem Speichern
in dem Ankerframespeicher 117, so daß ein reduziertes Auflösungsbildinformationsframe
gespeichert und nachfolgend von dem Bewegungskompensationsmodul 116 des
Decoders 200 verwendet wird. Die Erfindung beinhaltet ebenso
einen Bewegungsvektorprozessor 118, der die Bewegungsvektorinformation
verarbeitet, die von dem VLD 112 erhalten wurde, und zwar
in einer Art und Weise, die konsistent mit der Größe der Komprimierung,
die einem vorhergesagten Bildinformationsframe weitergegeben wurde,
und dem Typ der Vorhersage, der beim Bilden des vorhergesagten Informationsframes verwendet
wird, ist.
-
Der
MPEG-artige Decoder 200 weist ein Eingangspufferspeichermodul 111,
ein variable-Längen-Decodermodul
(VLD) 112, ein inverses Quantisierungsmodul (IQ) 113,
ein Blockspeichermodul 114, ein Bewegungskompensationsmodul 116,
ein Ankerframespeichermodul 117, einen zuweisbaren Prozessor 120,
ein optionales vertikales Größenveränderungsmodul 142,
ein optionales horizontales Größenveränderungsmodul 143,
einen Controller 130 und einen Bewegungsvektorprozessor 118 auf.
Der zuweisbare Prozessor 120 führt eine inverse diskrete Kosinustransformationsfunktion
(IDCT) 122, eine Summierfunktion 124, eine Interpolationsfunktion 126 und
eine Block-in-Abtastzeilen-Umwandlungsfunktion 128 durch.
Der zuweisbare Prozessor 120 beinhaltet ebenso ein Blockspeichermodul 129,
das mit den verschiedenen Komponenten innerhalb des zuweisbaren
Prozessors 120 zusammenarbeitet, um beispielsweise Zwischenspeicher
der Blockraum- und/oder Abtastzeilenraumvideoinformation bereitzustellen.
-
Da
die Mehrzahl der Elemente des MPEG-artigen Decoders 200 von 2 in
im wesentlichen derselben Art und Weise arbeiten wie die entsprechenden
Elemente in dem MPEG-artigen Decoder 100 von 1, werden
nur die Unterschiede zwischen den zwei Figuren detailliert erörtert. Beispielsweise
beinhaltet der MPEG-artige Decoder 200 von 2 einen
Bewegungsvektorprozessor 118, während der MPEG-artige Decoder 100 von 1 dies
nicht tut. Dies liegt daran, daß in
dem MPEG-artigen Decoder 200 von 2 die Interpolationsfunktion 126 des
zuweisbaren Prozessors 120 "innerhalb der Schleife" liegt (d.h. zwischen
der IDCT-Funktion 122 und der Summierfunktion 124 des
zuweisbaren Prozessors 120). Im Gegensatz dazu liegt in
dem MPEG-artigen Decoder 100 von 1 die Interpolationsfunktion 126 des
zuweisbaren Prozessors 120 "außerhalb
der Schleife" (d.h.
nach der IDCT-Funktion 122 und der Summierfunktion 124 des
zuweisbaren Prozessors 120). Da die Interpolationsfunktion 126 die
Größe eines
Ankerframeblocks, der verwendet wird, um andere Blöcke entsprechend
den jeweiligen Bewegungsvektoren vorherzusagen, vergrößert oder
verkleinert, ist es notwendig, diese Bewegungsvektoren an die größere oder
kleinere Größe der jeweiligen
Blöcke anzupassen.
-
Das
Eingangspufferspeichermodul 111 wird verwendet, um zeitweilig
den empfangenen komprimierten Videostrom IN zu speichern, bis das
variable-Längen-Decodermodul 112 bereit
ist, die Videodaten für
die Verarbeitung aufzunehmen. Der VLD 112 hat einen Eingang,
der mit einem Datenausgang des Eingangspufferspeichermoduls 111 verbunden
ist, um z.B. die gespeicherten Videodaten, die mit variabler Länge codiert sind,
als Datenstrom S1 abzurufen. Der VLD 112 decodiert die
abgerufenen Daten, um einen Bitstrom S2 mit konstanter Länge, der
quantisierte Prädiktionsfehler-DCT-Koeffizienten
aufweist, einen Bewegungsvektorstrom MV und einen Blockinformationsstrom
DATA zu erzeugen. Das IQ-Modul 113 führt eine inverse Quantisierungsoperation
auf dem Bitstrom S2 konstanter Länge
durch, um einen DCT-Koeffizientenvektor S3 zu erzeugen, der quantisierte
Prädiktionsfehlerkoeffizienten
in der Standardform aufweist, d.h. DCT-Koeffizienten.
-
Die
IDCT-Funktion 122 des zuweisbaren Prozessors 120 führt eine
inverse diskrete Kosinustransformationsoperation auf dem DCT-Koeffizientenvektor
S3 durch, um einen Datenvektor S4 zu erzeugen, der Pixel-per-Pixel-Vorhersagefehler
aufweist. Arithmetische und/oder logische Ressourcen des zuweisbaren
Prozessors 120 werden der IDCT-Funktion 122 basierend
auf den vorher beschriebenen Faktoren und verschiedenen Faktoren,
die unten detaillierter beschrieben werden, zugewiesen.
-
Die
Interpolationsfunktion 126 des zuweisbaren Prozessors 120 führt eine
vertikale und/oder horizontale Interpolationsoperation durch, um
die Pixelblöcke
innerhalb des Pixel-per-Pixel-Vorhersagefehler-Datenvektors
S4 in der Größe zu verändern, um
einen in der Größe veränderten
Pixel-per-Pixel-Vorhersagefehler-Datenvektor S11 zu erzeugen. Das
Ausmaß der
Größenveränderung,
die den Pixelblöcken
weitergegeben wird, wird in Bezug auf ein Steuersignal SIZE, das
von dem Controller 130 erzeugt wird, bestimmt. Die Größenveränderung
kann das Vergrößern (z.B. über eine
Interpolation) oder das Verringern (z.B. über eine Dezimierung oder eine
Dezimierung und Interpolation) einer vertikalen und/oder horizontalen
Abmessung der Pixelblöcke
aufweisen. Durch Verringern der Größe der Pixelblöcke kann
die Menge der Speicherressourcen, die von dem Ankerframespeicher 117 verwendet
werden, reduziert werden.
-
Die
Summierfunktion 124 des zuweisbaren Prozessors 120 führt eine
Additionsoperation des in der Größe veränderten
Pixel-per-Pixel-Vorhersagefehler-Datenvektors S11 und eines bewegungskompensierten, vorhergesagten
Pixelwertdatenvektors S6, der durch das Bewegungskompensationsmodul 116 erzeugt
wurde, durch. Die Ausgabe der Summierfunktion 124 ist somit
in der beispielhaften Ausführungsform
von 2 ein in der Größe veränderter Videodatenvektor S12,
der rekonstruierte, in der Größe veränderte Pixelwerte aufweist.
Der in der Größe veränderte Videodatenvektor
S12, der durch die Summierfunktion 124 erzeugt wurde, wird
mit dem Ankerframespeicher 117 und der Block-zu-Abtastzeilen-Konvertierungsfunktion 128 des
zuweisbaren Prozessors 120 verbunden. Das Ankerframespeichermodul 117 empfängt diese
in der Größe veränderten
Pixelblöc ke,
die mit den Ankerframes innerhalb des in der Größe veränderten Videodatenvektors S12 verknüpft sind,
und speichert sie.
-
Die
Block-in-Abtastzeilen-Konvertierungsfunktion 128 des zuweisbaren
Prozessors 120 führt
eine Konversion des blockbasierten, in der Größe veränderten Videodatenvektors S12
von dem Blockraum in den Abtastzeilenraum durch. Das heißt, die
Block-in-Abtastzeilen-Konvertierungsfunktion 128 des
zuweisbaren Prozessors 120 konvertiert den blockbasierten,
in der Größe veränderten
Videodatenvektor S12, der durch die Interpolationsfunktion 126 erzeugt
worden ist, in einen abtastzeilenbasierten Videostrom S9. Der abtastzeilenbasierte
Videostrom S9 wird mit dem optionalen vertikalen Größenveränderer 142,
dem optionalen horizontalen Größenveränderer 143 oder
dem Ausgang OUT verbunden.
-
Der
optionale vertikale Größenveränderer 142 und
der optionale horizontale Größenveränderer 143 arbeiten
in im wesentlichen der gleichen Art und Weise wie vorher beschrieben.
Der Controller 130 benutzt optional diese optionalen Größenveränderer in
Verbindung mit der Interpolationsfunktion 126 des zuweisbaren Prozessors 120,
um ein geeignetes Videoausgangssignal OUT zu erzielen.
-
In 2 weist
ein zuweisbarer Prozessor 120 in Antwort auf das Steuersignal
A von dem Controller 130 Rechenressourcen zwischen zumindest
der IDCT-Funktion 122 und der Interpolationsfunktion 126 zu.
Der Controller 130 veranlaßt, daß zuweisbare Rechenressourcen,
wie z.B. Vektorverarbeitungsressourcen, zwischen den zwei Funktionen
zugewiesen werden in Antwort auf z.B. das Format des Eingangsvideosignals
IN und das native Anzeige- oder Verarbeitungsformat eines Anzeige-
oder Videoprozessors, der die Erfindung einsetzt.
-
Der
zuweisbare Prozessor 120 adaptiert in Antwort auf ein Steuersignal
SIZE vom Controller 130 eine Größe oder einen Auflösungsparameter
eines Blockes, der verarbeitet wird. Das heißt, ein empfangener N × M- (oder
N × N-)
DCT-Koeffzientenblock, der der IDCT-Verarbeitung ausgesetzt ist,
erzeugt typischerweise einen N × M-
(oder N × N-)
Pixelblock. Wenn der Controller 130 bestimmt, daß der produzierte
Pixelblock in der Größe reduziert
werden muß in
sowohl horizontaler als auch vertikaler Richtung (d.h. ein HDTV-Block
reduziert für
die Verwendung bei einer SDTV-Anzeige), dann wird das Steuersignal
SIZE verwendet, um solch eine Reduktion anzuzeigen. In Antwort darauf
wird die IDCT-Funktion solch eine Reduktion bereitstellen (z.B.
ein 8 × 8-Pixelblock
in einen Pixelblock mit reduzierter Auflösung, wie z.B. ein 4 × 4-, 4 × 8-, 2 × 4- oder
einen anderen Pixelblock mit reduzierter Auflösung M' × N' umwandeln). Diese
Adaption der IDCT-Funktion wird nun detaillierter beschrieben.
-
Die
IDCT-Funktion 122 des zuweisbaren Prozessors 120 wird
verwendet, um einen reduzierten Auflösungspixelblock durch Durchführen der
IDCT-Funktion auf einer Untergruppe der DCT-Koeffizienten innerhalb eines empfangenen
DCT-Koeffizientenblockes bereitzustellen. Auf diese Art und Weise
muß die
Interpolationsfunktion 126 nicht verwendet werden, um einen
Pixelblock mit reduzierter Größe bereitzustellen,
da die IDCT-Funktion 122 solch einen Block erzeugen wird.
-
In
einer Ausführungsform
der Erfindung wird ein Teil der IDCT-Koeffizienten vor der tatsächlichen IDCT-Operation
abgeschnitten. Der verbleibende Teil (z.B. die Koeffizienten relativ
niedriger Ordnung) des DCT-Koeffizientenblocks wird dann einer inversen
DCT ausgesetzt, um einen Pixel block mit reduzierter Auflösung zu
erzeugen. Die Größe der tatsächlichen
Auflösungsreduzierung
wird bestimmt durch die Anzahl von DCT-Koeffizienten, die verwendet
werden, um den abgeschnittenen Pixelblock zu rekonstruieren. Die
Menge der Abschneidung wird bestimmt durch den geeigneten Reduktionsgrad
der Pixelauflösung,
wie durch den Controller in Bezug auf das empfangene Videoformat
und das native Anzeigeformat und wie durch das Steuersignal SIZE
angezeigt, bestimmt wird.
-
Die
IDCT-Funktion 122 des zuweisbaren Prozessors 120 erzeugt
somit einen komprimierten Videodatenvektor S4 entsprechend einem
Skalierungsfaktor SF (angezeigt durch das Steuersignal SIZE) und
mit einem Kompressionsverhältnis
von 1:SF. Die IDCT-Funktion 122 des zuweisbaren Prozessors 120 arbeitet
auf einer Pixelblock-per-Pixelblock-Basis (z.B. ein 4 × 4-, 4 × 8- oder
8 × 8-Pixelblock), um jeden
Pixelblock, der ein Ankerframe bildet, zu komprimieren, so daß ein resultierendes
komprimiertes Ankerframe dem Ankerframespeicher als komprimierter
Videodatenvektor S5 bereitgestellt wird. Die Speicheranforderungen
des Ankerframespeichermoduls 117 werden somit um einen
Faktor SF reduziert.
-
In
einer anderen Ausführungsform
der Erfindung, wo die Hälfte
der DCT-Koeffizienten abgeschnitten wird und die verbleibenden DCT-Koeffizienten
der IDCT-Verarbeitung ausgesetzt sind, wird der resultierende Pixelblock
näherungsweise
die halbe Auflösung
(d.h. ein 2:1-Kompressionsverhältnis) des
ursprünglichen
Pixelblocks (z.B. ein 4 × 8-
oder 8 × 4-Pixelblock)
haben. In ähnlicher
Weise wird, wenn drei Viertel der DCT-Koeffizienten abgeschnitten
werden und die verbleibenden DCT-Koeffizienten der IDCT-Verarbeitung
ausgesetzt werden, dann der resultierende Pixelblock näherungsweise
ein Viertel der Auflösung
(d.h. ein 4:1-Komprimierungsverhältnis)
des ursprünglichen
Pixelblocks (d.h. ein 4 × 4-Pixelblock)
haben. Es ist wichtig, festzustellen, daß die Größe der Reduktion kein Faktor
2 (d.h. 1/2, 1/4 usw.) sein muß.
Die Größe der Reduktion
kann in irgendeiner Art und Weise beschrieben werden, die für die Anwendung
als geeignet erachtet wird. Beispielsweise in dem Fall eines HDTV-Videoformatstroms,
der für
die Anzeige auf einer SDTV-Formatanzeigevorrichtung
reduziert wird, kann die Größe der Reduktion
(d.h. der Skalierungsfaktor SF) in vertikaler Richtung als eine
9:4-Reduktion (d.h. 1080 Zeilen zu 480 Zeilen) und in der horizontalen
Richtung als eine 3:1-Reduktion (d.h. 1920 Pixel zu 640 Pixel) beschrieben
werden.
-
Der
Bewegungsvektorprozessor 130 empfängt den Bewegungsvektorstrom
MV von dem VLD 112 und das Steuersignal SIZE, das von dem
Controller 130 erzeugt wird. Der Bewegungsvektorstrom MV
weist eine Bewegungsvektorinformation auf, die von dem Bewegungskompensationsmodul 116 verwendet
wird, um individuelle Makroblöcke
vorherzusagen basierend auf der Bildinformation, die in dem Ankerframespeichermodul abgelegt
ist. Da die Bildinformation, die in dem Ankerframespeichermodul 117 abgelegt
ist, durch die IDCT-Funktion 122 des zuweisbaren Prozessors 122 skaliert
wird, wie oben beschrieben, ist es ebenso notwendig, die Bewegungsvektordaten
zu skalieren, die verwendet werden, um Makroblöcke unter Verwendung der skalierten
Pixelinformation vorherzusagen. Die skalierten Bewegungsvektoren
MV sind über
den Pfad MV' mit
dem Bewegungskompensationsmoduls 116 verbunden.
-
Das
Bewegungskompensationsmodul 116 greift auf die komprimierte
(d.h. skalierte) Bildinformation, die im Speichermodul 117 abgelegt
ist, über
den Signalpfad S7' und
den (die) skalierten Bewegungsvektoren) MV' zu, um einen skalierten vorhergesagten
Makroblock zu erzeugen. Das heißt,
das Bewegungskompensationsmodul 116 verwendet ein oder
mehrere gespeicherte Ankerframes (z.B. die Pixelblöcke mit
reduzierter Auflösung,
die in Bezug auf das letzte I-Frame oder P-Frame des Videosignals, das beim Ausgang
der Summierfunktion 124 erzeugt wird, erzeugt wurden) und
den (die) Bewegungsvektoren) MV',
die von dem Bewegungsvektorprozessor 130 empfangen wurden,
um die Werte für
jeden der Mehrzahl von skalierten, vorhergesagten Makroblöcken, die
einen skalierten vorhergesagten Informationsdatenvektor S6 bilden,
zu berechnen.
-
Wie
vorher erwähnt,
arbeitet die Interpolationsfunktion 126 im Pixelraum, um
eine oder mehrere zusätzliche
Pixelzeilen zwischen ausgewählten
existierenden Reihen oder Zeilen oder Zeilen von Pixeln in einem Pixelblock,
der verarbeitet wird, einzufügen.
Die Anzahl von eingefügten
Zeilen hängt
von der Differenz zwischen z.B. dem Eingangsvideoformat und dem
nativen Anzeige- oder Videoverarbeitungsformat ab. Beispielsweise
ist die Umwandlung von 480 Zeilen in 1080 Zeilen ein 4:9-Umwandlungsverhältnis, die
Umwandlung zwischen 480 Zeilen und 720 Zeilen ist ein 2:3-Umwandlungsverhältnis.
-
In
einer Ausführungsform
der Erfindung werden die IDCT-Funktion 122 und die Interpolationsfunktion 126 des
zuweisbaren Prozessors 120 fest integriert und arbeiten
hauptsächlich
im DCT-Raum. In
dieser Ausführungsform
arbeitet die Interpolationsfunktion 126 des zuweisbaren
Prozessors 120 in dem DCT-Raum, um die vertikale Dimension
eines Pixelblockes zu erhöhen
durch beispielsweise Hinzufügen
zusätzlicher "Padding"- bzw. "Füll"-DCT-Koeffizienten zu einem empfangenen
DCT-Koeffizientenblock vor der Durchführung der IDCT-Funktion. Beispielsweise
kann ein 8 × 8-DCT-Koeffizientenblock
in einen 8 × 12-
oder 8 × 18-DCT-Koeffizientenblock
aufgefüllt
und verarbeitet werden unter Verwendung der DCT-Basisfunktionen
(d.h. der Koeffizientenmatrizen), die für die aufgefüllte DCT-Größe geeignet
sind.
-
Ein
ATSC-Fernsehempfänger
muß die
Eingangsvideosignale verarbeiten entsprechend zumindest den ATSC-empfohlenen
Komprimierungsformaten. Diese Formate sind unten in Tabelle 2 gezeigt.
In Tabelle 2 bezeichnet "P" den progressive
scan bzw. die Zeile-für-Zeile-Abtastung
und "I" bezeichnet den sogenannten interlaced
scan bzw. die Zeilensprungabtastung. Es soll ebenso erwähnt werden,
daß die
Einzelbildgeschwindigkeitszahlen, die in Tabelle 2 gezeigt sind,
ganzzahlige Werte sind; der ATSC-Standard erlaubt es auch, daß die Einzelbildgeschwindigkeitswerte
mit 1000/1001 multipliziert werden (d.h. 59,94 Hz statt 60 Hz).
-
-
Die
Erfindung spricht die vertikalen Interpolationsausgaben in Bezug
auf das Umwandeln eines Eingangsvideoformat in ein natives Anzeigeformat
an. Da die vertikale Interpolation des Abtastmodus notwendigerweise
die Speicherung von zumindest zwei Videozeilen erfordert, führt der
Blockmodusansatz, der durch die Erfindung ermöglicht wird, zu einer signifikanten
Einsparung von Speicher und Speicherbandbreite. Darüber hinaus
reduziert der Ansatz der gemeinsam genutzten Ressourcen der Erfindung
die Gesamtrechenressourcenanforderungen innerhalb z.B. eines ATSC- oder anderen Videoverarbeitungssystems.
-
3 stellt
ein Flußdiagramm
eines Verfahrens 300 entsprechend der Erfindung dar. Genauer
gesagt ist das Verfahren 300 von 3 geeignet
für die
Verwendung in z.B. dem Controller 130 von 1 oder 2. Darüber hinaus
kann das Verfahren 300 von 1 leicht
durch den Fachmann an die verschiedenen alternativen Ausführungsformen
der Erfindung, die in Bezug auf die 1 und 2 beschrieben
worden sind, angepaßt
werden.
-
In
das Verfahren 300 wird in Schritt 310 eingetreten
und es wird zu Schritt 320 fortgesetzt, wo das Quellformat
eines empfangenen Videostroms bestimmt wird. Das Quellformat wird
bestimmt in Bezug auf z.B. die formatanzeigende Information, die
dem Controller 130 über
das Kopfzeilendatensignal HD bereitgestellt wird, wie oben beschrieben.
Das Verfahren 300 setzt dann mit Schritt 330 fort.
-
In
Schritt 330 bestimmt der Controller die Verarbeitungsressourcen,
die notwendig sind, um einen Videostrom mit dem Quellformat, das
in Schritt 320 bestimmt worden ist, zu verarbeiten. Das
heißt,
der Controller 130 bestimmt, welche Verarbeitungsressourcen
der IDCT-Funktion 122 zugewiesen werden sollen, welche Verarbeitungsressourcen
der Interpolationsfunktion 126 zugewiesen werden sollten
und optional, welche Verarbeitungsressourcen der Block-in-Abtastzeilen-Umwandlungsfunktion 128 zugewiesen
werden sollten. Beispielsweise erfordert ein SDTV-Videostrom weniger
IDCT-Ressourcen verglichen mit einem HDTV-Videostrom aufgrund der
reduzierten Anzahl von zu verarbeitenden DCT-Koeffizienten. Jedoch
erfordert, wie vorher beschrieben, ein SDTV-Videostrom die Hochkonversion
oder die Interpolation, um einen Anzeigebereich einer HDTV-Anzeigevorrichtung
vollständig
auszunutzen. In gleicher Weise wird im Falle eines HDTV-Videostroms, der
als Eingangsvideostrom IN bei einem System, das ein HDTV-natives
Anzeigeformat oder ein natives Videoverarbeitungsformat einsetzt,
empfangen wird, eine große
Menge der Verarbeitungsressourcen der IDCT-Funktion 122 des
zuweisbaren Prozessors 120 zugewiesen. In dem Fall eines
Eingangsvideostroms IN, der ein Bild kleinerer Auflösung (z.B.
ein 480 Zeilen- oder 720 Zeilen-Bild) aufweist, werden zuweisbare
Verarbeitungsressourcen, die ausreichend sind, um die reduzierte
Anzahl von DCT-Koeffizienten, die mit solch einem Bild reduzierter
Auflösung
verknüpft
sind, der IDCT-Funktion 122 zugewiesen. Einige oder alle
der verbleibenden zuweisbaren Verarbeitungsressourcen 120 werden
der Interpolationsfunktion 126 und optional der Block-zu-Abtastzeilen-Umwandlungsfunktion 128 zugewiesen.
Das Verfahren 300 setzt dann mit Schritt 340 fort.
-
In
Schritt 340 werden die zuweisbaren Verarbeitungsressourcen
des zuweisbaren Prozessors 120 zwischen der IDCT-Funktion 122 und
der Interpolationsfunktion 126 entsprechend der Bestimmung,
die in Schritt 330 durchgeführt wurde, zugewiesen. Das
Verfahren 300 setzt dann mit Schritt 350 fort.
-
In
Schritt 350 wird der Bitstrom verarbeitet. Das heißt, der
DCT-Koeffizientenblock, der gegenwärtig in dem Blockspeichermodul 114 gespeichert
ist, wird von der IDCT-Funktion 122 und möglicherweise
von der Interpolationsfunktion 126 des zuweisbaren Prozessors 120 verarbeitet,
um einen resultierenden Pixelblock zu erzeugen. Der resultierende
Pixelblock wird mit der Summierfunktion 124 als Videostrom
S4 in der vorher beschriebenen Art und Weise verbunden. Die Routine
setzt dann optional mit Schritt 360 fort.
-
Bei
dem optionalen Schritt 360 wird eine Abfrage durchgeführt, ob
ein Formatveränderungspunkt
innerhalb des Eingangsvideostroms erreicht wurde. Das heißt, eine
Abfrage wird durchgeführt,
ob eine Sequenzkopfzeile, der Beginn eines I-Frames oder ein anderer
Punkt innerhalb des Eingangsstroms, der geeignet ist für die Verwendung
eines Formatveränderungspunktes,
erreicht wurde. Das Format kann verändert werden, wenn beispielsweise
ein Tuner/Demodulatorpaar (nicht gezeigt) oder ein Transportstromdemultiplexer (nicht
gezeigt) dazu gebracht wurde (über
beispielsweise Benutzermanipulation einer Fernsteuerungseinrichtung),
einen neuen Videoeingangsstrom IN mit einem Format als dem gegenwärtigen Videoeingangsstrom
IN mit dem MPEG-artigen Decoder 100 (oder 200)
von 1 (oder 2) zu verbinden.
Falls die Abfrage in Schritt 360 negativ beantwortet wird,
setzt die Routine mit Schritt 350 fort, wo der Bitstrom
fortgesetzt verarbeitet wird (d.h. der nächste Block wird verarbeitet).
Falls die Abfrage in Schritt 360 bestätigend beantwortet wird, setzt
die Routine mit dem optionalen Schritt 370 fort.
-
Bei
dem optionalen Schritt 370 wird eine Abfrage durchgeführt, ob
es eine tatsächliche
Formatveränderung
in dem Eingangsvideostrom gab. Falls die Abfrage in Schritt 370 negativ
beantwortet wird, setzt die Routine mit Schritt 350 fort,
wo der Bitstrom weiter verarbeitet wird (d.h. der nächste Block
wird verarbeitet). Falls die Abfrage in Schritt 360 bestätigend beantwortet
wird, setzt die Routine mit Schritt 330 fort, wo eine Bestimmung
der notwendigen Ressourcen, um den Eingangsvideostrom zu verarbeiten,
entsprechend dem neuen Format berechnet wird. Die Schritte 360 und 370 können in
vielen Fällen
ignoriert werden, z.B. wo die Gesamtroutine 300 automatisch
durchgeführt
wird, jedesmal, wenn ein neuer Kanal ausgewählt wird.
-
In
einer Ausführungsform
der Erfindung wird die Zuweisung der Verarbeitungsressourcen verwirklicht unter
Verwendung von Softwareimplementierungen von einer oder mehreren
der inver sen diskreten Kosinustransformationsfunktion (IDCT) 122,
der Summierfunktion 124, der Interpolationsfunktion 126 und
der Block-in-Abtastzeilen-Konvertierungsfunktion 128, die
oben in Bezug auf den zuweisbaren Prozessor 120 beschrieben
wurden. In dieser Ausführungsform
werden alle Funktionen, die zuzuweisen sind (z.B. die IDCT-Funktion 122 und
die Interpolationsfunktion 126), mit einer Mehrzahl von
Softwareroutinen verknüpft. Jede
der Mehrzahl von Softwareroutinen weist sich selbst bei der Ausführung eine
geeignete Menge der Verarbeitungsressourcen zu.
-
Beispielsweise
wird eine IDCT-Funktionssoftwareroutine, die mit dem Quellvideoformat
(z.B. dem empfangenen Videoformat) verknüpft ist, ausgeführt, um
die DCT-Koeffizientenblöcke
in Pixelblöcke
umzuwandeln. In gleicher Weise wird eine Interpolationsfunktionssoftwareroutine,
die mit dem Quellvideoformat und dem Ausgangsvideoformat (z.B. dem
nativen Format einer Anzeigevorrichtung) verknüpft ist, ausgeführt, um die
Größe der Pixelblöcke, die
mit der Block-zu-Abtastzeilen-Konvertierungsfunktion 128 verbunden
werden, anzupassen. Jede der ausgeführten IDCT-Funktions- und Interpolationsfunktionssoftwareroutinen
weist sich selbst eine geeignete Menge der Verarbeitungsressourcen
mit der Ausführung
zu. Die Gesamtmenge der Rechen- und anderer Ressourcen, die von
den verschiedenen Softwareroutinen reserviert werden, werden dazu neigen,
sich etwas auszugleichen, da die Routinen ausgewählt werden basierend auf den
Quell- und Ausgangsvideoformaten und konstruiert sind, um nur die
notwendige Menge von Ressourcen zuzuweisen und diese Ressourcen
in einer umgekehrt proportionalen Art und Weise reservieren (d.h.
die IDCT-Funktionsressourcenanforderung
neigt dazu, reduziert zu werden, wenn die Interpolationsressourcen
dazu neigen, erhöht
zu werden). Somit kann die Softwarezuweisung von Ressourcen einer
Vektorverarbeitung, einem Mehrfachprozessor oder einer anderen zuweisbaren
Rechenarchitektur mit Vorteil verwendet werden, um die Erfindung auszuüben.
-
In
einer Ausführungsform
der Erfindung ist die Menge der Verarbeitungsressourcen, die ein
oder mehreren inversen diskreten Kosinustransformationsfunktionen
(IDCT) 122, der Summierfunktion 124, der Interpolationsfunktion 126 und
der Block-zu-Abtastzeilen-Konvertierungsfunktion 128 bereitgestellt
wird, im wesentlichen fixiert. Dies wird verwirklicht durch Auswählen eines
Zwischenvideoformats für
das Verarbeiten und Zuweisen der verschiedenen Ressourcen basierend
auf dem Zwischenvideoformat. Auf diese Art und Weise ist die Zuweisung
der Verarbeitungsressourcen und des Speichers zwischen den verschiedenen
Funktionen konstant. Diese Zuweisung kann durchgeführt werden
z.B. in einer Fabrik oder mit Einschalten eines Videodecoders gemäß der Erfindung.
-
Der
MPEG-artige Decoder 100 von 1 weist
einen oder mehrere integrierte Schaltkreise auf, die in einer Art
und Weise konstruiert sind, die die steuerbare Zuweisung der Vektorverarbeitung
oder anderer arithmetischer und/oder logischer Verarbeitungsressourcen
zu den IDCT- und Interpolationsoperationen erlaubt, wie dies durch
die Kombination von anschaulich übertragenem
Videoformat und nativem Anzeigeformat erfordert wird. Von einem
praktischen Gesichtspunkt aus kann die Zuweisung von Ressourcen,
wie z.B. Vektorverarbeitungsressourcen, einen leichten Anstieg im
Zwischenspeicher erfordern, da der interpolierte (d.h. aufwärts konvertierte)
Pixelblock (z.B. ein 8 × 12-
oder 8 × 18-Pixelblock)
mehr Pixel enthalten wird als der ursprüngliche Pixelblock (z.B. ein
8 × 8-Pixelblock).
Das Nettoergebnis des Reduzierens der arithmetischen Ressourcen
und des Erhö hens
der Speicheranforderungen wird ein Nettoabfall in dem Halbleitergebiet
sein, das benötigt
wird, um die erforderliche Videodecoderfunktionalität auf einem
integrierten Schaltkreis zu implementieren. Das heißt, durch
Adaptieren der IDCT-Ressourcen, so daß diese Ressourcen reduziert
werden abhängig
von dem Format des Eingangsbildes, selbst auf Kosten eines kleinen
zusätzlichen
Speichers, wird das gesamte Halbleiter-"Grundstück", das notwendig ist, um den integrierten
Schaltkreis zu implementieren, reduziert, was zu einer wesentlichen
Einsparung führt
und zu höheren
Gewinnen führt
aufgrund z.B. einer reduzierten Komplexität und einer kleineren Rohchipgröße.
-
Obgleich
verschiedene Ausführungsformen,
die die Lehren der vorliegenden Erfindung verwirklichen, gezeigt
und im Detail hier beschrieben wurden, kann der Fachmann leicht
viele andere variierte Ausführungsformen
ableiten, die immer noch diese Lehren verwirklichen.