DE60309375T2 - Parametrisierung für verlauf-kompensation - Google Patents

Parametrisierung für verlauf-kompensation Download PDF

Info

Publication number
DE60309375T2
DE60309375T2 DE60309375T DE60309375T DE60309375T2 DE 60309375 T2 DE60309375 T2 DE 60309375T2 DE 60309375 T DE60309375 T DE 60309375T DE 60309375 T DE60309375 T DE 60309375T DE 60309375 T2 DE60309375 T2 DE 60309375T2
Authority
DE
Germany
Prior art keywords
parameter
frame
values
encoder
compensation
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
DE60309375T
Other languages
English (en)
Other versions
DE60309375D1 (de
Inventor
Sridhar Seatle Srinivasan
Shankar Bellevue Regunathan
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of DE60309375D1 publication Critical patent/DE60309375D1/de
Publication of DE60309375T2 publication Critical patent/DE60309375T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/172Methods 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 picture, frame or field
    • 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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • 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
    • 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/46Embedding additional information in the video signal during the compression process
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • 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
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects

Description

  • Informationen zu verwandten Anmeldungen
  • Diese Anmeldung erhebt Anspruch auf die vorläufige US-Patentanmeldung mit der Seriennummer 60/377.628, eingereicht am 3. Mai 2002, auf die in der vorliegenden Anmeldung Bezug genommen wird. Diese Anmeldung betrifft die US-Patentanmeldung mit der Seriennummer aa/bbb.ccc mit dem Titel „Fading Estimation/Compensation", die zusammen mit der vorliegenden Patentanmeldung eingereicht wird sowie die US-Patentanmeldung mit der Seriennummer aa/bbb.ccc mit dem Titel „Signaling for Fading Compensation", die zusammen mit der vorliegenden Patentanmeldung eingereicht wird, auf deren Offenbarungen in der vorliegenden Anmeldung Bezug genommen wird.
  • Technisches Gebiet
  • Es werden Verfahren und Tools für die Parametrisierung für Verlauf-Kompensation in videoverarbeitenden Anwendungen beschrieben. So führt beispielsweise ein Videoencoder Verlauf-Kompensation auf einem Bezugsbild auf Basis von Verlauf-Parametern durch.
  • Hintergrund der Technik
  • Digitalvideo verbraucht große Mengen an Speicher- und Übertragungskapazität. Eine typische unverarbeitete digitale Videosequenz enthält 15 oder 30 Frames pro Sekunde. Jeder einzelne Frame kann zehntausende oder hunderttausende von Pixeln (auch PELS, „picture elements" genannt) enthalten. Jedes Pixel repräsentiert ein winziges Element des Bildes. In unverarbeiteter Form repräsentiert ein Computer üblicherweise einen Pixel mit 24 Bits. Demzufolge kann die Anzahl von Bits pro Sekunde oder die Bitrate einer typischen unverarbeiteten digitalen Videosequenz 5 Millionen Bits/Sekunde oder mehr betragen.
  • Die meisten Computer und Computernetzwerke verfügen nicht über die Ressourcen zum Verarbeiten eines unverarbeiteten Digitalvideos. Aus diesem Grund wenden Techniker Komprimierung (auch Codierung oder Encodierung genannt) an, um die Bitrate des digitalen Videos zu verringern. Komprimierung kann verlustfrei sein, wobei die Qualität des Videos nicht gemindert wird, jedoch kann das Verringern der Bitrate aufgrund der Komplexität des Videos lediglich eingeschränkt erfolgen. Oder, Komprimierung kann verlustbehaftet sein, wobei die Qualität des Videos zwar gemindert wird, jedoch eine signifikante Verringerung der Bitrate erfolgt. Der Vorgang der Dekomprimierung kehrt die Komprimierung um.
  • Im Allgemeinen umfassen Verfahren zur Videokomprimierung die Intraframe-Komprimierung und die Interframe-Komprimierung. Bei den Verfahren der Intraframe-Komprimierung werden einzelne Frames, üblicherweise I-Frames oder Keyframes genannt, komprimiert. Bei den Verfahren der Interframe-Komprimierung werden Frames in Bezug auf die vorhergehenden und/oder die nachfolgenden Frames komprimiert, die üblicherweise vorhergesagte Frames, P-Frames oder B-Frames genannt werden.
  • Windows Media Video, Version 8 [„WMV8"] von Microsoft Corporation enthält einen Videoencoder sowie eine Videodecoder. Der WMV8-Encoder wendet die Intraframe- und Interframe-Komprimierung, und der WMV8-Decoder wendet die Intraframe- und Interframe-Dekomprimierung an.
  • A. Intraframe-Komprimierung im WMV8
  • 1 illustriert ein Beispiel einer block-basierten Intraframe-Komprimierung (100) eines Pixelblockes (105) in einem Keyframe in dem WMV8-Encoder. Beispielsweise partitioniert der WMV8-Encoder einen Key-Video-Frame in 8 × 8 Pixel große Blöcke und führt die 8 × 8Diskrete Kosinustransformation [„DCT"] bei den einzelnen Blöcken durch, wodurch die 8 × 8 Pixel großen Blöcke (105) in einen 8 × 8 großen Block von DCT-Koeffizienten (115) umgewandelt werden. Der Encoder quantisiert (120) die DCT-Koeffizienten, wodurch ein 8 × 8 großer Block quantisienter DCT-Koeffizienten (125) entsteht, den der Encoder anschließend für die Entropie-Codierung vorbereitet.
  • Der Encoder codiert den DC-Koeffizienten (126) als ein Differenzial von dem DC-Koeffizienten (136) eines vorher codierten Nachbarn (zum Beispiel eines Nachbarblo ckes) (135) des Blockes der codiert wird. Der Encoder führt die Entropie-Codierung des Differenzials durch (140). 1 illustriert die linke Spalte (127) mit AC-Koeffizienten, die als ein Differenzial (147) von der linken Spalte (137) des benachbarten (zur linken Seite) Blockes (135) codiert werden. Die verbleibenden AC-Koeffizienten sind von dem Block (125) der quantisierten DCT-Koeffizienten.
  • Der Encoder tastet (150) den 8 × 8 großen Block (145) der vorhergesagten, quantisierten AC/DCT-Koeffizienten in eine eindimensionale Anordnung (155) ab, und führt dann die Entropie-Codierung der abgetasteten AC-Koeffizienten unter der Verwendung einer Variation der Lauflängen-Codierung (160) durch. Der Encoder wählt einen Entropie-Code aus einer oder mehreren Run-Level-Last-Tabellen (165) aus und gibt den Entropie-Code aus (170).
  • B. Interframe-Komprimierung im WMV8
  • Die Interframe-Komprimierung im WMV8 führt ein durch blockbasierte Bewegung kompensiertes Vorhersage-Codieren mit anschließender Transformationscodierung des Restfehlers durch. Die 2 und 3 illustrieren die blockbasierte Interframe-Komprimierung für einen vorhergesagten Frame in dem WMV8-Encoder. 2 illustriert insbesondere die Bewegungsvorhersage für einen vorhergesagten Frame (210), und 3 illustriert die Komprimierung eines Vorhersage-Restes für einen Block mit vorhergesagter Bewegung eines vorhergesagten Frames.
  • Der WMV8-Encoder partitioniert beispielsweise einen vorhergesagten Frame in 8 × 8 Pixel große Blöcke. Gruppen zu jeweils vier 8 × 8 großen Blöcken bilden Makroblöcke. Es wird eine Bewegungsvorhersage für jeden Makroblock durchgeführt. Die Bewegungsvorhersage entspricht in etwa der Bewegung des Pixel-Makroblocks relativ zu einem Bezugsframe, beispielsweise einem vorher codierten vorhergehenden Frame. In 2 berechnet der WMV8-Encoder einen Bewegungsvektor für einen Makroblock (215) in dem vorhergesagten Frame (210). Zum Berechnen des Bewegungsvektors durchsucht der Encoder einen Suchbereich (235) eines Bezugsframes (230). Innerhalb des Suchbereiches (235) vergleicht der Encoder den Makroblock (215) des vorhergesagten Frames (210) mit verschiedenen, zur Auswahl stehenden Makroblöcken, um einen gut passenden, ausgewählten Makroblock zu finden. Nachdem der Encoder einen passenden Makroblock gefunden hat, gibt der Encoder Informationen aus, die den Bewegungsvektor (Entropie-codiert) für den passenden Makroblock anzeigen, so dass der Decoder während des Decodierens den passenden Makroblock finden kann. Beim Decodieren des vorhergesagten Frames (210) mit Hilfe von Bewegungs-Kompensation verwendet ein Decoder den Bewegungsvektor zum Berechnen eines Vorhersage-Makroblockes für den Makroblock (215) unter der Verwendung von Informationen des Bezugsframes (230). Die Vorhersage für den Makroblock ist selten einhundertprozentig genau, so codiert der Encoder üblicherweise Differenzen der 8 × 8 Pixel großen Blöcke (auch Fehler- oder Restblöcke genannt) zwischen dem Vorhersage-Makroblock und dem Makroblock (215) selbst.
  • 3 illustriert ein Beispiel des Berechnens und Codierens eines Fehlerblockes (335) in dem WMV8-Encoder. Der Fehlerblock (335) repräsentiert die Differenz zwischen dem vorhergesagten Block (315) und dem ursprünglichen aktuellen Block (325). Der Encoder führt eine Diskrete Kosinustransformation [DCT-Verfahren] (340) für den Fehlerblock (335) durch, die in einem 8 × 8 großen Koeffizientenblock (345) resultiert. Anschließend quantisiert (350) der Encoder die DCT-Koeffizienten, wodurch ein 8 × 8 großer Block quantisierter DCT-Koeffizienten (355) gebildet wird. Die Größe des Quantisierungsschrittes ist regulierbar. Durch die Quantisierung entsteht zwar ein Genauigkeitsverlust, sie führt aber nicht zu einem vollständigen Verlust der Informationen für die Koeffizienten.
  • Anschließend bereitet der Encoder den 8 × 8 großen Block quantisierter DCT-Koeffizienten (355) für die Entropie-Codierung vor. Der Encoder tastet (360) den 8 × 8 großen Block (355) in eine eindimensionale Anordnung (365) mit 64 Elementen so ab, dass die Koeffizienten im Allgemeinen von der niedrigsten zur höchsten Frequenz angeordnet sind, wodurch üblicherweise lange Nullfolgen entstehen.
  • Der Encoder führt die Entropie-Codierung der abgetasteten Koeffizienten unter der Verwendung einer Variation der Lauflängen-Codierung (370) durch. Der Encoder wählt einen Entropie-Code aus einer oder mehreren Run-Lewel-Last-Tabellen (375) aus und gibt den Entropie-Code aus.
  • 4 illustriert ein Beispiel eines entsprechenden Decodierungsprozesses (400) für einen intercodierten Block. Aufgrund der Quantisierung der DCT-Koeffizienten ist der rekonstruierte Block (475) nicht identisch mit dem entsprechenden ursprünglichen Block. Die Komprimierung ist verlustbehaftet.
  • In Zusammenfassung von 4 decodiert ein Decoder (410, 420) unter der Verwendung der Codierung mit variabler Länge (410) mit einer oder mehreren Run-Level-Last-Tabellen (415) und der Lauflängen-Codierung (420) Entropie-codierte Informationen, die einen Vorhersage-Rest repräsentieren. Der Decoder führt ein inverses Abtasten (430) einer eindimensionalen Anordnung (425) durch und speichert dabei die Entropiedecodierten Informationen in einen zweidimensionalen Block (435). Der Decoder führt eine inverse Quantisierung sowie eine inverse Diskrete Kosinustransformation (zusammen 440) der Daten durch, wodurch ein rekonstruierter Fehlerblock (445) gebildet wird. In einem separaten Bewegungsvorhersage-Pfad berechnet der Decoder einen vorhergesagten Block (465) unter Verwendung der Bewegungsvektorinformationen (455) für das Verschieben aus einem Bezugsframe. Der Decoder kombiniert (470) den vorhergesagten Block (465) mit dem rekonstruierten Fehlerblock (445), um den rekonstruierten Block (475) zu bilden.
  • Die Veränderungsmenge zwischen dem ursprünglichen und dem rekonstruierten Frame wird Verzeichnung genannt, und die Anzahl von zum Codieren des Frames benötigten Bits wird als Rate für den Frame bezeichnet. Die Verzeichnungsmenge ist ungefähr umgekehrt proportional zu der Rate. Mit anderen Worten bedeutet dies, dass das Codieren eines Frames mit weniger Bits (größere Komprimierung) in einer größeren Verzeichnung resultiert und umgekehrt.
  • C. Einschränkungen der herkömmlichen bewegungsbasierten Videokomprimierung
  • Videosequenzen mit Effekten wie beispielsweise Fading (Verlauf), Morphing und Blending benötigen zum Codieren relativ große Bitmengen, da die Verfahren zur herkömmlichen bewegungsbasierten Videokomprimierung im Allgemeinen auf solchen Frames nicht effektiv sind. Beispielsweise wird eine Videosequenz betrachtet, in der sich ein Objekt in einem Frame leicht in eine Richtung von einem Frame zu dem nächsten Frame bewegt hat. In einem typischen blockbasierten Verfahren zur Bewegungsvorhersage kann es durchaus leicht sein, in einer Videosequenz ohne Verlauf in dem vorhergehenden Frame einen gut passenden Block für einen Block in dem aktuellen Frame zu finden und den resultierenden Bewegungsvektor zu codieren. Wenn jedoch beispielsweise ein „Fade to Black" (Abblenden) in der Videosequenz auftritt, kann es sein, dass sich jeder Luminanz-Wert in dem aktuellen Frame relativ zu dem vorhergehenden Frame geändert hat, wodurch der Videoencoder keinen gut passenden Block mehr für den Block finden kann. Verlauf kann auch aufgrund einer natürlichen Beleuchtungsänderung in einer Videosequenz entstehen. Blending und Morphing, die andere Bildübergangseftekte darstellen, können ebenso zu einem Reduzieren der Effektivität der Vorhersage und Kompensation für geradlinige Bewegungen führen.
  • Die Patentanmeldung US2001/016005 offenbart ein Verfahren zur Helligkeitsvariations-Kompensation, das die Schritte des Ermittelns von Verlauf- (Helligkeitsvariations-) Parametern einschließlich eines Luminanz-Skalier-Parameters und eines Luminanz-Verschiebe-Parameters, des Durchführens von Verlauf-Kompensation durch Berechnen mehrerer neu zugeordneter Pixel-Werte für ein neu zugeordnetes Bezugs-Videobild, wobei die mehreren neu zugeordneten Pixel-Werte wenigstens teilweise auf Neuzuordnen mehrerer ursprünglicher Pixel-Werte, die in einem ursprünglichen Bezugs-Videobild verwendet werden, hinsichtlich des Luminanz-Verlauf-Parameters basieren, und des Durchführens von Bewegungskompensation für wenigstens einen Teil eines aktuellen Videobildes relativ zu dem neu zugeordneten Bezugs-Videobild umfasst. Die Formel für das Neuzuordnen lautet Y' = CY + B, wobei C und B geeignete Luminanz-Korrektur-Parameter sind.
  • Das Dokument „Global Brightness-Variation Compensation for Video Coding" von Kamikura et al. IEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, Band 8, Nr. 8, 1. Dezember 1998, Seiten 988-999, XP000791689, offenbart ebenso ein Verarbeitungsverfahren, das dem vorhergehenden ähnlich ist, jedoch außerdem das Neuzuordnen von Chrominanz-Werten durch geeignete Chrominanzkorrektur-Parameter einschließt.
  • Die Patentanmeldung US2002/033901 offenbart ein Verfahren zur Helligkeitsvariations-Kompensation unter Verwendung einer Neuzuordnungs-Formel der Art: Y' = k(Y – M) + M, bei der k ein geeigneter Koeffizient und M die mittlere Bildluminanz ist. Die Offenbarung erwähnt, dass die Formel mit kleinen Abweichungen auch für die Korrektur der Chrominanzkomponenten angewandt werden kann.
  • D. Standards für die Videokomprimierung und -dekomprimierung
  • Abgesehen von WMV8 betreffen mehrere internationale Standards die Videokomprimierung und -dekomprimierung. Diese Standards enthalten die Motion Picture Experts Group-[„MPEG"] Standards 1, 2 und 4 sowie die Standards H.261, H.262 und H.263 der International Telecommunication Union [„ITU"]. In gleicher Weise wie WMV8 verwenden diese Standards eine Kombination von Intraframe- und Interframe-Komprimierung, obgleich sich die Standards typischerweise durch die Details der angewandten Komprimierungstechniken von WMV8 unterscheiden. So beschreibt beispielsweise der Anhang P des Standards H.263 einen Modus für das Resampling eines Bezugsbildes für die Verwendung in der Vorhersage, der adaptiv zur Änderung der Auflösung von Bildern während des Codiervorganges verwendet werden kann.
  • In Anbetracht der kritischen Bedeutung der Videokomprimierung und -dekomprimierung für Digitalvideo kommt es nicht von ungefähr, dass die Videokomprimierung und -dekomprimierung Bereiche mit starker Entwicklung sind. Was auch immer die Vorteile der bisher genutzten Verfahren zur Videokomprimierung und -dekomprimierung sein mögen, sie verfügen nicht über die Vorteile der folgenden Verfahren und Tools.
  • Zusammenfassung der Erfindung
  • Es ist eine der Aufgaben der vorliegenden Erfindung, die Durchführung der Rate-Verzeichnung zu verbessern, oder, mit anderen Worten, dieselbe Qualität unter der Verwendung weniger Bits zu erreichen, oder durch das Verwenden der gleichen Bitmenge eine bessere Qualität zu erzielen. Eine Möglichkeit, diese Aufgabe zu erfüllen, besteht darin, diejenigen Abschnitte der Videosequenzen zu bestimmen, die zum Codieren relativ große Bitmengen benötigen und anschließend Möglichkeiten für das verbesserte Komprimieren solcher Abschnitte zu suchen. Videosequenzabschnitte mit Effekten, wie beispielsweise Verlauf, Morphing und Blending kommen zwar selten vor, benötigen jedoch, wenn die Effekte auftreten, zum Codieren eine relativ große Bitmenge, da die herkömmlichen Verfahren zur bewegungsbasierten Videokomprimierung auf solchen Abschnitten im Allgemeinen nicht effektiv sind.
  • Dementsprechend ist, zusammenfassend gesagt, die detaillierte Beschreibung auf verschiedene Verfahren und Tools für das Verbessern der Durchführung der Rate-Verzeichnung für Videosequenzen ausgerichtet, die Fade-Ins (Einblendungen), Fade-Outs (Ausblendungen), Cross-Fades (Überblendungen) oder andere Verlauf-, Blending- oder Morphing-Effekte enthalten. So führt ein Videencoder beispielsweise die Verlauf-Kompensation für einen aktuellen Frame durch Regulieren eines Bezugsframes auf Basis von Verlauf-Parametern durch. Dadurch wird die Bewegungs-Kompensation unter der Verwendung des Bezugsframes effizienter. Ein Videodecoder führt die Verlauf-Kompensation durch Regulieren des Bezugsframes durch. Insbesondere bezieht sich die detaillierte Beschreibung auf effiziente Möglichkeiten zum Parametrisieren für das Regulieren des Bezugsframes.
  • In einem ersten Satz von Verfahren und Tools ermittelt ein Videoencoder oder -decoder Verlauf-Parameter, die einen Skalier-Parameter und einen Verschiebe-Parameter umfassen. Der Videoencoder oder -decoder führt Verlauf-Kompensation durch Neuzuordnen von Pixel-Werten (wie beispielsweise Chrominanz- oder Luminanz-Werten) in einem Bezugs-Videobild (wie beispielsweise einem Frame, Field [Halbbild] oder Video Object Plane [VOP]) hinsichtlich der Verlauf-Parameter durch, die zum Beispiel unter der Verwendung von Codes mit fester oder variabler Länge codiert werden können. In einigen Fällen ist der Skalier-Parameter ein Kontrast-Parameter und der Verschiebe-Parameter ist ein Helligkeits-Parameter. Die Verlauf-Parameter geben beispielsweise eine pixelweise lineare Transformierung an, die das Skalieren von Pixel-Werten (wie beispielsweise Chrominanz- oder Luminanz-Werten) unter der Verwendung des Skalier-Parameters umfassen. In einigen Fällen umfasst die pixelweise lineare Transformierung des Weiteren das Verschieben der skalierten Pixel-Werte unter der Verwendung des Verschiebe-Parameters. Der Videoencoder oder -decoder führt Bewegungskompensation für wenigstens einen Teil eines aktuellen Videobildes relativ zu dem neu zugeordneten Bezugs-Videobild durch.
  • In einem zweiten Satz von Verfahren und Tools ermittelt ein Videoencoder oder -decoder Kompensations-Parameter für eine globale Luminanzveränderung, die einen Skalier-Parameter und einen Verschiebe-Parameter umfassen. Der Videoencoder oder -decoder führt eine Kompensation der globalen Luminanzveränderung durch Neuzuordnen von Pixel-Werten für alle Pixel-Werte eines Bezugs-Videoframes hinsichtlich der Kompensations-Parameter für eine globale Luminanzveränderung durch. Der Videoencoder oder -decoder führt Bewegungs-Kompensation für wenigstens einen Teil des aktuellen Videoframes relativ zu dem neu zugeordneten Bezugs-Videoframe durch.
  • Die verschiedenen Verfahren und Tools können in kombinierter Form oder einzeln angewendet werden. Verschiedene Ausführungsbeispiele setzen ein oder mehrere der beschriebenen Verfahren und Tools ein.
  • Zusätzliche Leistungsmerkmale oder Vorteile werden anhand der folgenden detaillierten Beschreibung der verschiedenen Ausführungsbeispiele in Bezug auf die beigefügten Zeichnungen ersichtlich.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Schema, das die blockbasierte Intraframe-Komprimierung in Übereinstimmung mit dem Stand der Technik darstellt.
  • 2 ist ein Schema, das die Bewegungs-Vorhersage in einem Videoencoder in Übereinstimmung mit dem Stand der Technik darstellt.
  • 3 ist ein Schema, das die blockbasierte Interframe-Komprimierung in Übereinstimmung mit dem Stand der Technik darstellt.
  • 4 ist ein Schema, das die blockbasierte Interframe-Dekomprimierung in Übereinstimmung mit dem Stand der Technik darstellt.
  • 5 ist ein Blockdiagramm, das eine geeignete Berechnungsumgebung darstellt, in der verschiedene beschriebene Ausführungsbeispiele eingesetzt werden können.
  • 6 ist ein Blockdiagramm eines verallgemeinerten Videoencoder-Systems, das in verschiedenen beschriebenen Ausführungsbeispielen verwendet wird.
  • 7 ist ein Blockdiagramm eines verallgemeinerten Videodecoder-Systems, das in verschiedenen beschriebenen Ausführungsbeispielen verwendet wird.
  • 8 ist ein Ablaufplan, der ein Verfahren für das Codieren eines Videos mit Durchführen der Verlauf-Vorhersage und der Verlauf-Kompensation darstellt.
  • 9 ist ein Ablaufplan, der ein Verfahren für das Decodieren eines codierten Videos mit Durchführen der Verlauf-Kompensation darstellt.
  • 10 ist ein Blockdiagramm eines Videoencoder-Systems, das Verlauf-Vorhersage und Verlauf-Kompensation durchführen kann.
  • 11 ist ein Blockdiagramm eines Videodecoder-Systems, das Verlauf-Kompensation durchführen kann.
  • 12 ist ein Ablaufplan, der ein Verfahren zur Verlauf-Erfassung und Parameter-Extrahierung darstellt.
  • 13 ist ein Baumdiagramm, das eine Anzeige-Reihenfolge für das Angeben der Information darstellt, ob eine Verlauf-Kompensation für einen Frame durchzuführen ist.
  • Ausführliche Beschreibung
  • Die beschriebenen Ausführungsbeispiele betreffen Verfahren und Tools zur Verlauf-Vorhersage und/oder -Kompensation. Ohne Verlauf-Vorhersage und/oder -Kompensation benötigen Videosequenzen mit Effekten wie Verlauf, Morphing und Blending zum Codieren relativ große Bitmengen, da die herkömmlichen Verfahren zur bewegungsbasierten Videokomprimierung im Allgemeinen auf solchen Frames nicht effektiv sind. Die beschriebenen Ausführungsbeispiele verbessern die Durchführung der Rate-Verzeichnung durch das Durchführen der Verlauf-Vorhersage/-Kompensation in solchen Sequenzen. Verschiedene Ausführungsbeispiele betreffen Verfahren und Tools für das Vorhersagen, Verwenden, Codieren und/oder Decodieren von Parametern der globalen Luminanzveränderung.
  • Verlauf-Kompensation schließt in einigen Ausführungsbeispielen zum Kompensieren des Verlaufs das Durchführen einer globalen Luminanzveränderung für einen oder mehrere Bezugsframes ein. Eine globale Luminanzveränderung ist eine Luminanzveränderung über einen definierten Bereich, der ein Frame, ein Teil eines Frames (beispielsweise ein einzelner Block oder Makroblock in einem Frame oder eine Gruppe von Makroblöcken in einem Frame) oder ein anderer bestimmter Abschnitt eines Bildes, das codiert oder decodiert wird, sein kann. Anschließend wird ein aktueller Frame durch Bewegungsvorhersage/Bewegungskompensation von dem regulierten einen Frame oder mehreren Bezugsframes vorhergesagt. Alternativ dazu schließt die Verlauf-Kompensation eine globale Veränderung für einen Bezugsframe zum Kompensieren der Effekte wie beispielsweise dem Blending oder Morphing ein. Im Allgemeinen schließt die Verlauf-Kompensation jegliche Kompensation des Verlaufs (das heißt, Fade-to-Black [Abblenden] oder Fade-from-Black [Einblenden]), Blending, Morphing oder andere natürliche oder synthetische Lichteffekte ein, die die Intensitäten der Pixel-Werte beeinträchtigen. Ohne Beschränkung der Allgemeinheit werden die Begriffe globale Luminanzveränderung und Verlauf jedoch im Folgenden untereinander austauschbar verwendet, es sei denn der Kontext gibt eindeutig etwas Anderes an.
  • Als eine Alternative zum Durchführen der Verlauf-Kompensation auf Frames führen einige Ausführungsbeispiele die Verlauf-Kompensation auf Halbbildern, Objektschichten [VOLs – Video Object Layers] oder anderen Bildern durch.
  • In einigen Ausführungsbeispielen erfolgt die Verlauf-Kompensation durch Regulieren der Pixel-Werte in den Luminanz- und Chrominanzkanälen eines Bezugsframes im YUV-Farbraum. Das Regulieren schließt das Skalieren und Verschieben der Luminanz-Pixel-Werte sowie das Skalieren und Verschieben der Chrominanz-Pixel-Werte ein. Alternativ dazu ist der Farbraum ein anderer (beispielsweise YIQ oder RGB), und/oder die Kompensation wendet andere Verfahren zum Regulieren an.
  • Ein Encoder/Decoder führt die Verlauf-Vorhersage/-Kompensation von Frame zu Frame durch. Alternativ dazu führt der Encoder/Decoder die Verlauf-Vorhersage/Kompensation auf einer anderen Basis oder auf einem Abschnitt des Frames wie beispielsweise einem oder mehreren Blöcken oder Makroblöcken durch.
  • Die verschiedenen Verfahren und Tools können in kombinierter Form oder einzeln angewendet werden. Verschiedene Ausführungsbeispiele setzen ein oder mehrere der beschriebenen Verfahren und Tools ein. Obgleich im Sinne der Präsentation die Schritte für diese Verfahren typischerweise in einer bestimmen Art und Weise, der Reihe nach, beschrieben werden, sollte beachtet werden, dass diese Art und Weise der Beschreibung kleine Änderungen in der Reihenfolge der Schritte beinhaltet, es sei denn, es ist ein bestimmte Reihenfolge erforderlich. So werden beispielsweise Schritte, die einer bestimmten Reihenfolge nach beschrieben werden, in einigen Fällen eine veränderte Reihenfolge aufweisen oder gleichzeitig durchgeführt werden. Darüber hinaus zeigen der Einfachheit halber die Ablaufschemen typischerweise nicht die verschiedenen Möglichkeiten, in denen bestimmte Verfahren zusammen mit anderen Verfahren angewendet werden können.
  • In einigen Ausführungsbeispielen verwendet der Videoencoder und -decoder verschiedene Flags und Signale in einem Bitstrom. Während ganz bestimmte Flags und Signale beschrieben werden, sollte hierbei angemerkt werden, dass diese Art und Weise der Beschreibung verschiedene Formeln (zum Beispiel 0's eher als 1's) für die Flags und Signale beinhaltet.
  • I. Berechnungsumgebung
  • 5 illustriert ein verallgemeinertes Beispiel einer geeigneten Berechnungsumgebung (500), in der verschiedene der beschriebenen Ausführungsbeispiele eingesetzt werden können. Die Berechnungsumgebung (500) soll keine Einschränkung im Hinblick auf das Ausmaß der Nutzung oder Funktionsweise suggerieren, da die Verfahren und Tools in unterschiedlichen Berechnungsumgebungen für allgemeine oder Berechnungsumgebungen besondere Zwecke ausgeführt werden können.
  • In Bezug auf 5 enthält die Berechnungsumgebung (500) wenigstens eine Verarbeitungseinheit (510) und einen Speicher (520). In 5 ist diese grundlegendste Konfiguration (530) innerhalb einer gestrichelten Linie enthalten. Die Verarbeitungseinheit (510) führt von einem Computer durchführbare Befehle aus und kann ein realer oder virtueller Prozessor sein. In einem Simultanverarbeitungssystem führen Simultanverarbei tungs-Einheiten von einem Computer durchführbare Befehle aus, um die Verarbeitungsleistung zu erhöhen. Der Speicher (520) kann ein flüchtiger Speicher (beispielsweise ein Register, Cachespeicher, Direktzugriffsspeicher RAM), ein nicht-flüchtiger Speicher (beispielsweise ein Festwertspeicher ROM, EEPROM, Flash Memory und so weiter) oder eine Kombination der beiden sein. Der Speicher (520) speichert die Software (580), die einen Encoder oder einen Decoder, wie zum Beispiel einen Videoencoder oder -decoder, implementiert.
  • Eine Berechnungsumgebung kann über zusätzliche Leistungsmerkmale verfügen. So enthält die Berechnungsumgebung (500) beispielsweise eine Speichereinrichtung (540), ein oder mehrere Eingabegeräte (550), ein oder mehrere Ausgabegeräte (560) und eine oder mehrere Kommunikationsverbindungen (570). Ein Zusammenschaltungsmechanismus (nicht dargestellt), wie beispielsweise ein Bus, ein Controller oder Netzwerk schaltet die Komponenten der Berechnungsumgebung (500) zusammen. Die Betriebssystem-Software (nicht dargestellt) stellt typischerweise eine Betriebsumgebung für weitere Software in der Berechnungsumgebung (500) bereit und koordiniert die Aktivitäten der Komponenten der Berechnungsumgebung (500).
  • Der Speicher (540) kann ein entfernbarer oder nicht-entfernbarer Speicher sein und umfasst Magnet-Speicherplatten, Magnetbänder oder -kasetten, CD-ROMS, DVDs oder jegliches andere Medium, das zum Speichern von Informationen verwendet und auf das innerhalb der Berechnungsumgebung (500) zugegriffen werden kann. Der Speicher (540) speichert die Befehle für die Software zum Implementieren des Encoders oder Decoders.
  • Das/die Eingabegeräte (550) kann/können ein manuelles Eingabegerät, wie zum Beispiel eine Tastatur, eine Maus, ein Pen oder ein Trackball, ein Voice-Eingabegerät, ein Abtastgerät oder ein anderes Gerät sein, mit dem Eingaben in die Berechnungsumgebung (500) durchgeführt werden können. Für das Audio- oder Videocodieren kann/können das/die Eingabegeräte (550) ebenso eine Soundkarte, eine Videokarte, eine TV-Tuner-Karte oder ein ähnliches Eingabegerät, das eine Audio- oder Videoeingabe in analoger oder digitaler Form akzeptiert oder eine CD-ROM oder eine CD-RW sein, die Audio- oder Videosamples in die Berechnungsumgebung (500) einliest.
  • Das/die Ausgabegerät/e (560) kann/können ein Display, ein Drucker, ein Lautsprecher, ein CD-Schreiber oder ein anderes Gerät sein, mit dem die Ausgabe aus der Berechnungsumgebung (500) getätigt werden kann.
  • Die Kommunikationsverbindung/en (570) ermöglichten die Kommunikation über ein Kommunikationsmedium zu einer anderen Berechnungseinheit. Das Kommunikationsmedium überträgt Informationen wie beispielsweise vom Computer ausführbare Befehle, Audio- oder Videoeingaben oder -ausgaben oder andere Daten in einem modulierten Datensignal. Ein moduliertes Datensignal ist ein Signal, das eine oder mehrere Eigenschaften eingestellt oder so verändert hat, dass es Informationen in dem Signal codiert. Als Beispiel und nicht als Einschränkung kann das Kommunikationsmedium verkabelte oder kabellose Techniken, die mit einem elektrischen, optischen, RF-, infraroten, akustischen oder einem anderen Träger implementiert werden, umfassen.
  • Die Verfahren und Tools können im allgemeinen Kontext der computerlesbaren Medien beschrieben werden. Computerlesbare Medien sind alle beliebigen Medien, auf die innerhalb einer Berechnungsumgebung zugegriffen werden kann. Beispielsweise und nicht als Einschränkung umfasst die Berechungsumgebung (500) als computerlesbare Medien einen Speicher (520), eine Speichereinrichtung (540), Kommunikationsmedien und beliebige Kombinationen der oben genannten. Die Verfahren und Tools können in dem allgemeinen Kontext von von Computer ausführbaren Befehlen, wie die, die in den Programm-Modulen enthalten sind, die in einer Berechnungsumgebung auf einem realen oder virtuellen Zielprozessor ausgeführt werden. Im Allgemeinen umfassen Programm-Module Routinen, Programme, Bibliotheken, Objekte, Klassen, Komponenten, Datenstrukturen und so weiter, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. Die Funktionen der Programm-Module können aus den Programm-Modulen kombiniert oder unter ihnen aufgeteilt werden, je nachdem, wie dies in den verschiedenen Ausführungsbeispielen gewünscht wird. Die von einem Computer ausführbaren Befehle für Programm-Module können innerhalb einer lokalen oder verteilten Berechnungsumgebung ausgeführt werden.
  • Im Sinne der Präsentation verwendet die ausführliche Beschreibung Begriffe wie „Vorhersagen", „Anzeige", „Codieren" und „Decodieren", um Computeroperationen in einer Berechnungsumgebung zu beschreiben. Diese Begriffe sind Abstraktionen höchster Ebene für von einem Computer durchgeführte Operationen und sollten nicht mit von einer Person durchgeführten Schritte verwechselt werden. Die eigentlichen Computeroperationen, die diesen Begriffen entsprechen, variieren je nach Ausführungsbeispiel.
  • II. Verallgemeinerter Videoencoder und -decoder
  • 6 ist ein Blockdiagramm eines verallgemeinerten Videoencoders (600), und 7 ist ein Blockdiagramm eines verallgemeinerten Videodecoders (700).
  • Die zwischen den Modulen innerhalb des Encoders und Decoders dargestellten Beziehungen geben den Hauptinformationsfluss in dem Encoder und dem Decoder an; andere Beziehungen werden der Einfachheit halber nicht dargestellt. Insbesondere stellen die 6 und 7 für gewöhnlich nicht Zusatzinformationen dar, die Encodereinstellungen, Modi, Tabellen und so weiter anzeigen, die für eine Videosequenz, einen Frame, Makroblock, Block und so weiter verwendet werden. Solche Zusatzinformationen werden in dem Ausgabebitstrom typischerweise nach der Entropie-Codierung der Zusatzinformationen gesendet. Das Format des Ausgabebitstroms kann ein Windows Media Video-Format oder ein anderes Format sein.
  • Der Encoder (600) und der Decoder (700) sind blockbasiert und verwenden ein 4:2:0-Makroblock-Format, bei dem jeder Makroblock vier 8 × 8 große Luminanzblöcke (mitunter als 16 × 16 großer Makroblock bezeichnet) und zwei 8 × 8 große Chrominanzblöcke enthält. Alternativ dazu sind der Encoder (600) und der Decoder (700) objektbasiert, verwenden ein anderes Makroblock- oder Blockformat oder führen Operation auf Pixel-Sätzen verschiedener Größe oder Konfiguration als 8 × 8 große Blöcke oder 16 × 16 große Makroblöcke durch.
  • Abhängig von der Durchführung und des Typs der gewünschten Komprimierung können Module des Encoders oder des Decoders hinzugefügt, weggelassen, in mehrere Module aufgeteilt, mit anderen Modulen kombiniert und/oder durch ähnliche Module ersetzt werden. In alternativen Ausführungsbeispielen führen der Encoder oder der Decoder mit verschiedenen Modulen und/oder anderen Konfigurationen von Modulen ein oder mehrere der beschriebenen Verfahren durch.
  • A. Videoencoder
  • 6 ist ein Blockdiagramm eines allgemeinen Videoencoder-Systems (600). Das Encodersystem (600) empfängt eine Sequenz von Video-Frames einschließlich eines aktuellen Frames (605) und erstellt komprimierte Video-Informationen (695) als Output. Bestimmte Ausführungsbeispiele von Videoencodern verwenden typischerweise eine Variation oder ergänzte Version des verallgemeinerten Encoders (600).
  • Das Encodersystem (600) komprimiert vorhergesagte Frames und Keyframes. Im Sinne der Präsentation stellt 6 einen Pfad für Keyframes durch das Encodersystem (600) und einen Pfad für vorwärts-vorhergesagte Frames dar. Viele der Komponenten des Encodersystems (600) werden für das Komprimieren sowohl der Keyframes als auch der vorhergesagten Frames verwendet. Die genauen, von diesen Komponenten durchgeführten Operationen können je nach Typ der Informationen, die komprimiert werden, variieren.
  • Ein vorhergesagter Frame [auch P-Frame, B-Frame für die bidirektionale Vorhersage oder intercodierter Frame genannt] wird hinsichtlich der Vorhersage (oder der Differenz) aus einem oder mehreren anderen Frames repräsentiert. Ein Vorhersage-Rest ist die Differenz zwischen dem, was vorhergesagt wird, und dem ursprünglichen Frame. Im Gegensatz dazu wird ein Keyframe [auch I-Frame oder intracodierter Frame genannt] ohne Bezug auf andere Frames komprimiert.
  • Wenn der aktuelle Frame (605) ein vorwärts-vorhergesagter Frame ist, sagt eine Bewegungsvorhersage-Einrichtung (610) die Bewegung der Makroblöcke oder anderer Pixel-Sätze des aktuellen Frames (605) in Bezug auf einen Bezugsframe vorher, welcher der rekonstruierte vorhergehende Frame (625) ist, der in dem Frame-Store [digitalen Vollbildspeicher] (620) zwischengespeichert ist. In anderen Ausführungsbeispielen ist der Bezugsframe ein nachfolgender Frame, oder der aktuelle Frame wird bidirektional vorhergesagt. Die Bewegungsvorhersage-Einrichtung (610) gibt als Zusatzinformationen Bewegungsinformationen (615) wie beispielsweise Bewegungsvektoren aus. Ein Bewegungskompensator (630) überträgt die Bewegungsinformationen (615) zu dem rekonstruierten vorhergehenden Frame (625), um einen bewegungskompensierten aktuellen Frame (635) zu bilden. Die Vorhersage ist jedoch selten einhundertprozentig genau, und die Differenz zwischen dem bewegungskompensierten aktuellen Frame (635) und dem ursprünglichen aktuellen Frame (605) ergibt den Vorhersage-Rest (645).
  • Alternativ dazu wenden eine Bewegungsvorhersage-Einrichtung und ein Bewegungskompensator einen anderen Typ von Bewegungsvorhersage/-kompensation an.
  • Ein Frequenzwandler (660) konvertiert die räumlichen Domain-Videoinformationen in Frequenzdomain- (das heißt, spektrale) Daten. Für blockbasierte Videoframes führt der Frequenzwandler (660) eine Diskrete Kosinustransformierung [„DCT"] oder eine Variante der DCT für die Blöcke der Rest-Daten der Bewegungs-Vorhersage durch, wodurch Koeffizientenblöcke gebildet werden. Alternativ dazu führt der Frequenzwandler (660) eine andere konventionelle Transformierung wie zum Beispiel eine Fouriertransformation durch oder wendet eine Wavelet- oder Subband-Analyse an. In einigen Ausführungsbeispielen führt der Frequenzwandler (660) für Keyframes eine Frequenzwandlung an Blöcken von räumlichen Vorhersage-Resten durch. Der Frequenzwandler (660) kann eine 8 × 8-, 8 × 4-, 4 × 8- oder Frequenztransformationen einer anderen Größe durchführen.
  • Ein Quantisierer (670) quantisiert anschließend die Blöcke aus Spektraldaten-Koeffizienten. Der Quantisierer wendet eine uniforme, skalare Quantisierung auf die Spektraldaten mit einer Schrittgröße an, die frameweise-basierend oder auf einer anderen Basis variiert. Alternativ dazu führt der Quantisierer einen anderen Typ von Quantisierung für die Spektraldaten-Koeffizienten durch, zum Beispiel eine nicht-uniforme, Vektor- oder nicht-adaptive Quantisierung, oder er quantisiert die räumlichen Domaindaten direkt in einem Encodersystem, das keine Frequenztransformation verwendet. Zusätzlich zu der adaptiven Quantisierung kann der Encoder (600) das Frame-Dropping, das adaptive Filtern oder andere Verfahren zur Rate-Steuerung verwenden.
  • Wenn ein rekonstruierter aktueller Frame für die anschließende Bewegungsvorhersage/kompensation benötigt wird, führt ein inverser Quantisierer (676) eine inverse Quantisierung für die quantisierten Spektraldaten-Koeffizienten durch. Ein inverser Frequenzwandler (666) führt danach die Inverse der Operationen des Frequenzwandlers (660) durch, wodurch ein rekonstruierter Vorhersage-Rest (für einen vorhergesagten Frame) oder ein rekonstruierter Keyframe gebildet werden. Wenn ein aktueller Frame (605) ein Keyframe war, wird der rekonstruierte Keyframe als der rekonstruierte aktuelle Frame (nicht dargestellt) betrachtet. Wenn der aktuelle Frame (605) ein vorhergesagter Frame war, wird der rekonstruierte Vorhersage-Rest zu dem bewegungsbasierten aktuellen Frame (635) addiert, um den rekonstruierten aktuellen Frame zu bilden. Der Frame-Store (620) speichert den rekonstruierten aktuellen Frame für die Verwendung in der Vorhersage des nächsten Frames zwischen. In einigen Ausführungsbeispielen wendet der Encoder einen deblockierenden Filter auf den rekonstruierten Frame an, um Unterbrechungen in den Blöcken des Frames adaptiv auszugleichen.
  • Der Entropiecodierer (680) komprimiert die Ausgabe des Quantisierers (670) ebenso wie bestimmte Zusatzinformationen (zum Beispiel Bewegungsinformationen (615) Quantisierungs-Schrittgröße). Zu den typischen Entropiecodierungsverfahren gehören die Arithmetische Codierung, das Differential Coding, die Huffmann-Codierung, die Lauflängen-Codierung, die LZ-Codierung, die dynamische wörterbuch-basierte Codierungstechnik („Dictionary Coding") sowie Kombinationen der oben genannten Verfahren. Der Entropiecodierer (680) wendet typischerweise verschiedene Codierungsverfahren für verschiedene Arten von Informationen (zum Beispiel DC-Koeffizienten, AC-Koeffizienten, verschiedene Arten von Zusatzinformationen) an und kann innerhalb eines bestimmten Codierungsverfahrens aus einer Vielzahl von Code-Tabellen auswählen.
  • Der Entropiecodierer (680) legt die komprimierten Videoinformationen (695) in dem Zwischenspeicher (690) ab. Ein Zwischenspeicherlevel-Indikator wird an Bitrate-adaptive Module rückgekoppelt. Die komprimierten Videoinformationen (695) werden bei einer konstanten oder relativ konstanten Bitrate für das anschließende Streaming bei dieser Bitrate aus dem Zwischenspeicher (690) entfernt. Alternativ dazu streamt das Encodersystem (600) die komprimierten Videoinformationen sofort nach der Komprimierung.
  • Vor oder nach dem Zwischenspeicher (690) können die komprimierten Videoinformationen (695) für die Übertragung über das Netzwerk kanal-codiert werden. Das Kanal-Codieren kann Daten zur Fehlererfassung und -korrektur für die komprimierten Videoinformationen (695) anwenden.
  • B. Videodecoder
  • 7 ist ein Blockdiagramm eines allgemeinen Videodecodersystems (700). Das Decodersystem (700) empfängt Informationen (795) für eine komprimierte Sequenz von Videoframes und erzeugt ein Output einschließlich eines rekonstruierten Frames (705). Bestimmte Ausführungsbeispiele von Videodecodern verwenden typischerweise eine Variation oder ergänzte Version des verallgemeinerten Decoders (700).
  • Das Decodersystem (700) dekomprimiert vorhergesagte Frames und Keyframes. Im Sinne der Präsentation stellt 7 einen Pfad für Keyframes durch das Decodersystem (700) und einen Pfad für vorwärts-vorhergesagte Frames dar. Viele der Komponenten des Decodersystems (700) werden für die Dekomprimierung sowohl der Keyframes als auch der vorhergesagten Frames verwendet. Die genauen von diesen Komponenten durchgeführten Operationen können je nach Typ der Informationen, die dekomprimiert werden, variieren.
  • Ein Zwischenspeicher (790) empfängt die Informationen für eine komprimierte Videosequenz und stellt die erhaltenen Informationen dem Entropiedecodierer (780) zur Verfügung. Der Zwischenspeicher (790) empfängt typischerweise die Informationen bei einer Rate, die über einen Zeitraum ziemlich konstant ist und enthält einen Jitter-Buffer für das Kompensieren kurzzeitiger Abweichungen in der Bandbreite oder der Übertragung. Der Zwischenspeicher (790) kann einen Playback-Buffer und andere Buffer enthalten. Alternativ dazu empfängt der Zwischenspeicher (790) Informationen bei einer variierenden Rate. Vor oder nach dem Zwischenspeicher (790) können die dekomprimierten Videoinformationen kanal-codiert und für die Fehlererfassung sowie -korrektur verarbeitet werden.
  • Der Entropiedecodierer (780) führt die Entropiedecodierung für die Entropie-codierten quantisierten Daten ebenso wie für Entropie-codierte Zusatzinformationen (zum Beispiel Bewegungsinformationen (715), Quantisierungs-Schrittgröße) durch, wobei er typischerweise die Inverse der in dem Encoder durchgeführten Entropiecodierung durchführt. Zu den typischen Entropiedecodierungsverfahren gehören die Arithmetische Decodierung, das Differential Decoding, die Huffmann-Decodierung, die Lauflängen-Decodierung, die LZ-Decodierung, die dynamische wörterbuch-basierte Decodierungstechnik („Dictionary Decoding") sowie Kombinationen der oben genannten Verfahren. Der Entropiedecodierer (780) wendet oftmals verschiedene Decodierungsverfahren für verschiedene Arten von Informationen (zum Beispiel DC-Koeffizienten, AC-Koeffizienten, verschiedene Arten von Zusatzinformationen) an und kann innerhalb eines bestimmten Decodierungsverfahrens aus einer Vielzahl von Code-Tabellen auswählen.
  • Wenn der zu rekonstruierende Frame (705) ein vorwärts-vorhergesagter Frame ist, überträgt ein Bewegungskompensator (730) Bewegungsinformationen (715) an einen Bezugsframe (725), um eine Vorhersage (735) des Frames (705), der rekonstruiert wird, zu bilden. So verwendet der Bewegungskompensator (730) zum Suchen eines Makroblockes in dem Bezugsframe (725) beispielsweise einen Makroblock-Bewegungsvektor an. Ein Frame-Zwischenspeicher (720) speichert die vorhergehenden rekonstruierten Frames für das Verwenden als Bezugsframes. Alternativ dazu führt ein Bewegungskompensator einen anderen Typ von Bewegungskompensation durch. Die Vorhersage des Bewegungskompensators ist selten einhundertprozentig genau, so erzeugt der Decoder (700) auch Vorhersage-Reste.
  • Wenn der Decoder einen rekonstruierten Frame für anschließende Bewegungskompensation benötigt, zwischenspeichert der Frame-Store (720) den rekonstruierten Frame zum Verwenden in der Vorhersage des nächsten Frames. In einigen Ausführungsbeispielen wendet der Encoder einen deblockierenden Filter auf den rekonstruierten Frame an, um Unterbrechungen in den Blöcken des Frames adaptiv auszugleichen.
  • Ein inverser Quantisierer (770) führt die inverse Quantisierung der Entropie-decodierten Daten durch. Im Allgemeinen führt der Quantisierer eine uniforme, skalare inverse Quantisierung auf die Entropie-decodierten Daten mit einer Schrittgröße durch, die frameweise-basierend oder auf einer anderen Basis variiert. Alternativ dazu führt der inverse Quantisierer einen anderen Typ von inverser Quantisierung an den Daten durch, zum Beispiel eine nicht-uniforme, Vektor- oder nicht-adaptive Quantisierung, oder er führt die inverse Quantisierung der räumlichen Domaindaten direkt in einem Decodersystem durch, das keine inverse Frequenztransformation verwendet.
  • Ein inverser Frequenzwandler (760) konvertiert die quantisierten Frequenzdomaindaten in räumliche Domain-Videoinformationen. Für blockbasierte Videoframes führt der inverse Frequenzwandler (760) eine Inverse Diskrete Kosinustransformation [„IDCT"] oder einer Variante der IDCT für die Blöcke aus DCT-Koeffizienten durch, wodurch Bewegungsvorhersage-Restdaten entstehen.
  • Alternativ dazu führt der Frequenzwandler (760) eine andere konventionelle Transformation wie zum Beispiel eine Fouriertransformation durch oder wendet eine Wavelet- oder Subband-Synthese an. In einigen Ausführungsbeispielen führt der inverse Frequenzwandler (760) für Keyframes eine inverse Frequenzwandlung für Blöcke von räumlichen Vorhersage-Resten für Keyframes durch. Der inverse Frequenzwandler (760) kann eine 8 × 8-, 8 × 4-, 4 × 8- oder inverse Frequenztransformationen einer anderen Größe durchführen.
  • III. Vorhersage/Kompensation der globalen Luminanzveränderung
  • Einige beschriebene Ausführungsbeispiele schließen Verfahren und Tools für das Vorhersagen, Anwenden, Codieren und/oder Decodieren von globalen Luminanzveränderungen ein, die durch eine kleine Anzahl von Parametern beschrieben werden. Die Verfahren und Tools ermöglichen dieselbe subjektive und objektive Qualität, die von einem bei einer niedrigeren Rate rekonstruierten Video erzielt werden muss. Jedes einzelne Tool oder Verfahren implementiert 1) eine oder mehrere Schemen einer Kompensation der globalen Luminanzveränderung; 2) eine oder mehrere Parametrisierungen von globalen Luminanz-Parametern; 3) eine oder mehrere rechnerisch effiziente Vorhersagen/Extrahierungen von globalen Luminanz-Parametern; 4) eine oder mehrere sofortige Anzeigen der Frames mit globaler Luminanzveränderung und 5) eine oder mehrere sofortige Anzeigen der globalen Luminanz-Parameter. Die Luminanzveränderung kann global in einem Frame, einem Halbbild, einem Teil eines Frames/Halbbildes wie beispielsweise einem einzelnen Block, einem einzelnen Makroblock oder einer Gruppe von Makroblöcken oder in einem anderen bestimmten Teil eines Bildes auftreten. Während sich ein Grossteil der folgenden Beschreibung auf die Parametrisierung und die Kompensation für die globale Luminanzveränderung in einem gesamten Frame bezieht, kann dasselbe Bezugssystem für die Kompensation der globalen Luminanzveränderung zum a) Bestimmen der Präsenz eines Verlaufes in einem Abschnitt (beispielsweise in einem einzelnen Block oder Makroblock) eines Bildes, b) zum Berechnen der Verlauf-Parameters innerhalb diesen Abschnittes und c) zum Ermitteln und Übertragen dieser Verlauf-Parameter für den gegebenen Abschnitt des Bildes verwendet werden. Diese Verfahren können für eine Vielzahl von Abschnitten des Bildes wiederholt werden. Eine globale Luminanzveränderung (auch als Verlauf bekannt) kann eine Veränderung in der Helligkeit und/oder dem Kontrast der Szene sein. Diese Veränderung ist typischerweise linear, aber der Verlauf kann auch so definiert sein, dass er ein beliebiges ausgeglichenes, nicht-lineares Neuzuordnen innerhalb desselben Bezugssystems enthält. Verlauf, Morphing und Blending werden weitläufig bei dem Erstellen von Videoinhalt für das Ausgleichen der Bildung von Videoframes über Szenenübergängen und für das Bereitstellen von Spezialeffekten eingesetzt. Darüber hinaus weisen bestimmte Sequenzen auf natürliche Weise Verlauf aufgrund von Veränderungen in der Beleuchtung auf. Videoframes mit Effekten wie Verlauf, Morphing und Blending benötigen zum Codieren mit herkömmlichen bewegungsbasierten Videokomprimierungsvertahren relativ große Bitmengen, die im Allgemeinen auf solchen Frames nicht effektiv sind.
  • A. Schema einer Kompensation der globalen Luminanzveränderung
  • 8 stellt ein Verfahren (800) für das Codieren eines Videos unter der Verwendung der Kompensation der globalen Luminanzveränderung dar. Ein Encoder wie der in 6 dargestellte Encoder (600) kann ein solches Verfahren durchführen.
  • Zunächst überprüft der Encoder, ob in einem zu codierenden Frame wie zum Beispiel dem aktuellen Frame, der in einer Videosequenz codiert wird, ein Verlauf (810) vorhanden ist. Wenn der Encoder einen Verlauf (810) für den Frame erfasst, ermittelt der Encoder die Verlauf-Parameter (820). Beispielsweise erfasst der Encoder einen Verlauf und ermittelt Verlauf-Parameter, wie später im Abschnitt C beschrieben wird.
  • Alternativ dazu verwendet der Encoder ein anderes Verfahren zum Erfassen eines Verlaufs und/oder zum Ermitteln von Parametern. Der Encoder zeigt an, ob die Verlauf-Kompensation ein- oder ausgeschaltet ist und, wenn sie eingeschaltet ist, gibt er die Verlauf-Parameter ebenfalls an.
  • Wenn der Verlauf für den Frame erfasst wurde, führt der Encoder anschließend beispielsweise die Verlauf-Kompensation auf einem oder mehreren Bezugsframes für den Frame (830) durch, wie später in dem Abschnitt B beschrieben wird. Wenn der Encoder die Verlauf-Kompensation auf einer Vielzahl von Bezugsframes durchführt, kann die Vielzahl von Bezugsframes vor oder hinter (in Playback-Reihenfolge) dem Frame sein, der codiert wird. Der Encoder gibt an, welche Abschnitte des Frames, der codiert wird, von denen der Vielzahl von Bezugsframes kompensiert werden. Für diese Anzeige kann der Encoder die bereits für die Auswahl der Bezugsframes in solchen Systemen genutzte Anzeige verwenden. In einigen Ausführungsbeispielen kann der Encoder sowohl einen ursprünglichen Bezugsframe als auch einen neu zugeordneten Bezugsframe in der Bewegungsvorhersage/-Kompensation für den zu codierenden Frame verwenden. Der Encoder kann dies beispielsweise zum Codieren eines aktuellen Frames, der sowohl Inhalt mit Verlauf als auch Überlappungen ohne Verlauf enthält, tun.
  • Nach der Verlauf-Kompensation codiert der Encoder den Frame (840) unter der Verwendung der Bewegungsvorhersage und -kompensation von dem/n regulierten Bezugsframe/s. Wenn der Encoder keinen Verlauf erfasst, codiert der Encoder den Frame (840) ohne das Ermitteln von Verlauf-Parametern oder ohne das Durchführen der Verlauf-Kompensation. Mit Abschluss des Codierens (850) endet der Prozess.
  • 9 stellt ein Verfahren (900) zum Decodieren eines codierten Videos unter der Verwendung der Verlauf-Kompensation dar. Ein Decoder wie der in 7 dargestellte Decoder (700) kann das Verfahren (900) durchführen.
  • Zunächst überprüft (910) der Decoder, ob in einem zu decodierenden Frame ein Verlauf auftritt oder nicht. Eine Möglichkeit zum Durchführen dieses Überprüfens ist das Überprüfen der Anzeigeinformationen, die von einem Encoder gesendet wurden. Wenn der Decoder bestimmt, dass für den Frame der Verlauf aufgetreten ist (910), führt der Decoder die Verlauf-Kompensation (920) durch. So erhält der Decoder beispielsweise von dem Encoder gesendete Verlauf-Parameter und führt die Verlauf-Kompensation auf einem oder mehreren Bezugsframes für den zu decodierenden Frame (wie im Encoder durchgeführt) durch.
  • Anschließend decodiert der Decoder den Frame (930) unter der Verwendung von beispielsweise der Bewegungs-Kompensation von dem(n) regulierten Bezugsframe(s). Wenn der Verlauf nicht auftritt, decodiert der Decoder den Frame (930) ohne das Durchführen der Verlauf-Kompensation. Mit dem Abschluss des Decodierens (940) endet der Prozess.
  • 10 stellt ein exemplarisches Encoder-Bezugssystem (1000) für das Durchführen der Kompensation der globalen Luminanzveränderung dar. In diesem Bezugssystem (1000) führt der Encoder bedingt ein Neuzuordnen eines Bezugsframes unter der Verwendung von durch die Verlauf-Kompensation ermittelten Parametern durch. Der Encoder führt das Neuzuordnen oder die Verlauf-Kompensation durch, wenn der Encoder einen Verlauf mit einem guten Maß an Sicherheit und Konsistenz über dem Frame erfasst. Anderenfalls besteht die Verlauf-Kompensation in einer Identitätsoperation (das heißt, Ausgabe = Eingabe).
  • In Bezug auf 10 vergleicht der Encoder einen aktuellen Frame (1010) mit einem Bezugsframe (1020) unter der Verwendung eines Verlauf-Erfassungsmoduls (1030), um zu bestimmen, ob ein Verlauf auftritt. In einigen Ausführungsbeispielen ist der Bezugsframe der Frame vor dem aktuellen Frame in einer Videosequenz. Alternativ dazu ist der Bezugsframe vor dem vorherigen Frame oder nach dem aktuellen Frame. Wenn eine Vielzahl von Bezugsframes verwendet wird, kann der Encoder jeden einzelnen Bezugsframe auf einen Verlauf hin überprüfen. Der Encoder erzeugt eine „Verlauf-An"- oder eine „Verlauf-Aus"-Anzeige (1040) basierend auf den Ergebnissen der Verlauf-Erfassung.
  • Wenn ein Verlauf aufgetreten ist, sagt das Verlauf-Erfassungsmodul (1050) die Verlauf-Parameter (1060) basierend auf den von dem aktuellen Frame (1010) und dem Bezugsframe (1020) durchgeführten Berechnungen vorher. (Die Details zur Verlauf-Vorhersage in einigen Ausführungsbeispielen werden zu einem späteren Zeitpunkt im Abschnitt C beschrieben).
  • Das Verlauf-Kompensationsmodul (1070) verwendet die Verlauf-Parameter (1060) zum Neuzuordnen des Bezugsframes (1020) (alternativ dazu eine Vielzahl von Bezugsframes). Der Encoder kann dann andere Encodermodule (1080) (zum Beispiel Bewegungsvorhersage- und Bewegungskompensationsmodule, Frequenzwandler-Quantisierungsmodule) zum Komprimieren des Frames verwenden. Der Encoder gibt Bewegungsvektoren, Reste und andere Informationen (1090) aus, die den codierten aktuellen Frame (1010) definieren. Neben der Bewegungsvorhersage und -kompensation mit translationalen Bewegungsvektoren ist das Bezugssystem für die Kompensation der globalen Luminanzveränderung über eine Vielzahl von Bewegungskompensationsbasierten Videocodecs anwendbar.
  • 11 stellt ein exemplarisches Decoder-Bezugssystem (1100) für das Durchführen der Kompensation der globalen Luminanzveränderung dar. Der Decoder erstellt einen decodierten aktuellen Frame (1110). Um einen codierten Verlauf-kompensierten Frame zu decodieren, führt der Decoder die Verlauf-Kompensation auf einem vorher decodierten Bezugsframe (1120) (alternativ dazu auf einer Vielzahl von Bezugsframes) unter der Verwendung eines Verlauf-Kompensationsmoduls (1130) durch.
  • Der Decoder führt die Verlauf-Kompensation auf dem Bezugsframe (1120) durch, wenn die „Verlauf-An"-/„Verlauf-Aus"-Anzeige angibt, dass auf dem codierten aktuellen Frame ein Verlauf auftritt (1110). Der Decoder führt die Verlauf-Kompensation (wie im Encoder) durch Verwendung der während der Verlauf-Vorhersage ermittelten Verlauf-Parameter (1150) durch. Anderenfalls (wenn kein Verlauf auf dem aktuellen Frame auftritt) besteht die Verlauf-Kompensation in einer Identitätsoperation (das heißt, Ausgabe = Eingabe).
  • Der Decoder kann dann andere Decodermodule (1160) (zum Beispiel Bewegungskompensation-, inverse Frequenzwandler- und inverse Quantisierungsmodule) zum Dekomprimieren des codierten Frames unter der Verwendung von Bewegungsvektoren, Resten und anderen durch den Encoder bereitgestellten Informationen (1170) verwenden.
  • B. Parametrisierung und Kompensation
  • Beim Editieren eines Videos entsteht der Verlauf mitunter durch das Durchführen einer einfachen, pixelweisen linearen Transformierung an den Luminanz- und Chrominanzkanälen. In der selben Art und Weise wird Überblendung (Cross-Fading) mitunter als lineare Summen zweier Videosequenzen erzeugt, wobei sich die Zusammensetzung über einen Zeitraum hinweg ändert. Dementsprechend ermittelt in einigen Ausführungsbeispielen ein Encoder wie ein in dem Bezugssystem (1000) in 10 dargestellter Encoder Parameter für den Verlauf als eine pixelweise lineare Transformation und parametrisiert Überblendung (Cross-Fading) als eine lineare Summe, und ein Decoder wie ein in dem Bezugssystem (1100) in 11 dargestellter Decoder führt die entsprechenden Transformationen aus.
  • Angenommen I(n) ist ein Bild auf dem Frame n und I(n – 1) ist ein Bild auf dem vorhergehenden Frame. Dort, wo die Bewegung geringfügig ist, wird einfacher Verlauf durch die Beziehung erster Ordnung in Gleichung 1 dargestellt. (Die Beziehung in Gleichung 1 ist aufgrund möglicher Bewegung in der Videosequenz ungefähr eine Annäherung.) I(n) ≈ C I(n – 1) + B (1),wobei die Verlauf-Parameter B und C jeweils der Helligkeit und dem Kontrast entsprechen. Wenn ein nicht-linearer Verlauf auftritt, steht die Komponente erster Ordnung typischerweise für den Großteil der Veränderung.
  • Überblendungen (Cross-Fades) aus einer Bildsequenz U(n) zu einer Bildsequenz V(n) können durch die Beziehung in Gleichung 2 dargestellt werden. Die Beziehung in Gleichung 2 ist aufgrund möglicher Bewegung in den Sequenzen eine Annäherung.
    Figure 00260001
    wobei n ≈ 0 den Beginn der Überblendung (Cross-Fades) und n ≈ 1/α das Ende der Überblendung repräsentieren. Für Überblendungen über mehrere Frames ist α klein.
  • Zu Beginn der Überblendung ist der nte Frame nahe bei einer abgeschwächten (Kontrast < 1) Version des n-1 ten Frames. Gegen Ende ist der nte Frame eine verstärkte (Kontrast > 1) Version des n-1ten Frames. Mit anderen Worten bedeutet dies, dass zu Beginn der Überblendung der nte Frame als der von dem Kontrastwert 1 – α skalierten n-1ten Frames dargestellt werden kann, wobei zum Ende der Überlendung der nte Frame als des von dem Kontrastwert 1 + α skalierten n-1 ten Frames dargestellt werden kann. Die Gleichung 2 illustriert, dass zu Beginn und zum Ende der Überblendung der Encoder den nten Frame durch Neuzuordnen eines Bezugsframes (zum Beispiel den n-1ten Frame) unter der Verwendung einer linearen Regel (wie die in den unten aufgeführten Gleichungen 3 und 4) ermitteln kann.
  • Der Encoder führt die Kompensation der globalen Luminanzveränderung durch das Neuzuordnen eines Bezugsframes durch. Der Encoder führt das Neuzuordnen des Bezugsframes auf einer pixelweisen Basis oder auf einer anderen Basis durch. Der ursprüngliche, nicht neu zugeordnete Bezugsframe wird im Wesentlich aufgelöst (obgleich in einem Szenario mit einer Vielzahl von Bezugsframes der nicht neu zugeordnete Bezugsframe ebenso verwendet werden kann).
  • Die folgende auf Gleichung 1 basierende lineare Regel führt das Neuzuordnen der Luminanz-Werte des Bezugsframes R zu dem neu zugeordneten Bezugsframe R hinsichtlich der zwei Parameter B und C (entsprechend der Helligkeit und des Kontrastes der Szene) durch: R ≈ CR + B (3)
  • Die Luminanz-Werte des Bezugsframes werden durch den Kontrast-Wert skaliert (oder „gewichtet") und durch den Helligkeits-Wert verschoben (das heißt, durch Addieren eines Offset-Wertes). Für die Chrominanz folgt das Neuzuordnen der Regel: R ≈ C(R - μ) + μ (4),wobei μ der Durchschnitt der Chrominanz-Werte ist. In einem Ausführungsbeispiel wird von 128 angenommen, dass es der Durchschnitt für die vorzeichenlose 8-Bit-Repräsentation der Chrominanz-Werte ist. Diese Regel für das Neuzuordnen der Chrominanz findet in einer Helligkeitskomponente keine Anwendung.
  • In einigen Ausführungsbeispielen wird das in den Gleichungen 3 und 4 verwendete lineare Neuzuordnen der zwei Parameter auf Bedingungen höherer Ordnung ausgeweitet. Beispielsweise ist Gleichung 5 eine Gleichung zweiter Ordnung, die das Neuzuordnen der Luminanz-Werte von R zu R durchführt: R ≈ C1R2 + C2R + B (5)
  • Andere Ausführungsbeispiele verwenden andere Gleichungen für das Neuzuordnen. In einer Kategorie von solchen Regeln für das Neuzuordnen werden lineare Neuzuordnungen durch nicht-lineare Neuzuordnungen ersetzt.
  • C. Vorhersage von Verlauf-Parametern
  • Die Verlauf-Vorhersage ist der Prozess des Berechnens von Verlauf-Parametern während des Codierungsprozesses. Ein Encoder wie ein in dem Bezugssystem (1000) in Fi gur 10 dargestellter Encoder kann Helligkeits- (B) und Kontrast- (C) Parameter während des Codierungsprozesses berechnen.
  • In einigen Ausführungsbeispielen verwendet der Encoder zum genauen und schnellen Vorhersagen der Parameter das in 12 dargestellte Verfahren (1200). In dem dargestellten Verfahren wird lediglich der Luminanzkanal analysiert. Alternativ dazu bezieht der Encoder die Chrominanz in die Analyse ein, wenn mehr Berechnungseinrichtungen vorhanden sind. Beispielsweise löst der Encoder C in den Gleichungen 3 und 4 (nicht nur in Gleichung 3) auf, um C robuster zu gestalten.
  • In dem in 12 dargestellten Ausführungsbeispiel wird die Bewegung in der Szene während des Verlauf-Vorhersageprozesses ignoriert. Dies basiert auf den Überlegungen, dass (a) Verläufe und Überblendungen typischerweise in ruhenden oder Szenen mit geringfügiger Bewegung auftreten und, dass (b) der Nutzwert der Kompensation einer globalen Luminanzveränderung in Szenen mit großer Bewegung sehr gering ist. Alternativ dazu löst der Encoder sowohl die Verlauf-Parameter als auch die Bewegungsinformationen. Die Bewegungsinformationen werden dann dazu verwendet, die Genauigkeit der Verlauf-Parameter in späteren Stadien des Verfahrens (1200) oder zu einem anderen Zeitpunkt zu erhöhen. Eine Möglichkeit, die Bewegungsinformationen zu verwenden, besteht in dem Weglassen derjenigen Abschnitte des Bezugsframes aus der Berechnung zur Verlauf-Vorhersage, in denen Bewegung erfasst wird.
  • In verschiedenen Teilen des Verfahrens (1200) dienen die absoluten Fehlersummen aus Σabs(I(n) – R) oder Σabs(I(n) – R) als Maße zum Bestimmen des Vorhandenseins und der Parameter des Verlaufs. Alternativ dazu verwendet der Encoder andere oder zusätzliche Maße wie beispielsweise eine Summe aus quadratischen Fehlern [„SSEs"] oder den Mittleren Quadratischen Fehler [„MSE"] über der gleichen Fehlerbedingung, oder der Encoder verwendet eine andere Fehlerbedingung.
  • Der Encoder kann an verschiedenen Stellen des Verfahrens (1200) das Verfahren (1200) bei Zufriedenheit über eine Abbruchbedingung beenden. 12 stellt verschiedene Abbruchbedingungen dar. Für eine andere Abbruchbedingung (nicht in 12 dargestellt) überprüft der Encoder, ob sich der Kontrast-Parameter nahe dem Wert 1,0 (in einem Ausführungsbeispiel –, 99 < C < 1,02) zu Beginn oder während eines Zwi schenstadiums des Verfahrens (1200) befindet und, wenn dies der Fall ist, beendet der Encoder das Verfahren (1200).
  • Der Encoder beginnt das Verfahren (1200) durch Heruntertasten [Downsampling] des aktuellen Frames und des Bezugsframes (1220). In einem Ausführungsbeispiel führt der Encoder ein Heruntertasten durch einen Faktor 4 horizontal und vertikal durch. Alternativ dazu führt der Encoder das Heruntertasten durch einen anderen Faktor durch, oder er führt gar kein Heruntertasten durch.
  • Der Encoder berechnet anschließend die absolute Fehlersumme Σ abs(Id(n) – Rd) über die Versionen geringerer Auflösung des aktuellen und des Bezugsframes (angezeigt durch das tiefergestellte in (1220). Die absolute Fehlersumme misst Differenzen in Pixel-Werten zwischen dem heruntergetasteten aktuellen und dem heruntergetasteten Bezugsframe. Wenn die absolute Fehlersumme kleiner ist als ein bestimmter Schwellenwert (1230) (zum Beispiel ein vorgegebenes Differenzmaß zwischen Luminanz-Werten für Pixel in den heruntergetasteten aktuellen und Bezugsframes), schlussfolgert der Encoder, dass kein Verlauf aufgetreten ist und führt demzufolge keine Verlauf-Kompensation durch (1235).
  • Anderenfalls führt der Encoder die Vorhersage für die Helligkeits- (B) und Kontrast- (C) Parameter (1240) durch. Die ersten groben Vorhersagen für B und C werden durch die Darstellung Id(n) hinsichtlich Rd ermittelt. In einem Ausführungsbeispiel werden die Helligkeits- und Kontrast-Parameter durch lineare Regression über den gesamten heruntergetasteten Frame ermittelt. In anderen Ausführungsbeispielen verwendet der Encoder andere Formen der statistischen Analyse, wie zum Beispiel das TLS-Verfahren, das LMS-Verfahren und so weiter für eine zuverlässigere Analyse. Beispielsweise minimiert der Encoder den MSE oder den SSE der Fehlerbedingung Id(n) – Rd. In einigen Fällen sind der MSE und SSE nicht zuverlässig, folglich testet der Encoder auch die absolute Fehlersumme für die Fehlerbedingung. Der Encoder entfernt hohe Fehlerwerte für bestimmte Punkte (die eher aufgrund von Bewegung als Verlauf auftreten).
  • Der Encoder berechnet dann Bf und Cf durch Quantisieren und Dequantisieren von B und C (1250). Die ersten groben Parameter werden quantisiert und dequantisiert, wobei sichergestellt wird, dass Bf und Cf innerhalb des zulässigen Bereiches liegen und für Übereinstimmung getestet werden (können). In einigen Ausführungsbeispielen werden für typische Bilder einer 8-Bit-Tiefe B und C auf je 6 Bit quantisiert. B nimmt ganzzahlige Werte von –32 bis 31 an, die als eine ganze 5-Bit-Zahl mit Vorzeichen dargestellt werden. Der quantisierte Wert von C, dargestellt als C9, variiert von 0,515625 bis 1,484375 in einheitlichen Schritten von 0,015625 (1/64) entsprechend den quantisierten Werten 1 bis 63. Die Quantisierung wird durch das Aufrunden von B und C auf den nächsten dequantisierten Wert und das Auswählen des geeigneten binären Indexes durchgeführt.
  • Der Encoder berechnet dann die ursprüngliche begrenzte absolute Fehlersumme (SOrgBnd) und die neu zugeordnete begrenzte absolute Fehlersumme (SRmpBnd) (1270). In einigen Ausführungsbeispielen berechnet der Encoder die Summen unter der Verwendung einer Goodness-of-Fit-Analyse. Für einen zufälligen oder pseudozufälligen Satz von Pixeln zu der ursprünglichen Auflösung berechnet der Encoder die neu zugeordnete begrenzte absolute Fehlersumme Σ babs (I(n) – CfR – Bf), wobei babs(x) = min(abs(x),M) für einige begrenzte M ist. In einem Ausführungsbeispiel ist M ein Vielfaches des Quantisierungsparameters des Frames, der codiert wird. Das begrenzte M ist höher, wenn der Quantisierungsparameter grob ist und niedriger, wenn der Quantisierungsparameter fein ist. Der Encoder akkumuliert außerdem die ursprüngliche begrenzte absolute Fehlersumme Σbabs (I(n) – R). Wenn die entsprechenden Berechnungseinrichtungen zur Verfügung stehen, kann der Encoder die begrenzten absoluten Fehlersummen über die gesamten Frames berechnen.
  • Dann bestimmt der Encoder basierend auf den relativen Werten der ursprünglichen und begrenzten absoluten Fehlersumme, ob die Verlauf-Kompensation durchzuführen ist oder nicht (1280). In einigen Ausführungsbeispielen führt der Encoder zum Beispiel keine Verlauf-Kompensation durch, es sei denn, die neu zugeordnete begrenzte absolute Fehlersumme ist niedriger als oder gleich dem Wert einiger Schwellenwert-Prozentsätze σ der ursprünglichen begrenzten absoluten Fehlersumme. In einem Ausführungsbeispiel beträgt σ = ,95. Wenn der Encoder die Verlauf-Kompensation durchführt, berechnet der Encoder die Verlauf-Parameter erneut, dieses Mal basierend auf einer linearen Regression zwischen I(n) und R, aber bei der vollen Auflösung (1290). Um Berechnungszeit zu sparen, kann der Encoder die wiederholte lineare Regression über dem zufälligen oder pseudozufällige Tasten [Sampling] des Frames durchführen. Auch hier kann der Encoder andere Formen der statistischen Analyse wie zum Beispiel das TLS-Verfahren, das LMS-Verfahren und so weiter für eine zuverlässigere Analyse verwenden. Mit Abschluss der Codierung (1295) endet der Prozess.
  • In einem Ausführungsbeispiel ermöglicht der Encoder einen speziellen Fall, in dem C = –1 in Gleichung 3 und 4 ist. Dieser spezielle Fall wird durch Cq = 0 in dem Bitstrom angezeigt. In diesem „invertierten" Modus wird der Bezugsframe invertiert, ehe er durch 8, verschoben wird, und der Bereich von 8 liegt zwischen 193 und 319 in einheitlichen 2er-Schritten.
  • D. Anzeige
  • Ein Encoder wie ein in dem Bezugssystem (1000) der 10 dargestellter Encoder sendet Anzeigeinformationen zum „Verlauf-An"/„Verlauf-Aus" ebenso wie Verlauf-Parameter. Ein Decoder wie ein in dem Bezugssystem (1000) der 10 dargestellter Decoder empfängt die Anzeigeinformationen und die Verlauf-Parameter.
  • In einigen Ausführungsbeispielen sendet der Encoder auf dem Sequenzlevel ein Bit, um anzuzeigen, ob die Kompensation für die globale Luminanzveränderung für die Sequenz aktiviert ist. Der Encoder kann außerdem die globale Luminanzveränderung auf der Frame-Ebene oder die globale Luminanzveränderung für einen Abschnitt eines Frames, wie beispielsweise einen einzelnen Block oder einen Makroblock in einem Frame, anzeigen.
  • Unter den Frames in einer typischen Videosequenz ist das Auftreten einer globalen Luminanzveränderung oder eines Verlaufes selten. Es ist möglich, durch Addieren eines Bits den Verlauf (oder, diesem entsprechend, das Fehlen des Verlaufes) anzuzeigen. Beispielsweise kann der Encoder den Verlauf (oder, diesem entsprechend, das Fehlen des Verlaufes) durch die Verwendung eines Bits auf der Frame-Ebene anzeigen. Dennoch ist es rationeller, den Verlauf (oder, diesem entsprechend, das Fehlen des Verlaufes) zusammen mit anderen Informationen anzuzeigen. Zum Beispiel führt der Encoder die Anzeige für die Frame-Ebene unter Verwendung einer Ausgleich-Sequenz in einer variablen Längencode (VLC)-Tabelle für den Bewegungsmodus (das heißt, der Anzahl und Konfiguration der Bewegungsvektoren, das Sub-Pixel-Interpolationsschema) durch.
  • In solchen Ausführungsbeispielen zeigt der Encoder den seltensten Bewegungsmodus zusammen mit der Aktivierung der Verlauf-Kompensation an.
  • Angenommen, das Ereignis F repräsentiert das Vorhandensein des Verlaufes, und G repräsentiert die Wahl des seltensten Bewegungsmodus für den Frame. Angenommen, der LVC <MVMODE> repräsentiert einen Bewegungsmodus, wenn G falsch ist. Diese VLC-Tabelle ist mit einem Ausgleichssymbol <ESC> versehen, das dann verwendet wird, wenn angezeigt wird, dass F und/oder G richtig sind. Tabelle 1 illustriert das gemeinsame Codieren von F und dem Bewegungsmodus gefolgt von den Verlauf-Parametern B und C, wenn die Verlauf-Kompensation aktiviert ist.
    Figure 00320001
    Tabelle 1: Gemeinsames Codieren des seltensten Bewegungsmodus und Verlauf-Anzeige
  • Wenn die globale Luminanzveränderung für einen bestimmten Frame aktiviert wird, folgt eine andere VLC (variable Längencodierung) (entweder <MVMODE> oder <ESC>), um den Bewegungsmodus anzuzeigen. Dann werden die Parameter unter der Verwendung jeweils zweier 6-Bit-Wörter mit festem Längencode für B und C angezeigt. Alternativ dazu werden die Parameter unter der Verwendung von VLCs angezeigt. Wenn die Verlauf-Parameter auf einem einzelnen Abschnitt eines Frames wie beispielsweise einen Block oder Makroblock angewendet werden, kann der Encoder die Verlauf-Parameter unabhängig von diesem Abschnitt anzeigen. Wenn zum Beispiel der Verlauf auf lediglich einen Makroblock des Videoframes zutrifft, können die Verlauf-Informationen durch gemeinsame Entropie-Codes mit Makroblock-Ebenen-Informationen wie zum Beispiel der codierten Blockstruktur oder dem Transformationstyp angezeigt werden.
  • 13 ist ein Baumdiagramm, das die Codierreihenfolge (entsprechend Tabelle 1, für ein Ausführungsbeispiel) darstellt, in der der Encoder den seltensten Bewegungsmodus zusammen mit dem Vorhandensein des Verlaufes codiert. (Details des Codierens der Verlauf-Parameter werden weggelassen). Der Encoder verwendet VLCs, um einen je den der anderen Bewegungsmodi zu repräsentieren (zum Beispiel repräsentieren die Codes „0", „10" und „110" jeweils die Bewegungsmodi 0, 1 und 2). Der Encoder verwendet einen Ausgleichscode (zum Beispiel „111") gefolgt von einer „0", um den seltensten Bewegungsmodus zu repräsentieren, wenn der Verlauf nicht aktiviert ist. Der Encoder verwendet den Ausgleichscode gefolgt von einer „1", um anzuzeigen, dass der Verlauf aktiviert ist.
  • Es sollte beachtet werden, dass die in dem vorliegenden Dokument beschriebenen Programme, Prozesse oder Verfahren nicht nur einen bestimmten Typ von Berechnungsumgebung betreffen oder auf diesen beschränkt sind, es sei denn, es wird anderweitig angegeben. Verschiedene Typen von Berechnungsumgebungen für allgemeine oder besondere Zwecke können in den Operationen entsprechend den hierin beschrieben Angaben eingesetzt werden oder diese Operationen selbst durchführen. Elemente der Ausführungsbeispiele, die in der Software dargestellt wurden, können auch in Hardware und umgekehrt eingesetzt werden.

Claims (22)

  1. Verfahren zum Verarbeiten eines oder mehrerer Videobilder, wobei das Verfahren umfasst: Ermitteln von Verlauf-Parametern (1060/1150), die einen Luminanz-Skalier-Parameter (C) und einen Luminanz-Verschiebe-Parameter (B) umfassen; Durchführen von Verlauf-Kompensation (1070/1130) durch Berechnen mehrerer neu zugeordneter Pixel-Werte, wobei die mehreren neu zugeordneten Pixel-Werte wenigstens teilweise auf Neuzuordnen mehrerer ursprünglicher Pixel-Werte, die in einem ursprünglichen Bezugs-Videobild verwendet werden, hinsichtlich des Luminanz-Skalier-Parameters und des Luminanz-Verschiebe-Parameters (1060/1150) basieren und die mehreren neu zugeordneten Pixel-Werte mehrere neu zugeordnete Chrominanz-Werte enthalten, und Durchführen von Bewegungskompensation (1080/1160) für wenigstens einen Teil eines aktuellen Videobildes unter Verwendung der mehreren neu zugeordneten Pixel-Werte, dadurch gekennzeichnet, dass bei dem Neuzuordnen für die mehreren neu zugeordneten Chrominanz-Werte der Luminanz-Skalier-Parameter (C) und der mittlere Chrominanz-Wert des ursprünglichen Bezugs-Videobildes verwendet werden.
  2. Verfahren nach Anspruch 1, wobei das Neuzuordnen für die mehreren neu zugeordneten Chrominanz-Werte umfasst: Regulieren mehrerer ursprünglicher Chrominanz-Werte der mehreren ursprünglichen Pixel-Werte unter Verwendung des Mittels der Chrominanz-Werte des ursprünglichen Bezugs-Videobildes; Skalieren der regulierten Chrominanz-Werte unter Verwendung des Skalier-Parameters; und Verschieben der skalierten regulierten Chrominanz-Werte unter Verwendung des Mittels der Chrominanz-Werte des ursprünglichen Bezugs-Videobildes.
  3. Verfahren nach Anspruch 2, wobei das Mittel der Chrominanz-Werte so definiert ist, dass es 128 beträgt, d. h. das Mittel für vorzeichenlose 8-Bit-Darstellung von Chrominanz-Werten.
  4. Verfahren nach Anspruch 2, wobei das Mittel der Chrominanz-Werte so berechnet wird, dass es der Durchschnitt der mehreren ursprünglichen Chrominanz-Werte in dem ursprünglichen Bezugs-Videobild ist.
  5. Verfahren nach einem der Ansprüche 1–4, wobei der Skalier-Parameter ein Kontrast-Parameter ist.
  6. Verfahren nach einem der Ansprüche 1–5, wobei der mittlere Chrominanz-Wert nicht angezeigt wird.
  7. Verfahren nach Anspruch 1, wobei der Skalier-Parameter ein Kontrast-Parameter ist und der Verschiebe-Parameter ein Helligkeits-Parameter ist, und die mehreren neu zugeordneten Pixel-Werte des Weiteren mehrere neu zugeordnete Luminanz-Werte enthalten und bei dem Neuzuordnen für die mehreren neu zugeordneten Luminanz-Werte der Kontrast-Parameter und der Helligkeits-Parameter verwendet werden.
  8. Verfahren nach Anspruch 7, wobei der Skalier-Parameter und der Verschiebe-Parameter eine pixelweise lineare Transformierung angeben, die umfasst: Skalieren mehrerer ursprünglicher Luminanz-Werte der mehreren ursprünglichen Pixel-Werte unter Verwendung des Kontrast-Parameters; und Verschieben der skalierten Luminanz-Werte unter Verwendung des Helligkeits-Parameters.
  9. Verfahren nach Anspruch 7 oder 8, wobei der Kontrast-Parameter größer als ungefähr 0,5 und kleiner als ungefähr 1,5 ist, und wobei der Helligkeits-Parameter größer als ungefähr –32 und kleiner als ungefähr 31 ist.
  10. Verfahren nach einem der Ansprüche 7–9, wobei die Verlauf-Kompensation (1070/1130) Multiplizieren mit dem Kontrast-Parameter und Addieren des Helligkeits-Parameters zu dem Ergebnis einschließt.
  11. Verfahren nach einem der Ansprüche 7–10, wobei der Kontrast-Parameter ein Gewichtungs-Parameter ist und der Helligkeits-Parameter ein Offset-Parameter ist.
  12. Verfahren nach Anspruch 7, wobei die Verlauf-Parameter (1060/1150) eine lineare Transformation angeben, die umfasst: Skalieren mehrerer ursprünglicher Luminanz-Werte der mehreren ursprünglichen Pixel-Werte unter Verwendung des Kontrast-Parameters, wobei der Kontrast-Parameter –1 beträgt; und Verschieben der skalierten Luminanz-Werte unter Verwendung eines modifizierten Helligkeits-Parameters.
  13. Verfahren nach einem der Ansprüche 1–12, wobei der wenigstens eine Teil des aktuellen Videobildes einen oder mehrere Blöcke umfasst.
  14. Verfahren nach einem der Ansprüche 1–12, wobei der wenigstens eine Teil des aktuellen Videobildes einen oder mehrere Makroblöcke umfasst.
  15. Verfahren nach einem der Ansprüche 1–14, wobei die mehreren neu zugeordneten Pixel-Werte sich in einem neu zugeordneten Bezugs-Videobild befinden, das zur Vorhersage folgender bi-direktional vorhergesagter Videobilder verwendet wird.
  16. Verfahren nach einem der Ansprüche 1–14, wobei sich die mehreren neu zugeordneten Pixel-Werte in einem neu zugeordneten Bezugs-Videobild befinden und das neu zugeordnete Bezugs-Videobild ein neu zugeordneter I-Frame ist.
  17. Verfahren nach einem der Ansprüche 1–14, wobei sich die mehreren neu zugeordneten Pixel-Werte in einem neu zugeordneten Bezugs-Videobild befinden und das neu zugeordnete Bezugs-Videobild ein neu zugeordneter P-Frame ist.
  18. Verfahren nach einem der Ansprüche 1–17, wobei die Verschiebe-Parameter (1060/1150) mit fester Länge kodiert sind.
  19. Verfahren nach einem der Ansprüche 1–17, wobei wenigstens einer der Verschiebe-Parameter (1060/1150) mit variabler Länge kodiert ist.
  20. Verfahren nach einem der Ansprüche 1–19, wobei das Verfahren beim Video-Decodieren durchgeführt wird.
  21. Verfahren nach einem der Ansprüche 1–19, wobei das Verfahren beim Video-Codieren durchgeführt wird.
  22. Computerlesbares Medium, das durch Computer ausführbare Befehle speichert, die ein damit programmiertes Computer-System veranlassen, das Verfahren nach einem der vorangehenden Ansprüche durchzuführen.
DE60309375T 2002-05-03 2003-04-14 Parametrisierung für verlauf-kompensation Expired - Lifetime DE60309375T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US378958 1982-05-17
US37762802P 2002-05-03 2002-05-03
US377628P 2002-05-03
US10/378,958 US7277486B2 (en) 2002-05-03 2003-03-03 Parameterization for fading compensation

Publications (2)

Publication Number Publication Date
DE60309375D1 DE60309375D1 (de) 2006-12-14
DE60309375T2 true DE60309375T2 (de) 2007-02-15

Family

ID=29219038

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60309375T Expired - Lifetime DE60309375T2 (de) 2002-05-03 2003-04-14 Parametrisierung für verlauf-kompensation

Country Status (9)

Country Link
US (9) US7277486B2 (de)
EP (1) EP1359764B1 (de)
JP (1) JP4425563B2 (de)
KR (1) KR100643819B1 (de)
CN (2) CN1280709C (de)
AT (1) ATE344593T1 (de)
DE (1) DE60309375T2 (de)
ES (1) ES2275037T3 (de)
HK (1) HK1060243A1 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4015934B2 (ja) 2002-04-18 2007-11-28 株式会社東芝 動画像符号化方法及び装置
US7277486B2 (en) * 2002-05-03 2007-10-02 Microsoft Corporation Parameterization for fading compensation
US8009739B2 (en) * 2003-09-07 2011-08-30 Microsoft Corporation Intensity estimation/compensation for interlaced forward-predicted fields
US7983835B2 (en) 2004-11-03 2011-07-19 Lagassey Paul J Modular intelligent transportation system
US7379076B2 (en) * 2004-07-15 2008-05-27 Microsoft Corporation Using pixel homogeneity to improve the clarity of images
KR100782815B1 (ko) * 2005-08-09 2007-12-06 삼성전자주식회사 인텐서티 보상을 위한 영상 디코딩 방법 및 장치
US8239766B2 (en) * 2005-09-27 2012-08-07 Qualcomm Incorporated Multimedia coding techniques for transitional effects
KR100757374B1 (ko) * 2006-03-02 2007-09-11 삼성전자주식회사 픽셀 데이터 압축 방법 및 이를 이용한 픽셀 데이터 압축장치
WO2008028333A1 (en) * 2006-09-01 2008-03-13 Thomson Licensing Method and apparatus for encoding a flash picture occurring in a viedo sequence, and for decoding corresponding data for a flash picture
WO2008048487A2 (en) * 2006-10-18 2008-04-24 Thomson Licensing Local illumination and color compensation without explicit signaling
US8352982B2 (en) * 2008-01-18 2013-01-08 Microsoft Corporation Service substitution techniques
JP5156704B2 (ja) 2008-07-29 2013-03-06 パナソニック株式会社 画像符号化装置、画像符号化方法、集積回路及びカメラ
CN101765014B (zh) * 2008-12-23 2012-06-27 联咏科技股份有限公司 产生重新取样参考画面的装置及其方法与影像解码系统
US8269885B2 (en) * 2009-04-03 2012-09-18 Samsung Electronics Co., Ltd. Fade in/fade-out fallback in frame rate conversion and motion judder cancellation
JP5368631B2 (ja) 2010-04-08 2013-12-18 株式会社東芝 画像符号化方法、装置、及びプログラム
KR101885258B1 (ko) 2010-05-14 2018-08-06 삼성전자주식회사 비디오 신호의 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR101535784B1 (ko) * 2010-09-03 2015-07-10 돌비 레버러토리즈 라이쎈싱 코오포레이션 비디오 코딩 및 프로세싱을 위한 조도 보상 및 변환을 위한 방법 및 시스템
US9628790B1 (en) 2013-01-03 2017-04-18 Google Inc. Adaptive composite intra prediction for image and video compression
US9635371B2 (en) * 2013-05-31 2017-04-25 Qualcomm Incorporated Determining rounding offset using scaling factor in picture resampling
US9313493B1 (en) * 2013-06-27 2016-04-12 Google Inc. Advanced motion estimation
US9986236B1 (en) * 2013-11-19 2018-05-29 Google Llc Method and apparatus for encoding a block using a partitioned block and weighted prediction values
US9609343B1 (en) 2013-12-20 2017-03-28 Google Inc. Video coding using compound prediction
US9807416B2 (en) 2015-09-21 2017-10-31 Google Inc. Low-latency two-pass video coding
AU2016373020B2 (en) * 2015-12-16 2021-11-18 Fondation B-Com Method of processing a digital image, device, terminal equipment and computer program associated therewith
US10645359B2 (en) 2015-12-16 2020-05-05 B<>Com Method for processing a digital image, device, terminal equipment and associated computer program
US10469841B2 (en) * 2016-01-29 2019-11-05 Google Llc Motion vector prediction using prior frame residual
US10306258B2 (en) 2016-01-29 2019-05-28 Google Llc Last frame motion vector partitioning

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03145392A (ja) 1989-10-31 1991-06-20 Nec Corp 動き補償フレーム間符号化・復号化方法とその符号化装置・復号化装置
US5510840A (en) 1991-12-27 1996-04-23 Sony Corporation Methods and devices for encoding and decoding frame signals and recording medium therefor
US5245436A (en) 1992-02-14 1993-09-14 Intel Corporation Method and apparatus for detecting fades in digital video sequences
JPH0646412A (ja) 1992-07-24 1994-02-18 Victor Co Of Japan Ltd 動画像予測符号化方法及び復号方法
US5461420A (en) 1992-09-18 1995-10-24 Sony Corporation Apparatus for coding and decoding a digital video signal derived from a motion picture film source
US5598514A (en) * 1993-08-09 1997-01-28 C-Cube Microsystems Structure and method for a multistandard video encoder/decoder
JP3795932B2 (ja) 1994-05-19 2006-07-12 富士写真フイルム株式会社 画像データ圧縮符号化方法および装置
US5568167A (en) 1994-09-23 1996-10-22 C-Cube Microsystems, Inc. System for providing antialiased video overlays
US5825929A (en) 1995-10-05 1998-10-20 Microsoft Corporation Transformation block optimization method
GB9607645D0 (en) 1996-04-12 1996-06-12 Snell & Wilcox Ltd Processing of video signals prior to compression
JPH1042195A (ja) 1996-04-27 1998-02-13 Victor Co Of Japan Ltd 映像切換え装置
JP2938412B2 (ja) 1996-09-03 1999-08-23 日本電信電話株式会社 動画像の輝度変化補償方法、動画像符号化装置、動画像復号装置、動画像符号化もしくは復号プログラムを記録した記録媒体および動画像の符号化データを記録した記録媒体
US6266370B1 (en) * 1996-09-03 2001-07-24 Nippon Telegraph And Telephone Corporation Brightness-variation compensation method and coding/decoding apparatus for moving pictures
US6094455A (en) 1996-09-25 2000-07-25 Matsushita Electric Industrial Co., Ltd. Image compression/encoding apparatus and system with quantization width control based on bit generation error
EP0945023B1 (de) 1996-12-10 2002-09-18 BRITISH TELECOMMUNICATIONS public limited company Videokodierung
US6735253B1 (en) * 1997-05-16 2004-05-11 The Trustees Of Columbia University In The City Of New York Methods and architecture for indexing and editing compressed video over the world wide web
JP3911768B2 (ja) 1997-06-02 2007-05-09 ソニー株式会社 画像符号化方法及び画像符号化装置
US6195458B1 (en) * 1997-07-29 2001-02-27 Eastman Kodak Company Method for content-based temporal segmentation of video
US5978029A (en) * 1997-10-10 1999-11-02 International Business Machines Corporation Real-time encoding of video sequence employing two encoders and statistical analysis
US6002400A (en) 1997-11-19 1999-12-14 International Business Machines Corporation Method and apparatus for handles to components in graphical windows user interface
US6100940A (en) 1998-01-21 2000-08-08 Sarnoff Corporation Apparatus and method for using side information to improve a coding system
US6192154B1 (en) * 1998-01-26 2001-02-20 International Business Machines Corporation Two-pass encoding method of digital motion video sequences for constant-or variable bit rate
US6278735B1 (en) 1998-03-19 2001-08-21 International Business Machines Corporation Real-time single pass variable bit rate control strategy and encoder
US6268864B1 (en) 1998-06-11 2001-07-31 Presenter.Com, Inc. Linking a video and an animation
JP2000059792A (ja) 1998-08-06 2000-02-25 Pioneer Electron Corp 動画像信号の高能率符号化装置
JP3166716B2 (ja) * 1998-08-12 2001-05-14 日本電気株式会社 フェード画像対応動画像符号化装置及び符号化方法
US6466624B1 (en) 1998-10-28 2002-10-15 Pixonics, Llc Video decoder with bit stream based enhancements
US6223278B1 (en) * 1998-11-05 2001-04-24 Intel Corporation Method and apparatus for floating point (FP) status word handling in an out-of-order (000) Processor Pipeline
EP1069779B1 (de) 1999-02-09 2016-04-13 Sony Corporation Kodiersystem und entsprechendes verfahren
JP3957915B2 (ja) * 1999-03-08 2007-08-15 パイオニア株式会社 フェード検出装置及び情報符号化装置
JP2001231045A (ja) 2000-02-15 2001-08-24 Nec Corp 動画像符号化および復号化装置
JP2001292372A (ja) * 2000-04-04 2001-10-19 Pioneer Electronic Corp 画像変化検出装置及び画像変化検出方法、画像符号化装置並びに画像変化検出用プログラムがコンピュータで読取可能に記録された情報記録媒体
JP2004504779A (ja) 2000-07-13 2004-02-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 動き推定のための前処理方法
JP4328000B2 (ja) 2000-08-02 2009-09-09 富士通株式会社 動画像符号化装置および動画像の特殊効果シーン検出装置
US6944226B1 (en) 2000-10-03 2005-09-13 Matsushita Electric Corporation Of America System and associated method for transcoding discrete cosine transform coded signals
US6771311B1 (en) * 2000-12-11 2004-08-03 Eastman Kodak Company Automatic color saturation enhancement
US6959044B1 (en) 2001-08-21 2005-10-25 Cisco Systems Canada Co. Dynamic GOP system and method for digital video encoding
JP4015934B2 (ja) 2002-04-18 2007-11-28 株式会社東芝 動画像符号化方法及び装置
US7277486B2 (en) * 2002-05-03 2007-10-02 Microsoft Corporation Parameterization for fading compensation
US7609767B2 (en) 2002-05-03 2009-10-27 Microsoft Corporation Signaling for fading compensation
KR20050061762A (ko) * 2003-12-18 2005-06-23 학교법인 대양학원 부호화 모드 결정방법, 움직임 추정방법 및 부호화 장치
JP4236654B2 (ja) * 2005-09-13 2009-03-11 株式会社東芝 動画像符号化装置及びその方法
JP4764136B2 (ja) * 2005-10-31 2011-08-31 富士通セミコンダクター株式会社 動画像符号化装置、及びフェードシーン検出装置
US8046364B2 (en) * 2006-12-18 2011-10-25 Veripat, LLC Computer aided validation of patent disclosures
GB2447058A (en) * 2007-02-28 2008-09-03 Tandberg Television Asa Compression of video signals containing fades and flashes
US20110059757A1 (en) * 2009-09-08 2011-03-10 Cequint, Inc. Systems and methods for automatic delivery of 411 caller information
US9161058B2 (en) * 2010-03-27 2015-10-13 Texas Instruments Incorporated Method and system for detecting global brightness change for weighted prediction in video encoding
KR101535784B1 (ko) * 2010-09-03 2015-07-10 돌비 레버러토리즈 라이쎈싱 코오포레이션 비디오 코딩 및 프로세싱을 위한 조도 보상 및 변환을 위한 방법 및 시스템
JP6087747B2 (ja) * 2013-06-27 2017-03-01 Kddi株式会社 映像符号化装置、映像復号装置、映像システム、映像符号化方法、映像復号方法、およびプログラム
US11323730B2 (en) * 2019-09-05 2022-05-03 Apple Inc. Temporally-overlapped video encoding, video decoding and video rendering techniques therefor

Also Published As

Publication number Publication date
US7277486B2 (en) 2007-10-02
US20180184124A1 (en) 2018-06-28
CN1941911A (zh) 2007-04-04
CN1280709C (zh) 2006-10-18
US10264284B2 (en) 2019-04-16
US20190200042A1 (en) 2019-06-27
CN1941911B (zh) 2010-12-15
US20160323601A1 (en) 2016-11-03
US20120307910A1 (en) 2012-12-06
US10805616B2 (en) 2020-10-13
JP2004007649A (ja) 2004-01-08
US8265148B2 (en) 2012-09-11
EP1359764A3 (de) 2004-08-11
US11451793B2 (en) 2022-09-20
US20210337213A1 (en) 2021-10-28
US20080037657A1 (en) 2008-02-14
US11451794B2 (en) 2022-09-20
EP1359764A2 (de) 2003-11-05
US20210337212A1 (en) 2021-10-28
KR20030086905A (ko) 2003-11-12
US20200404292A1 (en) 2020-12-24
HK1060243A1 (en) 2004-07-30
ATE344593T1 (de) 2006-11-15
US20030206592A1 (en) 2003-11-06
CN1487408A (zh) 2004-04-07
US11089311B2 (en) 2021-08-10
ES2275037T3 (es) 2007-06-01
KR100643819B1 (ko) 2006-11-10
EP1359764B1 (de) 2006-11-02
US9363536B2 (en) 2016-06-07
DE60309375D1 (de) 2006-12-14
US9843822B2 (en) 2017-12-12
JP4425563B2 (ja) 2010-03-03

Similar Documents

Publication Publication Date Title
DE60309375T2 (de) Parametrisierung für verlauf-kompensation
DE60310800T2 (de) Approximierter Kubikfilter
DE60307354T2 (de) Chrominanz-Bewegungsvektorrundung
DE60302602T2 (de) Sub-Pixel-Interpolation in Bewegungsschätzung und Bewegungskompensation
DE60306011T2 (de) Rundungskontrolle für mehrstufige Interpolation
DE69738494T2 (de) Videokodierungs- und Videodekodierungsvorrichtung
DE69838729T2 (de) Verfahren und vorrichtung zur verringerung des benötigten speicherplatzes zur speicherung von referenzbildern in einem videodekoder
US7463684B2 (en) Fading estimation/compensation
EP1359770B1 (de) Signalisierung der Schwundkompensation bei der Videokodierung
DE202012013410U1 (de) Bildkompression mit SUB-Auflösungsbildern
DE10343220B3 (de) Verfahren und Vorrichtung zur Transcodierung eines Datenstroms, der ein oder mehrere codierte digitalisierte Bilder umfasst
DE102016125604A1 (de) Intelligente Sortierung der rekursiven Blockaufteilung für die erweiterte Intra-Prädiktion bei der Videocodierung
DE102020125206A1 (de) Verfahren und system zur mehrkanalvideocodierung mit frameratenänderung und kanalübergreifender referenzierung
DE112015001531T5 (de) Datenkodierung und Dekodierung
DE19524688C1 (de) Verfahren zur Dekodierung und Kodierung eines komprimierten Videodatenstroms mit reduziertem Speicherbedarf
DE60210757T2 (de) Vorrichtung zur videokodierung und -aufzeichnung
DE602004011213T2 (de) Intraframe-komprimierung und dekomprimierung von videosignalen mit fester bitrate
DE10219640A1 (de) Verfahren zum Codieren und Decodieren von Videosequenzen und Computerprogrammprodukt
EP1746840A2 (de) Parametrierung zur Schwundkompensation

Legal Events

Date Code Title Description
8364 No opposition during term of opposition