DE69909880T2 - Dekodierung eines komprimierten digitalen Bildsignals - Google Patents

Dekodierung eines komprimierten digitalen Bildsignals Download PDF

Info

Publication number
DE69909880T2
DE69909880T2 DE1999609880 DE69909880T DE69909880T2 DE 69909880 T2 DE69909880 T2 DE 69909880T2 DE 1999609880 DE1999609880 DE 1999609880 DE 69909880 T DE69909880 T DE 69909880T DE 69909880 T2 DE69909880 T2 DE 69909880T2
Authority
DE
Germany
Prior art keywords
scaled
blocks
dct
block
resolution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE1999609880
Other languages
English (en)
Other versions
DE69909880D1 (de
Inventor
Shipeng Li
Keren Hu
Dinei Afonso Ferreira Florencio
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sarnoff Corp
Motorola Solutions Inc
Original Assignee
Sarnoff Corp
Motorola Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/160,789 external-priority patent/US6310919B1/en
Application filed by Sarnoff Corp, Motorola Inc filed Critical Sarnoff Corp
Publication of DE69909880D1 publication Critical patent/DE69909880D1/de
Application granted granted Critical
Publication of DE69909880T2 publication Critical patent/DE69909880T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4084Transform-based scaling, e.g. FFT domain scaling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/16Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter for a given display mode, e.g. for interlaced or progressive display mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • H04N19/428Recompression, e.g. by spatial or temporal decimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding

Description

  • Die Erfindung betrifft die Decodierung komprimierter Bildinformation. Anschauliche Ausführungsformen der Erfindung betreffen ein Verfahren und eine Vorrichtung für die Größenänderung von Bild- und Bewegungsvektorinformation in einem Informationsstromdecoder, wie z. B. einem MPEG-artigen Videodecoder.
  • Die Erfindung betrifft im allgemeinen Kommunikationssysteme und insbesondere betrifft die Erfindung ein Verfahren und eine Vorrichtung für die Größenänderung eines Bildes und einer Bewegungsvektorinformation in einem Informationsstromdecoder, wie z. B. einem MPEG-artigen Videodecoder.
  • TECHNISCHER HINTERGRUND DER OFFENBARUNG
  • In einigen Kommunikationssystemen werden die zu übertragenden Daten komprimiert, so daß die verfügbare Bandbreite effizienter verwendet wird. Beispielsweise hat die Moving Pictures Experts Group (MPEG) mehrere Standards betreffend Zuführungssysteme für digitale Daten verbreitet. Der erste, bekannt als MPEG-1, bezieht sich auf die ISO/IEC-Standards 11172. Der zweite, bekannt als MPEG-2, bezieht sich auf die ISO/IEC-Standards 13818. Ein komprimiertes digitales Videosystem wird umschrieben in dem digitalen Fernsehstandarddokument A/53 des Advanced Television Systems Committee (ATSC).
  • Die oben erwähnten Standards beschreiben Datenverarbeitungs- und -manipulationstechniken, die gut geeignet sind für die Komprimierung und die Bereitstellung von Video-, Audio- und anderer Information unter Verwendung von digitalen Kommunikationssystemen fester oder variabler Länge. Die oben erwähnten Standards und andere "MPEG-artige" Standards und Techniken komprimieren insbesondere beispielsweise Videoinformation unter Verwendung von Intra-Einzelbildcodiertechniken (wie z. B. die Lauflängencodierung, die Huffman-Codierung und dergleichen) und der Intereinzelbildcodiertechniken (wie z. B. die prädiktive Vorwärts- und Rückwärtscodierung, die Bewegungskompensation und dergleichen). Ausdrücklich gesagt werden im Falle der Videoverarbeitungssysteme MPEG und MPEG-artige Videoverarbeitungssysteme gekennzeichnet durch die prädiktionsbasierte Kompressionscodierung von Videoeinzelbildern mit oder ohne Intra- und/oder Intereinzelbildbewegungskompensationscodierung.
  • Das Dokument Shih-Fu Chang et al.: "MANIPULATION AND COMPOSITING OF MC-DCT COMPRESSED VIDEO", IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, Band 13, Nr. 1, 1. Januar 1995 (1995-01-01), S. 1–11, beschreibt, daß das zweidimensionale getrennte lineare Filtern in dem DCT-Raum durchgeführt werden kann, z. B. in der horizontalen Richtung durch Multiplikation mit nachgeordneten Matrizen, wobei die Anzahl von Beiträgen von Eingangsbilderblöcken von der Länge des Filterkerns abhängt.
  • In einem typischen MPEG-Decoder werden prädiktiv codierte Pixelblöcke (d. h. Blöcke, die einen oder mehrere Bewegungsvektoren und eine Restfehlerkomponente aufweisen) in Bezug auf ein Referenzeinzelbild (d. h. ein Ankereinzelbild) decodiert. Das Ankereinzelbild ist in einem Ankereinzelbildspeicher innerhalb des Decoders, typischerweise einem Dualeinzelbildspeicher, abgelegt. Wenn jeder Block eines Ankereinzelbildes decodiert wird, wird der decodierte Block mit einem ersten Abschnitt des Dualeinzelbildspeichers verbunden. Wenn ein gesamtes Ankereinzelbild decodiert wurde, werden die decodierten Blöcke, die im ersten Abschnitt des dualen Einzelbildspeichers gespeichert sind, mit einem zweiten Abschnitt des dualen Einzelbildspeichers verbunden. Der zweite Abschnitt des dualen Einzelbildspeichers wird somit verwendet, um das letzte vollständige Ankereinzelbild zu speichern, das wiederum von einem Bewegungskompensationsabschnitt des Decoders als das Referenzeinzelbild für das Decodieren prädiktiv codierter Blöcke verwendet wird.
  • Um die Speichermenge zu reduzieren, die erforderlich ist, um den obigen Ankereinzelbildspeicher zu implementieren, ist es bekannt, das Ankereinzelbild vor der Speicherung in dem Ankereinzelbildspeicher zu komprimieren (d. h. in der Größe zu verändern). Um die genaue Vorhersage unter Verwendung solch einer größenveränderten Referenzbildinformation sicherzustellen, ist es notwendig, die Vorhersagebewegungsvektoren, die die in der Größe veränderte Referenzbildinformation verwenden werden, entsprechend in der Größe zu verändern. Gegenwärtige Anordnungen, die solch ein Resizing bzw. eine Größenänderung der Bilder und der hiermit verknüpften Bewegungsvektorinformation bereitstellen, führen nicht unter allen Bedingungen zu zufriedenstellenden Ergebnissen. Genauer gesagt arbeiten vorliegende Anordnungen in Anwesenheit von feldprädiktionscodierten Makroblöcken einschließlich Inter-Feldbewegungsvektoren nicht richtig.
  • Man sieht daher, daß es wünschenswert ist, ein Verfahren und eine Vorrichtung bereitzustellen, die den Speicher und die Speicherbandbreite, der bzw. die erforderlich ist, um ein Videobild zu decodieren, signifikant reduziert, während im wesentlichen die Qualität eines resultierenden Videobildes in voller Auflösung oder in der Größe verringert im wesentlichen beibehalten wird. Genauer gesagt sieht man, daß es wünschenswert ist, solch eine Reduktion im Speicher und in der Speicherbandbreite bereitzustellen, selbst in der Anwesenheit von feldprädiktiven codierten Makroblöcken.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ein Aspekt der Erfindung stellt ein Verfahren zum Decodieren eines komprimierten Informationsstroms, der vorhergesagte Pixelblöcke beinhaltet, zur Verfügung, wobei die vorhergesagten Pixelblöcke mit einem oder mehreren skalierten Referenzpixelblöcken über eine jeweilige skalierte Bewegungsvektorinformation verknüpft sind, wobei das Verfahren die Schritte aufweist des Adaptierens bzw. Anpassens einer ersten Auflösung eines skalierten Referenzpixelblockes an eine zweite Auflösung der skalierten Bewegungsvektorinformation, wobei der Adaptionsschritt das Filtern des skalierten Referenzpixelblockes beinhaltet unter Verwendung eines diskreten Kosinustransformationsfilters (DCT).
  • Ein anderer Aspekt der Erfindung stellt ein Verfahren zum Decodieren eines komprimierten Bildstroms zur Verfügung, um einen dekomprimierten und skalierten Bildstrom zu erzeugen, wobei der komprimierte Bildstrom vorhergesagte und nicht vorhergesagte bildrepräsentative Blöcke bein haltet, wobei jeder der vorhergesagten und nicht vorhergesagten bildrepräsentativen Blöcke mit einem DCT-Koeffizientenblock verknüpft ist, wobei jeder der vorhergesagten bildrepräsentativen Blöcke mit zumindest einem Bewegungsvektor verknüpft ist, wobei das Verfahren die Schritte aufweist: Skalieren von jedem der Bildrepräsentationsblöcke entsprechend einem horizontalen Skalierungsfaktor, um jeweilige horizontal skalierte Pixelblöcke zu bilden, und Skalieren einer horizontalen Komponente von jedem der Bewegungsvektoren entsprechend dem horizontalen Skalierungsfaktor, um skalierte Bewegungsvektoren zu erzeugen.
  • Ein weiterer Aspekt der Erfindung stellt eine Vorrichtung zur Verfügung, die aufweist: einen Decoder für die Decodierung von codierten Referenzpixelblöcken, einen Pixelprozessor für das Empfangen von decodierten Referenzpixelblöcken und das Erzeugen von jeweiligen skalierten Referenzpixelblöcken aus diesen, wobei diese entsprechend einem Skalierungsfaktor skaliert sind, einen Bewegungsvektorprozessor für das Empfangen von Bewegungsvektorinformation, die mit einem vorhergesagten Pixelblock verknüpft ist, und für das Erzeugen eines skalierten Bewegungsvektors aus dieser Information entsprechend dem Skalierungsfaktor, und einem Interpolator für die Interpolation zusätzlicher Pixel innerhalb der besagten skalierten Referenzpixelblöcke, um interpolierte Pixelblöcke zu bilden, wobei die interpolierten Pixelblöcke und der skalierte Bewegungsvektor im wesentlichen ähnliche Auflösungen haben.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Die Lehren der vorliegenden Erfindung können leicht verstanden werden durch Betrachtung der folgenden detaillierten Beschreibung in Verbindung mit den begleitenden Zeichnungen, in denen:
  • 1 ein Blockdiagramm eines MPEG-artigen Decoders auf hoher Ebene darstellt,
  • 2 ein Flußdiagramm eines Bewegungsvektorskalierungsverfahrens darstellt, das für die Verwendung in dem MPEG-artigen Decoder von 1 geeignet ist,
  • 3A und 3B Flußdiagramme von Blldkomprimierungsverfahren sind, die für die Verwendung in dem MPEG-artigen Decoder von 1 geeignet sind,
  • 4A eine graphische Darstellung eines 8 × 8 nicht verzahnten (not interlaced) Pixelblockes mit einem verknüpften Einzelbildvorhersagemodusbewegungsvektor ist,
  • 4B eine graphische Beschreibung einer skalierten Version des nicht verzahnten 8 × 8-Pixelblockes und des verknüpften Bewegungsvektors von 4A ist,
  • 5A eine graphische Darstellung eines verzahnten (interlaced) 8 × 8-Pixelblockes mit einem verknüpften Feldprädiktionsmodusbewegungsvektor ist,
  • 5B eine graphische Beschreibung einer skalierten Version des verzahnten 8 × 8-Pixelblockes und des verknüpften Bewegungsvektors von 5A ist,
  • 6 ein High-Level-Blockdiagramm einer alternativen Ausführungsform eines MPEG-artigen Decoders darstellt,
  • 7 ein Flußdiagramm eines DCT-basierten Interpolationsfilterverfahrens darstellt,
  • 8 eine Ausführungsform eines Interpolators darstellt, der für die Verwendung in dem MPEG-artigen Decoder von 6 geeignet ist,
  • 9 eine alternative Ausführungsform eines MPEG-artigen Decoders darstellt,
  • 10A und 10B Resizingverfahren (Größenänderungsverfahren) darstellen, die für die Verwendung in dem MPEG-artigen Decoder von 9 geeignet sind, und
  • 11 ein Flußdiagramm eines Komprimierungsverfahrens darstellt, das für die Verwendung in dem MPEG-artigen Decoder von 9 geeignet ist.
  • Um das Verständnis zu erleichtern, wurden identische Bezugszeichen verwendet, wo möglich, um identische Elemente, die in den Figuren gleich sind, zu bezeichnen.
  • DETAILLIERTE BESCHREIBUNG
  • Die Erfindung wird illustrativ anhand eines MPEG-2-Videodecoders im Kontext eines Videodecoders beschrieben. Es versteht sich jedoch für den Fachmann, daß die Erfindung bei jedem videoverarbeitenden System, einschließlich denjenigen Systemen, die an DVB, MPEG-1, MPEG-2 und andere Informationsströme angepaßt sind, angewendet werden kann. Die Erfindung ist insbesondere gut geeignet bei Systemen, die die Enter-Feldbewegungsvektorvorhersage benutzen.
  • Genauer gesagt wird die Erfindung hauptsächlich innerhalb des Kontexts eines MPEG-artigen Decodiersystems beschrieben, das einen komprimierten Videoinformationsstrom IN empfängt und decodiert, um einen Videoausgangsstrom OUT zu erzeugen. Die Erfindung arbeitet, um Speicher- und Speicherbandbreitenanforderungen in dem MPEG-artigen Decoder zu reduzieren durch Komprimieren von Bildinformation vor der Speicherung, so daß ein Informationseinzelbild z. B. durch ein Bewegungskompensationsmodul des Decoders mit reduzierter Auflösung gespeichert und im folgenden verwendet wird. Die Erfindung verarbeitet die Bewegungsvektorinformation in einer Art und Weise, die mit der Kompressionsmenge konsistent ist, die einem vorhergesagten Bildinformationseinzelbild erteilt wird, und konsistent ist mit dem Typ der Vorhersage, die bei dem Bilden des vorhergesagten Informationseinzelbildes eingesetzt wird.
  • Es sei bemerkt, daß der Begriff Skalierungsfaktor beabsichtigt, die Begriffe horizontaler Skalierungsfaktor und vertikaler Skalierungsfaktor zu beinhalten. Ein horizontaler Parameter, der mit einem Skalierungsfaktor modifiziert wird, wird somit tatsächlich durch einen horizontalen Skalierungsfaktor (oder eine Skalierungsfaktorkomponente) modifiziert.
  • 4A ist eine graphische Darstellung eines nicht verzahnten 8 × 8-Pixelblockes mit einem verknüpften Einzelbildvorhersagemodusbewegungsvektor. 4B ist eine graphische Darstellung einer skalierten Version (vertikaler Skalierungsfaktor und horizontaler Skalierungsfaktor von 2) des nicht verzahnten 8 × 8-Pixelblockes (d. h. ein nicht verzahnter 4 × 4-Pixelblock) und ein verknüpfter Bewegungsvektor von 4A. Der Bewegungsvektor, der mit dem 8 × 8-Pixelblock von 4A verknüpft ist, hat eine horizontale Verschiebung von 3,5 Pixeln und eine vertikale Verschiebung von vier Zeilen. Der entsprechend skalierte Bewegungsvektor von 4B hat passend eine horizontale Verschiebung von 1,75 Pixeln und eine vertikale Verschiebung von zwei Zeilen. Somit wurde sowohl das Pixel als auch die Bewegungsvektorinformation den Darstellungen von 4A und 4B passend skaliert.
  • Wie oben unter Bezug auf 4A und 4B dargestellt ist, wird, wenn der einzige Prädiktionsmodus ein Einzelbildprädiktionsmodus ist, dann derselbe vertikale Skalierungsfaktor SFV und derselbe horizontale Skalierungsfaktor SFH verwendet, um die Referenzpixelblöcke und die Bewegungsvektoren, die verwendet werden, um den vorhergesagten Pixelblock unter Verwendung der skalierten Referenzblöcke (z. B. durch das Bewegungskompensationsmodul 116 von 1) zu bilden, skaliert.
  • 5A ist eine graphische Darstellung eines nicht verzahnten 8 × 8-Pixelblockes mit einem verknüpften Feldprädiktionsmodusbewegungsvektor. 5B ist eine graphische Beschreibung einer skalierten Version (Skalierungsfaktor = 2) des nicht verzahnten 8 × 8-Pixelblockes (d. h. ein verzahnter 4 × 4-Pixelblock) und des verknüpften Bewegungsvektors von 5A. Der Bewegungsvektor, der mit dem 8 × 8-Pixelblock von 5A verknüpft ist, weist einen (0, 0)-Bewegungsvektor auf. Das heißt, der Bewegungsvektor zeigt von der ersten Zeile in dem ersten Feld zu der ersten Zeile in dem zweiten Feld. Weiterhin wird, da der Bewegungsvektor als ein (0, 0)-Bewegungsvektor codiert ist, eine simple Skalierung des Bewegungsvektors zu einem Wert von Null führen. Das heißt, der resultierende skalierte Bewegungsvektor wird ebenso ein (0, 0)-Bewegungsvektor sein.
  • Wenn der skalierte (0, 0)-Bewegungsvektor verwendet wird, um die Bewegung eines skalierten Makroblocks vorherzusagen, wird die resultierende Vorhersage nicht korrekt sein. Dies liegt daran, daß der skalierte Bewegungsvektor von der ersten Zeile in dem ersten Feld zu der ersten Zeile in dem zweiten Feld zeigen wird. Da jedoch der Makroblock skaliert wurde, ist es wahrscheinlich, daß der Bewegungsvektor zu einer anderen Zeile zeigen sollte.
  • In 5B (eine 2 : 1 skalierte Version von 5A) wurde die Pixelrauminformation passend skaliert, der (0, 0)-Bewegungsvektorwert stellt jedoch eine nicht korrekte vertikale Verschiebung des Bewegungsvektors dar. Falls er geeignet interpoliert wird, würde der skalierte Bewegungsvektorwert zu einem Bewegungsvektor führen, der ein halbes Pel bzw. Pixel oberhalb der ersten Zeile des zweiten Feldes zeigt. Da jedoch ein (0, 0)-Bewegungsvektor skaliert wurde, was zu einem (0, 0)-Bewegungsvektor führt, zeigt der skalierte Bewegungsvektor zu der ersten Zeile in dem zweiten Feld. Somit wurde bei dem Versuch, den Bewegungsfaktor mit einem Faktor von Zwei zu skalieren, der vertikale Verschiebungsparameter des Bewegungsvektors effektiv verdoppelt. Der skalierte Bewegungsvektor als solches ist nicht geeignet für die skalierte Pixelinformation. Alle Vorhersagen, die diesen Bewegungsvektor verwenden, werden als solche zu beispielsweise nicht gewünschten visuellen Artefakten mit der Darstellung der decodierten Bilder führen.
  • Vor dem Hintergrund der vorherigen Diskussion kann leicht verstanden werden, daß im Falle der Inter-Feldbewegungsvektorvorhersage, der "Teile-durch-Zwei"-Ansatz oder allgemeiner der "Skaliere-Bewegungsvektoren-wie-die-Pixelinformation-skaliert-ist"-Ansatz zu einer vertikalen Verschiebung führt, die proportional zu dem verwendeten vertikalen Skalierungsfaktor SFV ist und die von der Parität des Quell- und Zielfeldes abhängt. Das heißt im Fall der 2 : 1-Komprimierung, wie z. B. in den 5A und 5B dargestellt ist, daß ein Einzeilenshift des "tatsächlichen" Bewegungsvek tors auftritt. Dieselbe Verschiebung um einen geeigneten konstanten Faktor wird auftreten, wenn irgendein Bewegungsvektor innerhalb des Kontexts der Inter-Feldbewegungsvektorvorhersage in der Größe verändert wird.
  • Um diese Verschiebung von Bewegungsvektoren, wenn die Zwischen-Feldbewegungsvektorvorhersage verwendet wird, zu kompensieren, benutzt die vorliegende Erfindung einen Skalierungsfaktor, der das Verhältnis zwischen den beiden Abfragedistanzen repräsentiert. Beispielsweise wird im Falle eines vertikalen Skalierungsfaktors SFV von 2 (d. h. 2 : 1 vertikale Komprimierung), der die vertikale Komponente des Bewegungsvektors in der Größe verändert, so daß die geeignete skalierte vertikale Verschiebung des Bewegungsvektors benutzt wird.
  • Es ist wichtig, zu bemerken, daß die vertikale Verschiebung, die oben beschrieben wurde, sich für Bewegungsvektoren, die von oberen Feldern zu unteren Feldem und von Bewegungsvektoren, die von oberen Feldern zu unteren Feldern und von Bewegungsvektoren, die von den unteren Feldern zu den oberen Feldern zeigen, unterscheiden. Das heißt, im Falle eines Bewegungsvektors, der von einem oberen Feld zu einem unteren Feld zeigt, wird ein skalierter Bewegungsvektor eine positive Verschiebung in der vertikalen Verrückung haben. Daher muß für den Fall eines Bewegungsvektors, der von einem oberen Feld zu einem unteren Feld zeigt, zusätzlich zu der Skalierung des Bewegungsvektors gemäß dem Pixelskalierungsfaktor die positive vertikale Verrückung versetzt werden. In gleicher Weise wird im Falle eines Bewegungsvektors, der von einem unteren Feld zu einem oberen Feld zeigt, der skalierte Bewegungsvektor eine negative vertikale Verrückung haben. Daher muß für den Fall eines Bewegungsvektors, der von einem unteren Feld zu einem oberen Feld zeigt, zusätzlich zu der Skalierung des Bewegungsvektors gemäß dem Skalierungsfaktor die negative vertikale Verrückung versetzt werden.
  • 1 stellt eine Ausführungsform eines MPEG-artigen Decoders 100 dar. Genauer gesagt empfängt der Decoder 100 von 1 einen komprimierten Videoinformationsstrom IN und decodiert diesen, um einen Videoausgangsstrom OUT zu erzeugen. Der Videoausgangsstrom OUT ist für die Verbindung zu beispielsweise einem Anzeigetreiberschaltkreis innerhalb der Darstellungseinrichtung (nicht gezeigt) geeignet.
  • Der MPEG-artige Decoder 100 weist ein Eingangspufferspeichermodul 111, ein Modul 112 für die variable Längendecodierung (VLD), ein inverses Quantisierungsmodul (IQ) 113, ein Modul 114 für die inverse diskrete Kosinustransformation (IDCT), einen Summierer 115, ein Bewegungskompensationsmodul 116, ein Ausgangspufferspeichermodul 118, ein Ankereinzelbildspeichermodul 117, einen Pixelprozessor 120 und einen Bewegungsvektorprozessor (MV) 130 auf.
  • Das Eingangspufferspeichermodul 111 empfängt den komprimierten Videostrom IN, der illustrativ als variabler längencodierter Bitstrom gezeigt ist, der z. B. einen High-Definition-Fernsehsignal- (HDTV-) Ausgang oder einen Standard-Definition-Signal- (SDTV-) Ausgang von einem Transportdemultiplexer-/-decoderschaltkreis (nicht gezeigt) darstellt. Das Eingangspufferspeichermodul 111 wird verwendet, um den empfangenen komprimierten Videostrom IN zeitweilig zu speichern, bis das variable Längendecodiermodul 112 bereit ist, die Videodaten für die Verarbeitung zu akzeptieren. Das VLD 112 hat einen Eingang, der mit einem Datenausgang des Eingangspuffer speichermoduls 111 verbunden ist, um die gespeicherten variablen längencodierten Videodaten als Datenstrom S1 abzurufen.
  • Die VLD 112 decodiert die abgerufenen Daten, um einen Bitstrom S2 mit konstanter Länge zu erzeugen, der quantisierte Prädiktionsfehler-DCT-Koeffizienten, einen Bewegungsvektorstrom MV und einen Blockinformationsstrom aufweist. Das IQ-Modul 113 führt eine inverse Quantisierungsoperation auf dem Bitstrom S2 konstanter Länge durch, um einen Bitstrom S3 zu erzeugen, der quantisierte Prädiktionsfehlerkoeffizienten in einer Standardform aufweist. Das IDCT-Modul 114 führt eine inverse diskrete Kosinustransformation auf dem Bitstrom S3 durch, um einen Bitstrom S4 zu erzeugen, der Pixel-pro-Pixel-Vorhersagefehler aufweist.
  • Der Summierer 115 addiert den Pixel-pro-Pixel-Vorhersagefehlerstrom S4 zu einem bewegungskompensierten vorhergesagten Pixelwertstrom S6, der von dem Bewegungskompensationsmodul 116 erzeugt wird. Der Ausgang des Summierers 115 ist somit in der beispielhaften Ausführungsform ein Videostrom S5, der rekonstruierte Pixelwerte aufweist. Der Videostrom S5, der von dem Summierer 115 erzeugt wird, ist mit dem Pixelprozessor 120 und dem Ausgangspufferspeichermodul 118 verbunden.
  • Der Pixelprozessor 120 komprimiert den Videostrom S5 entsprechend dem vertikalen SFV- und dem horizontalen SFH-Skalierungsfaktor, um einen komprimierten Videostrom S5 mit einem Kompressionsverhältnis von 1 : (SFV*SFH) zu erzeugen. Der Pixelprozessor 120 arbeitet auf einer Pixelblock-pro-Pixelblock-Basis (z. B. einen 4 × 4-, einen 4 × 8- oder einen 8 × 8-Pixelblock), um jeden Pixelblock, der ein Ankereinzelbild bildet, zu komprimieren, so daß ein resultierendes komprimiertes Ankereinzelbild dem Ankereinzelbildspeicher als komprimierter Videostrom S5 zur Verfügung gestellt wird. Die Speicheranforderungen des Ankereinzelbildspeichermoduls 117 werden um einen Faktor von SF = SFV*SFH reduziert.
  • In einer Ausführungsform des Pixelprozessors 120 wird ein Pixelblock dadurch komprimiert, daß der Pixelblock einer diskreten Kosinustransformation (DCT) ausgesetzt wird, um einen DCT-Koeffizientenblock zu erzeugen. Ein Teil (typischerweise Koeffizienten hoher Ordnung) des DCT-Koeffizientenblocks wird dann abgeschnitten. Die verbleibenden DCT-Koeffizienten werden dann einer inversen DCT ausgesetzt, um einen Pixelblock mit reduzierter Auflösung zu erzeugen. Die Größe der Reduktion der Auflösung wird durch die Anzahl von verwendeten DCT-Koeffizienten bestimmt, die verwendet werden, um den abgeschnittenen Pixelblock zu rekonstruieren.
  • In einer anderen Ausführungsform des Pixelprozessors 120 wird ein 8 × 8-Pixelblock einem DCT-Prozeß ausgesetzt, um einen entsprechenden 8 × 8-DCT-Koeffizientenblock zu erzeugen. Wenn die Hälfte der DCT-Koeffizienten abgeschnitten wird und die verbleibenden DCT-Koeffizienten einer IDCT-Verarbeitung ausgesetzt werden, dann wird der resultierende Pixelblock näherungsweise die halbe Auflösung (d. h. ein Kompressionsverhältnis von 2 : 1) des ursprünglichen Pixelblockes haben (d. h. ein 4 × 8- oder 8 × 4-Pixelblock). In ähnlicher Weise wird, wenn 3/4 der DCT-Koeffizienten abgeschnitten werden und die verbleibenden DCT-Koeffizienten einer IDCT-Verarbeitung ausgesetzt werden, der resultierende Pixelblock näherungsweise 1/4 der Auflösung (d. h. ein Komprimierungsverhältnis von 4 : 1) des ursprünglichen Pixelblocks haben (d. h. ein 4 × 4-Pixelblock).
  • In einer anderen Ausführungsform des Pixelprozessors 120 wird eine Dezimierung oder ein Subsamplingprozeß verwendet. Das heißt, ein bestimmtes Komprimierungsverhältnis wird erzielt durch selektives Entfernen von Pixeln aus einem Bild, das durch Pixelinformation innerhalb des Videostroms S5 dargestellt wird. Um beispielsweise ein Komprimierungsverhältnis von 4 : 1 eines Bildes zu erzielen, wird jede übernächste Abtastzeile eines Bildes entfernt und jedes übernächste Pixel der verbleibenden Abtastzeilen wird entfernt. In dieser Ausführungsform arbeitet der Pixelprozessors 120, um die Pixelinformation innerhalb des Videostroms S5 zu dezimieren oder zu subsamplen, um den Effekt eines Resizings (d. h. eines Downsizings) des Videobildes, das von den Pixeldaten dargestellt wird, zu bewirken.
  • Das Ankereinzelbildspeichermodul 117 empfängt und speichert den komprimierten Videostrom S5. Mit Vorteil kann die Größe des Ankereinzelbildspeichermoduls 117 um eine Größe reduziert werden, die konsistent mit dem von dem Pixelprozessor 120 verwendeten Kompnmierungsverhältnis ist.
  • Der Bewegungsvektorprozessor 130 empfängt den Bewegungsvektorstrom MV und den Blockinformationsstrom DATA von der VLD 112. Der Bewegungsvektorstrom MV weist Bewegungsvektorinformation auf, die von dem Bewegungskompensationsmodul 116 verwendet wird, um individuelle Makroblöcke basierend auf der Bildinformation vorherzusagen, die in dem Ankereinzelbildspeichermodul abgelegt sind. Da jedoch die Bildinformation, die in dem Ankereinzelbildspeichermodul 117 abgelegt ist, von der Pixelverarbeitungseinheit 120 skaliert wurde, wie oben beschrieben wurde, ist es ebenso notwendig, die Bewegungsvektordaten, die verwendet werden, um die Makroblöcke unter Verwendung der skalierten Pixelinformation vorherzusagen, zu skalieren. Die skalierten Bewegungsvektoren MV sind mit dem Bewegungskompensationsmodul 116 über den Pfad MV' verbunden.
  • Das Bewegungskompensationsmodul 116 greift auf die komprimierten (d. h. skalierten) Bildinformationen zu, die im Speichermodul 117 abgelegt sind, und zwar über den Signalpfad S7' und auf den skalierten Bewegungsvektor (die skalierten Bewegungsvektoren) MV', um einen skalierten vorhergesagten Makroblock zu erzeugen. Das heißt, das Bewegungskompensationsmodul 116 verwendet eines oder mehrere gespeicherte Ankereinzelbilder (z. B. die Pixelblöcke reduzierter Auflösung, die in Bezug auf das letzte I-Einzelbild oder P-Einzelbild des Videosignals erzeugt wurden, das an dem Ausgang des Summierers 115 produziert wird) und den (die) Bewegungsvektoren) MV', die von dem Bewegungsvektorprozessor 130 empfangen werden, um die Werte für jeden einer Vielzahl von skalierten vorhergesagten Makroblöcken zu berechnen, die einen skalierten vorhergesagten Informationsstrom bilden.
  • Jeder skalierte vorhergesagte Makroblock wird dann von dem Bewegungskompensationsmodul 116 oder von einem inversen pixelverarbeitenden Modul (nicht gezeigt), das dem Bewegungskompensationsmodul 116 folgt, in einer Art und Weise verarbeitet, die invers zu der Verarbeitung des Pixelprozessors 120 ist. Beispielsweise führt im Falle des Pixelprozessors 120, der ein Downsampling oder eine Dezimierung des Videostroms S5 durchführt, der von dem Summierer 115 erzeugt wird, das Bewegungskompensationsmodul 116 ein Upsampling oder eine Interpolation des skalierten vorhergesagten Makroblockes durch, um einen vorhergesagten Makroblock mit voller Auflösung zu erzeugen. Jeder der vorhergesagten Makroblöcke voller Auflösung wird dann mit dem Eingang eines Addierers 115 als bewegungskompensierter vorhergesagter Pixelwertstrom S6 eingegeben.
  • Die Operationen des Bewegungsvektorprozesses 130 werden nun unter Bezug auf 2 detaillierter beschrieben. 2 stellt ein Flußdiagramm eines Bewegungsvektorskalierungsverfahrens 200 dar, das für die Verwendung in dem MPEG-artigen Decoder 100 von 1 geeignet ist. Genauer gesagt stellt 2 ein Flußdiagramm eines Bewegungsvektorskalierungsverfahrens 200 dar, das für die Verwendung in dem Bewegungsvektorprozessor 130 des MPEG-artigen Decoders 100 von 1 geeignet ist.
  • Das Bewegungsvektorskalierungsverfahren 200 arbeitet derart, daß es die Bewegungsvektoren, die mit einem vorhergesagten Einzelbild (d. h. einem P-Einzelbild oder einem B-Einzelbild) verknüpft sind, das von dem Bewegungskompensationsmodul 116 verarbeitet wird, zu skalieren. Wie vorher erörtert wurde, ist es notwendig, die mit dem vorhergesagten Makroblock verknüpften Bewegungsvektoren geeignet zu skalieren, um einen vorhergesagten Makroblock unter Verwendung eines solchen Ankereinzelbildes mit reduzierter Auflösung passend zu rekonstruieren. Das Bewegungsvektorskalierungsverfahren 200 skaliert den (die) Bewegungsvektoren) in Antwort auf den vertikalen SFV- und den horizontalen SFH-Skalierungsfaktor, der von dem Pixelprozessor 120 verwendet wird, und in Antwort auf den Typ der Bewegungskompensation (d. h. den Einzelbildmodus, den Intrafeldmodus oder den Interfeldmodus), der ursprünglich verwendet wird, um den vorhergesagten Makroblock zu bilden.
  • Das Bewegungsvektorskalierungsverfahren 200 beginnt in Schritt 205, wenn z. B. ein vorhergesagter Makroblock, der zu decodieren ist, von dem variablen Längendecoder 113 empfangen wird, der in Antwort hierauf einen Bewegungsvektoren) MV und Bewegungsvektormodusinformation DATA aus dem empfangenen Makroblock extrahiert. Der (die) Bewegungsvektoren) MV und die Bewegungsvektormodusinformation DATA ist mit dem Bewegungsvektorprozessor 130 wie vorher beschrieben verbunden. Das Verfahren 200 setzt dann mit Schritt 225 fort.
  • In Schritt 225 wird eine Abfrage durchgeführt, ob der Bewegungsvektor (die Bewegungsvektoren) MV, die mit dem empfangenen Makroblock verknüpft sind, mit einem Feldvorhersagemodus verknüpft sind. Das heißt, eine Abfrage wird durchgeführt, ob die Bewegungsvektormodusinformation DATA die Vorhersagemethodologie, die für den empfangenen Makroblock verwendet wird, als den Feldvorhersagemodus identifiziert. Beispielsweise kann im Falle eines MPEG-2-Makroblocks ein Feldbewegungstypfeld innerhalb eines Kopfzeilenabschnittes des Makroblockes untersucht werden. Wenn die Anfrage in Schritt 225 negativ beantwortet wird, setzt das Verfahren 200 mit Schritt 250 fort. Wenn die Anfrage in Schritt 225 bestätigend beantwortet wird, dann setzt das Verfahren 200 mit Schritt 230 fort.
  • In Schritt 250 werden die vertikale und die horizontale Verschiebungskomponente des empfangenen Bewegungsvektors (der empfangenen Bewegungsvektoren) nach den Gleichungen 1 und 2 (unten) skaliert, in denen:
    MVV die vertikale Verschiebungskomponente des empfangenen Bewegungsvektors ist,
    MVH die horizontale Verschiebungskomponente des empfangenen Bewegungsvektors ist,
    MVVr die skalierte vertikale Verschiebungskomponente des Bewegungsvektors ist,
    MVHr die skalierte horizontale Verschiebungskomponente des Bewegungsvektors ist, und
    SKALIERUNGSFAKTOR der Skalierungsfaktor ist, der z. B. von dem Pixelprozessor 120 verwendet wird, um die Pixelblöcke, die das Referenzeinzelbild bilden, zu skalieren. Im Falle der horizontalen Skalierung ist der SKALIERUNGSFAKTOR gleich dem horizontalen Skalierungsfaktor SVH, während im Falle der vertikalen Skalierung der SKALIERUNGSFAKTOR gleich dem vertikalen Skalierungsfaktor SFV ist.
  • Nach der Skalierung der vertikalen und horizontalen Verschiebungskomponenten des empfangenen Bewegungsvektors (der empfangenen Bewegungsvektoren) nach den Gleichungen 1 und 2 setzt das Verfahren 200 mit Schritt 255 fort. MVVr = MVV × SKALIERUNGSFAKTOR (Gleichung 1) MVHr = MVH × SKALIERUNGSFAKTOR (Gleichung 2)
  • In Schritt 230 wird eine Abfrage durchgeführt, ob die empfangene Bewegungsvektorinformation einen Bewegungsvektor enthält, der von einem oberen Feld zu einem unteren Feld zeigt. Wenn die Abfrage in Schritt 230 negativ beantwortet wird, dann setzt das Verfahren 200 mit Schritt 240 fort. Wenn die Anfrage in Schritt 230 bestätigend beantwortet wird, dann setzt das Verfahren 200 mit Schritt 235 fort, wo die vertikale und horizontale Verschiebungskomponente des (der) empfangenen Bewegungsvektor(s)(en) nach Gleichung 3 (unten) und 2 (oben) skaliert werden. Das Verfahren 200 setzt dann mit dem optionalen Schritt 255 fort. MVVr = [(MVV + 1) × (SKALIERUNGSFAKTOR)] – 1 (Gleichung 3)
  • In Schritt 240 wird eine Abfrage durchgeführt, ob die empfangene Bewegungsvektorinformation einen Bewegungsvektor enthält, der von einem unteren Feld zu einem oberen Feld zeigt. Wenn die Abfrage in Schritt 240 negativ beantwortet wird, dann setzt das Verfahren 200 mit Schritt 250 fort. Wenn die Abfrage in Schritt 240 bestätigend beantwortet wird, dann setzt das Verfahren 200 mit Schritt 245 fort, wo die vertikale und horizontale Verschiebungskomponente des empfangenen Bewegungsvektors (der empfangenen Bewegungsvektoren) nach Gleichung 4 (unten) und 2 (oben) skaliert werden. Das Verfahren 200 setzt dann mit dem optionalen Schritt 255 fort. MVVr = [(MVV – 1) × (SKALIERUNGSFAKTOR)] + 1 (Gleichung 4)
  • Bei dem optionalen Schritt 255 werden die skalierten vertikalen (MVVr) und horizontalen (MVHr) Verschiebungskomponenten des (der) empfangenen Bewegungsvektor(s)(en) abgeschnitten, um z. B. die halbe Pel-Auflösung eines MPEG-artigen Decodiersystems zu erfüllen. Alternativ kann der MPEG-artige Decoder die erhöhte Auflösung der Bewegungsvektoren halten durch Verwenden eines feineren Prädiktionsgitters oder Koordinatensystems. Das Verfahren 200 setzt dann mit Schritt 220 fort, um den nächsten vorhergesagten Pixelblock von dem VLD 112 zu erwarten.
  • 3A stellt ein Pixelskalierungsverfahren 300A dar, das für die Verwendung in dem Pixelprozessor 120 von 1 geeignet ist. In das Pixelskalierungsverfahren wird in Schritt 305 eingetreten, wenn ein Pixelblock, der als 8 × 8-Pixelblock dargestellt ist, von dem Pixelprozessor 120 über den Videostrom S5 empfangen wird. Das Verfahren 300A setzt dann mit Schritt 310 fort, wo eine diskrete Kosinustransformation (DCT) auf dem empfangenen Pixelblock durchgeführt wird. Beispielsweise wird im Falle eines 8 × 8-Pixelblockes eine zweidimensionale DCT (oder eine Mehrzahl von eindimensionalen DCTs) auf dem empfangenen Pixelblock durchgeführt, um einen 8 × 8-DCT-Koeffizientenblock zu erzeugen. Das Verfahren 300A setzt dann mit Schritt 315 fort.
  • In Schritt 315 wird eine Mehrzahl von DCT-Koeffizienten durch den vertikalen SFV- und den horizontalen SFH-Skalierungsfaktor abgeschnitten. Beispielsweise werden im Falle eines vertikalen Skalierungsfaktors SFV von 2 und eines horizontalen Skalierungsfaktors SFH von 2 (d. h. eine 4 : 1-Komprimierung) die vertikalen und horizontalen DCT-Koeffizienten höherer Ordnung abgeschnitten (d. h. die oberen 3/4 der DCT-Koeffizienten). Das Verfahren 300A setzt dann mit Schritt 320 fort.
  • In Schritt 320 wird eine inverse DCT auf den verbleibenden DCT-Koeffizienten durchgeführt, um einen rekonstruierten Pixelblock zu erzeugen, der eine Untergruppe der Pixelinformation innerhalb des empfangenen Pixelblocks aufweist. Beispielsweise werden im Falle eines 8 × 8-Pixelblocks, der eine 2 : 1-Komprimierung erfährt, die 32 DCT-Koeffizienten, die die höhere vertikale oder die horizontale Ortsfrequenzinformation des empfangenen Pixelblocks darstellt, in Schritt 315 abgeschnitten. Die verbleibenden 32 DCT-Koeffizienten sind der IDCT-Verarbeitung in Schritt 320 ausgesetzt, um einen 32-Pixelblock (d. h. einen 4 × 8- oder 8 × 4-Pixelblock) zu erzeugen. Im Falle einer 4 : 1-Komprimierung eines empfangenen 8 × 8-Pixelblocks, wo alle DCT-Koeffizienten außer den 16 DCT-Koeffizienten niedriger Frequenz abgeschnitten werden, sind die 16 DCT-Koeffizienten, die die untere vertikale und horizontale Ortsfrequenzinformation des empfangenen Pixelblocks darstellen, einer inversen DCT-Verarbeitung ausgesetzt, um einen 4 × 4-Pixelblock zu erzeugen. Das Verfahren 300A setzt dann mit Schritt 325 fort, wo es beendet wird.
  • 3B stellt eine alternative Ausführungsform der Pixelskalierungsmethode 300 des Pixelprozessors 120 dar. Genauer gesagt wird in das Verfahren 300B von 3B in Schritt 330 eingetreten, wenn ein Pixelblock von dem Pixelprozessor 120 empfangen wird. Das Verfahren 300B setzt mit Schritt 333 fort, wo der empfangene Pixelblock tiefpassgefiltert wird, und weiter mit Schritt 335, wo der empfangene Pixelblock dezimiert wird oder subgesamplet wird entsprechend dem vertikalen Skalierungsfaktor SFV und dem horizontalen Skalierungsfaktor SFH, um ein geeignetes Komprimierungsverhältnis zu erzielen. Beispielsweise werden Pixel und/oder Zeilen von Pixeln aus dem Video informationsstrom S5 gelöscht, um einen reduzierten (d. h. komprimierten) Pixelvideostrom S5' zu erzeugen.
  • Wie oben unter Bezug auf das Bewegungsvektorskalierungsverfahren 200 von 2 erörtert wurde, ist es notwendig, die Auflösung der skalierten Bewegungsvektoren an die Auflösung (d. h. die Gittergröße) der Referenzpixelinformation, die von dem Bewegungskompensationsmodul 160 verwendet wird, anzupassen. Beispielsweise wird im Falle der Skalierung der Pixel und der verknüpften Bewegungsvektorinformation um 1/2 die nominelle 1/2-Pel-Auflösung der Bewegungsvektoren zu einer 1/4-Pel-Auflösung. Das vorhergesagte Gitter, das mit der halb skalierten Pixelinformation verknüpft ist, wird jedoch nicht feiner. Die zusätzliche Auflösung der skalierten Bewegungsvektoren wird somit nicht verwendet (d. h. abgeschnitten auf z. B. 1/2-Pel-Auflösung je optionalem Schritt 255 des Bewegungsvektorskalierungsverfahrens 200) oder ein feineres Vorhersagegitter oder Koordinatensystem muß zur Verfügung gestellt werden.
  • Gemäß einer Ausführungsform der Erfindung, die unten unter Bezug auf die 6 und 7 erörtert wird, wird ein solches feineres Vorhersagegitter oder Koordinatensystem durch Anpassen der komprimierten (d. h. skalierten) Referenzbildinformation, die in dem Ankereinzelbildspeicher 117 abgelegt ist, an die Auflösung der skalierten Bewegungsvektoren, die von dem Bewegungsvektorprozessor 130 erzeugt werden, bereitgestellt.
  • 6 stellt eine alternative Ausführungsform eines MPEG-artigen Decoders 600 dar. Genauer gesagt empfängt der Decoder 600 von 6 einen komprimierten Videoinformationsstrom IN und decodiert ihn, um einen Videoausgangsstrom OUT zu erzeugen, der für die Verbindung mit z. B. einem Anzeigetreiberschaltkreis innerhalb einer Darstellungseinrichtung (nicht gezeigt) geeignet ist.
  • Der MPEG-artige Decoder 600 weist ein Eingangspufferspeichermodul 111, ein variables Längendecoder- (VLD-) Modul 112, ein inverses Quantisierungs- (IQ-) Modul 113, ein inverses diskretes Kosinustransformationsmodul (IDCT) 114, einen Summierer 115, ein Bewegungskompensationsmodul 116, ein Ausgangspufferspeichermodul 118, ein Ankereinzelbildspeichermodul 117, einen Pixelprozessor 120, einen Bewegungsvektorprozessor (MV) 130 und einen Interpolator 605 auf.
  • Da die Mehrzahl der Elemente des MPEG-artigen Decoders 600 von 6 in im wesentlichen der gleichen Art und Weise wie die entsprechenden Elemente in dem MPEG-artigen Decoder 100 von 1 arbeiten, werden nur die Unterschiede zwischen den zwei Figuren im Detail erörtert. Beispielsweise beinhaltet der MPEG-artige Decoder 600 von 6 einen Interpolator 605, wohingegen der MPEG-artige Decoder 100 von 1 dies nicht tut.
  • Der Interpolator 605 wird, wie detaillierter unten unter Bezug auf 7 beschrieben wird, verwendet, um die komprimierte (d. h. skalierte) Referenzbildinformation, die in dem Ankereinzelbildspeicher 117 abgelegt ist, an die Auflösung der skalierten Bewegungsvektoren, die von dem Bewegungsvektorprozessor 130 erzeugt werden, anzupassen. Beispielsweise müssen im Falle der Skalierung von 8 × 8-Pixelblöcken und verknüpfter Bewegungsvektorinformation unter Verwendung eines vertikalen Skalierungsfaktors SFV von 2 und eines horizontalen Skalierungsfaktors SFH von 2 die resultierenden 4 × 4-Pixelblöcke upgesamplet oder interpoliert werden, um 8 × 8-Pixelblöcke zu bilden.
  • Eine Technik, die gewöhnlich verwendet wird, um das Upsampling oder die Interpolation zur Verfügung zu stellen, ist die bekannte bilineare Interpolationstechnik. Unter Verwendung dieser Technik wird jede neue Pixelabfrage berechnet unter Verwendung ihrer vier nächsten Nachbarn entsprechend Gleichung 5 (unten), in der:
    r[i, j] das Referenzpixel in Zeile "i" und Spalte j" ist,
    x[n, m] das vorhergesagte Pixel in Zeile "n" und Spalte "m" ist,
    vx und vy ganzzahlige Abschnitte von dem horizontalen bzw. vertikalen Bewegungsvektor sind, und
    k1, k2, k3 und k4 Konstanten sind basierend auf den Bruchteilabschnitten der Bewegungsvektoren, wie gegeben ist durch:
    k1 = (1 – fx)·(1 – fy); k2 = fx·(1 – fy); k3 = (1 – fx)·fy, und k4 = fx·fy,
    wobei fx und fy die Bruchteile des horizontalen bzw. vertikalen Bewegungsvektors sind. x[n, m] = k1·r[n + vx, m + vy] + k2·r[n + vx + 1, m + vy] + k3·r[n + vx, m + vy + 1] + k4·r[n + vx + 1, m + vy + 1] (Gleichung 5)
  • Die bilineare Interpolationstechnik ist beliebt aufgrund ihrer relativ einfachen Implementierung. Da darüber hinaus die bilineare Interpolation bei der MPEG-halb-Pel-Interpolation verwendet wird, neigen die Fachleute dazu, diese Technik in Fällen, in denen die Interpolation oder das Upsampling erforderlich ist, zu bevorzugen. Die Erfinder haben bemerkt, daß unglücklicherweise aufgrund der starken Tiefpasseigenschaften der Viertel-Pel-Interpolation die bilineare Interpolationstechnik keine optimalen Ergebnisse liefert. Diese sub-optimale Leistung liegt teilweise an den Tiefpasseigenschaften, die stärker als gewünscht sind, und der fraktionalen Pel-Interpolation, wie z. B. der 1/4-Pel-Interpolation inhärent ist. Das heißt, das einfache bilineare Filtern schwächt höherfrequente Komponenten, die im Falle der Bildinformation Kanten- oder feine Detailinformation eines Bildes darstellen.
  • Die Erfinder schlagen die Wiederherstellung der skalierten Pixelinformation unter Verwendung eines schärferen Abschneidefilters (d. h. höherer Ordnung) vor. Während ein solcher Filter einen traditionellen Tiefpassfilter höherer Ordnung aufweisen kann, weist die bevorzugte Implementierung des Interpolators 605 einen DCT-basierten Interpolationsfilter auf, wie unten unter Bezug auf 7 erörtert wird.
  • Mit Vorteil stellt der DCT-basierte Interpolationsfilter eine Filterung zur Verfügung, die auf einen Block oder eine Regionsgrenze beschränkt werden kann, wie z. B. eine Grenze, die von einem 8 × 8-Pixelblock stammt. Das heißt, der DCT-Filter kann verwendet werden, um einen Tiefpassfilter (oder eine andere Übertragungsfunktion) einem Block oder einer umgrenzten Abfrageregion bereitzustellen ungeachtet Abfragen, die sich nicht innerhalb des Blockes oder der Abfrageregionsgrenze befinden.
  • 7 stellt ein Flußdiagramm eines DCT-basierten Interpolationsfilterverfahrens dar. Genauer gesagt aufwärtssamplet bzw. upsamplet das Filterverfahren 700 von 7 N-Punkt-Abfragen auf P-Punkt-Abfragen, wobei P die Anzahl von Abfragen ist, um die gewünschte Auflösung zu erzeugen. Wenn es beispielsweise wünschenswert ist, 8-Punkt-1/2-Pel-Abfragen, die im Ankereinzelbildspeicher 117 gespeichert sind, in ein 1/4-Pel-Abfragengitter umzuwandeln oder abzubilden, ist es notwendig, interpolierte Abfragen mit der doppelten Auflösung der Abfrage (d. h. 16-Punkt-Abfragen) bereitzustellen. In diesem Fall ist N = 8 und P = 16. Allgemeiner gesagt ist im Falle der Umwandlung von 1/2-Pel-Abfragen in 1/4-Pel-Abfragen P = 2N.
  • In das Verfahren 700 wird in Schritt 705 eingetreten und mit Schritt 710 fortgesetzt, wo eine N-Punkt-Abfrage empfangen wird, dargestellt als eine 8-Punkt-Abfrage. Das Verfahren 700 setzt dann mit Schritt 715 fort.
  • In Schritt 715 wird die N-Punkt-Abfrage transformiert über eine N-Punkt diskrete Kosinustransformationsfunktion, um einen N-Punkt DCT-Koeffizientenblock zu erzeugen, dargestellt als ein 8-Punkt-DCT-Koeffizientenblock. Das Verfahren 700 setzt dann mit Schritt 720 fort.
  • In Schritt 720 wird der N-Punkt-DCT-Koeffizientenblock mit P – N Nullen aufgefüllt, um einen P-Punkt-DCT-Koeffizientenblock, dargestellt als acht Nullen (16 – 8 = 8) zu bilden. Das Verfahren 700 setzt dann mit Schritt 725 fort.
  • In Schritt 725, wo jeder DCT-Koeffizient innerhalb des P-Punkt-DCT-Koeffizientenblockes um einen Faktor von SQRT (P/N) skaliert wird. Beispielsweise wird im Falle der Umwandlung von 1/2-Pel Abfragen in 1/4-Pel Abfragen (d. h. P = 2N) jeder DCT-Koeffizient innerhalb des P-Punkt-DCT-Koeffizientenblocks um einen Faktor von SQRT (2) oder 1,414 skaliert. Das Verfahren 700 setzt dann mit Schritt 730 fort.
  • In Schritt 730 wird der P-Punkt-DCT-Koeffizientenblock transformiert unter Verwendung einer inversen DCT-Funktion, um eine Mehrzahl von Abfragepunkten zu erzeugen. Angenommen, daß beispielsweise X die 8-Punkt-DCT einer 8-Punkt-Abfrage x (nach Schritt 715) ist und Y die aufgefüllte (nach Schritt 720) 16-Punkt DCT von x (d. h. Y = [X 0 0 0 0 0 0 0 0]). Es folgt, daß y die IDCT von Y ist. Genauer gesagt ist y eine 16-Punkt-Abfrage, die [y(0) y(1) y(52) y(3) y(4) y(5) y(6) y(7) y(8) y(9) y(10) y(11) y(12) y(13) y(14) y(15)] ist. Das Verfahren 700 setzt dann mit Schritt 735 fort.
  • In Schritt 735 werden die geeigneten Abfragepunkte als die interpolierten Abfragepunkte ausgewählt. Das heißt, da die 16 Punkte wechselnde Phasenbeziehungen haben, ist es notwendig, zu bestimmen, welche Punkte eine geeignete (z. B. positive) Phase haben. Beispielsweise in dem Fall des Abbildens der 8-Bit 1/2-Pel Punkte auf ein 1/4-Pel-Gitter, sind die ausgewählten geeigneten Abfragepunkte [y(1) y(3) y(5) y(7) y(9) y(11) y(13) y(15)]. Das Verfahren setzt dann mit Schritt 740 fort.
  • In Schritt 740 wird eine Abfrage gemacht, ob es weitere zu verarbeitende Abfragen gibt. Wenn die Abfrage bestätigend beantwortet wird, dann setzt das Verfahren 700 mit Schritt 710 fort, wo die nächsten N-Abfragen empfangen werden. Wenn die Abfrage negativ beantwortet wird, dann setzt das Verfahren mit Schritt 745 fort, wo es beendet wird.
  • Das Verfahren 700 von 7 kann verwendet werden, um die horizontale und/oder vertikale Interpolation zur Verfügung zu stellen. Das Verfahren 700 von 7 kann leicht modifiziert (d. h. umgekehrt) werden, um eine Downsampling-Funktion bereitzustellen, wie sie in dem Pixelprozessor 120 von 1 verwendet wird. Beispielsweise im Falle der Größenverringerung einer 8-Punkt-Abfrage, um eine 4-Punkt-Abfrage zu erzeugen. Wenn wir beispielsweise ein 4-Punkt- aus einem 8-Punkt-Signal erhalten müssen, wird das Verfahren 700 wie folgt modifiziert: Als erstes wird eine 8-Punkt-DCT der acht Abfragen berechnet. Als zweites werden die resultierenden DCT-Koeffizienten mit 1/sqrt(2) skaliert. Als drittes wird eine 4-Punkt-IDCT unter Verwendung nur der skalierten DCT-Koeffizienten unterer Ordnung (d. h. die letzten vier DCT-Koeffizienten werden ignoriert oder abgeschnitten), um vier Abfragen zu erzeugen.
  • Es muß erwähnt werden, daß das Verfahren 700 von 7 und die inverse Variation in Begriffen des Berechnens einer "vollen" DCT oder IDCT beschrieben wurde, ohne irgendeinen Kaskadiereffekt auszunutzen. Der Fachmann weiß, daß verschiedene Verfahren zum Durchführen der DCT- und IDCT-Funktionen mit Vorteil eingesetzt werden können (z. B. das Kaskadieren, die teilweise Transformation und dergleichen), um Rechenanforderungen zu reduzieren, um Speicherressourcenanforderungen (z. B. Speicherbandbreite) zu reduzieren und um eine Anpassung an den Typ der zu verarbeitenden Datenstrukturen vorzunehmen (z. B. symmetrische Pixelblöcke, asymmetrische Pixelblöcke und dergleichen).
  • 8 stellt eine Ausführungsform eines Interpolators dar, der für die Verwendung in dem MPEG-artigen Decoder von 6 geeignet ist. Der Interpolator 800 von 8 weist ein diskretes Kosinustransformationsmodul (DCT) 815, ein Auffüll- bzw. Padder-Modul 820, ein Skaliermodul 825, ein inverses diskretes Kosinustransformationsmodul (IDCT) 830 und einen Controller 850 auf. Der Interpolator 800 arbeitet derart, daß er eine N-Punkt-Abfrage, anschaulich als N-Punkt-Pixelblock dargestellt, in eine P-Punkt-Abfrage, anschaulich als P-Punkt-Pixelblock dargestellt, umwandelt.
  • Die N-Punkt-Abfrage wird von dem DCT-Modul 815 empfangen. Das DCT-Modul 815 transformiert in Antwort auf ein Steuersignal C1, das von dem Controller 850 erzeugt wird, die N-Punkt-Abfrage in einen N-Punkt-DCT-Koeffizientenblock. Der N-Punkt-DCT-Koeffizientenblock ist mit dem Padder-Modul 820 verbunden.
  • Das Padder-Modul 820 "polstert" in Antwort auf ein Steuersignal C2, das von dem Controller 850 erzeugt wird, den DCT-Koeffizientenblock mit einer Anzahl von Nullen, die gleich der Differenz zwischen P und N ist, um einen gepolsterten bzw. aufgefüllten DCT-Koeffizientenblock (d. h. einen Koeffizientenblock, der DCT-Koeffizienten aufweist) zu bilden. Der aufgefüllte DCT-Koeffizientenblock ist mit einem Skaliermodul 825 verbunden.
  • Das Skaliermodul 825 skaliert in Antwort auf ein Steuersignal C3, das von dem Controller 850 erzeugt wird, jeden DCT-Koeffizienten innerhalb des aufgefüllten DCT-Koeffizientenblocks mit einem Faktor von sqrt(P/N), wie vorher unter Bezug auf Schritt 725 von 7 beschrieben wurde. Der Ausgang des Skaliermoduls 825 ist mit dem IDCT-Modul 830 verbunden.
  • Das IDCT-Modul 830 führt in Antwort auf ein Steuersignal C4, das von dem Controller 850 erzeugt wird, eine inverse diskrete Kosinustransformation des skalierten und aufgefüllten DCT- Koeffizientenblocks durch, um eine Mehrzahl von Abfragepunkten zu erzeugen. Die geeigneten Abfragepunkte, die von dem IDCT-Modul 830 erzeugt wurden, werden dann ausgewählt und mit dem Ausgang als die P-Punkt-Abfrage verbunden. Die Auswahl der geeigneten Abfragepunkte wird oben unter Bezug auf 7 erörtert.
  • Der Controller 850 erzeugt in Antwort auf den Skalierungsfaktor SF Steuersignale C1, C2, C3 und C4. Diese Steuersignale übermitteln Steuerparameter, die beispielsweise die DCT-Verarbeitung (C1), die Auffüllmenge und -größe (C2), den Skalierungsfaktor (C3) und die IDCT-Verarbeitung und -Auswahl (C4) anzeigen, zu ihren jeweiligen gesteuerten Modulen.
  • 9 stellt eine alternative Ausführungsform eines MPEG-artigen Decoders dar. Genauer gesagt empfängt der Decoder 900 von 9 einen komprimierten Videoinformationsstrom IN und decodiert ihn, um einen Videoausgangsstrom OUT zu erzeugen. Der Videoausgangsstrom OUT ist für die Verbindung mit beispielsweise einem Anzeigetreiberschaltkreis innerhalb einer Darstellungseinrichtung (nicht gezeigt) geeignet.
  • Der MPEG-artige Decoder 900 weist ein Eingangspufferspeichermodul 111, ein Modul 112 für die variable Ländendecodierung (VLD), ein inverses Quantisierungsmodul (IQ) 113, ein inverses diskretes Kosinustransformationsmodul (IDCT) 114, einen Summierer 115, ein Bewegungskompensationsmodul 116, ein Ankereinzelbildspeichermodul 117, einen Größenveränderer 130 für einen Bewegungsvektor (MV), einen Interpolator 605 und optional ein Ausgangspufferspeichermodul 118 auf. Der MPEG-artige Decoder 900 beinhaltet optional eines oder mehrere Ausgangskomprimierungsmodule 130, ein Schleifenkomprimierungsmodul 150, ein Schleifendekomprimierungsmodul 945, ein Ausgangsdekomprimierungsmodul 935 und ein Ausgangsgrößenveränderungsmodul 940.
  • Da die Mehrzahl der Elemente des MPEG-artigen Decoders 900 von 9 in im wesentlichen der gleichen Art und Weise arbeitet wie entsprechende Elemente in dem MPEG-artigen Decoder 600 von 6, werden nur die Unterschiede zwischen den beiden Figuren im Detail erörtert. Kurz gesprochen beinhaltet der MPEG-artige Decoder 900 von 9 nicht den Pixelprozessor 120, der in dem MPEG-artigen Decoder 600 von 6 zu finden ist. Der MPEG-artige Decoder 900 von 9 beinhaltet jedoch ein IDCT-Modul 914, das eine Pixelverarbeitungsfunktion (d. h. eine Pixelgrößenänderungsfunktion) in dem DCT-Raum durchführt. Zusätzlich kann der MPEG-artige Decoder 900 von 9 eines oder mehrere der vorher erwähnten optionalen Module enthalten. Es sollte ebenso erwähnt werden, daß der Blockinformationsstrom DATA, der von dem VLD-Modul 112 erzeugt wird, mit dem IDCT-Modul 914 zusätzlich zu dem Bewegungsvektorprozessor 130 verbunden ist.
  • Das IDCT-Modul 914 führt eine inverse diskrete Kosinustransformationsoperation auf dem Bitstrom S3 durch, um einen reduzierten Bildgrößenbitstrom S4 zu erzeugen, der Pixel-pro-Pixel-Vorhersagefehler aufweist. Wichtig ist, daß der IDCT auf einer Block-pro-Block-Basis arbeitet, um die Größe des Bildes, das von der Information in dem Bitstrom S3 dargestellt wird, zu reduzieren. Geeignete Verfahren zur Größenreduktion werden unten unter Bezug auf die 10A und die 10B beschrieben.
  • Der Summierer 115 addiert den Pixel-pro-Pixel-Vorhersagefehlerstrom reduzierter Bildgröße S4 zu einem bewegungskompensierten prädiktiven Pixelwertstrom S6, der von dem Bewegungskompensationsmodul 116 erzeugt wird. Der Ausgang des Summierers 115 ist in der beispielhaften Ausführungsform somit ein Videostrom S5 reduzierter Größe, der rekonstruierte Pixelwerte aufweist. Der Videostrom S5 reduzierter Größe, der von dem Summierer 115 erzeugt wird, ist mit einem Ankereinzelbildspeicher 117 und dem Ausgangspufferspeichermodul 118 verbunden.
  • Das Ankereinzelbildspeichermodul 117 empfängt und speichert den komprimierten Videostrom S5. Mit Vorteil kann die Größe des Ankereinzelbildspeichermoduls 117 um eine Größe reduziert werden, die mit dem verwendeten Komprimierungsverhältnis konsistent ist. Der Größenveränderer des Bewegungsvektors 130 empfängt den Bewegungsvektorstrom MV und den Blockinformationsstrom DATA von der VLD 112. Der Bewegungsvektorstrom MV weist die Bewegungsvektorinformation auf, die von dem Bewegungskompensationsmodul 116 verwendet wird, um die individuellen Makroblöcke basierend auf der Bildinformation, die in dem Ankereinzelbildspeichermodul abgelegt ist, vorherzusagen. Da jedoch die Bildinformation, die in dem Ankereinzelbildspeichermodul 117 abgelegt ist, von dem IDCT-Modul 116 skaliert wurde, ist es ebenso notwendig, die Bewegungsvektordaten, die verwendet werden, um Makroblöcke unter Verwendung der skalierten Pixelinformation vorherzusagen, zu skalieren. Die skalierten Bewegungsvektoren MV sind mit dem Bewegungskompensationsmodul 116 über den Pfad MV' verbunden.
  • Das Bewegungskompensationsmodul 116 greift auf die komprimierte (d. h. skalierte) Bildinformation, die im Speichermodul 117 abgelegt ist, über den Signalpfad S7 und auf den skalierten Bewegungsvektoren) MV' zu, um einen skalierten vorhergesagten Makroblock zu erzeugen. Das heißt, daß das Bewegungskompensationsmodul 116 ein oder mehrere gespeicherte Ankereinzelbilder (z. B. die Pixelblöcke mit reduzierter Auflösung, die in Bezug auf das jüngste I-Einzelbild oder P-Einzelbild des Videosignals erzeugt wurden und am Ausgang des Summierers 115 produziert werden) und den (die) Bewegungsvektoren) MV', die von dem Bewegungsvektorgrößenveränderer 130 empfangen werden, verwendet, um die Werte für jeden der Mehrzahl von skalierten vorhergesagten Makroblöcken, die einen skalierten vorhergesagten Informationsstrom bilden, zu berechnen.
  • 10A stellt ein Größenveränderungsverfahren dar, das für die Verwendung in dem MPEG-artigen Decoder von 9 geeignet ist. Genauer gesagt stellt 10A ein Größenveränderungsverfahren 1000A dar, das für die Verwendung in dem IDCT-Modul 914 von 9 geeignet ist, das die Größe eines Pixelblockes durch Entfernen von Daten, die mit einem Abschnitt von sowohl der horizontalen als auch der vertikalen Ortsfrequenzinformation verknüpft ist, reduziert. Es muß erwähnt werden, daß der vertikale und der horizontale Bewegungsvektor, der mit den größenreduzierten Pixeln verknüpft ist, an beispielsweise den Skalierungsfaktor SF, der in der Größenveränderungsroutine 1000A verwendet wird, angepaßt werden muß. Im Falle von prädiktiv codierten Pixelblöcken, die die Feldmoduscodierung einsetzen, müssen die Bewegungsvektoren in im wesentlichen der gleichen Art und Weise verarbeitet werden, wie oben unter Bezug auf 2 beschrieben wurde.
  • Das Größenveränderungsverfahren 1000A beginnt in Schritt 1005 und setzt mit Schritt 1010 fort, wo ein DCT-Koeftizientenblock von dem IDCT-Modul 914 empfangen wird. Das Verfahren 1000A setzt dann mit Schritt 1015 fort.
  • In Schritt 1015 wird ein Teil der DCT-Koeffizienten in Übereinstimmung mit dem auf das Bild, das von dem empfangenen DCT-Koeftizientenblock dargestellt wird, anzulegenden Skalierungsfaktor SF abgeschnitten. Wenn beispielsweise die empfangenen DCT-Koeffizienten einen 8 × 8-DCT-Koeftizientenblock aufweisen, der einen 8 × 8-Pixelblock repräsentiert, und das in der Größe geänderte Bild 1/4 der Auflösung des ursprünglichen Bildes (d. h. die vertikale und horizontale Information wird jeweils um 1/2 reduziert) haben soll, dann werden alle empfangenen DCT-Koeffizienten außer dem 4 × 4-DCT-Koeffizienten"unterblock", der die untere vertikale und horizontale Ortsfrequenzinformation darstellt, abgeschnitten. Das Verfahren 1000A setzt dann mit Schritt 1020 fort.
  • In Schritt 1020 sind die verbleibenden DCT-Koeffizienten einer inversen DCT-Funktion ausgesetzt, um einen Pixelblock zu erzeugen. Das Verfahren 1000A setzt dann mit dem optionalen Schritt 1025 fort, wo der Pixelblock der in Schritt 1020 erzeugt wurde, in zwei oder mehrere Unterblöcke unterteilt wird. Beispielsweise im Falle eines 8 × 8-DCT-Koeffizientenblocks, der in einen 8 × 4- (oder 4 × 8-) Pixelblock umgewandelt wird von den Operationen der Schritte 1015 und 1020, kann der 8 × 4- (oder der 4 × 8-) Pixelblock in beispielsweise ein Paar von 4 × 4-Pixelunterblöcken aufgeteilt werden. Der Pixelblock, der in Schritt 1020 erzeugt wird, oder optional die Pixelunterblöcke, die in Schritt 1025 erzeugt werden, werden dann mit dem Addierer 115 verbunden. Das Verfahren 1000A setzt dann mit Schritt 1010 fort, wo der nächste DCT-Koeftizientenblock empfangen wird, und setzt mit den Schritten 10151025 fort.
  • 10B stellt ein Größenveränderungsverfahren dar, das für die Verwendung in dem MPEG-artigen Decoder von 9 geeignet ist. Genauer gesagt stellt 10B ein Größenveränderungsverfahren 1000B dar, das für die Verwendung in dem IDCT-Modul 914 von 9 geeignet ist, das die Größe eines Pixelblocks reduziert durch Entfernen von Daten, die nur mit der horizontalen Ortsfrequenzinformation verknüpft sind. Das heißt, die vertikale Ortsfrequenzinformation eines Pixelblockes, der gemäß dem Verfahren 1000B von 10B erzeugt wurde, wird nicht reduziert. Die horizontale Ortsfrequenzinformation des Pixelblocks, der gemäß dem Verfahren 1000B von 10B produziert wurde, wird jedoch um einen Skalierungsfaktor (oder eine andere geeignete Größe) reduziert. Im Gegensatz dazu werden sowohl die vertikale Ortsfrequenzinformation als auch die horizontale Ortsfrequenzinformation eines Pixelblockes, der gemäß dem Verfahren 1000A von 10A erzeugt wurde, durch beispielsweise den Skalierungsfaktor SF reduziert. Dies liegt daran, daß es keine Reduktion in der vertikalen Größe der resultierenden Pixelblöcke gibt.
  • Da das Verfahren 1000B von 10B die vertikale Ortsfrequenzinformation nicht reduziert, besteht nicht die Notwendigkeit, die vertikale Komponente der Bewegungsvektorinformation, die mit vorhergesagten Pixelblöcken, die entsprechend dem Verfahren 1000B von 10B verarbeitet werden, verknüpft sind, einzustellen. Das heißt, die einzige Bewegungsvektorverarbeitung, die notwendig ist für die vorhergesagten Pixelblöcke, die entsprechend dem Verfahren 1000B von 10B verarbeitet wurden, ist eine einfache Skalierung der horizontalen Bewegungsvektoren entspre chend dem horizontalen Skalierungsfaktor SFH (z. B. Schritt 250 des Verfahrens 200 von 2). Die Implementierung des Bewegungsvektorprozessors kann somit vereinfacht werden. Zusätzlich erfordert der Bewegungsvektorprozessor nicht die Komplexität, die normalerweise mit der Skalierung vertikaler Bewegungsvektoren im Feldmodus oder im feldcodierten Einzelbildmodus der vorhergesagten Pixelblöcke verknüpft ist.
  • Das Größenveränderungsverfahren 1000B startet in Schritt 1005 und setzt mit Schritt 1010 fort, wo ein DCT-Koeffizientenblock von dem IDCT-Modul 914 empfangen wird. Das Verfahren 1000A setzt dann mit Schritt 1017 fort.
  • In Schritt 1017 wird eine volle vertikale Auflösungs-IDCT-Operation unter Verwendung der empfangenen IDCT-Koeffizienten durchgeführt. Das heißt, eine teilweise IDCT-Operation wird durchgeführt, in der nur die vertikale Ortsfrequenzinformation des resultierenden Pixelblocks abgeleitet wird. Das Verfahren 1000B setzt dann mit Schritt 1022 fort.
  • In Schritt 1022 wird eine halbe (oder eine andere SF) horizontale Auflösungs-IDCT-Operation unter Verwendung der empfangenen IDCT-Koeffizienten durchgeführt. Das heißt, es wird eine teilweise IDCT-Operation durchgeführt, in der nur die Hälfte (oder irgendeine andere skalierte Menge) der horizontalen Ortsfrequenzinformation des resultierenden Pixelblocks abgeleitet wird. Das Ergebnis der Schritte 1017 und 1022 ist ein Pixelblock mit aller vertikalen Ortsfrequenzinformation und z. B. der halben horizontalen Ortsfrequenzinformation, die in dem DCT-Koeffizientenblock enthalten ist. Beispielsweise wird ein 8 × 8-DCT-Koeffizientenblock, der einen 8 × 8-Pixelblock, der gemäß den Schritten 1017 und 1022 verarbeitet wird, darstellt, einen 8 × 4-Pixelblock erzeugen (unter der Annahme eines horizontalen Skalierungsfaktors SFH von 2). Das Verfahren 1000A setzt dann mit dem optionalen Schritt 1025 fort.
  • In dem optionalen Schritt 1025 wird der resultierende Pixelblock in zwei oder mehrere Unterblöcke aufgeteilt. Im Falle eines 8 × 8-DCT-Koeffizientenblocks, der in einen 8 × 4-Pixelblock durch die Operationen der Schritte 1017 und 1022 umgewandelt wird, kann beispielsweise der 8 × 4-Pixelblock in z. B. ein Paar von 4 × 4-Pixelunterblöcken aufgeteilt werden. Der Pixelblock, der in Schritt 1022 erzeugt wurde oder optional die Pixelunterblöcke, die in Schritt 1025 erzeugt wurden, sind dann mit dem Addierer 115 verbunden. Das Verfahren 1000A setzt dann mit Schritt 1010 fort, wo der nächste DCT-Koeffizientenblock empfangen wird, und setzt zu den Schritten 10151025 fort.
  • Es muß erwähnt werden, daß, während das Verfahren 1000B eine volle vertikale Auflösung (d. h. einen vertikalen Skalierungsfaktor SFV von 1) und eine halbe horizontale Auflösung (d. h. einen horizontalen Skalierungsfaktor SFH von 2) verwendet, andere Skalierungsfaktoren ebenso verwendet werden können. Einer der Vorzüge der Verwendung eines vertikalen Skalierungsfaktors SFV von 1 ist das Vermeiden der Bewegungsschätzungsverarbeitung, die mit feld- oder feld/einzelbildcodierten Bewegungsvektoren verbunden ist. Das heißt, durch Verhindern der vertikalen Pixelblockskalierung besteht nicht die Notwendigkeit, die entsprechende vertikale Bewegungsvektorskalierung zu berechnen.
  • Wie vorher erwähnt wurde, empfängt das IDCT-Modul 914 den Blockinformationsstrom DATA, der von dem VLD-Modul 112 erzeugt wird. In einer Ausführungsform der Erfindung werden nur diejenigen Pixelblöcke, die mit Ankereinzelbildern (d. h. I-Einzelbildern oder P-Einzelbildern) verknüpft sind, gemäß einem der Größenveränderungsverfahren 1000A oder 1000B verarbeitet.
  • Mehrere Ausführungsformen der Erfindung, die das optionale Ausgangskomprimierungsmodul 930, das Schleifenkomprimierungsmodul 950, das Schleifendekomprimierungsmodul 945, das Ausgangsdekomprimierungsmodul 935 und das Ausgangsgrößenveränderungsmodul 940 benutzen, werden nun erörtert.
  • Es ist wichtig, zu bemerken, daß die folgenden optionalen Ausführungsformen der Erfindung die Verwendung des Ausgangspufferspeichers 118 vollständig vermeiden können. Dies liegt daran, daß die optionalen Ausführungsformen den Ausgangspufferspeicher nur für die Speicherung der B-Einzelbilder verwenden, da B-Einzelbilder die weitere Verarbeitung für die Formatumwandlungszwecke erfordert. Da es jedoch weniger aufwendig ist, ein komprimiertes B-Einzelbild statt einem nicht komprimierten B-Einzelbild zu speichern, ist es bevorzugt, daß der Ausgangspufferspeicher 118 verwendet wird für das Speichern von nur komprimierten B-Einzelbildern in den folgenden Ausführungsformen. In dem Fall, in dem das Ausgangsbild keine weitere Formatierung erfordert (d. h. der Größenveränderer 940 wird nicht verwendet), besteht keine Notwendigkeit, die B-Einzelbilder zu speichern (oder zu komprimieren) und daher wird der Ausgangspufferspeicher 118 nicht verwendet.
  • In einer ersten optionalen Ausführungsform der Erfindung ist das optionale Ausgangskomprimierungsmodul 930, das Schleifendekomprimierungsmodul 945 und das Ausgangsdekomprimierungsmodul 935 in dem MPEG-artigen Decoder 100 von 1 aufgenommen. In dieser Ausführungsform ist das Schleifenkomprimierungsmodul 950 nicht enthalten. Da jedoch die weitere Formatverarbeitung erforderlich sein kann, werden komprimierte B-Einzelbilder in dem aufgenommenen Ausgangspufferspeicher 118 abgelegt. Diese Ausführungsform reduziert mit Vorteil die Speichermenge, die für sowohl den Ankereinzelbildspeicher 117 als auch den Ausgangspufferspeicher 118 verwendet wird.
  • In einer zweiten optionalen Ausführungsform der Erfindung sind das optionale Schleifenkomprimierungsmodul 950 und das Schleifendekomprimierungsmodul 945 in dem MPEG-artigen Decoder 100 von 1 aufgenommen. In dieser Ausführungsform sind das Ausgangskomprimierungsmodul 930 und das Ausgangsdekomprimierungsmodul 935 nicht eingeschlossen. Diese Ausführungsform reduziert mit Vorteil die Speichermenge, die für den Ankereinzelbildspeicher 117 verwendet wird, während die Verwendung von nur einem Dekomprimierungsmodul erforderlich ist. Da es keine Notwendigkeit gibt, B-Einzelbilder vor der erneuten Formatierung abzulegen, wird zusätzlich der Ausgangspufferspeicher 118 nicht verwendet.
  • In entweder der ersten oder der zweiten optionalen Ausführungsform der Erfindung kann der optionale Größenveränderer 940 eingeschlossen oder ausgeschlossen sein. Wo er eingeschlossen ist, kann der Größenveränderer verwendet werden, um die Auflösung oder das Betrachtungsformat der innerhalb des Ausgangspufferspeichers 118 gespeicherten Videoinformation zu erhöhen oder zu erniedrigen. In dem Fall eines hochintegrierten MPEG-artigen Decoders 100, wo die Komprimierungs- und Dekomprimierungsfunktion vorbestimmt sind (z. B. ein großvolumiger integrierter Schaltkreis), kann beispielsweise der Größenveränderer verwendet werden, um das Format des Aus gangsvideosignals in ein natives Anzeigeeinrichtungsformat vor der Darstellung auf der nativen Anzeigeeinrichtung anzupassen.
  • Das optionale Ausgangskomprimierungsmodul 930 und das optionale Schleifenkomprimierungsmodul 950 komprimieren den Videostrom S5 auf einer Block-per-Block-Basis, um einen komprimierten Videostrom S5' zu erzeugen. Irgendein Komprimierungsmodul kann gemäß bekannten Techniken implementiert werden, wie z. B. denjenigen, die im Zusammenhang mit dem Pixelprozessor 120 des MPEG-artigen Decoders 100 von 1 beschrieben wurden. Der Zweck des Ausgangskomprimierungsmoduls 930 ist es, die Speichermenge zu reduzieren, die benötigt wird, um den Ankereinzelbildspeicher 917 zu implementieren.
  • Zusätzlich kann irgendein Komprimierungsmodul implementiert werden entsprechend den Lehren der US-Patentanmeldung Nr. 09/127,450, eingereicht am 31. Juli 1998 (Anwaltsaktenzeichen Nr. 12757), das vollständig durch Bezugnahme hier aufgenommen wird. Ein Überblick eines Verfahrens entsprechend der Lehren dieses Patents wird nun unter Bezug auf 11 gegeben.
  • 11 stellt ein Flußdiagramm eines Komprimierungsverfahrens dar, das für die Verwendung in dem MPEG-artigen Decoder von 9 geeignet ist. Genauer gesagt arbeitet ein Ausgangskomprimierungsmodul 930 oder ein Schleifenkomprimierungsmodul 950, das das Verfahren 1100 von 11 benutzt, auf einer Pixelblock-per-Pixelblock-Basis (z. B. einem 4 × 4-, 4 × 8- oder 8 × 8-Pixelblock), um einen Pixelblock zu empfangen (Schritt 1110) und den empfangenen Pixelblock durch Verarbeitung des Blockes gemäß einer Wavelet-Transformation (anschaulich eine Haar-Wavelet-Transformation) zu komprimieren (Schritt 1115). Die resultierenden Wavelet-Koeffizienten werden dann vorzugsweise quantisiert (Schritt 1125) in einer Art und Weise, die denjenigen Koeffizienten, die Informationen darstellen, die für einen Betrachter leichter unterscheidbar sind, mehr Bits zuweisen. Die skalierten Wavelet-Koeffizienten und die verknüpften Skalierungsfaktoren werden dann gepackt (Schritt 1125), um ein Word zu bilden. Die skalierte, quantisierte Wavelet-Raumdarstellung eines Pixelblocks wird dann als Teil eines komprimierten Videostroms S5' mit dem Kompressionsmodulausgang verbunden.
  • Es wird durch die Erfinder bemerkt, daß solch eine skalierte, quantisierte, Haar-Raumdarstellung des Ankereinzelbildes näherungsweise die Hälfte des Speichers erfordert, der für die Pixelraumankereinzelbilddarstellung erforderlich wäre. Die Speicheranforderungen des Ankereinzelbildspeichermoduls 117 werden somit um einen Faktor 2 reduziert.
  • Da der Ankereinzelbildspeicher 117 verwendet wird, um Bildinformation zu speichern, die komprimiert wurde, ist es notwendig, die Bildinformation zu dekomprimieren vor der Verbindung der gespeicherten Information mit dem Bewegungskompensationsmodul 116. Das Schleifendekomprimierungsmodul 945 wird verwendet, um diese Funktion durchzuführen. Da der Ausgangspufferspeicher (zumindest in der optionalen Ausführungsform 1) verwendet wird, um komprimierte Bildinformation zu speichern, ist es in gleicher Weise notwendig, die Bildinformation vor dem Senden der dekomprimierten Blldinformation zu dem optionalen Größenveränderungsmodul 940 oder einer Darstellungseinrichtung (nicht gezeigt) zu dekomprimieren. Das Ausgangsdekomprimierungsmodul 935 wird verwendet, um diese Funktion durchzuführen.
  • Die Dekomprimierungsmodule 935 und 945 spiegeln im wesentlichen die Operation der Komprimierungsmodule 930 und/oder 950, die oben beschrieben wurden, wieder. Das heißt, daß im Falle der Kompressionsfunktionalität, die gemäß dem Verfahren von 11 implementiert wurde, die Dekomprimierungsmodule 935 und/oder 945 jeweils eine vorzugsweise quantisierte Wavelet-Raumdarstellung eines Pixelblockes von dem Ankereinzelbildspeicher 117 (oder dem Ausgangskomprimierungsmodul 930) empfängt. Das empfangene Word ist dann einem Entpackungsprozeß ausgesetzt, um die vorzugsweise quantisierten Wavelet-Koeffizienten und die verknüpften Skalierungsfaktoren wiederzugewinnen. Die Skalierungsfaktoren werden dann in einem inversen Quanüsierungsprozeß verwendet, um einen Wavelet-Koeffizientenblock zu erzeugen. Der Wavelet-Koeffizientenblock ist dann einem inversen Wavelet-Transformationsprozeß (z. B. einem inversen Haar-Transformationsprozeß) ausgesetzt, um einen entsprechenden Pixelblock zu erzeugen. Der entsprechende Pixelblock wird dann beispielsweise mit dem Bewegungskompensationsmodul 116, dem Interpolator 605 oder dem Ausgangspufferspeicher 118 verbunden.
  • Es sollte erwähnt werden, daß im Falle einer nur horizontalen Skalierung eines Referenzpixelblocks der Interpolator 605 der 6 und 8 und das Interpolationsverfahren 700 von 7 modifiziert werden können, um nur horizontale Interpolationen durchzuführen, wodurch Speicher und Rechenkomplexität reduziert werden.
  • Während die Erfindung hauptsächlich in Begriffen der Skalierung von Bewegungsvektoren und der Pixelrauminformation um einen Faktor von 2 beschrieben wurde, muß erwähnt werden, daß die Erfindung für andere Skalierungsfaktoren (ganzzahlig und nicht ganzzahlig) gut geeignet ist. Darüber hinaus ist, während die Erfindung hauptsächlich in Begriffen der Herunterskalierung (d. h. der Reduzierung der Pixelrauminformation vor der Speicherung) beschrieben wurde, die Erfindung gut geeignet für das Nach-Oben-Skalieren (d. h. das Erhöhen der Pixelrauminformation). Solch ein Aufskalieren der Pixelrauminformation und der Bewegungsvektorinformation kann insbesondere bei Anwendungen verwendet werden, die die Darstellung von Bildinformation niedriger Auflösung unter Verwendung einer hochauflösenden Anzeigeeinrichtung erfordern. Beispielsweise die Darstellung des Standarddefinitionsfernsehens (SDTV) auf einer Hochdefinitionsfernsehanzeigeeinrichtung (HDTV). Der Fachmann, der von den Lehren der vorliegenden Erfindung weiß, wird leicht zusätzliche und verschiedene Modifikationen von den oben beschriebenen Ausführungsformen der Erfindung ableiten.
  • Die vorliegende Erfindung kann in Form von computerimplementierten Prozessen und Vorrichtungen für das Ausführen dieser Prozesse verkörpert werden. Die vorliegende Erfindung kann ebenso in der Form eines Computerprogrammcodes, der als greifbares Medium, wie z. B. Disketten, CD-ROMs, Festplatten oder irgendein anderes computerlesbares Speichermedium verkörpert ist, verkörpert sein, worin, wenn der Computerprogrammcode in einen Computer geladen wird und von diesem ausgeführt wird, der Computer eine Vorrichtung für das Ausführen der Erfindung wird. Die vorliegende Erfindung kann ebenso in Form eines Computerprogrammcodes verkörpert sein, beispielsweise gespeichert in einem Speichermedium, geladen in und/oder ausgeführt von einem Computer oder übertragen über ein Übertragungsmedium, wie z. B. über einen elektrischen Draht oder ein Kabel, über Faseroptiken oder über elektromagnetische Strahlung, wobei, wenn der Computerprogrammcode in den Computer geladen wird und von dem Computer ausgeführt wird, der Computer eine Vorrichtung für das Ausführen der Erfindung wird. Die Computerprogrammcodesegmente konfigurieren, wenn sie auf einem Universalmikroprozessor implementiert werden, den Mikroprozessor, damit er spezifische logische Schaltkreise erzeugt.
  • Obgleich verschiedene Ausführungsformen, die die Lehren der vorliegenden Erfindung beinhalten, gezeigt und im Detail beschrieben wurden, können Fachleute viele andere variierte Ausführungsformen, die immer noch diese Lehren enthalten, ableiten.

Claims (24)

  1. Verfahren zur Decodierung eines komprimierten Informationsstromes, der vorhergesagte Pixelblöcke beinhaltet, wobei die vorhergesagten Pixelblöcke mit einem oder mehreren skalierten Referenzpixelblöcken über eine jeweilige skalierte Bewegungsvektorinformation verknüpft sind, wobei das Verfahren die Schritte aufweist des Adaptierens einer ersten Auflösung eines skalierten Referenzpixelblockes an eine zweite Auflösung der skalierten Bewegungsvektorinformation, wobei der Adaptionsschritt das Filtern des skalierten Referenzpixelblockes beinhaltet unter Verwendung eines diskreten Kosinustransformationsfilters (DCT).
  2. Verfahren nach Anspruch 1, wobei der Schritt des Filterns die Schritte aufweist: Transformation des skalierten Referenzpixelblockes unter Verwendung einer diskreten Kosinustransformation (DCT), um zumindest einen DCT-Koeffizientenblock zu erzeugen, Auffüllen des zumindest einen DCT-Koeffizientenblock entsprechend einer Differenz zwischen der ersten und der zweiten Auflösung, Skalieren des zumindest einen DCT-Koeffizientenblockes entsprechend einer Quadratwurzel eines Verhältnisses der ersten Auflösung zu der zweiten Auflösung und Umwandeln des zumindest einen aufgefüllten und skalierten DCT-Koeffizientenblock unter Verwendung einer inversen DCT-Funktion (IDCT), um einen Referenzpixelblock mit der zweiten Auflösung zur Verfügung zu stellen.
  3. Verfahren nach Anspruch 1, wobei jeder der skalierten Referenzpixelblöcke mit einem DCT-Koeffizientenblock innerhalb des komprimierten Informationsstromes verknüpft ist, wobei jeder der skalierten Referenzpixelblöcke gebildet wird entsprechend der Schritte: Abschneiden einer Mehrzahl von DCT-Koeffizienten mit zumindest einem horizontalen Skalierungsfaktor oder einem vertikalen Skalierungsfaktor innerhalb des jeweiligen DCT-Koeffizientenblockes, um einen jeweiligen abgeschnittenen bzw. gekürzten DCT-Koeffizientenblock zu bilden, Umwandeln des jeweiligen abgeschnittenen DCT-Koeffizientenblockes unter Verwendung einer inversen DCT-Transformation, um den jeweiligen skalierten Referenzpixelblock zu bilden.
  4. Verfahren nach Anspruch 1, wobei jeder der skalierten Referenzpixelblöcke mit einem jeweiligen DCT-Koeffizientenblock innerhalb des komprimierten Informationsstromes verknüpft ist, wobei jeder der skalierten Referenzpixelblöcke entsprechend der Schritte gebildet wird: Transformieren des jeweiligen DCT-Koeffizientenblockes unter Verwendung einer vertikalen inversen DCT-Transformation mit einer Auflösung, die durch einen vertikalen Skalierungsfaktor bestimmt wird, um einen ersten Abschnitt des jeweiligen skalierten Referenzpixelblockes zu bilden, und Transformieren des jeweiligen DCT-Koeffizientenblockes unter Verwendung einer horizontalen inversen DCT-Transformation mit einer Auflösung, die durch einen horizontalen Skalierungsfaktor bestimmt wird, um den verbleibenden Teil des jeweiligen skalierten Referenzpixelblockes zu bilden.
  5. Verfahren nach Anspruch 4, wobei der vertikale Skalierungsfaktor gleich eins ist und der horizontale Skalierungsfaktor gleich zwei ist.
  6. Verfahren nach Anspruch 1, wobei das Verfahren weiterhin die Schritte aufweist: Aufteilen jedes der skalierten Referenzpixelblöcke in eine Mehrzahl von jeweiligen Pixelunterblöcken, Komprimierung der jeweiligen Pixelunterblöcke unter Verwendung eines vorbestimmten Komprimierungsverhältnisses, um eine Mehrzahl von jeweiligen komprimierten Pixelunterblöcken zu bilden, und Ablegen der Mehrzahl von jeweiligen komprimierten Pixelunterblöcken in einem Speicher.
  7. Verfahren nach Anspruch 6, wobei das Verfahren weiterhin die Schritte aufweist: Abrufen von komprimierten Pixelunterblöcken, die mit dem skalierten Referenzpixelblock und der skalierten Bewegungsvektorinformation verknüpft sind, von dem Speicher, und Dekomprimieren der komprimierten Pixelunterblöcke entsprechend dem vorbestimmten Komprimierungsverhältnis, welche mit dem skalierten Referenzpixelblock verknüpft sind, um den skalierten Referenzpixelblock wieder herzustellen.
  8. Verfahren nach Anspruch 7, wobei das vorbestimmte Kompressionsverhältnis zwei ist.
  9. Verfahren der Decodierung eines komprimierten Bildstromes, um einen dekomprimierten und skalierten Bildstrom zu erzeugen, wobei der komprimierte Bildstrom vorbestimmte und nicht vorbestimmte Bildrepräsentationsblöcke aufweist, wobei jeder der vorbestimmten und nicht vorbestimmten Bildrepräsentationsblöcke mit einem DCT-Koeffizientenblock verknüpft ist, wobei jeder der vorbestimmten Bildrepräsentationsblöcke mit zumindest einem Bewegungsvektor verknüpft ist, wobei das Verfahren die Schritte aufweist: Skalieren von jedem der Bildrepräsentationsblöcke laut einem horizontalen Skalierungsfaktor, um jeweilige horizontal skalierte Pixelblöcke zu bilden und Skalieren einer horizontalen Komponente von jedem der Bewegungsvektoren laut dem horizontalen Skalierungsfaktor, um skalierte Bewegungsvektoren zu erzeugen.
  10. Verfahren nach Anspruch 9, wobei der Schritt des Skalierens jeder der Bildrepräsentationsblöcke die Schritte aufweist: Abschneiden einer Mehrzahl von DCT-Koeffizienten laut dem horizontalen Skalierungsfaktor innerhalb eines jeweiligen DCT-Koeftizientenblockes, um einen jeweiligen skalierten DCT-Koeffizientenblock zu erzeugen, und Transformieren des jeweiligen skalierten DCT-Koeftizientenblockes unter Verwendung einer inversen diskreten Transformation, um den jeweiligen horizontal skalierten Pixelblock zu erzeugen.
  11. Verfahren nach Anspruch 9, wobei der Schritt des Skalierens jeder der Bildrepräsentationsblöcke die Schritte aufweist: Transformierung eines jeweiligen DCT-Koeffizientenblockes unter Verwendung einer vertikalen inversen DCT-Transformation mit voller Auflösung, um einen ersten Teil des jeweiligen horizontal skalierten Pixelblockes zu bilden, und Transformierung des entsprechenden DCT-Koeftizientenblockes unter Verwendung einer inversen horizontalen DCT-Transformation mit einer Auflösung, die von dem horizontalen Skalierungsfaktor bestimmt wird, um den verbleibenden Abschnitt des jeweiligen horizontal skalierten Pixelblockes zu bilden.
  12. Verfahren nach Anspruch 9, das weiterhin die Schritte aufweist: Aufteilen der in der Größe veränderten Pixelblöcke in eine Mehrzahl von jeweiligen Pixelunterblöcken, und Komprimierung jeder der Mehrzahl von jeweiligen Pixelunterblöcken, um eine jeweilige Mehrzahl von komprimierten Pixelunterblöcken zu bilden.
  13. Verfahren nach Anspruch 9, das weiterhin den Schritt aufweist des Adaptierens einer Auflösung von jedem der horizontal skalierten Pixelblöcke auf eine Auflösung des horizontal skalierten Bewegungsvektors unter Verwendung eines diskreten Kosinustransformationsfilters (DCT).
  14. Verfahren nach Anspruch 13, wobei der Schritt der Adaption die Schritte aufweist: Transformation von jedem der horizontal skalierten Pixelblöcke unter Verwendung einer diskreten Kosinustransformation (DCT), um zumindest einen jeweiligen DCT-Koeffizientenblock zu erzeugen, Auffüllen des zumindest einen jeweiligen DCT-Koeffizientenblockes gemäß einer Differenz zwischen der ersten und der zweiten Auflösung, Skalieren des zumindest einen jeweiligen DCT-Koeftizientenblock entsprechend einer Quadratwurzel aus einem Verhältnis der ersten Auflösung zu der zweiten Auflösung, und Transformierung des aufgefüllten und skalierten zumindest einen jeweiligen DCT-Koeffizientenblockes unter Verwendung einer inversen DCT-Funktion (IDCT), um einen jeweiligen horizontal skalierten Pixelblock mit der zweiten Auflösung zur Verfügung zu stellen.
  15. Vorrichtung, die aufweist: einen Decoder für die Decodierung von codierten Referenzpixelblöcken, einen Pixelprozessor für das Empfangen von decodierten Referenzpixelblöcken und das Erzeugen von jeweiligen skalierten Referenzpixelblöcken aus diesen, wobei diese entsprechend einem Skalierungsfaktor skaliert sind, einen Bewegungsvektorprozessor für das Empfangen von Bewegungsvektorinformation, die mit einem vorhergesagten Pixelblock verknüpft ist, und für das Erzeugen eines skalierten Bewegungsvektors aus dieser entsprechend dem Skalierungsfaktor, und einem Interpolator für die Interpolation zusätzlicher Pixel innerhalb der besagten skalierten Referenzpixelblöcke, um interpolierte Pixelblöcke zu bilden, wobei die interpolierten Pixelblöcke und der skalierte Bewegungsvektor im wesentlichen ähnliche Auflösungen haben.
  16. Vorrichtung nach Anspruch 15, wobei der Interpolator einen diskreten Kosinustransformationsfilter (DCT) aufweist.
  17. Vorrichtung nach Anspruch 16, wobei der DCT-Filter aufweist: ein DCT-Modul für die Transformierung von jedem der besagten skalierten Referenzpixelblöcke unter Verwendung einer diskreten Kosinustransformation (DCT), um zumindest einen jeweiligen DCT-Koeftizientenblock zu erzeugen, einen Padder bzw. Padding-Kondensator, für das Auffüllen des zumindest einen entsprechenden DCT-Koeffizientenblockes gemäß einer Differenz zwischen der ersten und der zweiten Auflösung, einen Skalierer für das Skalieren des zumindest einen jeweiligen DCT-Koeffizientenblockes entsprechend einer Quadratwurzel aus einem Verhältnis der ersten Auflösung zu der zweiten Auflösung, und ein inverses DCT-Modul für die Transformierung des aufgefüllten und skalierten zumindest einen jeweiligen DCT-Koeffizientenblock unter Verwendung einer inversen DCT-Funktion (IDCT), um einen jeweiligen Referenzpixelblock mit der zweiten Auflösung zur Verfügung zu stellen.
  18. Vorrichtung nach Anspruch 17, die weiterhin aufweist: einen Controller für die Steuerung zumindest eines der DCT-Module, des Padders, des Skalierers und des IDCT-Modules in Antwort auf ein Indicium bzw. eines Anzeichens eines gewünschten Skalierungsfaktors.
  19. Vorrichtung nach Anspruch 16, wobei der DCT-Filter jeden der skalierten Referenzpixelblöcke transformiert unter Verwendung einer diskreten Kosinustransformation (DCT), um zumindest einen DCT-Koeffizientenblock zu erzeugen, der DCT-Filter den zumindest einen DCT-Koeffizientenblock entsprechend einer Differenz zwischen der ersten und zweiten Auflösung auffüllt, den zumindest einen DCT-Koeffizientenblock entsprechend einer Quadratwurzel aus einem Verhältnis der ersten Auflösung zu der zweiten Auflösung skaliert und unter Verwendung einer inversen DCT-Funktion (IDCT) den aufgefüllten und skalierten zumindest einen DCT-Koeffizientenblock transformiert, um einen Referenzpixelblock mit der zweiten Auflösung zur Verfügung zu stellen.
  20. Vorrichtung nach Anspruch 15, die weiterhin aufweist: einen Komprimierer für die Komprimierung der skalierten Referenzpixelblöcke, um komprimierte und skalierte Referenzpixelblöcke zu erzeugen, einen Speicher für das Ablegen der komprimierten und skalierten Referenzpixelblöcke und einen Dekomprimierer für die Dekomprimierung der komprimierten und skalierten Referenzpixelblöcke, die in dem Speicher abgelegt sind, um skalierte Referenzpixelblöcke für den Interpolator zu erzeugen.
  21. Vorrichtung nach Anspruch 20, die weiterhin aufweist: einen zweiten Dekomprimierer für die Dekomprimierung und die Kopplung mit einem Ausgang der komprimierten und skalierten Referenzpixelblöcke, die von dem Komprimierer erzeugt wurden.
  22. Vorrichtung nach Anspruch 20, die weiterhin aufweist: einen Ausgangspufferspeicher für das Ablegen zumindest eines Teiles der komprimierten und skalierten Referenzpixelblöcke, die von dem Komprimierer erzeugt wurden, einen zweiten Dekomprimierer für die Dekomprimierung der komprimierten und skalierten Referenzpixelblöcke, die von dem Komprimierer erzeugt wurden, und einen Resizer bzw. eine Einrichtung für die Veränderung der Größe, für die Adaption eines Formatparameters der skalierten Referenzpixelblöcke, die von dem zweiten Dekomprimierer zur Verfügung gestellt werden.
  23. Vorrichtung nach Anspruch 20, wobei der Komprimierer unter Verwendung einer Wavelet-Transformation die skalierten Referenzpixelblöcke transformiert, um entsprechende Blöcke von Wavelet-Koeffizenten zu erzeugen, vorzugsweise die entsprechenden Wavelet-Koeffizienten quantisiert, so daß diejenigen Koeffizienten, die niedrigere Ortsauflösungsinformation darstellen, eine größere Bitzuweisung erhalten und die jeweiligen quantisierten Wavelet-Koeffizienten in jeweilige Worte für die Speicherung in dem Speicher gepackt werden.
  24. Vorrichtung nach Anspruch 23, wobei die Wavelet-Transformation eine Naar-Transformation aufweist.
DE1999609880 1998-05-07 1999-05-07 Dekodierung eines komprimierten digitalen Bildsignals Expired - Lifetime DE69909880T2 (de)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US160789 1988-02-26
US8463298P 1998-05-07 1998-05-07
US84632P 1998-05-07
US09/160,789 US6310919B1 (en) 1998-05-07 1998-09-25 Method and apparatus for adaptively scaling motion vector information in an information stream decoder
US234249 1999-01-20
US09/234,249 US6704358B1 (en) 1998-05-07 1999-01-20 Method and apparatus for resizing image information

Publications (2)

Publication Number Publication Date
DE69909880D1 DE69909880D1 (de) 2003-09-04
DE69909880T2 true DE69909880T2 (de) 2004-06-03

Family

ID=27374817

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1999609880 Expired - Lifetime DE69909880T2 (de) 1998-05-07 1999-05-07 Dekodierung eines komprimierten digitalen Bildsignals

Country Status (4)

Country Link
EP (1) EP0955609B1 (de)
JP (1) JP2000032463A (de)
DE (1) DE69909880T2 (de)
TW (1) TW440804B (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100387606B1 (ko) * 2000-06-09 2003-06-18 포스데이타 주식회사 멀티쓰레드 스케일링을 사용하는 디지털 비디오 신호의압축/다중 화면 처리 방법 및 그 장치
US6909750B2 (en) * 2001-05-01 2005-06-21 Koninklijke Philips Electronics N.V. Detection and proper interpolation of interlaced moving areas for MPEG decoding with embedded resizing
US20030021347A1 (en) * 2001-07-24 2003-01-30 Koninklijke Philips Electronics N.V. Reduced comlexity video decoding at full resolution using video embedded resizing
KR100450939B1 (ko) * 2001-10-23 2004-10-02 삼성전자주식회사 이미지 축소를 위한 스케일-다운 기능을 가지는 압축비디오 복호화기 및 방법
KR100930436B1 (ko) * 2002-10-17 2009-12-08 (주)휴맥스 홀딩스 이산 여현 역변환을 이용한 이미지 크기 재설정 방법
JP2005217532A (ja) * 2004-01-27 2005-08-11 Canon Inc 解像度変換方法及び解像度変換装置
KR20140090999A (ko) * 2011-10-14 2014-07-18 어드밴스드 마이크로 디바이시즈, 인코포레이티드 영역-기반 이미지 압축

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991447A (en) * 1997-03-07 1999-11-23 General Instrument Corporation Prediction and coding of bi-directionally predicted video object planes for interlaced digital video

Also Published As

Publication number Publication date
DE69909880D1 (de) 2003-09-04
TW440804B (en) 2001-06-16
JP2000032463A (ja) 2000-01-28
EP0955609B1 (de) 2003-07-30
EP0955609A1 (de) 1999-11-10

Similar Documents

Publication Publication Date Title
DE69738264T2 (de) Videokodierungs- und Videodekodierungsvorrichtung
DE69728801T2 (de) Verfahren und Vorrichtung zum Verändern der Auflösung durch direkte DCT Koeffizenten-Umsetzung
DE69830802T2 (de) Zuweisung von rechenleistung in einem informationsstrom-dekoder
DE69535228T2 (de) Bildumsetzungsvorrichtung
DE69924102T2 (de) Skalierung komprimierter bilder
DE69735838T2 (de) Videokodierer mit Transformationskoeffizientenprädiktion
DE60302602T2 (de) Sub-Pixel-Interpolation in Bewegungsschätzung und Bewegungskompensation
DE60125301T2 (de) Videosignaltranskodierung
DE69909364T2 (de) Vorrichtung und Methode zur Änderung der Grösse eines komprimiertes Bildes
EP0687111A2 (de) Verfahren zur Codierung/Decodierung eines Datenstroms
DE60203850T2 (de) System und Verfahren zum Verarbeiten von Bildern mit aufgelöster Mosaikstruk- tur, um durch Farb-Aliasing hervorgerufenen Artefakte zu verringern.
DE69932429T2 (de) Verfahren und gerät für die inverse quantisierung von mpeg-4 video
DE69915843T2 (de) Teilbandkodierung/-dekodierung
DE102020125206A1 (de) Verfahren und system zur mehrkanalvideocodierung mit frameratenänderung und kanalübergreifender referenzierung
EP0956539A1 (de) Verfahren und anordnung zur codierung und decodierung eines digitalisierten bildes
DE69909880T2 (de) Dekodierung eines komprimierten digitalen Bildsignals
DE69723325T2 (de) Verfahren und Vorrichtung zur Codierung und Decodierung von Bildern
EP0985317B1 (de) Verfahren zur codierung und decodierung eines digitalisierten bildes
DE60210757T2 (de) Vorrichtung zur videokodierung und -aufzeichnung
EP1116184B1 (de) Verfahren und anordnung zur bearbeitung eines digitalisierten bildes mit bildpunkten
EP1110407B1 (de) Verfahren und anordnung zur codierung und decodierung eines digitalisierten bildes mit anwendung eines gesamtbewegungsvektors
DE19951341B4 (de) Verfahren zur bewegungskompensierenden Prädiktion von Bewegtbildern sowie Einrichtung hierzu
EP0752788A2 (de) Videocoder und -decoder
EP1285537B1 (de) Verfahren und eine anordnung zur codierung bzw. decodierung einer folge von bildern
DE19644769B4 (de) Vorrichtung und Verfahren zum formadaptiven Codieren von Bildsignalen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 955609

Country of ref document: EP

Representative=s name: WSL PATENTANWAELTE PARTNERSCHAFTSGESELLSCHAFT, DE