DE112010004844T5 - Videocodierung unter Verwendung von Pixeldatenströmen - Google Patents
Videocodierung unter Verwendung von Pixeldatenströmen Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 29
- 230000009466 transformation Effects 0.000 claims abstract description 20
- 238000004590 computer program Methods 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 2
- 238000000354 decomposition reaction Methods 0.000 description 13
- 238000013459 approach Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 4
- 238000013139 quantization Methods 0.000 description 4
- 239000000523 sample Substances 0.000 description 4
- 230000001131 transforming effect Effects 0.000 description 4
- 230000006837 decompression Effects 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011109 contamination Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013101 initial test Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000012224 working solution Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/36—Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy 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
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 bis3 schematische Abbildungen der Verarbeitung eines Videodatenstroms zeigen, -
4 eine schematische Abbildung eines Verbreitungspfades des Videodatenstroms zeigt, -
5 bis10 schematische Abbildungen einer bevorzugten Ausführungsform der Verarbeitung des Videodatenstroms zeigen, und -
11 und12 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 Vollbilder10 von Pixeln12 zusammensetzt. In diesem Beispiel umfasst der Videodatenstrom neun Vollbilder10 zu je12 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 Vollbild10 sind mit P1 bis P4 durchnummeriert, obwohl normalerweise Pixel mit x- und y-Koordinaten angegeben werden. Somit umfasst Vollbild1 vier Pixel: F1P1, F1P2, F1P3 und F1P4. Nachfolgende Vollbilder10 weisen ebenfalls vier Pixel auf, die mithilfe desselben Systems durchnummeriert sind. Es wird angenommen, dass jede Vollbild10 dieselbe Anzahl von Pixeln12 in derselben Matrix „Breite × Höhe” aufweist. Jedes Pixel12 setzt sich aus Farbkomponenten zusammen, welche die tatsächliche Farbe jedes Pixels12 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 Pixeldaten12 gesteuert werden. -
1 zeigt die erste Stufe der Verarbeitung des Videodatenstroms. Für jedes Pixel12 in einem Vollbild10 wird ein Pixeldatenstrom14 extrahiert, der die Farbkomponenten des bestimmten Pixels12 von jedem Vollbild10 umfasst. Da im Vollbild10 vier Pixel12 vorhanden sind, gibt es nach der Ausführung dieses Extrahierungssprozesses vier Pixeldatenströme14 . Im Wesentlichen schaltet dieser Schritt den Videodatenstrom von einer Darstellung nach Vollbildern in eine Darstellung nach Pixeln um. Jeder Pixeldatenstrom14 enthält die Farbinformationen für ein bestimmtes Pixel12 über die Gesamtheit der Videosequenz hinweg, die durch sämtliche Vollbilder10 ausgebildet wird. - Der nächste Verarbeitungsschritt ist in
2 abgebildet, wo für jeden Pixeldatenstrom14 eine Transformation des Pixeldatenstroms14 in einen transformierten Pixeldatenstrom16 durchgeführt wird, der eine Vielzahl von Detailkomponenten18 umfasst. Jeder der vier Pixeldatenströme14 von1 werden wie in2 gezeigt in einen transformierten Pixeldatenstrom16 transformiert. Der transformierte Pixeldatenstrom16 weist Detailkomponenten18 von D1 bis Dn auf. Es sind nicht notwendigerweise genauso viele Detailkomponenten18 vorhanden, wie Pixel12 im Pixeldatenstrom14 vorhanden waren. Die Anzahl der Detailkomponenten innerhalb des transformierten Pixeldatenstroms16 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 Detailkomponente18a um das genäherte Signal, das den niedrigsten Detaillierungsgrad aufweist, und bei den übrigen Detailkomponenten18b bis18n 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 Datenstrom14 in einen transformierten Pixeldatenstrom16 transformiert wurde, wird die Verarbeitung wie in3 gezeigt fortgesetzt. Von jedem transformierten Pixeldatenstrom16 wird diejenige Detailkomponente18a erfasst, die für den entsprechenden Pixeldatenstrom14 den niedrigsten Detaillierungsgrad festlegt, und diese sequenziell in einem Hauptblock20 als Ansammlung der Komponenten mit dem niedrigsten Detaillierungsgrad gespeichert. Detailkomponenten P1D1 bis P4D1 werden zusammengebracht und im Hauptblock20 gespeichert. Theoretisch enthält dieser Block20 genug Informationen, um den Videodatenstrom in seiner Gesamtheit wieder zu erzeugen. Bei dem Block20 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 Blocks20 zu speichern. Zum Beispiel können Informationen wie die Anzahl der Vollbilder10 und/oder die Anzahl von Pixeln12 pro Vollbild10 in den Vorsatz22 aufgenommen werden. Diese Informationen können am Decodier-Ende des Prozesses benötigt werden, wenn der ursprüngliche Hauptblock20 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 Hauptblocks20 geführt hat, wie beispielsweise die Einzelheiten der verwendeten DWT. Sobald der Block20 ans Decodier-Ende des Übertragungsweges übertragen und dort empfangen wird, kann durch einen geeigneten Decodierer auf den Vorsatz22 zugegriffen werden und dieser bei der Dekomprimierung des Restes des Blocks20 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 von3 gezeigten Detailkomponenten erfasst und im Hauptblock20 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 Videodatenstrom24 von Vollbildern ausgebildet sein kann. Der Videodatenstrom24 wird wie vorstehend beschrieben in einer Verarbeitungseinheit26 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 Verarbeitungseinheit26 gibt den Hauptblock20 und die weiteren Blöcke28 aus. Im Allgemeinen wird eine große Anzahl der Blöcke28 vorhanden sein; in einer praktischen Ausführung sind mehr Dateien gegenüber weniger Dateien zu bevorzugen. Diese Blöcke20 und28 werden durch einen Server30 gespeichert, der mit einem Netzwerk32 wie beispielsweise dem Internet verbunden ist. - Der Server
30 stellt einen Dienst auf Anforderung bereit, der Zugriff auf den ursprünglichen Videodatenstrom24 über den Hauptblock20 und die weiteren Blöcke28 bereitstellt. Client-Computer34 können mit dem Netzwerk32 verbunden werden und vom Server30 aus auf den Hauptblock20 und die weiteren Blöcke28 zugreifen. Nachdem der Client-Computer34 den Hauptblock20 heruntergeladen hat, kann der Client-Computer34 theoretisch eine Videoausgabe der gesamten Videosequenz24 bereitstellen, obwohl in der Praxis wahrscheinlich noch 30% der weiteren Blöcke28 erforderlich sind, um eine Ausgabe von hinreichender und annehmbarer Qualität zu erzeugen. Die der ursprünglichen Videosequenz24 zugehörigen Audiokomponenten24 können auf dieselbe Weise verarbeitet und gespeichert werden, was nachfolgend im Einzelnen erläutert wird. Der in4 gezeigte Verbreitungspfad kann die P2P-Technologien auch vorteilhaft nutzen. Die Client-Einheit34 muss mit dem Server30 keine Daten austauschen oder von ihm Informationen empfangen, um auf die ursprüngliche Videosequenz24 zuzugreifen. Zum Beispiel können andere verbundene Client-Einheiten einen oder mehrere der Blöcke20 und28 auf die standardmäßige P2P-Weise direkt an die Client-Einheit34 übermitteln. Die Client-Einheit34 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 Einheit34 nach der Dekomprimierung (oder genauer der Rekonstruktion) des ursprünglichen Videos24 aufbereitet. - Die vorstehend unter Bezugnahme auf die
1 bis3 in Verbindung mit einem vereinfachten Modell der Verarbeitung der Videosequenz24 beschriebene Verarbeitung wurde zum einfacheren Verständnis vorgelegt. Es wird nun eine detailliertere Version der Verarbeitung einer Videosequenz24 beschrieben, in welcher das beste Ergebnis im Hinblick auf die Maximierung der Komprimierung der Videosequenz23 bereitgestellt und die benötigten Daten zur Bereitstellung einer funktionierenden Lösung in einer praktischen geschäftlichen Umgebung geliefert werden. Diese Verarbeitung beginnt in5 . Die Videosequenz24 wird durch eine Folge von Vollbildern10 dargestellt, wobei die Vollbildnummer von links nach rechts in der Figur ansteigt. Die Pixelzeilen sind in einem einzelnen Vollbild10 abwärts nummeriert, wobei Zeile 0 die oberste Reihe eines einzelnen Vollbilds10 und Zeile n die untersten Reihe des Vollbilds10 bildet (der tatsächliche Nummernwert hängt von der Auflösung des Vollbilds10 ab). Jedes Vollbild10 wird in eine Zeile36 von Pixeln aufgeteilt und jede Zeile36 von Pixeln an eine dieser Zeilennummer entsprechende Datei angehängt. Bei jeder Spalte in diesen Dateien handelt es sich um die Lebensdauer einer Farbkomponente38 eines Pixels in der Videosequenz24 . Jedes Pixel wird von einer Farbkomponente38 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 Videosequenz24 . Für jedes Pixel in der ursprünglichen Videosequenz24 sind solche Datenströme14 von YCbCr-Daten vorhanden. Dann werden aufeinanderfolgende diskrete Wavelet-Transformationen an jedem der Datenströme14 durchgeführt, um einen transformierten Pixeldatenstrom16 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 Datenstrom14 umfasst dann der sich ergebende Pixeldatenstrom16 die Detailkomponenten18 mit einem ansteigenden Detaillierungsgrad, der durch die Wavelet-Transformationen dargestellt wird. - Nachdem alle Pixeldatenströme
14 in transformierte Pixeldatenströme16 umgewandelt wurden, werden alle Informationen der Ebene 0 (Y, Cb, Cr, Audio) für alle zu codierenden Datenströme in den in7 gezeigten Hauptblock20 aufgenommen. Die Daten werden quantisiert und nach einem Vorsatzblock22 sequenziell im Hauptblock20 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 Vorsatzblock22 enthält Metadaten über die ursprüngliche Videosequenz24 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 Hauptblock20 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 Vorsatz22 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 Vorsatzes22 gering gehalten wird. Cb- und Cr-Daten können im Allgemeinen sehr aggressiv genähert werden. - Es ist notwendig, jede Zerlegungsebene
18 wie in8 gezeigt zu quantisieren, wo das Detail „Y4” verarbeitet wird. Nach der Quantisierung wird ein quantisiertes Detail46 erstellt. Diese Detailkomponente46 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 Detailkomponente46 wird angehäuft und mit einem Präfix48 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 in9 veranschaulicht, in der ein Datenabschnitt46 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äfix48 und 6 Byte entropiecodierter Daten46 , 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 Videosequenz24 verarbeitet wurde. Alle anderen Blöcke von Daten werden in zufälliger Reihenfolge angesammelt und als die weiteren Blöcke28 auf Festplatte geschrieben28 . 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 Hauptblocks20 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 Komponenten28 ) kommt weiterhin in zufälligen Blöcken an. Der Hauptdatenblock20 und die weiteren Blöcke28 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 Videosequenz24 am Ende des Übertragungsweges kann das Video24 decodieren und wiedergeben, indem der vorstehend beschriebene Prozess umgekehrt wird. Die Empfangseinheit34 verfügt über den Hauptblock20 und empfängt einen oder mehrere weitere zur Videosequenz24 gehörende Blöcke oder Datenpakete. Dies zeigt11 , in der die Empfangseinheit34 die „0 × 00, 0 × 00”-Sequenz in den Daten erkennt. Die empfangene Komponente50 wird anhand der „0 × 00, 0 × 00”-Sequenz im Präfix48 erkannt. Anhand der im Präfix48 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 Komponente50 anhand ihres Präfixes48 als die Y4-Detailkomponente18e eines bestimmten transformierten Pixeldatenstroms16 erkannt. Dies wird aus Entropiecodierung decodiert und aus quantisierten Bytes zurück in die Fließkommadarstellung umgewandelt. Y4 war (vor dem Empfang der Komponente50 ) 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 Hauptblocks20 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 Empfangseinheit34 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 in12 gezeigt, erfordert das Decodieren eines bestimmten Abschnitts52 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)
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
2010
- 2010-08-31 WO PCT/EP2010/062743 patent/WO2011072893A1/en active Application Filing
- 2010-08-31 DE DE112010004844T patent/DE112010004844T5/de not_active Withdrawn
- 2010-08-31 GB GB1212461.6A patent/GB2489632A/en not_active Withdrawn
- 2010-08-31 CN CN2010800565098A patent/CN102656884A/zh active Pending
- 2010-12-06 US US12/961,127 patent/US20110142137A1/en not_active Abandoned
-
2012
- 2012-03-09 US US13/416,058 patent/US20120170663A1/en not_active Abandoned
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 |