DE60305325T2 - System und verfahren zur ratenverzerrungsoptimierten datenpartitionierung zur videocodierung unter verwendung von rückwärtsadaption - Google Patents
System und verfahren zur ratenverzerrungsoptimierten datenpartitionierung zur videocodierung unter verwendung von rückwärtsadaption Download PDFInfo
- Publication number
- DE60305325T2 DE60305325T2 DE60305325T DE60305325T DE60305325T2 DE 60305325 T2 DE60305325 T2 DE 60305325T2 DE 60305325 T DE60305325 T DE 60305325T DE 60305325 T DE60305325 T DE 60305325T DE 60305325 T2 DE60305325 T2 DE 60305325T2
- Authority
- DE
- Germany
- Prior art keywords
- run
- level
- video
- decoder
- base layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000000638 solvent extraction Methods 0.000 title claims abstract description 14
- 230000006978 adaptation Effects 0.000 title description 3
- 230000005540 biological transmission Effects 0.000 claims abstract description 14
- 230000003044 adaptive effect Effects 0.000 claims abstract description 6
- 239000010410 layer Substances 0.000 claims description 80
- 239000002356 single layer Substances 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000005192 partition Methods 0.000 abstract description 10
- 238000007906 compression Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 238000013139 quantization Methods 0.000 description 5
- 238000005070 sampling Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012913 prioritisation Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/187—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
-
- 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/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/19—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
-
- 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/37—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability with arrangements for assigning different transmission priorities to video input data or to video coded data
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Description
- 1. Gebiet der Erfindung
- Die vorliegende Erfindung betrifft ein skalierbares Videocodierungssystem, insbesondere betrifft die Erfindung eine leistungsfähige geschichtete Videocodierungstechnik, die rückwärtsadaptive ratenverzerrungsoptimierte Datenpartitionierung (RD-DP) von Discrete Cosinus-Transformation (DCT)-Koeffizienten verwendet. Die Erfindung ist besonders nützlich in Verbindung mit Netzwerken mit variabler Bandbreite und Computersystemen, die sich an verschiedene Bitraten anpassen können, und somit an verschiedene Bildqualitäten.
- 2. Beschreibung des Stands der Technik
- Video ist eine Bildfolge; jedes Bild wird durch eine Anordnung von Pixeln geformt. Die Größe eines unkomprimierten Videos ist enorm. Um seine Größe zu reduzieren, kann Videokomprimierung verwendet werden, um die Größe zu verringern und die Datenübertragungsrate zu erhöhen. Verschiedene Videocodierungsverfahren (z.B. MPEG 1, MPEG 2 und MPEG 4) sind entwickelt worden, um einen internationalen Standard für die codierte Darstellung von Bewegtbildern und des zugehörigen Tons auf digitalen Speichermedien bereitzustellen.
- Solche Videocodierungsverfahren formatieren und komprimieren die Ausgangsvideodaten für reduzierte Übertragungsraten. Das Format des MPEG 2-Standards besteht zum Beispiel aus 4 Schichten: Bildgruppe, Bilder, Slice, Makroblock, Block. Eine Videosequenz beginnt mit einem Sequenzkopf, der eine oder mehrere Bildgruppen (GOP) umfaßt, und endet mit einem Sequenzendcode. Die Bildgruppe (GOP) enthält einen Kopf und eine Reihe aus einem oder mehreren Bildern, die den Direktzugriff auf die Videosequenz erlauben sollen.
- Die Bilder sind die primäre Codierungseinheit einer Videosequenz. Ein Bild besteht aus drei rechteckigen Matrizen, die den Luminanz- (Y) und zwei Chrominanzwerte (Cb und Cr) darstellen. Die Y-Matrix weist eine gerade Zahl von Reihen und Spalten auf. Die Cb- und Cr-Matrizen sind in jeder Richtung (horizontal und vertikal) halb so groß wie die Y-Matrix. Die Slices sind ein oder mehrere „zusammenhängende" Makroblöcke. Die Reihenfolge der Makroblöcke in einem Slice ist von links nach rechts und von oben nach unten.
- Die Makroblöcke sind die BasisCodierungseinheit im MPEG-Algorithmus. Der Makroblock ist ein 16 × 16 Pixel-Segment in einem Frame. Da jede Chrominanzkomponente eine Hälfte der vertikalen und horizontalen Auflösung der Luminanzkomponente aufweist, besteht ein Makroblock aus vier Y-, einem Cr- und einem Cb-Block. Der Block ist die kleinste Codierungseinheit im MPEG-Algorithmus. Er besteht aus 8 × 8 Pixeln und einer von drei Typen sein: Luminanz (Y), Rot-Chrominanz (Cr) oder Blau-Chrominanz (Cb). Der Block ist die Basiseinheit in der Intraframecodierung.
- Der MPEG 2-Standard definiert drei Bildtypen: Intra-Bilder (I-Bilder), Predicted Bilder (P-Bilder) und Bidirektionale Bilder (B-Bilder). Intra-Bilder oder I-Bilder sind nur mit Information codiert, die im Bild selbst vorhanden ist, und stellen potentielle Direktzugriffspunkte auf die komprimierten Videodaten bereit. Predicted Bilder oder P-Bilder sind in Bezug auf die nächsten vorhergehenden I- oder P-Bilder codiert. Wie I-Bilder können auch P-Bilder als Prediction-Referenz für B-Bilder und spätere P-Bilder dienen. Überdies verwenden P-Bilder Motion Compensation, um mehr Komprimierung zu erlauben, als dies mit I-Bildern möglich ist. Bidirektionale Bilder oder B-Bilder sind Bilder, die sowohl ein früheres als auch ein späteres Bild als Bezug verwenden. B-Bilder erlauben die stärkste Komprimierung, da sie sowohl das frühere als auch das spätere Bild als Bezug verwenden. Diese drei Bildtypen werden kombiniert, um eine Bildgruppe zu formen.
- Der MPEG-Umwandlungscodierungsalgorithmus schließt die folgenden Codierungsschritte ein: Diskrete Cosinus-Transformation (DCT), Quantisierung und Lauflängencodierung.
- Eine wichtige Technik in der Videocodierung ist die Skalierbarkeit. Diesbezüglich wird ein skalierbarer Videocodec als ein Codec definiert, der in der Lage ist, einen Bitstrom zu erzeugen, der in eingebettete Teilmengen unterteilt werden kann. Diese Teilmengen können unabhängig decodiert werden, um Videosequenzen mit zunehmender Qualität zu ergeben. Dadurch kann ein einziger Komprimierungsvorgang Bitströme mit verschiedenen Raten und rekonstruierter Qualität erzeugt werden. Eine kleine Teilmenge des ursprünglichen Bitstroms kann am Anfang übertragen werden, um eine Base Layer-Qualität bereitzustellen, mit zusätzlichen Layers, die danach als Enhancement Layers übertragen werden. Skalierbarkeit wird von den meisten der Videokomprimierungsstandards wie MPEG-2, MPEG-4 und H.263 unterstützt.
- Eine wichtige Anwendung der Skalierbarkeit ist die fehlerresistente Videoübertragung. Skalierbarkeit kann verwendet werden, um einen stärkeren Fehlerschutz auf die Base Layer als auf die Enhancement Layers anzuwenden (d.h., einen ungleichen Fehlerschutz). Dadurch wird die Base Layer selbst unter widrigen Übertragungskanalbedingungen mit hoher Wahrscheinlichkeit erfolgreich decodiert.
- Die Datenpartitionierung (DP) wird verwendet, um die Skalierbarkeit zu erleichtern. In MPEG 2 Zum Beispiel gibt die Slice-Layer die Höchstzahl der Blocktransformationskoeffizienten an, die im spezifischen Bitstrom enthalten sind (als Priority Break Point bekannt). Die Datenpartitionierung ist ein Frequenzdomänenverfahren, das den Block aus 64 quantisierten Transformationskoeffizienten in zwei Bitströme aufteilt. Der erste Bitstrom mit höherer Priorität (z.B. Base Layer) enthält die kritischeren Koeffizienten mit niedrigerer Frequenz und die Nebeninformation (wie z.B. DC-Werte, Motion Vectors). Der zweite Bitstrom mit niedrigerer Priorität (z.B. Enhancement Layers) befördert AC-Daten mit höherer Frequenz.
- Insbesondere in konventionellen DP-Videocodierern (z.B. MPEG\) wird der Single Layer-Bitstrom in der DCT-Domäne in zwei oder mehr Bitströme partitioniert. Bei der Übertragung werden ein oder mehr Bitströme gesendet, um die Bitratenskalierbarkeit zu erreichen. Der ungleiche Fehlerschutz kann auf Base- und Enhancement Layer-Daten angewandt werden, um die Widerstandsfähigkeit gegen Kanalverschlechterung zu erhöhen. Vor dem Decodieren werden je nach Ressourcenzuweisung und/oder Empfängerleistung die empfangenen Bitströme oder eine Teilmenge davon zu einem einzigen Bitstrom verschmolzen und decodiert.
- Die konventionelle DP-Struktur weist in einer Heimnetzwerkumgebung Vorteile auf. Das heißt, bei ihrer vollen Qualität ist die Ratenverzerrungsleistung der DP so gut wie ihr Single Layer-Gegenstück, wobei auch die Ratenskalierbarkeit möglich ist. Die Ratenverzerrungsleistung (RD-Leistung) betrifft das Finden einer optimalen Kombination von Rate und Verzerrung. Diese optimale Kombination, die einer optimalen Kombination aus Kosten und Qualität entspricht, ist nicht einmalig. RD-Systeme streben an, eine Information durch möglichst wenig Bits darzustellen, und zugleich auf eine Weise, die zur besten Wiedergabequalität führt.
- Es ist auch anzumerken, daß in der konventionellen DP-Struktur der zusätzliche Decodierungskomplexitätsoverhead bei seiner vollen Qualität sehr minimal ist, während die DP einen größeren Bereich an Decoderkomplexitätsskalierbarkeit bietet. Dies deshalb, weil die Decodierung mit variabler Codewortlänge (VLD) von DCT (run, length)-Paaren, die den rechenintensivsten Teil darstellt, nun skalierbar wird.
- In der konventionellen DP-Struktur muß der DCT Priority Break Point (PBP)-Wert explizit als Nebeninformation übertragen werden. Um den Overhead zu minimieren, ist der PBP-Wert gewöhnlich für alle DCT-Blöcke innerhalb jedes Slices oder Videopakets feststehend.
- Auch wenn das konventionelle DP-Verfahren einfach ist und einige Vorteile aufzuweisen hat, ist es nicht in der Lage, die Base Layer-Optimierung zu adaptieren, da nur ein PBP-Wert für alle Blöcke innerhalb jedes Slices oder Videopakets verwendet wird. Daher besteht ein Bedarf nach Videocodierungstechniken, die adaptierbar sind, um eine verbesserte Base Layer-Optimoerung zu ermöglichen.
- Die vorliegende Erfindung spricht den obigen Bedarf durch Bereitstellung eines verbesserten Datenpartitionsverfahrens an, das dem PBP-Wert erlaubt, sich jeweils auf DCT-Blockebene zu adaptieren. In einer Ausführungsform der Erfindung kann dies mit minimalem Overhead (≈ 20 Bits für jedes Slice oder Videopaket oder selbst für jedes Frame) erreicht werden, indem einer kontextbasierte Rückwärtsadaptation verwendet wird.
- Ein Aspekt der vorliegenden Erfindung betrifft ein System und ein Verfahren, das eine rückwärtsadaptive ratenverzerrungsoptimierte Datenpartitionierung (RD-DP) von DCT-Koeffizienten ermöglicht.
- In einem anderen Aspekt der Erfindung adaptiert die RD-DP den Partitionspunkt blockweise, was die Codierungsleistung des Base Layer-Bitstroms stark verbessert. Dies gestattet einem Decoder auch, die Paritionsstelle aus den decodierten Daten auf rückwärtige Weise zu finden, ohne explizite Übertragung, wodurch die Bandbreite erheblich eingespart wird.
- In einem weiteren Aspekt der vorliegenden Erfindung wird ein Lagrange-Parameter λ berechnet. Der Wert von λ wird mit einem eindimensionalen Standard-Bisektion-Algorithmus bestimmt, um (für den Base Layer-Übertragungskanal) ein Raten-Budget Rb zu berechnen.
- Eine Ausführungsform der Erfindung betrifft ein Datenpartitionierungsverfahren für einen skalierbaren Videocodierer. Das Verfahren umfaßt die Schritte des Empfangens von Videodaten, des Bestimmens von DCT-Koeffizienten für eine Vielzahl von Makroblöcken eines Videoframes, des Quantierens des DCT-Koeffizienten und des Umwandelns der quantisierten DCT-Koeffizienten in (run, level)-Paare. Für jeden der Vielzahl von Makroblöcken im Videoframe, das Bestimmen, eines jeweiligen Verhältnisses |Xk i|2/Lk i, wo ein k.tes (run, level)-Paar für einen i.ten Block Lk i Bits beträgt und einen Koeffizientenwert von Xk i hat. Wenn ein k.tes Verhältnis für das k.te (run, level)-Paar kleiner als λ ist, oder wenn das k.te Verhältnis ein erstes Verhältnis ist, das nicht kleiner als λ ist, das Setzen des k.ten (run, level)-Paars in eine Base Layer, andernfalls, wenn das k.te Verhältnis für das k.te (run, level)-Paar größer als λ ist, das Setzen des k.ten (run, level)-Paars in eine Enhancement Layer, wobei λ einer Lagrange-Berechnung entsprechend bestimmt wird.
- Eine andere Ausführungsform der vorliegenden Erfindung betrifft ein Verfahren zum Bestimmen einer Grenze zwischen einer Base Layer und mindestens einer Enhancement Layer in einem skalierbaren Videodecoder. Das Verfahren umfaßt die Schritte des Empfangens der Base Layer und der mindestens einen Enhancement Layer, wobei die Base Layer und Enhancement Layer Daten einschließen, die (run, level)-Paare für eine Vielzahl von Makroblöcken in einem Videoframe darstellen. Für jeden der Vielzahl von Makroblöcken im Videoframe, das Bestimmen eines Verhältnisses |Xk i|2/Lk i, wo ein k.tes (run, level)-Paar für einen i.ten Block Lk i Bits beträgt und einen Koeffizientenwert von Xk i hat. Wenn das Verhältnis für das k.te (run, level)-Paar kleiner ist als λ, oder wenn das k.te Verhältnis ein erstes Verhältnis ist, das nicht kleiner als λ ist, das Lesen des k.ten (run, level)-Paars aus der Base Layer, andernfalls, wenn das Verhältnis für das k.te (run, level)-Paar größer als λ ist, das Lesen des k.ten (run, level)-Paars aus der mindestens einen Enhancement Layer, wobei λ einer Lagrange-Berechnung entsprechend bestimmt wird.
- Eine weitere Ausführungsform der vorliegenden Erfindung betrifft einen skalierbaren Decoder, der in der Lage ist, Daten von einer Base Layer und mindestens einer Enhancement Layer zu verschmelzen. Der Decoder umfaßt einen Speicher, der computerausführbare Prozeßschritte speichert, und einen Prozessor, der angeordnet ist, um die im Speicher gespeicherten Prozeßschritte auszuführen, um (i) die Base Layer und die mindestens eine Enhancement Layer zu empfangen, wobei die Base Layer und die Enhancement Layer Daten einschließen, die (run, level)-Paare für eine Vielzahl von Makroblöcken in einem Videoframe darstellen, (2) für jeden der Vielzahl von Makroblöcken im Videoframe ein Verhältnis |Xk i|2/Lk i zu bestimmen, wo ein k.tes (run, level)-Paar für einen i.ten Block Lk i Bits beträgt und einen Koeffizientenwert von Xk i hat, und (3), wenn das Verhältnis für das k.te (run, level)-Paar kleiner als λ ist, oder wenn das k.te Verhältnis ein erstes Verhältnis ist, das nicht kleiner als λ ist, das k.te (run, level)-Paar aus der Base Layer zu lesen, andernfalls, wenn das Verhältnis für das k.te (run, level)-Paar größer als λ ist, das k.te (run, level)-Paar aus der mindestens einen Enhancement Layer zu lesen, wobei λ einer Lagrange-Berechnung entsprechend bestimmt wird.
- Noch eine andere Ausführungsform der vorliegenden Erfindung betrifft einen skalierbaren Transcoder. Ein Single Layer-codierter Videobitstrom (MPEG-1, MPEG-2, MPEG-4, H.264 usw.) wird partiell decodiert, und der Bitstrom-Splitpunkt für jeden DCT-Block wird auf der Basis des obigen Grenzbestimmungsverfahrens bestimmt. Dann werden die VLC-Codes auf der Basis der Splitpunkte in zwei oder mehr Partitionen aufgeteilt. Die partielle Decodierung umfaßt nur die Decodierung mit variabler Codewortlänge, die inverse Abtastung und die inverse Quantisierung. Eine inverse DCT oder Motion Compensation wird nicht benötigt.
- Diese kurze Zusammenfassung wurde vorgesehen, damit die Beschaffenheit der Erfindung schnell verständlich wird. Ein umfassenderes Verständnis der Erfindung kann Bezug nehmend auf die folgende ausführliche Beschreibung der bevorzugten Ausführungsformen davon in Verbindung mit den beiliegenden Zeichnungen erhalten werden.
-
1 zeigt ein Videocodiersystem nach einem Aspekt der vorliegenden Erfindung. -
2 zeigt eine Ratenverzerrungskurve. -
3 zeigt ein Computersystem, auf welchem die vorliegende Erfindung implementiert werden kann. -
4 zeigt die Architektur eines Personal-Computers im Computersystem von3 . -
5 zeigt ein Blockdiagramm eines Transcoders nach einer Ausführungsform der vorliegenden Erfindung. -
1 veranschaulicht ein skalierbares Videosystem100 mit geschichteter Codierung und Transport-Priorisierung. Ein geschichteter Quellcodierer110 codiert Eingangsvideodaten. Die Ausgabe des geschichteten Quellcodierers110 umfaßt eine Base Layer121 und eine oder mehrere Enhancement Layers122 -124 . Eine Vielzahl von Kanälen120 transportieren die ausgegebenen codierten Daten. Ein geschichteter Quelldecoder130 decodiert die codierten Daten. - Es gibt verschiedene Wege, geschichtete Codierung zu implementieren. Zum Beispiel beim Temporal Domain Layered Coding enthält die Base Layer einen Bitstrom mit einer niedrigeren Framerate, und die Enhancement Layers enthalten zusätzliche Information, um eine Ausgabe mit höheren Frameraten zu erhalten. Beim Spatial Domain Layered Coding codiert die Base Layer die unterabgetastete Version der Originalvideosequenz, und die Enhancement Layers enthalten zusätzliche Information, um eine höhere räumliche Auflösung am Decoder zu erhalten.
- Allgemein verwendet eine andere Layer einen anderen Datenstrom und weist deutlich abweichende Toleranzen gegenüber Kanalfehlern auf. Um Kanalfehler zu bekämpfen, wird die geschichtete Codierung gewöhnlich mit Transport-Priorisierung kombiniert, so daß die Base Layer mit einem höheren Fehlerschutzgrad übertragen wird. Wenn die Base Layer
121 verloren geht, können die in den Enhancement Layers122 -124 enthaltenen Daten nutzlos sein. - In einer Ausführungsform der vorliegenden Erfindung wird die Videoqualität der Base Layer
121 auf flexible Weise auf der DCT Block-Ebene gesteuert. Die gewünschte Base Layer kann gesteuert werden, indem der PBP auf der DCT Block-Ebene durch Verwendung der kontextbasierten Rückwärtsadaptation adaptiert wird. - Es ist anzumerken, daß der Zweck von DCT darin besteht, die räumliche Korrelation zwischen benachbarten Fehlerpixeln zu reduzieren und die Energie der Fehlerpixel zu wenigen Koeffizienten zu verdichten. Da viele hochfrequente Koeffizienten nach der Quantisierung null betragen, wird die Codierung mit variabler Codewortlänge (VLC) durch ein Lauflängen-Codierungsverfahren erreicht, das die Koeffizienten durch einen sogenannten Zig-Zag-Scan in einem eindimensionale Array so anordnet, daß die niederfrequenten Koeffizienten vor die hochfrequenten Koeffizienten gesetzt werden. Auf diese Weise werden die quantisierten Koeffizienten in Form der Werte ungleich Null und der Zahl der vorhergehenden Nullen spezifiziert. Verschiedene Symbole, die jedes einem Zero-Runlength-Paar entsprechen, und Werte ungleich null werden mit Codewörtern mit variabler Länge codiert.
- Das skalierbare Videosystem
100 verwendet bevorzugt Entropie-Codierung. In der Entropie-Codierung werden quantisierte DCT-Koeffizienten zu einem eindimensionalen Array neu angeordnet, indem sie in einer zickzackförmigen Reihenfolge abgetastet werden. Diese Umordnung setzt den DC-Koeffizienten an die erste Stelle der Anordnung, und die restlichen AC-Koeffizienten werden von der niedrigen zur hohen Frequenz angeordnet, sowohl in horizontaler als auch in vertikaler Richtung. Die Annahme ist, daß die quantisierten DCT-Koeffizienten bei hohen Frequenzen wahrscheinlich null sind, wodurch die ungleich Null- und Null-Abschnitte getrennt werden. Die neu angeordnete Anordnung wird zu einer Sequenz des Run-Level-Paars codiert. Ein „Run" wird als eine Entfernung zwischen zwei Koeffizienten ungleich Null in der Anordnung definiert. Ein „Level" ist der Wert ungleich Null direkt nach einer Folge von Nullen. Dieses Codierungsverfahren ergibt eine kompakte Darstellung der 8 × 8 DCT-Koeffizienten, da eine große Zahl der Koeffizienten bereits auf den Nullwert quantisiert wurden. - Die Run-Level-Paare und die Information über den Makroblock, wie z.B. die Motion Vectors und Prediction Types, werden durch Entropie-Codierung weiter komprimiert. Zu diesem Zweck werden sowohl Codes mit variabler Länge als auch mit fester Länge benutzt.
- Das Design des Videosystems
100 ist durch die Ratenverzerrungstheorie (RD) begründet. Die RD-Theorie ist in Codierungs- und Komprimierungsszenarien von Nutzen, wo die verfügbare Bandbreite a priori bekannt ist und wo es darauf ankommt, die beste Wiedergabequalität zu erreichen, die in dieser Bandbreite erreichbar ist (d.h. adaptive Algorithmen). - Im folgenden wird eine Veranschaulichung formuliert, um optimierte Partitionierungen (d.h., Base- und Enhancement Layer-Partitionierungen) zu ermitteln. In der folgenden Erläuterung wird angenommen, daß „n" DCT-Blöcke für jedes Videoframe vorhanden sind und das Bitraten-Budget Rb für die Base Layer-Partition bekannt ist. Das Raten-Budget wird auf der Basis der Mindestanforderung an die Videoqualität und der Datendurchsatzfluktuation des Kanals bestimmt. Dann kann das folgende Optimierungsproblem formuliert werden, um optimale Partitionen zu ergeben: wobei Pi ∊ {0, 1, ..., K(i)}, i = 1, ..., n der Breakpoint-Wert für den i.ten Block ist und K(i) die maximalen (run, length)-Paare im i.ten Block bezeichnet, Ri(Pi) und Di(Pi) jeweils die entsprechende Bitrate und Verzerrung vom i.ten Block bezeichnen.
- Das Optimierungsproblem kann mit einem iterativen Bisektion-Algorithmus auf der Basis einer Lagrange-Optimierung gelöst werden. Der optimale Paritionierungspunkt Pi erfüllt die folgende Bedingung für alle i = 1, ..., n: wobei das Lagrange λ > 0 durch die Standard-Bisektion-Suche so bestimmt wird, daß die Ratenbeschränkung in (1) erfüllt wird.
-
- Bezug nehmend nun auf
2 , wird eine konvexe RD-Kurve gezeigt, um zu veranschaulichen, wie der Partitionspunkt bestimmt wird und wie der geschichtete Quelldecoder130 den Partitionspunkt auf rückwärtsadaptive Weise ableiten kann. Es ist anzumerken, daß der geschichtete Quelldecoder130 auf gleiche Weise arbeitet, auch wenn die RD-Lurve nicht konvex ist. -
- Gleichung (4) gemäß wird ein Partitionierungsalgorithmus für die DCT-Koeffizienten auf der Seite des geschichteten Quelldecoders
130 wie folgt ausgedrückt. Es ist anzumerken, daß die Videodaten für ein Frame mit der diskreten Cosinus-Transformation (DCT) konvertiert werden, die DCT-Koeffizienten quantisiert werden und dann durch Codierung mit variabler Codewortlänge (VLC) in binäre Codewörter umgewandelt werden, um an diesen Punkt zu gelangen. -
- Bei der praktischen Implementierung der Codierung mit variabler Codewortlänge für das (run, length)-Paar kann die RD-Kurve von
2 nicht konvex sein, weil die VLC nur eine Näherung der wahren Entropie der Quelle ist. In diesem Fall ist die Prüfvariable |Xk i|2/Lk i in Bezug auf k nicht mehr monoton. Doch selbst in diesem Fall ist zu ersehen, daß die Codierungs- und Decodierungsalgorithmen perfekt synchronisiert werden können, da beide nach den ersten (run, length)-Paaren abbrechen, welche |Xk i|2/Lk i < λ erfüllen. - Wie oben erläutert, ist die einzige Nebeninformation, die übertragen werden muß, der Lagrange-Parameter λ. Der Wert von λ wird mit dem eindimensionalen Standard-Bisektion-Algorithmus bestimmt, um das Raten-Budget Rb von Gleichung (1) zu erfüllen. Doch der Optimalwert von λ kann eine reale Zahl sein und sollte zur Übertragung über den Kanal
120 quantisiert werden. - In einer bevorzugten Ausführungsform wird die Codierungspräzision des quantisierten λ wie folgt bestimmt. Die Codierungspräzision wird aufgelöst, indem vorausgesetzt wird, daß |Xk i|2/Lk i nur diskrete Werte für jedes i, k aufweist. Zum Beispiel wird die maximale Größe von Lk i durch die maximale Länge des Codeworts in der Huffman-Tabelle nach oben hin begrenzt, während der Höchstwert von |Xk i| durch den DCT-Koeffizientenbereich nach oben hin begrenzt wird. Das heißt, die Bits, die zum Codieren von Lk i und |Xk i| erforderlich sind, werden jeweils durch log2(maximale Länge des Codeworts in der Huffman-Tabelle) und log2(DCT-Koeffizientenbereich) nach oben hin begrenzt.
- Wenn die maximale Länge des VLC zum Beispiel 64 Bits lang ist, und DCT-Koeffizienten Ganzzahlen zwischen –2048 und 2047 sind, dann kann der Wert von λ mit log2(64)+log2(2048)= 19 Bits quantisiert werden. Da dieser Overhead nur einmal im Videoframe-Header gesendet werden muß, ist zu ersehen, daß die Zunahme der Bitrate mit dem RD-DP minimal ist. Für den Fachmann versteht es sich auch, daß der λ Wert-Overhead auf der Slice- oder Videopaketebene gesendet werden kann, um Frame-Header-Verluste zu bekämpfen.
- Durch Übertragung des λ-Werts und der entsprechenden niederfrequenten und einiger hochfrequenten DCT-Koeffizienten (als die Base Layer
121 ) über einen zuverlässigeren Übertragungskanal ist daher eine größere dynamische Zuweisung der DCT-Information erreichbar. Dies ermöglicht mehr Kontrolle über die Mindestqualität des Videos in dem Falle, daß Daten von einer oder mehreren der Enhancement Layers122 -124 verloren gehen. - Die Ausführungsformen der vorliegenden Erfindung, die oben erläutert wurden, sind auf jedes skalierbare Videocodiersystem anwendbar, z.B. MPEG 2, MPEG 3, H.263 usw.
-
3 zeigt eine repräsentative Ausführungsform eines Computersystems9 , auf dem die vorliegende Erfindung implementiert werden kann. Wie in3 gezeigt, umfaßt der Personal Computer („PC)10 einen Netzwerkanschluß11 , um eine Schnittstelle zu einem Netzwerk wie z.B. ein Netzwerk mit variabler Bandbreite oder das Internet zu bilden, und einen Fax/Modem-Anschluß12 , um eine Schnittstelle zu anderen Fernquellen wie einer Videokamera (nicht gezeigt) zu bilden. Der PC10 umfaßt auch einen Anzeigebildschirm13 , um einem Benutzer Information (einschließlich Videodaten) anzuzeigen, eine Tastatur15 zum Eingeben von Text und Benutzerbefehlen, eine Maus13 , um einen Cursor auf dem Anzeigebildschirm14 zu positionieren, ein Diskettenlaufwerk16 zum Lesen von und Schreiben auf Disketten, die darin eingelegt sind, und ein CD-ROM-Laufwerk17 , um auf Information zuzugreifen, die auf CD-ROM gespeichert ist. Der PC10 kann auch ein oder mehre Peripheriegeräte aufweisen, die daran angeschlossen sind, wie einen Scanner (nicht gezeigt) zur Eingabe von Domumententextbildern, Grafikbildern oder dergleichen, und einen Drucker19 zur Ausgabe von Bildern, Text oder dergleichen. -
4 zeigt die innere Struktur des PCs10 . Wie in4 gezeigt, umfaßt der PC10 Speicher20 , der ein computerlesbares Medium wie z.B. eine Computerfestplatte umfaßt. Der Speicher20 speichert Daten23 , Anwendungen25 , Druckertreiber24 und das Betriebssystem26 . In bevorzugten Ausführungsformen der Erfindung ist das Betriebssystem26 ein Betriebssystem mit Fenstertechnik, wie z.B. Microsoft Windows 95, auch wenn die Erfindung auch mit anderen Betriebssystemen verwendet werden kann. Unter den Anwendungen, die im Speicher26 gespeichert sind, sind der skalierbare Videocodierer21 und der skalierbare Videodecoder22 . Der skalierbare Videocodierer21 führt die skalierbare Videodatencodierung auf die unten ausführlich dargelegte Weise durch, und der skalierbare Videodecoder22 decodiert Videodaten, die auf die vom skalierbaren Videocodierer21 vorgegebene Weise codiert wurden. - Im PC
10 sind auch eine Anzeigeschnittstelle29 , eine Tastaturschnittstelle30 , eine Mausschnittstelle31 , eine Diskettenlaufwerksschnittstelle32 , eine CD-ROM-Laufwerksschnittstelle34 , ein Computerbus36 , ein RAM-Speicher37 , ein Prozessor38 und eine Druckerschnittstelle40 enthalten. Der Prozessor38 umfaßt bevorzugt einen Mikroprozessor oder ähnliches, um Anwendungen wie z.B. die oben genannten aus dem RAM-Speicher37 auszuführen. Solche Anwendungen, einschließlich des skalierbaren Videocodierers21 und des skalierbaren Videodecoders22 , können im Speicher20 gespeichert sein, wie oben erwähnt, oder alternativ dazu auf einer Diskette im Diskettenlaufwerk16 oder auf einer CD-ROM im CD-ROM-Laufwerk17 . Der Prozessor38 greift über die Diskettenlaufwerksschnittstelle32 auf Anwendungen (oder andere Daten) zu, die auf einer Diskette gespeichert sind, und greift über die CD-ROM-Laufwerksschnittstelle34 auf Anwendungen (oder andere Daten) zu, die auf einer CD-ROM gespeichert sind. - Die Anwendungsausführung und andere Aufgaben des PCs
4 können mit Hilfe der Tastatur15 oder Maus13 initialisiert werden, deren Befehle jeweils über die Tastaturschnittstelle30 und Mausschnittstelle31 an den Prozessor38 übertragen werden. Die Ausgabeergebnisse von den auf dem PC10 laufenden Anwendungen können von der Anzeigeschnittstelle29 verarbeitet werden dem Benutzer dann auf dem Bildschirm14 angezeigt werden, oder alternativ dazu über den Netzwerkanschluß11 ausgegeben werden. Zum Beispiel werden Eingabevideodaten, die vom skalierbaren Videocodierer21 codiert wurden, typischerweise über den Netzwerkanschluß11 ausgegeben. Zum anderen werden codierte Videodaten, die z.B. von einem Netzwerk mit variabler Bandbreite empfangen werden, vom skalierbaren Videodecoder22 decodiert und dann auf der Anzeige14 angezeigt. Zu diesem Zweck umfaßt die Anzeigeschnittstelle29 bevorzugt einen Anzeigeprozessor, um Videobilder auf der Basis der decodierten Videodaten zu formen, die vom Prozessor38 über den Computerbus36 zugeführt werden, und um diese Bilder an die Anzeige14 auszugeben. Ausgabeergebnisse von anderen Anwendungen, wie z.B. Textverarbeitungsprogramme, die auf dem PC10 laufen, können über die Druckerschnittstelle40 dem Drucker19 zugeführt werden. Der Prozessor38 führt den Druckertreiber24 aus, um die korrekte Formatierung solcher Druckaufträge durchzuführen, bevor sie an den Drucker19 übertragen werden. - Eine andere Ausführungsform der vorliegenden Erfindung betrifft einen skalierbaren Transcoder. Wie in
5 gezeigt, wird ein Single Layer-codierter Videobitstrom200 (MPEG-1, MPEG-2, MPEG-4, H.264 usw.) von einem Decoder mit variabler Codewortlänge210 partiell decodiert. Die DCT-Koeffizienten220 werden an einer inverse Abtastungs-/Quantisierungseinheit230 und dann an den Partitionierungspunktfinder240 gesendet. Der Bitstrom-Splitpunkt wird für jeden DCT-Block auf der Basis des Grenzbestimmungsverfahrens der oben erläuterten Ausführungsform bestimmt. Danach werden VLC-Codes250 auf der Basis der Splitpunkte in zwei oder mehr Partitionen aufgeteilt. Die Ergebnisse werden einem VCL-Puffer260 zugeführt. Der Ausführungsform entsprechend beinhaltet die partielle Decodierung nur die Decodierung mit variabler Codewortlänge, die inverse Abtastung und die inverse Quantisierung. Eine inverse DCT oder Motion Compensation wird nicht benötigt. - Auch wenn die Ausführungsformen der Erfindung, die hierin beschrieben wurden, bevorzugt als Computercode implementiert werden, können alle oder einige der Ausführungsformen, die oben erläutert wurden, mit diskreten Hardwareelemente und/oder Logikschaltungen implementiert werden. Und obwohl die Codierungs- und Decodierungstechniken der vorliegenden Erfindung in einer PC-Umgebung beschrieben wurden, können diese Techniken in Videovorrichtungen jedes Typs verwendet werden, einschließlich, aber ohne darauf beschränkt zu sein, Digitalfernseher/Set-Top-Boxen, Videokonferenzgeräten und dergleichen.
- In dieser Hinsicht wurde die vorliegende Erfindung in Bezug auf bestimmte, veranschaulichende Ausführungsformen beschrieben. Zum Beispiel können die Prinzipien der vorliegenden Erfindung, wie sie in den obigen Ausführungsformen beschrieben wurden, auch auf Partition Enhancement Layers angewandt werden.
Claims (30)
- Datenpartitionierungsverfahren für einen skalierbaren Videocodierer (
110 ), wobei das Verfahren die Schritte umfaßt des: – Empfangens von Videodaten; – Bestimmens von DCT-Koeffzienten für eine Vielzahl von Makroblöcken eines Videoframes; – Quantierens des DCT-Koeffizienten; – Umwandelns der quantisierten DCT-Koeffzienten in (run, level)-Paare; für jeden der Vielzahl von Makroblöcken im Videoframe, für aufeinanderfolgende (run, level)-Paare in den Makroblöcken, das Bestimmen eines jeweiligen Verhältnisses |Xk i|2/Lk i, wo ein k.tes (run, level)-Paar für einen i.ten Block eine Codelänge von Lk i Bits aufweist und einen Koeffizientenwert von Xk i hat; und bis zum und einschließlich des ersten Mals, wo das jeweilige Verhältnis |Xk i|2/Lk i kleiner ist als ein Wert λ, das Setzen des zugehörigen aufeinanderfolgenden (run, level)-Paars in eine Base Layer (121 ); und das Setzen der restlichen aufeinanderfolgenden (run, level)-Paare in eine Enhancement Layer (122 -124 ), wobei λ ein Lagrange-Multiplikator ist, der einer Lagrange-Berechnung entsprechend bestimmt wird. - Verfahren nach Anspruch 1, ferner umfassend den Schritt des Übertragens der Base- (
121 ) und Enhancement Layers (122 -124 ) über verschiedene Übertragungskanäle (120 ). - Verfahren nach Anspruch 1, wobei der skalierbare Videocodierer (
110 ) ein MPEG 4-Codierer ist. - Verfahren nach Anspruch 1, wobei der skalierbare Videocodierer (
110 ) ein H.263-Codierer ist. - Verfahren nach Anspruch 1, wobei der skalierbare Videocodierer (
110 ) ein MPEG 2-Codierer ist. - Verfahren nach Anspruch 1, wobei der skalierbare Videocodierer (
110 ) ein Videocodierer ist, der DCT-Transformation und Entropie-Codierung verwendet. - Verfahren nach Anspruch 1, wobei der skalierbare Videocodierer (
110 ) durch Umcodierung von Single Layer-MPEG2, MPEG4 und H.26L realisiert wird. - Verfahren nach Anspruch 1, ferner umfassend den Schritt des Quantierens des Lagrange-Multiplikators λ, und des Übertragens des quantisierten Werts als Nebeninformation an einen Decoder (
130 ). - Verfahren nach Anspruch 8, wobei der quantisierte Wert ein diskreter Wert ist, der von einem DCT-Dynamikbereich und einer VLC-Tabelle abhängt.
- Verfahren nach Anspruch 8, wobei der quantisierte Wert ein diskreter Wert mit benutzerdefinierter Präzision ist.
- Verfahren nach Anspruch 8, wobei die Nebeninformation nur einmal in einem Frame-Header für das Videoframe übertragen wird.
- Verfahren nach Anspruch 8, wobei die Nebeninformation in einem Slice-Header oder in einem Videopaket-Header übertragen wird, um die Robustheit zu erhöhen.
- Verfahren nach Anspruch 1, wobei der Lagrange-Multiplikator λ mit einem Bisektion-Algorithmus bestimmt wird, um ein Raten-Budget für einen Übertragungskanal (
120 ) für die Base Layer (121 ) einzuhalten. - Verfahren nach Anspruch 1, wobei der Lagrange-Multiplikator λ mit einem adaptiven Algorithmus bestimmt wird, um ein Raten-Budget für einen Übertragungskanal für die Base Layer (
121 ) einzuhalten. - Verfahren zum Bestimmen einer Grenze zwischen einer Base Layer (
121 ) und mindestens einer Enhancement Layer (122 ) in einem skalierbaren Videodecoder (130 ), umfassend die Schritte des: – Empfangens der Base Layer (121 ) und der mindestens einen Enhancement Layer (122 ), wobei die Base Layer und Enhancement Layer Daten einschließen, die aufeinanderfolgende (run, level)-Paare für eine Vielzahl von Makroblöcken in einem Videoframe darstellen; für jeden der Vielzahl von Makroblöcken im Videoframe, für aufeinanderfolgende (run, level)-Paare in den Makroblöcken, das Bestimmen eines jeweiligen Verhältnisses |Xk i|2/Lk i, wo ein k.tes (run, level)-Paar für einen i.ten Block eine Codelänge von Lk i Bits hat und einen Koeffizientenwert von Xk i hat; und bis zum und einschließlich des ersten Mals, wo das jeweilige Verhältnis |Xk i|2/Lk i kleiner ist als ein Wert λ, das Lesen des zugehörigen aufeinanderfolgenden (run, level)-Paars aus der Base Layer (121 ); und das Lesen der restlichen aufeinanderfolgenden (run, level)-Paare aus der Enhancement Layer (122 -124 ), wobei λ ein Lagrange-Multiplikator ist, der durch Decodieren der Nebeninformation bestimmt wird. - Verfahren nach Anspruch 15, ferner umfassend den Schritt des Empfangens der Base Layer (
121 ) und der Enhancement Layer (122 ) über verschiedene Übertragungskanäle (120 ). - Verfahren nach Anspruch 15, wobei der skalierbare Videodecoder (
130 ) ein MPEG 4-Decoder ist. - Verfahren nach Anspruch 15, wobei der skalierbare Videodecoder (
130 ) ein H.263-Decoder ist. - Verfahren nach Anspruch 15, wobei der skalierbare Videodecoder (
130 ) ein MPEG 2-Decoder ist. - Verfahren nach Anspruch 15, wobei der skalierbare Videodecoder (
130 ) ein Videodecoder ist, der DCT-Transformation und Entropie-Codierung verwendet. - Verfahren nach Anspruch 15, wobei der skalierbare Videodecoder (
130 ) durch einen Merger vor einem Single-Layer-Videodecoder realisiert wird, der aus der Gruppe gewählt wird, die aus einem MPEG 2-, MPEG 4- und H.26L-Decoder besteht. - Verfahren nach Anspruch 15, ferner umfassend den Schritt des Empfangens des Lagrange-Multiplikators λ als Nebeninformation, die zum Videoframe gehört.
- Verfahren nach Anspruch 22, wobei die Nebeninformation eine diskrete Zahl ist, die mit minimalem Bit-Overhead codiert werden kann.
- Verfahren nach Anspruch 22, wobei die Nebeninformation nur einmal in einem Frame-Header für den Videoframe gesendet wird.
- Verfahren nach Anspruch 22, wobei die Nebeninformation für jeden Slice-Header oder Videopaket-Header kopiert wird, um die Robustheit zu erhöhen.
- Verfahren nach Anspruch 15, wobei der Lagrange-Multiplikator λ bestimmt wird, um ein Raten-Budget für einen Übertragungskanal für die Base Layer (
121 ) einzuhalten. - Skalierbarer Decoder (
130 ), der in der Lage ist, Daten von einer Base Layer (121 ) und mindestens einer Enhancement Layer (122 ) zu verschmelzen, wobei diese Vorrichtung umfaßt: – einen Speicher (20 ), der computerausführbare Prozeßschritte speichert; und – einen Prozessor (38 ), der angeordnet ist, um die im Speicher gespeicherten Prozeßschritte auszuführen, um durchzuführen: (1) den Empfang der Base Layer und der mindestens einen Enhancement Layer, wobei die Base Layer und die Enhancement Layer Daten einschließen, die (run, level)-Paare für eine Vielzahl von Makroblöcken in einem Videoframe darstellen, (2) für jeden der Vielzahl von Makroblöcken im Videoframe, für aufeinanderfolgende (run, level)-Paare in den Makroblöcken, das Bestimmen eines jeweiligen Verhältnisses |Xk i|2/Lk i, wo ein k.tes (run, level)-Paar für einen i.ten Block eine Codelänge von Lk i Bits aufweist und einen Koeffizientenwert von Xk i hat; und bis zum und einschließlich des ersten Mals, wo das jeweilige Verhältnis |Xk i|2/Lk i kleiner ist als ein Wert λ, das Lesen des zugehörigen aufeinanderfolgenden (run, level)-Paars aus der Base Layer (121 ); und das Lesen der restlichen aufeinanderfolgenden (run, level)-Paare aus der Enhancement Layer (122 -124 ), wobei λ ein Lagrange-Multiplikator ist, der einer Lagrange-Berechnung entsprechend bestimmt wird. - Decoder nach Anspruch 27, wobei der Lagrange-Multiplikator λ vom Decoder als Nebeninformation empfangen wird, die zum Videoframe gehört, und die Nebeninformation nur einmal im Frame-Header für das Videoframe gesendet wird.
- Decoder nach Anspruch 27, wobei der Lagrange-Multiplikator λ bestimmt wird, um ein Raten-Budget für einen Übertragungskanal für die Base Layer (
121 ) einzuhalten. - Geschichteter Quellcodierer (
101 ), umfassend: – Mittel zum Empfangen von Videodaten; – Mittel zum Bestimmen von DCT-Koeffizienten für eine Vielzahl von Makroblöcken eines Videoframes; – Mittel zum Quantisieren der DCT-Koeffizienten; – Mittel zum Umwandeln der quantisierten DCT-Koeffizienten in (run, level)-Paare; – Mittel zum Bestimmen eines jeweiligen Verhältnisses |Xk i|2/Lk i für aufeinanderfolgende (run, level)-Paare, in jedem von Vielzahl von Makroblöcken im Videoframe, wo ein k.tes (run, level)-Paar für einen i.ten Block eine Codelänge von Lk i Bits aufweist und einen Koeffizientenwert von Xk i hat; und – Mittel, um, bis zum und einschließlich des ersten Mals, wo das jeweilige Verhältnis |Xk i|2/Lk i kleiner ist als ein Wert λ, das zugehörige aufeinanderfolgende (run, level)-Paar in eine Base Layer (121 ) zu setzen; und – Mittel, um die restlichen aufeinanderfolgenden (run, level)-Paare in eine Enhancement Layer (122 -124 ) zu setzen, wobei λ ein Lagrange-Multiplikator ist, der einer Lagrange-Berechnung entsprechend bestimmt wird.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US40130002P | 2002-08-06 | 2002-08-06 | |
US401300P | 2002-08-06 | ||
US10/295,669 US7010037B2 (en) | 2002-08-06 | 2002-11-15 | System and method for rate-distortion optimized data partitioning for video coding using backward adaptation |
US295669 | 2002-11-15 | ||
PCT/IB2003/003393 WO2004015998A1 (en) | 2002-08-06 | 2003-07-31 | System and method for rate-distortion optimized data partitioning for video coding using backward adaptation |
Publications (2)
Publication Number | Publication Date |
---|---|
DE60305325D1 DE60305325D1 (de) | 2006-06-22 |
DE60305325T2 true DE60305325T2 (de) | 2007-03-29 |
Family
ID=31498146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE60305325T Expired - Fee Related DE60305325T2 (de) | 2002-08-06 | 2003-07-31 | System und verfahren zur ratenverzerrungsoptimierten datenpartitionierung zur videocodierung unter verwendung von rückwärtsadaption |
Country Status (9)
Country | Link |
---|---|
US (1) | US7010037B2 (de) |
EP (1) | EP1529401B1 (de) |
JP (1) | JP2005535250A (de) |
KR (1) | KR20050032113A (de) |
CN (1) | CN1675932A (de) |
AT (1) | ATE326816T1 (de) |
AU (1) | AU2003250417A1 (de) |
DE (1) | DE60305325T2 (de) |
WO (1) | WO2004015998A1 (de) |
Families Citing this family (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7190723B2 (en) * | 2002-03-27 | 2007-03-13 | Scientific-Atlanta, Inc. | Digital stream transcoder with a hybrid-rate controller |
US8204079B2 (en) * | 2002-10-28 | 2012-06-19 | Qualcomm Incorporated | Joint transmission of multiple multimedia streams |
JP2006523991A (ja) * | 2003-04-18 | 2006-10-19 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | レート歪みをビデオ符号化に最適化したデータ分割をパラメトリック・レート歪みモデルを用いて行うシステム及び方法 |
CA2475189C (en) * | 2003-07-17 | 2009-10-06 | At&T Corp. | Method and apparatus for window matching in delta compressors |
US20070261082A1 (en) * | 2003-08-22 | 2007-11-08 | Interuniversitair Microelektronica Centrum (Imec) | Method for operating a multi-media wireless system in a multi-user environment |
US8228952B2 (en) * | 2003-08-22 | 2012-07-24 | Imec | Method for operating a telecom system |
US20060114836A1 (en) * | 2004-08-20 | 2006-06-01 | Sofie Pollin | Method for operating a combined multimedia -telecom system |
EP1673945B1 (de) * | 2003-10-06 | 2011-06-15 | IPG Electronics 503 Limited | Digitalfernsehübertragung mit fehlerkorrektur |
US8442108B2 (en) * | 2004-07-12 | 2013-05-14 | Microsoft Corporation | Adaptive updates in motion-compensated temporal filtering |
US8340177B2 (en) * | 2004-07-12 | 2012-12-25 | Microsoft Corporation | Embedded base layer codec for 3D sub-band coding |
US8374238B2 (en) * | 2004-07-13 | 2013-02-12 | Microsoft Corporation | Spatial scalability in 3D sub-band decoding of SDMCTF-encoded video |
EP1766783B1 (de) * | 2004-07-14 | 2011-11-02 | Slipstream Data Inc. | Verfahren, system und computerprogramm für die optimierung von datenkomprimierung |
US7570827B2 (en) | 2004-07-14 | 2009-08-04 | Slipstream Data Inc. | Method, system and computer program product for optimization of data compression with cost function |
US8032719B2 (en) * | 2005-04-14 | 2011-10-04 | Tektronix International Sales Gmbh | Method and apparatus for improved memory management in data analysis |
US7830961B2 (en) * | 2005-06-21 | 2010-11-09 | Seiko Epson Corporation | Motion estimation and inter-mode prediction |
EP1920285A4 (de) * | 2005-07-28 | 2010-11-03 | Light Prescriptions Innovators | Linsenförmige optische freiformelemente und ihre anwendung auf kondensatoren und scheinwerfer |
KR100736086B1 (ko) | 2005-09-06 | 2007-07-06 | 삼성전자주식회사 | 엔트로피 코딩의 성능 향상 방법 및 장치, 상기 방법을이용한 비디오 코딩 방법 및 장치 |
KR100744309B1 (ko) * | 2005-11-22 | 2007-07-30 | 삼성전자주식회사 | Svc 방식이 적용되는 디지털 비디오 스트림의 전송시스템과 그 전송 방법 |
US7843995B2 (en) * | 2005-12-19 | 2010-11-30 | Seiko Epson Corporation | Temporal and spatial analysis of a video macroblock |
US8170102B2 (en) * | 2005-12-19 | 2012-05-01 | Seiko Epson Corporation | Macroblock homogeneity analysis and inter mode prediction |
US7956930B2 (en) | 2006-01-06 | 2011-06-07 | Microsoft Corporation | Resampling and picture resizing operations for multi-resolution video coding and decoding |
WO2007080502A2 (en) * | 2006-01-11 | 2007-07-19 | Nokia Corporation | Backward-compatible aggregation of pictures in scalable video coding |
US8773494B2 (en) | 2006-08-29 | 2014-07-08 | Microsoft Corporation | Techniques for managing visual compositions for a multimedia conference call |
CN101137047B (zh) * | 2006-08-29 | 2010-09-15 | 昆山杰得微电子有限公司 | 一种通过有效残差系数分析提高编码效率的方法 |
CN101523919B (zh) * | 2006-10-12 | 2011-09-14 | 高通股份有限公司 | 基于用于精细化系数译码的视频区块类型的可变长度译码表选择 |
US20080101410A1 (en) * | 2006-10-25 | 2008-05-01 | Microsoft Corporation | Techniques for managing output bandwidth for a conferencing server |
US8761248B2 (en) * | 2006-11-28 | 2014-06-24 | Motorola Mobility Llc | Method and system for intelligent video adaptation |
KR101336423B1 (ko) | 2007-02-12 | 2013-12-04 | 한국전자통신연구원 | 계층적 부호화 장치 및 방법, 복호화 장치 및 방법 |
EP2153566A1 (de) | 2007-05-16 | 2010-02-17 | Thomson Licensing | Vorrichtung und verfahren zur signalkodierung und -dekodierung |
CN101828334B (zh) | 2007-10-15 | 2016-09-14 | 汤姆逊许可证公司 | 用于数字电视系统的前序 |
US8908773B2 (en) | 2007-10-15 | 2014-12-09 | Thomson Licensing | Apparatus and method for encoding and decoding signals |
US8594191B2 (en) * | 2008-01-03 | 2013-11-26 | Broadcom Corporation | Video processing system and transcoder for use with layered video coding and methods for use therewith |
US8953673B2 (en) * | 2008-02-29 | 2015-02-10 | Microsoft Corporation | Scalable video coding and decoding with sample bit depth and chroma high-pass residual layers |
US8711948B2 (en) | 2008-03-21 | 2014-04-29 | Microsoft Corporation | Motion-compensated prediction of inter-layer residuals |
US8270735B2 (en) * | 2008-03-31 | 2012-09-18 | Texas Instruments Incorporated | Shared error resiliency path through coefficient reordering |
FR2932050B1 (fr) * | 2008-06-03 | 2010-05-21 | Canon Kk | Procede et dispositif de transmission de donnees video |
US9571856B2 (en) | 2008-08-25 | 2017-02-14 | Microsoft Technology Licensing, Llc | Conversion operations in scalable video encoding and decoding |
US8631454B2 (en) * | 2008-09-05 | 2014-01-14 | Motorola Mobility Llc | Method and apparatus for constrained distribution of television program material |
US8213503B2 (en) | 2008-09-05 | 2012-07-03 | Microsoft Corporation | Skip modes for inter-layer residual video coding and decoding |
WO2010042650A2 (en) * | 2008-10-07 | 2010-04-15 | Motorola, Inc. | System and method of optimized bit extraction for scalable video coding |
US8774225B2 (en) * | 2009-02-04 | 2014-07-08 | Nokia Corporation | Mapping service components in a broadcast environment |
US8326067B2 (en) | 2009-02-27 | 2012-12-04 | Research In Motion Limited | Optimization of image encoding using perceptual weighting |
FI20095273A0 (fi) * | 2009-03-17 | 2009-03-17 | On2 Technologies Finland Oy | Digitaalinen videokoodaus |
KR20110124161A (ko) * | 2010-05-10 | 2011-11-16 | 삼성전자주식회사 | 계층 부호화 영상의 송수신 방법 및 장치 |
US9143793B2 (en) * | 2010-05-27 | 2015-09-22 | Freescale Semiconductor, Inc. | Video processing system, computer program product and method for managing a transfer of information between a memory unit and a decoder |
EP2405661B1 (de) | 2010-07-06 | 2017-03-22 | Google, Inc. | Verlustrobuste Videoübertragung mit zwei Decodierern |
CN101917608B (zh) * | 2010-07-30 | 2012-10-31 | 华南理工大学 | 视频轨迹的可伸缩传输方法 |
CN102209242B (zh) * | 2011-05-26 | 2012-11-07 | 大连理工大学 | 基于功耗模型的最优化可伸缩视频传输和解码系统 |
US9094689B2 (en) | 2011-07-01 | 2015-07-28 | Google Technology Holdings LLC | Motion vector prediction design simplification |
KR101887424B1 (ko) * | 2011-08-22 | 2018-08-10 | 한국전자통신연구원 | Acm 기반의 사이멀캐스트 송수신 장치 및 방법 |
US9185428B2 (en) | 2011-11-04 | 2015-11-10 | Google Technology Holdings LLC | Motion vector scaling for non-uniform motion vector grid |
US9014265B1 (en) | 2011-12-29 | 2015-04-21 | Google Inc. | Video coding using edge detection and block partitioning for intra prediction |
US8908767B1 (en) | 2012-02-09 | 2014-12-09 | Google Inc. | Temporal motion vector prediction |
US9172970B1 (en) | 2012-05-29 | 2015-10-27 | Google Inc. | Inter frame candidate selection for a video encoder |
US9781418B1 (en) | 2012-06-12 | 2017-10-03 | Google Inc. | Adaptive deadzone and rate-distortion skip in video processing |
US11317101B2 (en) | 2012-06-12 | 2022-04-26 | Google Inc. | Inter frame candidate selection for a video encoder |
US9179155B1 (en) | 2012-06-14 | 2015-11-03 | Google Inc. | Skipped macroblock video encoding enhancements |
US9485515B2 (en) | 2013-08-23 | 2016-11-01 | Google Inc. | Video coding using reference motion vectors |
US9503746B2 (en) | 2012-10-08 | 2016-11-22 | Google Inc. | Determine reference motion vectors |
CN103873142B (zh) * | 2012-12-10 | 2018-06-08 | 中兴通讯股份有限公司 | 可见光通信的数据发送、接收方法及装置、传输系统 |
US9210424B1 (en) | 2013-02-28 | 2015-12-08 | Google Inc. | Adaptive prediction block size in video coding |
JP6120667B2 (ja) * | 2013-05-02 | 2017-04-26 | キヤノン株式会社 | 画像処理装置、撮像装置、画像処理方法、プログラム、及び記録媒体 |
US9313493B1 (en) | 2013-06-27 | 2016-04-12 | Google Inc. | Advanced motion estimation |
US9699466B2 (en) * | 2013-12-26 | 2017-07-04 | Mediatek Inc | Adaptive reference/non-reference frame determination for video encoding |
WO2015102462A1 (ko) * | 2014-01-06 | 2015-07-09 | 에스케이텔레콤 주식회사 | 다중 영상의 단일 비트 스트림 생성방법 및 생성장치 |
KR102111436B1 (ko) | 2014-01-06 | 2020-05-18 | 에스케이 텔레콤주식회사 | 다중 영상의 단일 비트 스트림 생성방법 및 생성장치 |
CN106303673B (zh) * | 2015-06-04 | 2021-01-22 | 中兴通讯股份有限公司 | 码流对齐、同步处理方法及发送、接收终端和通信系统 |
US9807416B2 (en) | 2015-09-21 | 2017-10-31 | Google Inc. | Low-latency two-pass video coding |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6037987A (en) * | 1997-12-31 | 2000-03-14 | Sarnoff Corporation | Apparatus and method for selecting a rate and distortion based coding mode for a coding system |
AU2001286682A1 (en) * | 2000-08-25 | 2002-03-13 | Hamid Gharavi | Dual priority video transmission for mobile applications |
US7110608B2 (en) * | 2001-07-02 | 2006-09-19 | Canon Kabushiki Kaisha | Digital image compression |
WO2003041055A1 (en) * | 2001-11-02 | 2003-05-15 | The Regents Of The University Of California | End-to-end distortion estimation for streaming of pre-compressed video |
-
2002
- 2002-11-15 US US10/295,669 patent/US7010037B2/en not_active Expired - Fee Related
-
2003
- 2003-07-31 AU AU2003250417A patent/AU2003250417A1/en not_active Abandoned
- 2003-07-31 KR KR1020057002121A patent/KR20050032113A/ko not_active Application Discontinuation
- 2003-07-31 DE DE60305325T patent/DE60305325T2/de not_active Expired - Fee Related
- 2003-07-31 JP JP2004527185A patent/JP2005535250A/ja not_active Withdrawn
- 2003-07-31 CN CNA038189305A patent/CN1675932A/zh active Pending
- 2003-07-31 AT AT03784373T patent/ATE326816T1/de not_active IP Right Cessation
- 2003-07-31 WO PCT/IB2003/003393 patent/WO2004015998A1/en active IP Right Grant
- 2003-07-31 EP EP03784373A patent/EP1529401B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP1529401A1 (de) | 2005-05-11 |
EP1529401B1 (de) | 2006-05-17 |
ATE326816T1 (de) | 2006-06-15 |
CN1675932A (zh) | 2005-09-28 |
US20040028131A1 (en) | 2004-02-12 |
US7010037B2 (en) | 2006-03-07 |
DE60305325D1 (de) | 2006-06-22 |
AU2003250417A1 (en) | 2004-02-25 |
JP2005535250A (ja) | 2005-11-17 |
KR20050032113A (ko) | 2005-04-06 |
WO2004015998A1 (en) | 2004-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60305325T2 (de) | System und verfahren zur ratenverzerrungsoptimierten datenpartitionierung zur videocodierung unter verwendung von rückwärtsadaption | |
DE60125301T2 (de) | Videosignaltranskodierung | |
DE69320719T2 (de) | Effiziente, frequenzskalierbare Videokodierung mit Koeffizientenwahl | |
DE69937462T2 (de) | Effiziente macroblockheaderkodierung zur videokompression | |
DE69738262T2 (de) | Videokodierungs- und Videodekodierungsvorrichtung | |
US8077769B2 (en) | Method of reducing computations in transform and scaling processes in a digital video encoder using a threshold-based approach | |
DE69839100T2 (de) | Verbesserte Videokodierung unter Verwendung von adaptiven Blockparametern für kodierte/unkodierte Blöcke | |
DE69811394T2 (de) | Adaptive entropie-kodierung im rahmen adaptiver quantisierung für videosignalkodiersysteme und -verfahren | |
DE69116869T2 (de) | Digitale bildkodierung mit einer zufallsabtastung der bilder | |
DE69735402T2 (de) | System und Methode zur Bewegungskompensation mit Hilfe eines Schrägziegelspeicherformats für verbesserte Effizienz | |
DE602004008763T2 (de) | Videotranskodierung | |
DE69805228T2 (de) | Videosignalkodierung mit adaptiver Quantisierung | |
US9047669B1 (en) | Bit rate control for data compression | |
EP0687111A2 (de) | Verfahren zur Codierung/Decodierung eines Datenstroms | |
US20050238096A1 (en) | Fractional quantization step sizes for high bit rates | |
DE102005040026A1 (de) | Vorrichtung und Verfahren zur Verarbeitung von Video-/Bilddaten | |
DE69624399T2 (de) | Einrichtung zur Kompression von bewegten Videobildern mit adaptiver Quantisierung | |
DE60300591T2 (de) | Verfahren und Vorrichtung zur Dekomprimierung von Bildern durch Transkodierung in komprimierte Bewegtbilder | |
DE60309039T2 (de) | Verfahren und vorrichtung zur optimierung der bildschärfe während der kodierung | |
US20070165717A1 (en) | System and method for rate-distortion optimized data partitioning for video coding using parametric rate-distortion model | |
DE102016124917B4 (de) | Anpassungsfähige Kachel-Daten-Grössenkodierung für Video- und Bildkompression | |
JP2007506347A (ja) | 凸包検索を用いたレート−歪ビデオデータ分割 | |
WO2009031904A2 (en) | Method for alternating entropy coding | |
DE60210757T2 (de) | Vorrichtung zur videokodierung und -aufzeichnung | |
DE602004011213T2 (de) | Intraframe-komprimierung und dekomprimierung von videosignalen mit fester bitrate |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |