DE112010004844T5 - Videocodierung unter Verwendung von Pixeldatenströmen - Google Patents

Videocodierung unter Verwendung von Pixeldatenströmen Download PDF

Info

Publication number
DE112010004844T5
DE112010004844T5 DE112010004844T DE112010004844T DE112010004844T5 DE 112010004844 T5 DE112010004844 T5 DE 112010004844T5 DE 112010004844 T DE112010004844 T DE 112010004844T DE 112010004844 T DE112010004844 T DE 112010004844T DE 112010004844 T5 DE112010004844 T5 DE 112010004844T5
Authority
DE
Germany
Prior art keywords
data stream
pixel data
detail
pixel
components
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.)
Withdrawn
Application number
DE112010004844T
Other languages
English (en)
Inventor
Richard Timothy Leigh
Michael Anthony Ricketts
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112010004844T5 publication Critical patent/DE112010004844T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Color Television Systems (AREA)

Abstract

Ein Videodatenstrom umfasst eine Vielzahl sequenzieller Pixel-Vollbilder. Ein Verfahren zum Verarbeiten des Videodatenstroms umfasst die folgenden Schritte: für jedes Pixel in einem Vollbild Extrahieren eines Pixeldatenstroms, der die Farbkomponenten des bestimmten Pixels von jedem Vollbild umfasst, für jeden Pixeldatenstrom Durchführen einer Transformation des Pixeldatenstroms in eine Vielzahl von Detailkomponenten, von jedem transformierten Pixeldatenstrom Erfassen der Detailkomponente, die den niedrigsten Detaillierungsgrad für den jeweiligen Pixeldatenstrom festlegt, sequenzielles Speichern der erfassten Komponenten mit dem niedrigsten Detaillierungsgrad in einem Hauptblock und Erzeugen eines oder mehrerer weiterer Blöcke, welche die übrigen Detailkomponenten enthalten.

Description

  • Diese Erfindung betrifft ein Verfahren, ein System und ein Computerprogrammprodukt zum Verarbeiten eines Videodatenstroms.
  • Ein Bild, das durch eine Einheit wie beispielsweise eine LCD-Anzeigeeinheit angezeigt wird, enthält Pixeldaten, welche die Ausgabe der Anzeigeeinheit auf Pixelebene festlegen. Die Pixeldaten können auf unterschiedliche Arten formatiert werden, zum Beispiel auf herkömmliche Weise unter Verwendung von RGB-Graden, um die letztendliche Farbe des momentanen Pixels festzulegen. Bewegte Bilder (Video) werden erzeugt, indem eine große Zahl einzelner Bilder (frames (Vollbilder)) pro Sekunde angezeigt werden, um die Illusion von Bewegung zu erzeugen. Video kann zum Beispiel je nach verwendetem Videoformat 15, 25 oder 30 Vollbilder je Sekunde benötigen. Die zunehmende Auflösung (Pixel pro Vollbilder) von Quellvideos und Anzeigeeinheiten bedeutet, dass für einen gegebenen Videodatenstrom wie einen Film eine große Menge an Pixeldaten vorhandenen ist und auch dass eine höhere Bandbreite (Daten pro Sekunde) erforderlich ist, um die Videodaten zum Beispiel beim Senden von einem Ort zum anderen zu übertragen.
  • Um die Daten- und Bandbreitenanforderungen zu verringern, wird beim Original-Vollbild und den Pixeldaten üblicherweise eine Videokomprimierung angewandt. Die Videokomprimierung verringert die vorhandene Datenmenge, ohne die Qualität des Endergebnisses für den Betrachter merklich zu beeinträchtigen. Videokomprimierung arbeitet auf der Grundlage, dass innerhalb einzelner Vollbilder und auch zwischen Vollbildern eine große Datenredundanz besteht. Zum Beispiel besteht bei Verwendung mehrerer Vollbilder pro Sekunde bei Videos eine erhebliche Wahrscheinlichkeit dafür, dass eine große Anzahl von Vollbildern dem vorgehenden Vollbild stark ähnelt. Die Videokomprimierung wurde standardisiert, und ein momentan verbreiteter Standard ist MPEG-2, das beim digitalen Senden von Fernsehprogrammen und auch bei DVDs verwendet wird. Dieser Standard verringert die Menge vorhandener Daten von den ursprünglichen Daten pro Pixel bis zum endgültigen komprimierten Videodatenstrom drastisch.
  • Große Mediendateien (die Video und Audio enthalten) werden häufig im Umfeld des Internet übertragen. Das Aufkommen sogenannter „On-Demand”-Dienste (Dienste auf Anforderung) mit Videoinhalten hoher Auflösung (high definition) bürdet Zentralservern hohe Lasten auf, so dass das Konzept einer „peer-to-peer”-(P2P-)Dateiübertragung (peer to peer – unter Gleichgestellten) eingeführt wurde, um die Belastung zwischen allen beteiligten Parteien aufzuteilen. Diese Vorgehensweise wird momentan zum Beispiel beim iPlayer-Herunterladedienst der BBC verwendet. Der datenstromorientierte Ansatz aktueller Video- und Audio-Codierer harmoniert jedoch schlecht mit dem Verteilungsverfahren zufälligen Zugriffs von P2P-Übertragungen. Das Decodieren einer teilweise ausgeführten Mediendatei mittels derzeit bekannter Ansätze führt für einen gegebenen Kompressionsansatz zu einigen Bereichen mit maximaler Qualität und keinen Informationen für andere Bereiche.
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, eine Verbesserung gegenüber dem Stand der Technik herbeizuführen.
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung wird ein Verfahren zum Verarbeiten eines Videodatenstroms bereitgestellt, der eine Vielzahl sequenzieller Pixel-Vollbilder umfasst, wobei das Verfahren die folgenden Schritte umfasst: für jedes Pixel in einem Vollbild Extrahieren eines Pixeldatenstroms, der die Farbkomponenten des bestimmten Pixels von jedem Vollbild umfasst, für jeden Pixeldatenstrom Durchführen einer Transformation des Pixeldatenstroms in eine Vielzahl von Detailkomponenten, von jedem transformierten Pixeldatenstrom Erfassen der Detailkomponente, die den niedrigsten Detaillierungsgrad für den jeweiligen Pixeldatenstrom festlegt, sequenzielles Speichern der erfassten Komponenten mit dem niedrigsten Detaillierungsgrad in einem Hauptblock und Erzeugen eines oder mehrerer weiterer Blöcke, welche die übrigen Detailkomponenten enthalten.
  • Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird ein System zum Verarbeiten eines Videodatenstroms bereitgestellt, der eine Vielzahl sequenzieller Pixel-Vollbilder umfasst, wobei das System einen Prozessor umfasst, der so eingerichtet ist, dass er für jedes Pixel in einem Vollbild einen Pixeldatenstrom extrahieren kann, der die Farbkomponenten des bestimmten Pixels von jedem Vollbild umfasst, für jeden Pixeldatenstrom eine Transformation des Pixeldatenstroms in eine Vielzahl von Detailkomponenten durchführen kann, von jedem transformierten Pixeldatenstrom die Detailkomponente erfassen kann, die den niedrigsten Detaillierungsgrad für den jeweiligen Pixeldatenstrom festlegt, die erfassten Komponenten mit dem niedrigsten Detaillierungsgrad sequenziell speichern kann und einen oder mehrere weitere Blöcke erzeugen kann, welche die übrigen Detailkomponenten enthalten.
  • Gemäß einem dritten Aspekt der vorliegenden Erfindung wird auf einem computerlesbaren Datenträger ein Computerprogrammprodukt zum Verarbeiten eines Videodatenstroms bereitgestellt, der eine Vielzahl sequenzieller Pixel-Vollbilder umfasst, wobei das Produkt Anweisungen umfasst, um für jedes Pixel in einem Vollbild einen Pixeldatenstrom zu extrahieren, der die Farbkomponenten des bestimmten Pixels von jedem Vollbild umfasst, für jeden Pixeldatenstrom eine Transformation des Pixeldatenstroms in eine Vielzahl von Detailkomponenten durchzuführen, von jedem transformierten Pixeldatenstrom die Detailkomponente zu erfassen, die für den jeweiligen Pixeldatenstrom den niedrigsten Detaillierungsgrad festlegt, die erfassten Komponenten mit dem niedrigsten Detaillierungsgrad sequenziell in einem Huptblock zu speichern und um einen oder mehrere weitere Blöcke zu erzeugen, welche die übrigen Detailkomponenten enthalten.
  • Gemäß einem vierten Aspekt der vorliegenden Erfindung wird ein Verfahren zum Erzeugen eines Videodatenstroms bereitgestellt, der eine Vielzahl sequenzieller Pixel-Vollbilder umfasst, wobei das Verfahren die folgenden Schritte umfasst: Empfangen eines Hauptblocks, der Komponenten mit einem niedrigsten Detaillierungsgrad sequenziell speichert, und eines oder mehrerer weiterer Blöcke, welche die übrigen Detailkomponenten enthalten, Zusammenstellen einer Vielzahl transformierter Pixeldatenströme, von denen jeder eine Komponente mit einem niedrigsten Detaillierungsgrad und eine oder mehrere übrige Detailkomponenten enthält, für jeden transformierten Pixelstrom Durchführen einer inversen Transformation des transformierten Pixeldatenstroms in einen Pixeldatenstrom, der die Farbkomponenten eines bestimmten Pixels von jedem Vollbild umfasst, und Erzeugen eines Vollbilds, indem von jedem Pixeldatenstrom Pixeldaten für das bestimmte Vollbilder extrahiert werden.
  • Gemäß einem fünften Aspekt der vorliegenden Erfindung wird ein System zum Erzeugen eines Videodatenstroms bereitgestellt, der eine Vielzahl sequenzieller Pixel-Vollbilder umfasst, wobei das System einen Prozessor umfasst, der so eingerichtet ist, dass er einen Hauptblock, der Komponenten mit einem niedrigsten Detaillierungsgrad speichert, und einen oder mehrere weitere Blöcke, welche die übrigen Detailkomponenten enthalten, empfangen kann, eine Vielzahl transformierter Pixeldatenströme zusammenstellen kann, von denen jeder eine Komponente mit einem niedrigsten Detaillierungsgrad und eine oder mehrere übrige Detailkomponenten enthält, für jeden transformierten Pixeldatenstrom eine inverse Transformation des transformierten Pixeldatenstroms in einen Pixeldatenstrom durchführen kann, der die Farbkomponenten eines bestimmten Pixels von jedem Vollbild umfasst, und ein Vollbild erzeugen kann, indem von jedem Pixeldatenstrom Pixeldaten für das bestimmte Vollbild extrahiert werden.
  • Gemäß einem sechsten Aspekt der vorliegenden Erfindung wird auf einem computerlesbaren Datenträger ein Computerprogrammprodukt zum Erzeugen eines Videodatenstroms bereitgestellt, der eine Vielzahl sequenzieller Pixel-Vollbilder umfasst, wobei das Produkt Anweisungen umfasst, um einen Hauptblock, der Komponenten mit einem niedrigsten Detaillierungsgrad und einen oder mehrere weitere Blöcke, welche die übrigen Detailkomponenten enthalten, sequenziell speichert, zu empfangen, eine Vielzahl transformierter Pixeldatenströme zusammenzustellen, von denen jeder eine Komponente mit dem niedrigsten Detaillierungsgrad und eine oder mehrere übrige Detailkomponenten enthält, für jeden transformierten Pixelstrom eine inverse Transformation des transformierten Pixeldatenstroms in einen Pixeldatenstrom durchzuführen, der die Farbkomponenten eines bestimmten Pixels von jedem Vollbild umfasst, und um ein Vollbild zu erzeugen, indem von jedem Pixeldatenstrom Pixeldaten für das bestimmten Vollbild extrahiert werden.
  • Durch die Erfindung ist es möglich, ein Verfahren der Videoverarbeitung bereitzustellen, welches die Erzeugung des gesamten Videodatenstroms aus dem Hauptblock unterstützt, wobei alle weiteren Blöcke die Qualität des Videodatenstroms verbessern, ohne dass die weiteren Blöcke in irgendeiner bestimmten Reihenfolge empfangen werden müssen. Die Erfindung macht die Videoübertragung durch Lebensdauer-Codierung pro Pixel möglich. Durch Berücksichtigen der Lebensdauer eines einzelnen Pixels über die Gesamtheit des Quellmaterials hinweg werden aufeinanderfolgende Näherungen vorgenommen. Diese Näherungen sind dergestalt, dass mit sehr wenigen Basisinformationen durch den gesamten Film hindurch eine (wahrscheinlich schlechte) Schätzung der Farbe des Pixels erfolgen kann.
  • Um den Grundgedanken der Erfindung zu verstehen, wird in einer trivialen Ausführung das Senden der Start- und Endfarbe eines Pixels betrachtet. Dann kann für jedes Vollbild im Film durch lineare Interpolation ein Wert berechnet werden. Wird nun der Wert des Mittelpixels hinzugenommen, sind wahrscheinlich alle Werte in der ersten Hälfte und alle Werte in der zweiten Hälfte des Films ein wenig genauer. Werden die Viertelwerte hinzugenommen, kann nun eine bessere Näherung des Originalsignals erstellt werden. Es ist klar, dass diese besser ist als der erste Ansatz, da ursprünglich nur zwei Pixel als dem Original entsprechend bekannt sein können, während dies nun auf fünf zutrifft. Wäre jedoch nur das zweite Viertelwert-Pixel ohne das erste bekannt, wäre nur die zweite Hälfte des Videodatenstroms genauer. Dies ist das Grundkonzept der Verwendung zufällig empfangener Daten, um zunehmend wahrheitsgetreuere Rekonstruktionen eines Quellsignals zu erzeugen und dabei jederzeit in der Lage zu sein, eine Art von Ausgangssignal zu erzeugen.
  • Abgesehen davon, dass man nun in der Lage ist, einen kompletten Videodatenstrom aus Übertragungsschemata mit zufälligem Zugriff zusammenzustellen, liegt ein weiterer wichtiger Vorteil dieses Ansatzes in der Datenstromverarbeitung/Parallelisierung, die dieses Verfahren mit sich bringt. Bei einer Datenstromsequenz auf der Grundlage von Vollbildern hängen Codierung und Decodierung allgemein sehr stark von vorhergehenden Ergebnissen ab. Durch diese Erfindung werden nicht nur alle Pixel unabhängig voneinander, sondern abgesehen von leicht auffindbaren Kreuzungspunkten können Codierer und Decodierer unabhängig voneinander an derselben Zeitsequenz arbeiten.
  • Vorzugsweise umfasst der Schritt des Durchführens einer Transformation des Pixeldatenstroms in eine Vielzahl von Detailkomponenten für jeden Pixeldatenstrom ein Durchführen aufeinanderfolgender diskreter Wavelet-Transformationen an jedem Pixeldatenstrom. Ein gutes Verfahren zum Transformieren der Pixeldatenströme in Detailkomponenten ist das Verwenden diskreter Wavelet-Transformationen, um Detaillierungsgrade aus den Pixeldatenströmen zu extrahieren. Jeder Durchlauf einer diskreten Wavelet-Transformation trennt die Daten in eine Näherung der ursprünglichen Daten (der niedrigste Detaillierungsgrad) und lokale Informationen, die höhere Detaillierungsgrade festlegen. Der ursprüngliche Pixeldatenstrom kann aus dem niedrigsten Detaillierungsgrad rekonstruiert werden, wobei jede zusätzliche Detaillierungsinformation die Qualität und die Genauigkeit des Endergebnisses verbessert.
  • Auf vorteilhafte Weise umfasst das Verfahren weiterhin ein Empfangen eines Audiodatenstroms, Trennen des Audiodatenstroms in frequenzbegrenzte Datenströme, Durchführen einer Transformation des frequenzbegrenzten Datenstroms in eine Vielzahl von Audiodetailkomponenten für jeden frequenzbegrenzten Datenstrom, Erfassen der Detailkomponente, die den niedrigsten Detaillierungsgrad für den jeweiligen frequenzbegrenzten Datenstrom festlegt, von jedem transformierten frequenzbegrenzten Datenstrom, Speichern der erfassten Komponenten mit dem niedrigsten Audiodetaillierungsgrad im Hauptblock und Erzeugen eines oder mehrerer weiterer Blöcke welche die übrigen Audiodetailkomponenten enthalten.
  • Audiodaten können über die Videosequenz hinweg als Einzelsignal betrachtet werden (oder genauer als zwei Signale bei Stereo- oder 6 bei 5.1-Raumklang (surround sound)). Anfängliche Tests zeigen jedoch, dass ein Teilen des Signals nach der Frequenz und ein Codieren mehrerer unterschiedlicher Frequenzbänder einen besseren Zusammenklang erzeugen. Gleichermaßen erlaubt das Transformieren des Videosignals von RGB-Komponenten in YCbCr die Verwendung des üblichen Tricks bei der Videocodierung, die Hälfte der Farbinformationen zu verwerfen und dabei die für die Wahrnehmung wichtigeren Helligkeitsinformationen beizubehalten.
  • Das Betrachten des sich ergebenden Wavelet-Transformationsraums zeigt große Bereiche, in denen die Luminanz (Y') und die Chrominanz (CbCr) sich nicht schnell ändern, was durch eine Serie von Nullen in Bereichen der Transformation mit hoher Detaillierung wiedergegeben wird. Im Wesentlichen tragen diese nichts zur sich ergebenden Rekomposition bei, da eine Faltung mit einem Kernel zu einem Beitrag von Null zur Summe eines gegebenen Pixels führt. Dies ist analog zur Verwendung einer sehr hohen Abtastrate an einem sich langsam verändernden Signal. Darüber hinaus werden einige Informationen, die nicht Null betragen, obwohl sie für eine perfekte Rekonstruktion notwendig sind, für eine Rekonstruktion der Wahrnehmung möglicherweise nicht benötigt. Die bedeutet, dass die Korrekturen am zugrundeliegenden Signal eventuell ignoriert werden können, wenn sie das Signal nicht nennenswert verändern. Dies zeigt sich wiederum in kleinen Werten im Wavelet-Raum, da ihr Gesamtbeitrag zum rekonstruierten Signal verhältnismäßig klein sein wird. Durch Abschneiden niedriger Werte, können weitere Informationen vernachlässigt werden.
  • Da der Schwellenwert, ab dem Daten verworfen werden, auf jedem Niveau angesetzt werden kann, kann dieses Codierschema dazu verwendet werden, jedes beliebige Signal unabhängig von der Länge bis zu einem Minimum von 15 bis 25 (eine Zahl zwischen 3 × Kernelbreite/2 und 5 × Kernelbreite/2) Abtastvorgängen pro Signal und daher auf die Größenordnung von einigen wenigen Kilobytes für einen ganzen Film bis hin zu einem je nach Anwendung verlustfreien oder wahrnehmungstechnisch verlustfreien Film komprimiert werden. Viele Szenarien sind denkbar, in denen es nützlich sein kann, mit geringer Bandbreite Videos von schlechter Qualität zu erhalten, jedoch ohne dass eine Neuübertragung erforderlich ist, weitere Detaillierung hinzufügen zu können, zum Beispiel um zu entscheiden, ob ein Video einer Sonde vom Mars empfangen oder verworfen werden soll.
  • In einer bevorzugten Ausbildung wird ein naiver Schwellenwertfilter verwendet, wobei jedoch beliebige „Signifikanz”-Algorithmen zur Bild- und Signalverarbeitung verwendet werden können wie beispielsweise adaptive Algorithmen, die zum Beispiel während der Werbung oder des Abspanns Detaillierung fallen lassen und beispielsweise während Action-Szenen mehr Bandbreite bereitstellen. Dies wird ermöglicht, da es für eine gegebene Probe im Wavelet-Raum möglich ist, präzise zu bestimmen, von welchen Proben im ursprünglichen Datenstrom sie abgeleitet wurde und welche sie während der Rekonstruktion beeinflussen wird.
  • Der sich ergebende Satz von Zerlegungen (decompositions) kann aneinander angehängt und als weitgehend Nullen enthaltender Vektor für die Übertragung codiert werden. Durch das Ignorieren einer Folge unerheblicher Daten (Null oder unterhalb des Schwellenwertes) werden, sobald Daten von Bedeutung erkannt werden, deren Abweichung (offset) gespeichert und alle Daten bis zu einem darauffolgenden Datenstrom unerheblicher Daten gespeichert. Unter der Annahme, dass der Wavelet-Raum weitgehend aus Nullen besteht, wird aufgrund dessen diese Codierung mit zusätzlichem Aufwand für eine Abweichung wirksamer sein als das Übertragen der im Original vorhandenen langen Folgen von Nullen.
  • Um ein codiertes Video zu konstruieren, wird ein Vorsatz (header) aus verschiedenen Metadaten (Höhe, Breite, Titel, Vollbildanzahl usw.) geschrieben, gefolgt von den Basisdaten, durch die ein beliebiges Pixel/ein beliebiger Audiokanal bei jedem beliebigen Zeitcode schlecht rekonstruiert werden kann. Danach werden die Blöcke aus Wavelet-Raum-Abweichungen und signifikanten Daten zufällig über die verbleibende Datei verteilt.
  • Derzeit bekannte P2P-Anwendungen können dem ersten Segment einer Datei Priorität einräumen, so dass das Vorhandensein des ersten Abschnitts mit all den Basisinformationen vernünftigerweise gewährleistet werden kann. Danach stellt jede beliebige weitere zufällige Probe von Daten aus der übrigen Datei weitere Deatails über ein(e) (zufällige(s)) Pixel/Tonspur im Film bereit. Die Art und Weise des zufälligen Zugriffs dieses Ansatzes bedeutet, dass eine vollständige Kopie der Daten im Speicher gespeichert werden muss, da das Decodieren eines einzelnen Vollbilds ebenso schwierig ist wie das Decodieren des gesamten Films. Da sich jedoch moderne Grafikkarten Speicherinhalten von 2 GB und sich Datenstrom-Prozessoren wie der „Cell” Bandbreiten von 320 GB/s nähern, ist dies, insbesondere im Licht der Vorteile, welche die parallele Datenstromverarbeitung dieses Ansatzes mit sich bringt, nicht als einschränkender Faktor anzusehen.
  • Nachfolgend werden in lediglich beispielhafter Weise Ausführungsformen der Erfindung unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, in denen:
  • 1 bis 3 schematische Abbildungen der Verarbeitung eines Videodatenstroms zeigen,
  • 4 eine schematische Abbildung eines Verbreitungspfades des Videodatenstroms zeigt,
  • 5 bis 10 schematische Abbildungen einer bevorzugten Ausführungsform der Verarbeitung des Videodatenstroms zeigen, und
  • 11 und 12 schematische Abbildungen einer bevorzugten Ausführungsform der Rekonstruktion des Videodatenstroms zeigen.
  • Der Grundgedanke der Erfindung wird in 1 veranschaulicht, die einen Videodatenstrom zeigt, der sich aus einer Vielzahl sequenzieller Vollbilder 10 von Pixeln 12 zusammensetzt. In diesem Beispiel umfasst der Videodatenstrom neun Vollbilder 10 zu je 12 Pixeln. Dieses Beispiel wird gegeben, um den Grundgedanken der ausgeführten Verarbeitung des Videodatenstroms zu veranschaulichen. In der Praxis wird ein zu verarbeitender Videodatenstrom viele Tausend Vollbilder und jedes Vollbild viele Tausend Pixel umfassen. Ein Film in hoher Auflösung wird zum Beispiel über 180.000 einzelne Vollbilder von jeweils 1920 × 1080 Pixeln enthalten (Breite mal Höhe der Pixel in jedem einzelnen Vollbild).
  • Die vier Pixel 12 in jedem Vollbild 10 sind mit P1 bis P4 durchnummeriert, obwohl normalerweise Pixel mit x- und y-Koordinaten angegeben werden. Somit umfasst Vollbild 1 vier Pixel: F1P1, F1P2, F1P3 und F1P4. Nachfolgende Vollbilder 10 weisen ebenfalls vier Pixel auf, die mithilfe desselben Systems durchnummeriert sind. Es wird angenommen, dass jede Vollbild 10 dieselbe Anzahl von Pixeln 12 in derselben Matrix „Breite × Höhe” aufweist. Jedes Pixel 12 setzt sich aus Farbkomponenten zusammen, welche die tatsächliche Farbe jedes Pixels 12 angeben, wenn es schließlich angezeigt wird. Dabei kann es sich um Rot-, Grün- und Blauwerte (RGB) handeln, welche die relative Intensität der Farbkomponenten innerhalb des Pixels festlegen. In Anzeigeeinheiten wie beispielsweise LCD-Anzeigeeinheiten wird jedes Pixel durch drei Farbausgangssignale von Rot, Grün und Blau dargestellt, die entsprechend den Pixeldaten 12 gesteuert werden.
  • 1 zeigt die erste Stufe der Verarbeitung des Videodatenstroms. Für jedes Pixel 12 in einem Vollbild 10 wird ein Pixeldatenstrom 14 extrahiert, der die Farbkomponenten des bestimmten Pixels 12 von jedem Vollbild 10 umfasst. Da im Vollbild 10 vier Pixel 12 vorhanden sind, gibt es nach der Ausführung dieses Extrahierungssprozesses vier Pixeldatenströme 14. Im Wesentlichen schaltet dieser Schritt den Videodatenstrom von einer Darstellung nach Vollbildern in eine Darstellung nach Pixeln um. Jeder Pixeldatenstrom 14 enthält die Farbinformationen für ein bestimmtes Pixel 12 über die Gesamtheit der Videosequenz hinweg, die durch sämtliche Vollbilder 10 ausgebildet wird.
  • Der nächste Verarbeitungsschritt ist in 2 abgebildet, wo für jeden Pixeldatenstrom 14 eine Transformation des Pixeldatenstroms 14 in einen transformierten Pixeldatenstrom 16 durchgeführt wird, der eine Vielzahl von Detailkomponenten 18 umfasst. Jeder der vier Pixeldatenströme 14 von 1 werden wie in 2 gezeigt in einen transformierten Pixeldatenstrom 16 transformiert. Der transformierte Pixeldatenstrom 16 weist Detailkomponenten 18 von D1 bis Dn auf. Es sind nicht notwendigerweise genauso viele Detailkomponenten 18 vorhanden, wie Pixel 12 im Pixeldatenstrom 14 vorhanden waren. Die Anzahl der Detailkomponenten innerhalb des transformierten Pixeldatenstroms 16 hängt von Transformationsprozess ab.
  • In der bevorzugten Ausführungsform wird aufgrund ihrer erwiesenen Eignung bei anderen Anwendungen wie JPEG2000 die diskrete Wavelet-Transformation (Discrete Wavelet Transform (DWT)) für den Transformationsprozess verwendet. Mit jedem Durchlauf der DWT wird das Quellsignal in zwei Hälften geteilt: ein Näherungssignal und ein Detailsignal. Das sehr schnelle Durchführen aufeinanderfolgender DWTs am Näherungssignal verringert die Länge dieses Signals sehr schnell. Zum Beispiel beträgt nach 10 Durchläufen die Länge des Näherungssignals nur noch 1/1000 der Länge des Originals. Dennoch ist eine perfekte Rekonstruktion des Quellsignals mittels des Näherungssignals und der übrigen neun Detailsignale möglich (von denen jedes die halbe Länge des vorhergehenden besitzt, d. h. ungefähr auf 1/1000 der Originalquelle verringert ist).
  • Eine wertvolle Funktion der DWT liegt darin, dass sich die Informationen in Detailschichten befinden. Im Gegensatz zu beispielsweise der Polynomzerlegung ist bei der Rekonstruktion auch das Vorhandensein eines Abschnitts des Detailsignals hilfreich, ohne dass das Detailsignal in seiner Gesamtheit erforderlich wäre. Fehlende Daten haben keine Auswirkung und können während der Rekonstruktion sicher als Nullen gesetzt werden. Dadurch wird das Ziel erreicht, dass zufällige Daten beim Versuch der Rekonstruktion eines gegebenen Vollbilds eines Videodatenstroms hilfreich sind. Im transformierten Pixeldatenstrom 16 handelt es sich bei der Detailkomponente 18a um das genäherte Signal, das den niedrigsten Detaillierungsgrad aufweist, und bei den übrigen Detailkomponenten 18b bis 18n handelt es sich um die Detailsignale, die mit jedem Durchlauf der Transformation entfernt wurden.
  • Nachdem die Verarbeitung jedes Pixeldatenstroms 14 ausgeführt wurde und dadurch jeder Datenstrom 14 in einen transformierten Pixeldatenstrom 16 transformiert wurde, wird die Verarbeitung wie in 3 gezeigt fortgesetzt. Von jedem transformierten Pixeldatenstrom 16 wird diejenige Detailkomponente 18a erfasst, die für den entsprechenden Pixeldatenstrom 14 den niedrigsten Detaillierungsgrad festlegt, und diese sequenziell in einem Hauptblock 20 als Ansammlung der Komponenten mit dem niedrigsten Detaillierungsgrad gespeichert. Detailkomponenten P1D1 bis P4D1 werden zusammengebracht und im Hauptblock 20 gespeichert. Theoretisch enthält dieser Block 20 genug Informationen, um den Videodatenstrom in seiner Gesamtheit wieder zu erzeugen. Bei dem Block 20 könnte es sich um eine einzelne Datei oder um einen Datenbankeintrag handeln.
  • Der Block 20 ist so abgebildet, dass er den Vorsatz (header) 22 beinhaltet, der dazu verwendet werden kann, Metadaten über den Rest des Blocks 20 zu speichern. Zum Beispiel können Informationen wie die Anzahl der Vollbilder 10 und/oder die Anzahl von Pixeln 12 pro Vollbild 10 in den Vorsatz 22 aufgenommen werden. Diese Informationen können am Decodier-Ende des Prozesses benötigt werden, wenn der ursprüngliche Hauptblock 20 dazu verwendet wird, einen visuelles Ausgabesignal zu erzeugen, das auf einer geeigneten Anzeigeeinheit angezeigt wird. Zu anderen Informationen können die Bildfrequenz der ursprünglichen Videosequenz und Daten über die spezifische Vorgehensweise bei der Verarbeitung zählen, die zur Erstellung des Hauptblocks 20 geführt hat, wie beispielsweise die Einzelheiten der verwendeten DWT. Sobald der Block 20 ans Decodier-Ende des Übertragungsweges übertragen und dort empfangen wird, kann durch einen geeigneten Decodierer auf den Vorsatz 22 zugegriffen werden und dieser bei der Dekomprimierung des Restes des Blocks 20 verwendet werden.
  • Der Rest der Daten, die während des Transformationsprozesses von 2 erstellt wurden, kann ebenso in einem Prozess zusammengebracht werden, der einen oder mehrere weitere Blöcke erstellt, welche die übrigen Detailkomponenten enthalten. Nachdem die in der oberen Hälfte von 3 gezeigten Detailkomponenten erfasst und im Hauptblock 20 angeordnet wurden, werden die übrigen Detailkomponenten auf andere Blöcke verteilt. Dabei ist es nicht notwendig, diese Informationen in irgendeiner Reihenfolge anzuordnen; es muss nur ein Kennzeichner in jede Detailkomponente einbezogen werden, um bestimmen zu können, zu welchem Pixel und zu welcher Transformationsebene die Detailkomponente gehört. Diese Blöcke der übrigen Detailkomponenten werden auch beim Dekomprimierungsende des Übertragungsweges verwendet.
  • 4 zeigt ein Beispiel, wie ein Übertragungsweg für einen Videodatenstrom 24 von Vollbildern ausgebildet sein kann. Der Videodatenstrom 24 wird wie vorstehend beschrieben in einer Verarbeitungseinheit 26 entweder in einem speziellen Hardware-Prozess oder mittels eines Computerprogrammproduktes von einem computerlesbaren Datenträger wie einer DVD oder mittels einer Kombination aus beidem verarbeitet. Die Verarbeitungseinheit 26 gibt den Hauptblock 20 und die weiteren Blöcke 28 aus. Im Allgemeinen wird eine große Anzahl der Blöcke 28 vorhanden sein; in einer praktischen Ausführung sind mehr Dateien gegenüber weniger Dateien zu bevorzugen. Diese Blöcke 20 und 28 werden durch einen Server 30 gespeichert, der mit einem Netzwerk 32 wie beispielsweise dem Internet verbunden ist.
  • Der Server 30 stellt einen Dienst auf Anforderung bereit, der Zugriff auf den ursprünglichen Videodatenstrom 24 über den Hauptblock 20 und die weiteren Blöcke 28 bereitstellt. Client-Computer 34 können mit dem Netzwerk 32 verbunden werden und vom Server 30 aus auf den Hauptblock 20 und die weiteren Blöcke 28 zugreifen. Nachdem der Client-Computer 34 den Hauptblock 20 heruntergeladen hat, kann der Client-Computer 34 theoretisch eine Videoausgabe der gesamten Videosequenz 24 bereitstellen, obwohl in der Praxis wahrscheinlich noch 30% der weiteren Blöcke 28 erforderlich sind, um eine Ausgabe von hinreichender und annehmbarer Qualität zu erzeugen. Die der ursprünglichen Videosequenz 24 zugehörigen Audiokomponenten 24 können auf dieselbe Weise verarbeitet und gespeichert werden, was nachfolgend im Einzelnen erläutert wird. Der in 4 gezeigte Verbreitungspfad kann die P2P-Technologien auch vorteilhaft nutzen. Die Client-Einheit 34 muss mit dem Server 30 keine Daten austauschen oder von ihm Informationen empfangen, um auf die ursprüngliche Videosequenz 24 zuzugreifen. Zum Beispiel können andere verbundene Client-Einheiten einen oder mehrere der Blöcke 20 und 28 auf die standardmäßige P2P-Weise direkt an die Client-Einheit 34 übermitteln. Die Client-Einheit 34 ist als herkömmlicher Schreibtisch-Computer (desktop computer) abgebildet, kann jedoch als jede Einheit mit der notwendigen Verbindungs-, Verarbeitungs- und Anzeigefunktionalität ausgebildet sein, wie beispielsweise als Mobiltelefon oder handgeführter (handheld) Computer. Die ursprüngliche Videosequenz wird auf der lokalen Einheit 34 nach der Dekomprimierung (oder genauer der Rekonstruktion) des ursprünglichen Videos 24 aufbereitet.
  • Die vorstehend unter Bezugnahme auf die 1 bis 3 in Verbindung mit einem vereinfachten Modell der Verarbeitung der Videosequenz 24 beschriebene Verarbeitung wurde zum einfacheren Verständnis vorgelegt. Es wird nun eine detailliertere Version der Verarbeitung einer Videosequenz 24 beschrieben, in welcher das beste Ergebnis im Hinblick auf die Maximierung der Komprimierung der Videosequenz 23 bereitgestellt und die benötigten Daten zur Bereitstellung einer funktionierenden Lösung in einer praktischen geschäftlichen Umgebung geliefert werden. Diese Verarbeitung beginnt in 5. Die Videosequenz 24 wird durch eine Folge von Vollbildern 10 dargestellt, wobei die Vollbildnummer von links nach rechts in der Figur ansteigt. Die Pixelzeilen sind in einem einzelnen Vollbild 10 abwärts nummeriert, wobei Zeile 0 die oberste Reihe eines einzelnen Vollbilds 10 und Zeile n die untersten Reihe des Vollbilds 10 bildet (der tatsächliche Nummernwert hängt von der Auflösung des Vollbilds 10 ab). Jedes Vollbild 10 wird in eine Zeile 36 von Pixeln aufgeteilt und jede Zeile 36 von Pixeln an eine dieser Zeilennummer entsprechende Datei angehängt. Bei jeder Spalte in diesen Dateien handelt es sich um die Lebensdauer einer Farbkomponente 38 eines Pixels in der Videosequenz 24. Jedes Pixel wird von einer Farbkomponente 38 extrahiert und aus Bytes im RGB-Format in ein Fließkomma- [0,0 bis 1,0] YCbCr-Format umgewandelt.
  • 6 zeigt zu Beginn der Lebensdauer Helligkeit und Farbdaten eines Pixels. Dabei handelt es sich um die Farbkomponenten eines einzelnen Pixels während einer gesamten Videosequenz 24. Für jedes Pixel in der ursprünglichen Videosequenz 24 sind solche Datenströme 14 von YCbCr-Daten vorhanden. Dann werden aufeinanderfolgende diskrete Wavelet-Transformationen an jedem der Datenströme 14 durchgeführt, um einen transformierten Pixeldatenstrom 16 zu erzeugen. Das bevorzugt zu verwendende Wavelet ist das umgekehrte biorthogonale 4.4-Wavelet, das, wie herausgefunden wurde, ein visuell ansprechendes Ergebnis liefert. Nach mehreren DWTs an jedem Datenstrom 14 umfasst dann der sich ergebende Pixeldatenstrom 16 die Detailkomponenten 18 mit einem ansteigenden Detaillierungsgrad, der durch die Wavelet-Transformationen dargestellt wird.
  • Nachdem alle Pixeldatenströme 14 in transformierte Pixeldatenströme 16 umgewandelt wurden, werden alle Informationen der Ebene 0 (Y, Cb, Cr, Audio) für alle zu codierenden Datenströme in den in 7 gezeigten Hauptblock 20 aufgenommen. Die Daten werden quantisiert und nach einem Vorsatzblock 22 sequenziell im Hauptblock 20 gespeichert. Aufgrund des großen Wertebereichs, der während der Quantisierung von Fließkommazahlen in Bytes abgebildet werden muss, sollte vorteilhafterweise ein nichtlinearer Ansatz wie das Kompandieren verwendet werden. Der Vorsatzblock 22 enthält Metadaten über die ursprüngliche Videosequenz 24 und das Verarbeitungsverfahren.
  • Audiodaten müssen in einzelne Kanäle umgewandelt werden (z. B. links, rechts, Raumklang links, Tieftöner usw.), bevor ein ähnlicher DWT-Prozess durchgeführt wird. Da die teilweise Rekonstruktion von Tönen unter weitgehender Verwendung von nur niedrigfrequenten Daten beunruhigend klingt, werden die Audiodaten vor den nachfolgenden DWT-Prozess mittels eines psycho-akustischen Modells innerhalb begrenzter Frequenzen in einige weitere Datenströme aufgeteilt. Diese Daten können beispielsweise durch LZA-Komprimierung weiter komprimiert werden, um die Größe des kritischen Blocks zu verringern. Eine solche nachfolgende Komprimierung ist für den Rest der Datenstromdaten nicht möglich, wenn die Rekonstruktion aus teilweisen Daten möglich bleiben soll. Dieser wird als Audiodaten 44 der Ebene 0 im Hauptblock 20 gespeichert.
  • Die übrigen Datensätze 18b usw. erhalten umso mehr Bereiche aus Nullen und haben umso weniger Auswirkungen auf die letztendliche Rekonstruktion, wenn einige Teile fehlen. Die Komprimierung wird durch Quantisierung, Überspringen von Bereichen aus Nullen und Entropiecodierung erreicht. Die Verwendung unterschiedlicher Parameter für jede Dekompositionsebene ergibt den besten Ansatz. Da die Parameter im Vorsatz 22 gespeichert werden müssen, um eine Abhängigkeit von Daten im Bereich der Datei mit zufälligem Zugriff zu vermeiden, werden für jede Zerlegungsebene anstelle von Einstellungen für jeden Datenstrom dateiweite Einstellungen verwendet, wodurch die Größe des Vorsatzes 22 gering gehalten wird. Cb- und Cr-Daten können im Allgemeinen sehr aggressiv genähert werden.
  • Es ist notwendig, jede Zerlegungsebene 18 wie in 8 gezeigt zu quantisieren, wo das Detail „Y4” verarbeitet wird. Nach der Quantisierung wird ein quantisiertes Detail 46 erstellt. Diese Detailkomponente 46 wird dann verarbeitet, um signifikante Häufungen zu finden und Nullen zu überspringen. Aufeinanderfolgende Folgen von Nullen sind nach der Quantisierung üblich. Häufungen signifikanter Daten werden aufgefunden, von denen einige Nullen enthalten können. Die maximale Anzahl aufzunehmender Nullen wird vor dem Starten eines neuen Blocks anhand der Größe des Block-Präfixes und der Größe der Daten nach der Entropiecodierung bestimmt. Eine praktische Obergrenze der Größe eines Blocks stellt die Größe einer während der Übertragung verwendeten Arbeitseinheit dar. Die Detailkomponente 46 wird angehäuft und mit einem Präfix 48 gekennzeichnet.
  • Das Präfix 48 beginnt mit einem Wächter „0 × 00, 0 × 00”, der in codierten Daten, der Datenstromnummer, der Zerlegungsschicht oder der Abweichung nicht auftauchen darf und daher für diese Funktion reserviert ist. Die Datenstromnummer stellt ein Mittel dar, um festzustellen, zu welchem Y/Cb/Cr/Audio-Datenstrom die Daten gehören. Sie wird von allen von diesem Datenstrom abgeleiteten Zerlegungsschichten gemeinsam verwendet. Um das Auftreten von „0 × 0000” zu vermeiden, werden die Wertbereiche auf 30-Bit-Darstellungen begrenzt und dann in Gruppen von 15 Bit aufgeteilt, wobei 1 Bit als Einlage während der Serialisierung verwendet und dadurch sichergestellt wird, dass niemals Folgen von 16 0-Bits in einer Zeile vorkommen. Die Abweichungsdaten legen fest, wie tief in der Zerlegungsschicht das erste Mitglied dieses Blocks auftritt.
  • Jeder Datenabschnitt 46 wird dann zum Beispiel mittels zeichenbewusster exponentieller Golomb-Codierung entropiecodiert. Dies wird in 9 veranschaulicht, in der ein Datenabschnitt 46 entropiecodiert wird (wobei verhindert wird, dass „0 × 0000” bei der Codierung quantisierter Werte [–126, 126], die auf [0, 252] bijektiert werden, auftritt, da nach der Codierung von 128 und vor der Codierung einer beliebigen anderen Zahl, die größer als 127 ist, höchstens 15 0-Bits auftreten können). Daher ist das Endergebnis eine Codierung des Datenstroms als 1 × 12-Byte-Präfix 48 und 6 Byte entropiecodierter Daten 46, anstelle von 2 × 12-Byte-Präfixen und 4 Byte entropiecodierter Daten. Die Folge von Nullen müsste in diesem Beispiel um 96 länger sein, um ein Umschalten zu verursachen.
  • Die Verarbeitung der ursprünglichen Videosequenz 24 ist nun abgeschlossen. 10 zeigt die endgültige Struktur der Daten, nachdem die Videosequenz 24 verarbeitet wurde. Alle anderen Blöcke von Daten werden in zufälliger Reihenfolge angesammelt und als die weiteren Blöcke 28 auf Festplatte geschrieben 28. Die Daten können mithilfe von P2P-Technologie/anderen Mechanismen verbreitet werden, wobei zufällige Teile des Hauptdatenabschnitts fehlen können, die entscheidenden Daten (Vorsatz, Daten der Ebene 0) des Hauptblocks 20 jedoch sichergestellt werden können. Die entscheidenden Daten wurden gewonnen, indem den ersten Abschnitten der Daten Priorität eingeräumt wurde. Der Rest der Daten (die Komponenten 28) kommt weiterhin in zufälligen Blöcken an. Der Hauptdatenblock 20 und die weiteren Blöcke 28 können abhängig von der Ausführung der Videoverarbeitung zusammen in einer einzigen Datei gespeichert oder über mehrere Dateien verteilt werden.
  • Die Empfangseinheit 34 zur Anzeige der Videosequenz 24 am Ende des Übertragungsweges kann das Video 24 decodieren und wiedergeben, indem der vorstehend beschriebene Prozess umgekehrt wird. Die Empfangseinheit 34 verfügt über den Hauptblock 20 und empfängt einen oder mehrere weitere zur Videosequenz 24 gehörende Blöcke oder Datenpakete. Dies zeigt 11, in der die Empfangseinheit 34 die „0 × 00, 0 × 00”-Sequenz in den Daten erkennt. Die empfangene Komponente 50 wird anhand der „0 × 00, 0 × 00”-Sequenz im Präfix 48 erkannt. Anhand der im Präfix 48 enthaltenen Datenstromnummer, der Zerlegungsebene und der Abweichung ist es möglich herauszufinden, wo die Daten in einer Speicherdarstellung von Wavelet-Rekompositions-Anordnungen (wavelet recomposition arrays) zu entpacken sind.
  • Im Beispiel von 11 wird die empfangene Komponente 50 anhand ihres Präfixes 48 als die Y4-Detailkomponente 18e eines bestimmten transformierten Pixeldatenstroms 16 erkannt. Dies wird aus Entropiecodierung decodiert und aus quantisierten Bytes zurück in die Fließkommadarstellung umgewandelt. Y4 war (vor dem Empfang der Komponente 50) mit Nullen gefüllt; nun weisen einige Teile (oder mehrere Teile, oder alles) nützliche Daten auf. Y0 war bereits komplett aus den entscheidenden Daten des Hauptblocks 20 verfügbar. Y3 weist zum Beispiel noch lauter Nullen auf. Es wird festgestellt, dass eine oder mehrere übrige Detailkomponenten fehlen, und sie werden durch eine Folge von Nullen ersetzt. Die Empfangseinheit 34 rekonstruiert die Daten so gut wie möglich. Es liegt in der Entscheidung des Benutzers, ob Daten hoher Ebene verwendet werden sollen, wenn Daten mittlerer Ebene fehlen, was die Erkennung von Szenenwechseln und die Klangreinheit verbessert, jedoch den mittleren Fehler erhöht.
  • An den decodierten Datenströmen 16 wird eine Inverse Diskrete Wavelet-Transformation durchgeführt. Um eine bestimmte Probe aus dem Datenstrom für eine bestimmte Vollbildnummer zu erhalten, ist es jedoch nicht notwendig, das ursprüngliche Signal vollständig zu rekonstruieren. Fehlende Daten wurden mit Nullen aufgefüllt. Solange die Daten der Ebene 0 vorhanden sind, ist die Rekonstruktion irgendeines genäherten Signals immer möglich. Wie in 12 gezeigt, erfordert das Decodieren eines bestimmten Abschnitts 52 der Zeitleiste für einen Datenstrom nur einen schmalen Datenstreifen aus jeder Zerlegungsebene. Der endgültige decodierte Wert wird jedoch verhältnismäßig stärker durch Zerlegungsdaten niedriger Ebene beeinflusst, und derselbe Datenstreifen in niedrigeren Zerlegungsebenen wird beim Wiederzusammensetzen (recomposition) von viel mehr Pixeln verwendet als ein Fenster derselben Breite in Daten höherer Ebene.
  • Die aktuell beste Abschätzung wird mit anderen Farb- oder Audio-Frequenzinformationen kombiniert, um dem Benutzer anzuzeigende Werte zu erzeugen. Es ist zudem möglich, sich Korrelationen zunutze zu machen, um fehlende Werte zu interpolieren. Zum Beispiel ist P5 ein Pixel 12, an dem momentan gearbeitet wird. Eine Anordnung von Pixelwerten (YCbCr) ist kurz vor der Umwandlung in RGB zur Anzeige auf einem Bildschirm vorhanden. Pixel, die bereits decodiert wurden, weisen eine größere Genauigkeit auf, da alle Daten für ihre Rekonstruktion verfügbar sind, zu Beispiel die Pixel P4 und P6. Vollständige Daten für alle Zerlegungsebenen in der Y-Komponente von P4 und P6 sind vorhanden. Wenn die Y-Komponente von P5 mit Daten aus P5Y0, P5Y1 und P5Y2 bei fehlenden Daten in P5Y3 und P5Y4 rekonstruiert wurde, P4 und P6 jedoch vollständige Y-Komponenten aufweisen, kann es aufgrund der unter benachbarten Pixeln im Video aufgefundenen räumlichen Beziehungen nützlich sein, den Y-Grad P5 auf der Grundlage der genaueren Y-Grade in P4 und P6 anzupassen. Dieser Prozess erkennt ein Pixel, für das die Pixel nicht vollständig rekonstruiert sind und interpoliert die Pixeldaten für das erkannte Pixel aus Pixeldaten für benachbarte Pixel.
  • Der Umfang einer durchzuführenden Mischung und wie viele benachbarte Pixel verwendet werden hängt von der Menge vorhandener freier Rechenzeit während der Wiedergabe ab. Da dieser Schritt von Werten anderer Pixel abhängt, kann er nicht wie die Masse der Verarbeitung parallel ausgeführt werden. Die Ausgabe muss in einem zusätzlichen Pufferspeicher platziert werden, um eine Kontamination der Quelldaten während der Bewertung benachbarter Pixel zu vermeiden. Andere Pixel in der Nähe (zum Beispiel P2 und P8 und in geringerem Maße P1, P3, P7 und P9) stellen weitere Quellen zur Vermischung mit P5 dar. Die Werte dieser benachbarten Pixel in vorhergehenden und zukünftigen Vollbildern können auch abgetastet werden. Auch räumlich und zeitlich weiter entfernte Nachbarn können mit geeigneten Gewichtungen auf der Grundlage ihrer eigenen Genauigkeit und Entfernung vom Zielpixel verwendet werden. Die Vermischung wird im YCbCr-Raum durchgeführt, da ein Interpolieren dieser Werte im Allgemeinen visuell angenehmer ist, als diese Anpassungen an den endgültigen RGB-Werten vorzunehmen. Mit weiteren eingehenden Daten wird die Detaillierung und Genauigkeit des Decodierens für einen größeren Pixelbereich im Bildschirm höher.

Claims (17)

  1. Verfahren zum Verarbeiten eines Videodatenstroms, der eine Vielzahl sequenzieller Pixel-Vollbilder (pixel frames) aufweist, wobei das Verfahren folgende Schritte aufweist: für jedes Pixel in einem Vollbild Extrahieren eines Pixeldatenstroms, der die Farbkomponenten des bestimmten Pixels von jedem Vollbild aufweist, für jeden Pixeldatenstrom Durchführen einer Transformation des Pixeldatenstroms in eine Vielzahl von Detailkomponenten, von jedem transformierten Pixeldatenstrom Erfassen der Detailkomponente, die den niedrigsten Detaillierungsgrad für den jeweiligen Pixeldatenstrom festlegt, sequenzielles Speichern der erfassten Komponenten mit dem niedrigsten Detaillierungsgrad in einem Hauptblock, und Erzeugen eines oder mehrerer weiterer Blöcke, welche die übrigen Detailkomponenten enthalten.
  2. Verfahren nach Anspruch 1, das weiterhin Folgendes aufweist: vor dem Durchführen einer Transformation des Pixeldatenstroms in eine Vielzahl von Detailkomponenten für jeden Pixeldatenstrom Umwandeln der Farbkomponenten der Pixel in das Luminanz- und Chrominanz-Format.
  3. Verfahren nach Anspruch 1 oder 2, wobei der Schritt des Durchführens einer Transformation des Pixeldatenstroms in eine Vielzahl von Detailkomponenten für jeden Pixeldatenstrom ein Durchführen aufeinanderfolgender diskreter Wavelet-Transformationen an jedem Pixeldatenstrom aufweist.
  4. Verfahren nach Anspruch 1, 2 oder 3, das weiterhin ein Speichern von Metadaten, die Informationen bezüglich des ursprünglichen Videodatenstroms umfassen, in dem Hauptblock aufweist.
  5. Verfahren nach einem der vorhergehenden Ansprüche, das weiterhin Folgendes aufweist: Empfangen eines Audiodatenstroms, Aufteilen des Audiodatenstroms in frequenzbegrenzte Datenströme, für jeden frequenzbegrenzten Datenstrom Durchführen einer Transformation des frequenzbegrenzten Datenstroms in eine Vielzahl von Audiodetailkomponenten, von jedem transformierten frequenzbegrenzten Datenstrom Erfassen der Detailkomponente, die den niedrigsten Detaillierungsgrad für den jeweiligen frequenzbegrenzten Datenstrom festlegt, Speichern der erfassten Komponenten mit dem niedrigsten Audiodetaillierungsgrad im Hauptblock, und Erzeugen eines oder mehrerer weiterer Blöcke, welche die übrigen Detailkomponenten enthalten.
  6. Verfahren nach einem der vorhergehenden Ansprüche, das weiterhin Folgendes aufweist: vor dem Erzeugen eines oder mehrerer weiterer Blöcke, welche die übrigen Detailkomponenten enthalten, Komprimieren der übrigen Detailkomponenten, um Datenredundanz zu entfernen.
  7. System zum Verarbeiten eines Videodatenstroms, der eine Vielzahl aufeinanderfolgender Pixel-Vollbilder aufweist, wobei das System einen Prozessor aufweist, der so eingerichtet ist, dass er: für jedes Pixel in einem Vollbild einen Pixeldatenstrom extrahiert, der die Farbkomponenten des bestimmten Pixels von jedem Vollbild aufweist, für jeden Pixeldatenstrom eine Transformation des Pixeldatenstroms in eine Vielzahl von Detailkomponenten durchführt, von jedem transformierten Pixeldatenstrom die Detailkomponente erfasst, die den niedrigsten Detaillierungsgrad für den jeweiligen Pixeldatenstrom festlegt, die erfassten Komponenten mit dem niedrigsten Detaillierungsgrad in einem Hauptblock sequenziell speichert, und einen oder mehrere weitere Blöcke erzeugt, welche die übrigen Detailkomponenten enthalten.
  8. Computerprogrammprodukt auf einem computerlesbaren Datenträger zum Verarbeiten eines Videodatenstroms, der eine Vielzahl sequenzieller Pixel-Vollbilder aufweist, wobei das Produkt Anweisungen aufweist, um: für jedes Pixel in einem Vollbild einen Pixeldatenstrom zu extrahieren, der die Farbkomponenten des bestimmten Pixels von jedem Vollbild aufweist, für jeden Pixeldatenstrom eine Transformation des Pixeldatenstroms in eine Vielzahl von Detailkomponenten durchzuführen, von jedem transformierten Pixeldatenstrom die Detailkomponente zu erfassen, die für den jeweiligen Pixeldatenstrom den niedrigsten Detaillierungsgrad festlegt, die erfassten Komponenten mit dem niedrigsten Detaillierungsgrad sequenziell in einem Hauptblock zu speichern, und einen oder mehrere weitere Blöcke zu erzeugen, welche die übrigen Detailkomponenten enthalten.
  9. Verfahren zum Erzeugen eines Videodatenstroms, der eine Vielzahl sequenzieller Pixel-Vollbilder aufweist, wobei das Verfahren folgende Schritte aufweist: Empfangen eines Hauptblocks, der Komponenten mit dem niedrigsten Detaillierungsgrad und einen oder mehrere weitere Blöcke, welche die übrigen Detailkomponenten enthalten, sequenziell speichert, Zusammenstellen einer Vielzahl transformierter Pixeldatenströme, von denen jeder eine Komponente mit dem niedrigsten Detaillierungsgrad und eine oder mehrere übrige Detailkomponenten aufweist, für jeden transformierten Pixeldatenstrom Durchführen einer inversen Transformation des transformierten Pixeldatenstroms in einen Pixeldatenstrom, der die Farbkomponenten eines bestimmten Pixels von jedem Vollbild aufweist, und Erzeugen eines Vollbildes, indem von jedem Pixeldatenstrom Pixeldaten für das bestimmte Vollbild extrahiert werden.
  10. Verfahren nach Anspruch 9, wobei der Schritt des Durchführens einer inversen Transformation des transformierten Pixeldatenstroms in eine Vielzahl von Detailkomponenten für jeden transformierten Pixeldatenstrom ein Durchführen aufeinanderfolgender inverser diskreter Wavelet-Transformationen an jedem transformierten Pixeldatenstrom aufweist.
  11. Verfahren nach Anspruch 9 oder 10, das weiterhin ein Extrahieren von Metadaten, die Informationen bezüglich des ursprünglichen Videodatenstroms umfassen, aus dem Hauptblock und Steuern von Schritten des Zusammenstellens und/oder Durchführens entsprechend den extrahierten Metadaten aufweist.
  12. Verfahren nach Anspruch 9, 10 oder 11, das weiterhin Folgendes aufweist: Extrahieren von Komponenten mit dem niedrigsten Audiodetaillierungsgrad und eines oder mehrerer weiterer Blöcke, welche die übrigen Audiodetailkomponenten enthalten, aus einem Hauptblock, Zusammenstellen einer Vielzahl transformierter frequenzbegrenzter Pixeldatenströme, von denen jeder eine Komponente mit dem niedrigsten Audiodetaillierungsgrad und eine oder mehrere übrige Audiodetailkomponenten enthält, für jeden transformierten frequenzbegrenzten Datenstrom Durchführen einer inversen Transformation des transformierten frequenzbegrenzten Datenstroms in einen transformierten frequenzbegrenzten Datenstrom, und Erzeugen einer Audioausgabe durch Kombinieren der frequenzbegrenzten Datenströme.
  13. Verfahren nach einem der Ansprüche 9 bis 12, wobei der Schritt des Zusammenstellens einer Vielzahl transformierter Pixeldatenströme, von denen jeder eine Komponente mit dem niedrigsten Detaillierungsgrad und eine oder mehrere übrige Detailkomponenten aufweist, ein Feststellen, dass eine oder mehrere übrige Detailkomponenten fehlen und ein Ersetzen der einen oder der mehreren Detailkomponenten durch eine Folge von Nullen beinhaltet.
  14. Verfahren nach einem der Ansprüche 9 bis 13, wobei der Schritt des Erzeugens eines Vollbildes, indem von jedem Pixeldatenstrom Pixeldaten für das bestimmte Vollbild extrahiert werden, ein Identifizieren eines Pixels, für das die Pixeldaten nicht vollständig rekonstruiert sind und ein Interpolieren der Pixeldaten für das identifizierte Pixel aus Pixeldaten für benachbarte Pixel beinhaltet.
  15. System zum Erzeugen eines Videodatenstroms, der eine Vielzahl sequenzieller Pixel-Vollbilder aufweist, wobei das System einen Prozessor aufweist, der so eingerichtet ist, dass er: einen Hauptblock empfängt, der Komponenten mit dem niedrigsten Detaillierungsgrad und einen oder mehrere weitere Blöcke, welche die übrigen Detailkomponenten enthalten, sequenziell speichert, eine Vielzahl transformierter Pixeldatenströme zusammenstellt, von denen jeder eine Komponente mit dem niedrigsten Detaillierungsgrad und eine oder mehrere übrige Detailkomponenten aufweist, für jeden transformierten Pixeldatenstrom eine inverse Transformation des transformierten Pixeldatenstroms in einen Pixeldatenstrom durchführt, der die Farbkomponenten eines bestimmten Pixels von jedem Vollbild aufweist, und ein Vollbild erzeugt, indem von jedem Pixeldatenstrom Pixeldaten für das bestimmte Vollbilds extrahiert werden.
  16. Computerprogrammprodukt auf einem computerlesbaren Datenträger zum Erzeugen eines Videodatenstroms, der eine Vielzahl sequenzieller Pixel-Vollbilder aufweist, wobei das Produkt Anweisungen aufweist, um: einen Hauptblock zu empfangen, der Komponenten mit dem niedrigsten Detaillierungsgrad und einen oder mehrere weitere Blöcke, welche die übrigen Detailkomponenten enthalten, sequenziell speichert, eine Vielzahl transformierter Pixeldatenströme zusammenzustellen, von denen jeder eine Komponente mit dem niedrigsten Detaillierungsgrad und eine oder mehrere übrige Detailkomponenten enthält, für jeden transformierten Pixelstrom eine inverse Transformation des transformierten Pixeldatenstroms in einen Pixeldatenstrom durchzuführen, der die Farbkomponenten eines bestimmten Pixels von jedem Vollbild aufweist, und ein Vollbild zu erzeugen, indem von jedem Pixeldatenstrom Pixeldaten für das bestimmte Vollbild extrahiert werden.
  17. Computerprogramm, das Programmcodemittel aufweist, die geeignet sind, das Verfahren nach einem der Ansprüche 1 bis 14 durchzuführen, wenn das Programm auf einem Computer läuft.
DE112010004844T 2009-12-16 2010-08-31 Videocodierung unter Verwendung von Pixeldatenströmen Withdrawn DE112010004844T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP09179464 2009-12-16
EP091794644 2009-12-16
PCT/EP2010/062743 WO2011072893A1 (en) 2009-12-16 2010-08-31 Video coding using pixel-streams

Publications (1)

Publication Number Publication Date
DE112010004844T5 true DE112010004844T5 (de) 2012-10-31

Family

ID=42732548

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010004844T Withdrawn DE112010004844T5 (de) 2009-12-16 2010-08-31 Videocodierung unter Verwendung von Pixeldatenströmen

Country Status (5)

Country Link
US (2) US20110142137A1 (de)
CN (1) CN102656884A (de)
DE (1) DE112010004844T5 (de)
GB (1) GB2489632A (de)
WO (1) WO2011072893A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140090999A (ko) * 2011-10-14 2014-07-18 어드밴스드 마이크로 디바이시즈, 인코포레이티드 영역-기반 이미지 압축
JP2013106333A (ja) * 2011-11-17 2013-05-30 Sony Corp 画像処理装置および方法
US8824812B2 (en) * 2012-10-02 2014-09-02 Mediatek Inc Method and apparatus for data compression using error plane coding
US10080019B2 (en) * 2014-09-19 2018-09-18 Intel Corporation Parallel encoding for wireless displays
CN108989849B (zh) * 2018-08-01 2021-01-29 广州长嘉电子有限公司 一种dvb-t2+s2电视信号处理方法及系统
US10802795B2 (en) * 2018-08-21 2020-10-13 Semiconductor Components Industries, Llc Systems and methods for image data compression

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9321372D0 (en) * 1993-10-15 1993-12-08 Avt Communications Ltd Video signal processing
US6674911B1 (en) * 1995-09-14 2004-01-06 William A. Pearlman N-dimensional data compression using set partitioning in hierarchical trees
US6014491A (en) * 1997-03-04 2000-01-11 Parsec Sight/Sound, Inc. Method and system for manipulation of audio or video signals
US6108383A (en) * 1997-07-15 2000-08-22 On2.Com, Inc. Method and apparatus for compression and decompression of video images
WO2001076255A1 (en) * 2000-04-04 2001-10-11 Koninklijke Philips Electronics N.V. Video encoding method using a wavelet transform
US7023922B1 (en) * 2000-06-21 2006-04-04 Microsoft Corporation Video coding system and method using 3-D discrete wavelet transform and entropy coding with motion information
US7076108B2 (en) * 2001-12-11 2006-07-11 Gen Dow Huang Apparatus and method for image/video compression using discrete wavelet transform
US20030231194A1 (en) * 2002-06-13 2003-12-18 Texas Instruments Inc. Histogram method for image-adaptive bit-sequence selection for modulated displays
US7042943B2 (en) * 2002-11-08 2006-05-09 Apple Computer, Inc. Method and apparatus for control of rate-distortion tradeoff by mode selection in video encoders
US20070053435A1 (en) * 2003-10-10 2007-03-08 Koniklijke Philips Electronics N.V. 3D video scalable video encoding method
KR100754388B1 (ko) * 2003-12-27 2007-08-31 삼성전자주식회사 레지듀 영상 다운/업 샘플링 방법 및 장치와 그를 이용한영상 부호화/복호화 방법 및 장치
EP1771009A1 (de) * 2004-06-08 2007-04-04 Matsushita Electric Industrial Co., Ltd. Bildcodierungseinrichtung, bilddecodierungseinrichtung und darin verwendete integrierte schaltung
US20060062308A1 (en) * 2004-09-22 2006-03-23 Carl Staelin Processing video frames
EP1845735A4 (de) * 2004-12-28 2009-07-15 Nec Corp Codierungsverfahren für bewegliche bilder und vorrichtung und computerprogramm damit
US20060170778A1 (en) * 2005-01-28 2006-08-03 Digital News Reel, Llc Systems and methods that facilitate audio/video data transfer and editing
US7965772B2 (en) * 2005-05-31 2011-06-21 Saratoga Technology Group, Inc. Systems and methods for improved data transmission
JP2007094234A (ja) * 2005-09-30 2007-04-12 Sony Corp データ記録再生装置、データ記録再生方法及びそのプログラム
US8605797B2 (en) * 2006-02-15 2013-12-10 Samsung Electronics Co., Ltd. Method and system for partitioning and encoding of uncompressed video for transmission over wireless medium
CA2650663A1 (en) * 2006-04-28 2007-11-08 Avocent Corporation Dvc delta commands
US20080240239A1 (en) * 2007-04-02 2008-10-02 Stuart David A Methods and apparatus to selectively reduce streaming bandwidth consumption

Also Published As

Publication number Publication date
US20110142137A1 (en) 2011-06-16
CN102656884A (zh) 2012-09-05
GB201212461D0 (en) 2012-08-29
US20120170663A1 (en) 2012-07-05
GB2489632A (en) 2012-10-03
WO2011072893A1 (en) 2011-06-23

Similar Documents

Publication Publication Date Title
DE69320226T2 (de) Verfahren und Einrichtung zur Vektorkodierung von Videotransformationskoeffizienten
DE69823168T2 (de) Verfahren und gerät zur kodierung und formatierung von daten eines videoprogramms zur erzeugung sich mehrfach überlappender darstellungen des videoprogramms
DE60305325T2 (de) System und verfahren zur ratenverzerrungsoptimierten datenpartitionierung zur videocodierung unter verwendung von rückwärtsadaption
DE60031230T2 (de) Skalierbares videokodierungssystem und verfahren
DE69230704T2 (de) Verfahren und Einrichtung zur Kompression von sich bewegenden Videobildern mit adaptiver Bitzuordnung und Quantisierung
DE112011103365B4 (de) Tonwertumsetzung von Videosignalen mit hohem Dynamikumfang
DE60125301T2 (de) Videosignaltranskodierung
DE3940554C2 (de) Vorrichtung zur Kompression von Bildsignalen und System zur Kompression und Expansion von Bildsignalen
EP1371229B1 (de) Verfahren zur komprimierung und dekomprimierung von videodaten
DE19844752A1 (de) Ein verbessertes Kompressions- und Dekompressionssystem mit reversiblen Wavelets und verlustbehafteter Rokonstruktion
DE69408838T2 (de) Videoschnittsystem
DE112010004844T5 (de) Videocodierung unter Verwendung von Pixeldatenströmen
DE202012013410U1 (de) Bildkompression mit SUB-Auflösungsbildern
DE3639026A1 (de) Hochaufloesendes bilduebertragungsverfahren
DE10219132A1 (de) System und Verfahren zum Verbessern der Bildqualität bei verarbeiteten Bildern
DE60008233T2 (de) Übertragung von profilierten mediadateien an kunden über ein netzwerk
DE69231880T2 (de) Verfahren zur Bildübertragung
DE69421449T2 (de) Kodierer zur adaptiven Kodierung von Videobilddaten getrennt nach der ihnen zugeordneten Priorität
DE69624399T2 (de) Einrichtung zur Kompression von bewegten Videobildern mit adaptiver Quantisierung
DE60312711T2 (de) Verfahren und vorrichtung zur codierung von bild- und/oder audiodaten
DE60300591T2 (de) Verfahren und Vorrichtung zur Dekomprimierung von Bildern durch Transkodierung in komprimierte Bewegtbilder
DE102018122297A1 (de) Verfahren zur Kompression und Dekompression von Bilddaten
CN1875635A (zh) 用于视频转码的变换域子采样
DE19819405B4 (de) Implementation eines reversiblen eingebetteten Wavelet-Systems
DE69323996T2 (de) Codierer und decodierer

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04N0007260000

Ipc: H04N0019000000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04N0007260000

Ipc: H04N0019000000

Effective date: 20131204

R082 Change of representative

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

Representative=s name: SPIES DANNER & PARTNER PATENTANWAELTE PARTNERS, DE

R082 Change of representative

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R082 Change of representative

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee