-
Technisches Gebiet
-
Die vorliegende Erfindung bezieht sich auf Fernseher, Computermonitore und andere Anzeigevorrichtungen und insbesondere auf ein Verfahren und System zum Erhöhen der Rahmenanzeigerate einer Anzeigevorrichtung unter Verwendung von Bewegungsinformationen, die aus einem codierten und komprimierten Eingangs-Videostrom extrahiert werden.
-
Hintergrund der Erfindung
-
Filme, Fernsehsendungen und Videos, die auf Videoanzeigevorrichtungen wiedergegeben werden, geben einem Zuschauer durch schnelles Anzeigen einer Sequenz von Standbildern die Illusion kontinuierlicher Bewegung. Die Standbilder werden als „Rahmen” (frames) bezeichnet. Wenn eine ausreichende Zahl Rahmen pro Sekunde angezeigt werden, füllt das menschliche visuelle System die Zeitzwischenräume zwischen aufeinanderfolgenden Rahmen, um die Illusion kontinuierlicher Bewegung zu erzeugen. Filme zeigen 24 Rahmen pro Sekunde mit einem Intervall von 1 / 30 Sekunden zwischen Rahmen an, Analogfernsehen zeigt 30 Rahmen pro Sekunde oder, äquivalent, 60 verschachtelnde Felder pro Sekunde an, und es wird erwartet, dass zukünftige Standards für hochauflösendes Fernsehen („HDTV” = high-definition television) eine Rahmenanzeigerate von 60 Rahmen pro Sekunde spezifizieren werden.
-
Zwar ermöglicht die Illusion kontinuierlicher Bewegung, die durch das Anzeigen einer Sequenz von Standbildern erzeugt wird, Menschen generell das Ansehen und Genießen von Filmen und Fernsehsendungen, jedoch ist die durch Filme und Fernsehsendungen bereitgestellte Illusion kontinuierlicher Bewegung nicht vollkommen. Aus der diskontinuierlichen Eigenschaft von Filmen, Fernsehen und dem Anzeigen von Video, in diesem Dokument zusammenfassend als „Anzeigen von Video” bezeichnet, ergeben sich bestimmte Artefakte und Beeinträchtigungen. Ein exemplarisches Artefakt besteht darin, dass bei einer Fernsehübertragung von alten Westernfilmen die Räder an Planwagen und Kutschen sich gelegentlich rückwärts zu bewegen scheinen, wenn die Kutschen und Planwagen sich vorwärts bewegen und die Rotation der Räder, in Umdrehungen pro Sekunde, etwas langsamer ist als die Rahmenerfassungsrate der Filmkamera. Ein Beispiel für eine Beeinträchtigung, die sich aus der diskreten Eigenschaft des Anzeigens von Video ergibt, ist das wahrnehmbare Flimmern von Fernsehanzeigen und Computermonitoren auf Kathodenröhrenbasis.
-
Mit der Verbesserung von Videoanzeigevorrichtungen im Lauf der Jahre und mit ihrer Entwicklung von analogen Vorrichtungen zu digitalen Vorrichtungen haben Videoanzeigevorrichtungen die Fähigkeit entwickelt, höhere Anzeigeraten bereitzustellen, einschließlich Anzeigeraten, die höher sind als die Rahmenerfassungsraten, mit denen Videorahmen aufgezeichnet und durch verschiedene Sende- und elektronische oder optische Datenübertragungsmedien übertragen werden. Erhöhte Anzeigeraten stellen generell eine bessere Illusion kontinuierlicher Bewegung mit weniger Artefakten und Beeinträchtigungen bereit. Jedoch können Implementierungen von Videoanzeigevorrichtungen, die diese höheren Rahmenanzeigeraten beherrschen, wesentlich komplexer und teurer sein. Aus diesem Grund sind die Konstrukteure und Hersteller von Videoanzeigevorrichtungen verschiedenen Typs bestrebt, Rahmenanzeigeraten zu erhöhen und gleichzeitig Erhöhungen der Hardwarekomplexität und der Implementierungskosten zu minimieren.
-
Zusammenfassung der Erfindung
-
Ausführungsbeispiele der vorliegenden Erfindung schaffen eine effiziente und kostengünstige Implementierung eines Verfahrens und Systems zum Erhöhen der Rahmenanzeigerate einer Videoanzeigevorrichtung. Videodaten werden in eine Videoanzeigevorrichtung häufig in einer komprimierten Form eingegeben, die codierte und komprimierte Bewegungsvektoren umfasst. Die Bewegungsvektoren stellen Informationen über Teile von aufeinanderfolgenden Videorahmen bereit, die sich bezüglich ihrer relativen Position verändern. Die Bewegungsvektoren werden zusammen mit den Rahmen dekomprimiert und decodiert. In bestimmten Ausführungsbeispielen der vorliegenden Erfindung werden von einer Verarbeitungskomponente an eine Zeitsteuerungskomponente einer Videoanzeigevorrichtung ein erster Rahmen und eine begleitende Bewegungsvektortabelle übertragen, unter deren Verwendung die Zeitsteuerungskomponente einen zweiten Rahmen generieren kann, der nach einem Anzeigen des ersten Rahmens angezeigt wird. Auf diese Weise ist das Anzeigen der generierten Rahmen zwischen einem Anzeigen von dekomprimierten und decodierten Rahmen verschachtelt, was eine erhöhte Rahmenanzeigerate relativ zu der Rate ergibt, mit der Rahmen durch Dekomprimieren und Decodieren eines Eingangsvideosignals empfangen werden.
-
Kurze Beschreibung der Zeichnungen
-
13A–13I illustrieren den Betrieb einer momentan verfügbaren Videoanzeigevorrichtung.
-
14 illustriert eine LCD-Anzeige.
-
15 illustriert dieses Verwischen bewegter Objekte durch Abtast-und-Halte-Anzeigevorrichtungen.
-
16A–16B illustrieren eine mögliche Lösung des Verwischungsproblems, das Abtast-und-Halte-Anzeigevorrichtungen mit niedrigen und mittleren Rahmenanzeigeraten eigen ist.
-
17 illustriert ein Verfahren, mit dem Zwischenrahmen generiert werden können, um die Rahmenanzeigerate in einer Abtast-und-Halte-Anzeigevorrichtung zu erhöhen.
-
18 illustriert Veränderungen an der mit Bezug auf 13A beschriebenen Videoanzeigevorrichtung, um eine Rahmeninterpolation zu implementieren, um die Rahmenanzeigerate zu verdoppeln, wie oben mit Bezug auf 16A–17 erläutert.
-
19 illustriert die Bewegungsvektoren, die durch ein Videoverarbeitungssystem zusammen mit Videorahmen aus einem codierten und komprimierten Videosignal extrahiert werden.
-
20 illustriert ein Rahmeninterpolationsverfahren, das eine Tabelle von Bewegungsvektoren verwendet.
-
21A–21D illustrieren den Betrieb einer Videoanzeigevorrichtung, die Verfahrens- und Systemausführungsbeispiele der vorliegenden Erfindung enthält.
-
22 stellt ein Zustandsübergangsdiagramm für das Videoverarbeitungssystem einer Videoanzeigevorrichtung bereit, das Verfahrens- und Systemausführungsbeispiele der vorliegenden Erfindung enthält.
-
23 stellt ein Zustandsübergangsdiagramm für das Zeitsteuerungssystem einer Videoanzeigevorrichtung bereit, das Verfahrens- und Systemausführungsbeispiele der vorliegenden Erfindung enthält.
-
Detaillierte Beschreibung der Erfindung
-
Ausführungsbeispiele der vorliegenden Erfindung sind auf Verfahren und Hardwaresysteme zum Erhöhen der Rahmenanzeigerate von Videoanzeigevorrichtungen auf effiziente und kostengünstige Arten gerichtet. Insbesondere erhöhen Ausführungsbeispiele der vorliegenden Erfindung die Rahmenanzeigerate einer Videoanzeigevorrichtung durch Generieren eines zweiten Satzes von Rahmen, die zwischen den aus einem Eingangs-Videostrom extrahierten Rahmen eingefügt werden, um die Anzahl von Rahmen zu erhöhen, die während jedes Zeitintervalls zum Anzeigen durch die Videoanzeigevorrichtung verfügbar sind. Beispielsweise wird bei einem HDTV, der 30 Rahmen pro Sekunde zum Anzeigen empfängt und die verfügbaren Rahmen durch einen Entschachtelungsprozess auf 60 Rahmen pro Sekunde verdoppelt, die Anzahl von Rahmen, die zum Anzeigen in dem Eingangs-Videostrom verfügbar sind, in einem Ausführungsbeispiel der vorliegenden Erfindung wiederum auf 160 Rahmen pro. Sekunde verdoppelt, wobei jeder Rahmen des so entstehenden Ausgangs-Videostroms für 1/120 einer Sekunde angezeigt wird, um eine Rahmenanzeigerate von 120 Hz zu erzeugen.
-
In einem ersten Unterabschnitt wird unten eine Codierung, Kompression, Dekompression und Decodierung von Videodaten im Überblick beschrieben. In einem zweiten Unterabschnitt wird eine momentan verfügbare Videoanzeigevorrichtung einschließlich einer vorgeschlagenen Implementierung zum Verdoppeln der Rahmenanzeigerate der momentan verfügbaren Videoanzeigevorrichtung beschrieben. In einem letzten Unterabschnitt werden unten Ausführungsbeispiele der vorliegenden Erfindung erläutert.
-
Codierung, Kompression, Dekompression und Decodierung von Videodaten
-
1 illustriert einen pixelbasierten Videosignal-Rahmen. Der Rahmen 102 kann als zweidimensionales Array von Pixelwerten betrachtet werden. Jede Zelle des zweidimensionalen Arrays, wie etwa Zelle 104, stellt einen Pixelwert zum Anzeigen durch ein entsprechendes Pixel einer elektronischen Anzeigevorrichtung dar, wie etwa einer Fernsehanzeige oder eines Computermonitors. Es gibt unterschiedliche Standards für Videosignal-Rahmen, einschließlich eines Standards, der spezifiziert, dass jeder Rahmen 240×352 Pixel zum Anzeigen auf einem Computermonitor enthält, und eines Standards, der spezifiziert, dass jeder Rahmen 1920×1080 Pixel zum Anzeigen auf einem Flachbildschirm-HDTV enthält. Die digitale Darstellung jedes Pixels, wie etwa des Pixelwerts 106, umfasst einen Luminanzwert 108 und zwei Chrominanzwerte 110–111. Der Luminanzwert 108 ist so vorstellbar, dass er die Grauskalierungs-Dunkelheit oder -Helligkeit des Pixels steuert, und die Chrominanzwerte 110 und 111 spezifizieren die durch das Pixel anzuzeigende Farbe.
-
2 illustriert die Codierung eines rahmenbasierten Videosignals. Ein rohes Videosignal kann als eine Serie oder Sequenz von Rahmen 120 betrachtet werden, die mit Bezug auf die Zeit geordnet sind. In einem üblichen Standard sind zwei aufeinanderfolgende Rahmen, wie etwa die Rahmen 122 und 124 in 2, durch eine Zeitdifferenz von 1/30 einer Sekunde getrennt. Der Videocodierungsprozess teilt die Sequenz von Rahmen in dem Rohsignal in eine zeitlich geordnete Sequenz aus Subsequenzen, wobei jede Subsequenz als eine „GOP” („group of pictures” = Bildgruppe) bezeichnet wird. Jede GOP kann die vorhergehenden und nachfolgenden GOPs in den ersten und letzten Rahmen überlappen. In 2 weisen die 13 Rahmen 126 eine einzige GOP auf. Die Anzahl von Rahmen in einer GOP kann unterschiedlich sein, abhängig von der jeweiligen Codec-Implementierung, der gewünschten Genauigkeit der Wiederherstellung des Videosignals, der gewünschten Auflösung und anderer Faktoren. Eine GOP beginnt und endet generell mit Zwischenrahmen wie etwa den Zwischenrahmen 128 und 130 in GOP 126. Zwischenrahmen, auch als „I-Rahmen” („I frames”) bezeichnet, sind Referenzrahmen, die räumlich codiert sind. In der GOP kann eine Anzahl von P-Rahmen 132–134 und B-Rahmen 136–139 sowie 140–143 auftreten. P-Rahmen und B-Rahmen können sowohl räumlich als auch zeitlich codiert sein. Die Codierung eines P-Rahmens stützt sich auf einen vorhergehenden I-Rahmen oder P-Rahmen, während die Codierung eines B-Rahmens sich sowohl auf einen vorhergehenden als auch einen nachfolgenden I-Rahmen oder P-Rahmen stützt. Generell werden I-Rahmen und P-Rahmen als Referenzrahmen betrachtet. Wie in 2 durch Pfeile wie etwa den Pfeil 144 gezeigt, können die für P-Rahmen und B-Rahmen ausgewählten Rahmen in der GOP in einer anderen Reihenfolge auftreten als der Reihenfolge, in der sie in einem Eingangsvideosignal auftreten. Jede GOP wird in zeitlicher Reihenfolge in ein Codierungsmodul 148 eingegeben, das die in der GOP enthaltenen Informationen in einen komprimierten Bitstrom 150 codiert, der zum Speichern auf einem elektronischen Speichermedium oder zur Übertragung über ein elektronisches Kommunikationsmedium ausgegeben werden kann.
-
3 illustriert einen ersten, logischen Schritt bei der Codierung eines Rahmens. Wie mit Bezug auf 1 oben erläutert, kann ein Videorahmen 102 als zweidimensionales Array von Pixelwerten betrachtet werden, wobei jeder Pixelwert einen Luminanzwert und zwei Chrominanzwerte aufweist. Somit kann ein einzelner Videorahmen alternativ so betrachtet werden, dass er aus einem Luminanzrahmen 302 und zwei Crominanzrahmen 304 und 306 zusammengesetzt ist. Da die menschliche visuelle Wahrnehmung schärfer auf Luminanz als auf Chrominanz eingestellt ist, werden die zwei Chrominanzrahmen 304 und 306 generell um einen Faktor 2 in jeder Dimension oder um einen Gesamtfaktor von 4 dezimiert, um niedriger auflösende Rahmen zu erzeugen. Beispielsweise kann ein 240 × 352-Videorahmen dezimiert werden, um einen niedriger auflösenden 120 × 175-Rahmen zu erzeugen.
-
4 illustriert die Zusammensetzung eines Videorahmens in Makroblöcke. Wie in 4 gezeigt, kann ein Videorahmen, wie etwa der 240 × 352-Videorahmen 401, von dem nur ein kleiner Teil in 4 erscheint, in einen Satz von nichtüberlappenden 16 × 16-Makroblöcken zerlegt werden. Dieser in 4 gezeigte kleine Teil des Rahmens ist in vier Makroblöcke 404–407 geteilt worden. Wenn die Makroblöcke in der Reihenfolge ihres Erscheinens von links nach rechts in aufeinanderfolgenden Zeilen des Videorahmens numerisch bezeichnet werden, ist der erste Makroblock 401 in 4 mit „0” bezeichnet und der zweite Makroblock 405 ist mit „1” bezeichnet. Auf den Makroblock 1 in der ersten Zeile des Videorahmens folgen 20 weitere Makroblöcke, in 4 nicht gezeigt, so dass der in 4 gezeigte dritte Makroblock 406, der erste Makroblock der zweiten Zeile, mit „22” bezeichnet ist und der in 4 gezeigte letzte Makroblock 407 mit „23” bezeichnet ist.
-
5 illustriert die Zerlegung eines Makroblocks in sechs 8 × 8-Blöcke. Wie oben erläutert, kann ein Videorahmen, wie etwa der Videorahmen 102 in 1, in eine Reihe von 16 × 16-Makroblöcken, wie etwa den Makroblock 404 in 4, zerlegt werden. Wie mit Bezug auf 3 erläutert, kann jeder Videorahmen oder Makroblock in einem Videorahmen so betrachtet werden, dass er aus einem Luminanzrahmen und zwei Chrominanzrahmen beziehungsweise einem Luminanzmakroblock und zwei Chrominanzmakroblöcken zusammengesetzt ist. Wie mit Bezug auf 3 erläutert, werden Chrominanzrahmen und/oder -makroblöcke generell um einen Gesamtfaktor 4 dezimiert. Somit kann ein gegebener Makroblock in einem Videorahmen, wie etwa der Makroblock 404 in 4, so betrachtet werden, dass er aus einem Luminanz-16 × 16-Makroblock 502 und zwei 8 × 8-Chrominanzblöcken 504 und 505 zusammengesetzt ist. Der Luminanzmakroblock 502 kann, wie in 5 gezeigt, in vier 8 × 8-Blöcke zerlegt werden. Somit kann ein gegebener Makroblock in einem Videorahmen, wie etwa der in 4 gezeigte Makroblock 404 in Videorahmen 401, in sechs 8 × 8-Blöcke 506 zerlegt werden, die vier Luminanz-8 × 8-Blöcke und zwei Chrominanz-8 × 8-Blöcke umfassen. Die räumliche Codierung von Videorahmen wird auf Basis von 8 × 8-Blöcken durchgeführt. Die zeitliche Codierung von Videorahmen wird auf Basis von 16 × 16-Makroblöcken durchgeführt.
-
6 illustriert die räumliche Codierung eines aus einem Videorahmen extrahierten 8 × 8-Blocks, wie oben mit Bezug auf 1–5 erläutert. Jede Zelle oder jedes Element des 8 × 8-Blocks 602, wie etwa die Zelle 604, enthält einen Luminanz- oder Chrominanzwert f(i, j), wobei i und j die Zeilen- beziehungsweise Spaltenkoordinaten der Zelle sind. Die Zelle wird aus der Raumdomäne, die durch das Array von Intensitätswerten f(i, j) dargestellt ist, in die Frequenzdomäne, die durch ein zweidimensionales 8 × 8-Array von Frequenzdomäne-Koeffizienten F(u, v) dargestellt ist, transformiert 606, in vielen Fällen unter Verwendung einer diskreten Kosinustransformation („DCT” = discrete cosine transform). Ein Ausdruck für eine exemplarische DCT ist oben in 6 gezeigt 608. Die Koeffizienten in der Frequenzdomäne zeigen räumliche Periodizitäten in vertikaler, horizontaler und sowohl vertikaler als auch horizontaler Richtung in der Raumdomäne an. Der Koeffizient F(0,0) 610 wird als der „DC”-Koeffizient bezeichnet und weist einen Wert proportional zu der durchschnittlichen Intensität innerhalb des 8 × 8-Raumdomäne-Blocks 602 auf. Die durch die Frequenzdomäne-Koeffizienten dargestellten Periodizitäten erhöhen sich bezüglich der Frequenz von dem Koeffizienten der niedrigsten Frequenz 610 zu dem Koeffizienten der höchsten Frequenz 612 entlang der Diagonale, die den DC-Koeffizienten 610 mit dem Koeffizienten der höchsten Frequenz 612 verbindet.
-
Als Nächstes werden die Frequenzdomäne-Koeffizienten quantisiert 614, um einen 8 × 8-Block von quantisierten Frequenzdomäne-Koeffizienten 616 zu erzeugen. 7 illustriert eine exemplarische Quantisierung von Frequenzdomäne-Koeffizienten. Die Quantisierung verwendet eine 8 × 8-Quantisierungsmatrix Q 702. In einem exemplarischen Quantisierungsprozess, in 7 durch den Ausdruck 704 dargestellt, wird jeder Frequenzdomäne-Koeffizient f(i, j) mit 8 multipliziert, und dann wird er unter Verwendung ganzzahliger Division durch den entsprechenden Wert in der Quantisierungsmatrix Q, Qi,j, dividiert, der zuerst um einen Skalierungsfaktor skaliert werden kann. Quantisierte Koeffizienten weisen klein-ganzzahlige Werte auf. Eine Untersuchung der Quantisierungsmatrix Q ergibt, dass in dem Quantisierungsprozess Koeffizienten höherer Frequenzen generell durch größere Werte dividiert werden als Koeffizienten niedrigerer Frequenzen. Da Q-Matrix-Ganzzahlen für Koeffizienten höherer Frequenzen größer sind, sind die Koeffizienten höherer Frequenzen am Ende in einem kleineren Bereich von Ganzzahlen oder Quantisierungsbehältern (quantization bins) quantisiert. Anders ausgedrückt, der Bereich quantisierter Werte für Koeffizienten niedrigerer Frequenzen ist größer als für Koeffizienten höherer Frequenzen. Da Koeffizienten niedrigerer Frequenzen generell größere Beträge aufweisen und generell mehr zu einem wahrgenommenen Bild beitragen als Koeffizienten höherer Frequenzen, hat die Quantisierung zum Ergebnis, dass viele der quantisierten Koeffizienten höherer Frequenzen in dem unteren rechten dreieckigen Teil des Quantisierte-Koeffizienten-Blocks 616 auf Null gebracht werden. Als Nächstes wird der Block quantisierter Koeffizienten 618 im Zickzack durchquert, um einen eindimensionalen Vektor von quantisierten Koeffizienten 620 zu erzeugen. Der eindimensionale Vektor von quantisierten Koeffizienten wird dann unter Verwendung unterschiedlicher Entropiecodierungstechniken codiert, generell Lauflängencodierung, gefolgt von Huffman-Codierung, um einen komprimierten Bitstrom 622 zu erzeugen. Entropiecodierungstechniken nutzen eine ungleichmäßige Verteilung der Frequenz des Auftretens von Symbolen innerhalb eines Symbolstroms, um den Symbolstrom zu komprimieren. Ein letzter Teil des eindimensionalen Quantisierte-Koeffizienten-Vektors 620 mit höchsten Indizes enthält oft nur Nullwerte. Eine Lauflängencodierung kann eine lange, aufeinanderfolgende Sequenz von Nullwerten durch ein einzelnes Auftreten des Wertes „0” und die Länge der Subsequenz von Nullwerten darstellen. Die Huffman-Codierung verwendet bitlängenvariable Codierungen von Symbolen, bei denen Codierungen kürzerer Länge häufiger auftretende Symbole darstellen, um eine Symbolkette zu komprimieren.
-
Eine räumliche Codierung verwendet nur Informationen, die in einem bestimmten 8 × 8-Raumdomäne-Block enthalten sind, um den Raumdomäne-Block zu codieren. Wie oben erläutert, werden I-Rahmen nur unter Verwendung einer räumlichen Codierung codiert. Anders ausgedrückt, jeder I-Rahmen wird in 8 × 8-Blöcke zerlegt, und jeder Block wird räumlich codiert, wie oben mit Bezug auf 6 erläutert. Da die Codierung von I-Rahmen nicht von anderen Rahmen in einem Videosignal abhängig ist, dienen I-Rahmen als eigenständige Referenzpunkte, die den Decodierungsprozess in gleichmäßig beabstandeten Intervallen verankern, wodurch eine Drift in dem decodierten Signal, die durch Interdependenzen zwischen codierten Rahmen entsteht, verhindert wird.
-
Da eine Sequenz von Videorahmen, oder ein Videosignal, oft ein dynamisches Bild von Menschen oder Objekten, die sich mit Bezug auf einen relativ festen Hintergrund bewegen, eine über einen Hintergrund geschwenkte Videokamera oder eine Szene codiert, die während eines Zeitraums relativ statisch ist, enthält eine Sequenz von Videobildern häufig eine große Menge redundanter Informationen, von denen einige oder viele aus einer anfänglichen Position in einem anfänglichen Rahmen an eine Reihe von nachfolgenden Positionen über nachfolgende Rahmen translatiert oder verschoben werden. Aus diesem Grund stellt eine Erfassung einer Bewegung von Bildern oder Teilbildern innerhalb einer Reihe von Videorahmen eine Einrichtung für relativ hohe Kompressionsniveaus bereit.
-
Techniken zum Erfassen der Bewegung von Bildern und Teilbildern innerhalb einer Sequenz von Videorahmen im Zeitverlauf und Verwenden der redundanten Informationen, die in diesen bewegten Bildern und Teilbildern enthalten sind, wird als zeitliche Kompression bezeichnet.
-
8 illustriert eine Teilbildbewegung über eine Sequenz von Rahmen und Bewegungsvektoren, die die Teilbildbewegung beschreiben. In 8 sind drei aus einer GOP ausgewählte Videorahmen 802–804 gezeigt. Rahmen 803 wird als der momentane Rahmen oder zu codierende und zu komprimierende Rahmen betrachtet. Rahmen 802 ist in der Sequenz von Rahmen des ursprünglichen Videosignals zeitlich früher aufgetreten als der momentane Rahmen 803, und Rahmen 804 folgt in dem ursprünglichen Videosignal auf Rahmen 803. Ein bestimmter 16 × 16-Makroblock 806 in dem momentanen Rahmen 803 wird in dem vorhergehenden Rahmen 802 an einer ersten und anderen Position 808 und in dem nachfolgenden Rahmen 804 an einer zweiten und anderen Position 810 gefunden. Beim Übereinanderlegen der Positionen des Makroblocks 806 in den vorhergehenden, momentanen und nachfolgenden Rahmen innerhalb eines einzelnen Rahmens 812 wird beobachtet, dass der Makroblock sich in der Sequenz von Rahmen in dem ursprünglichen Videosignal anscheinend von der ersten Position 808 durch die momentane Position 806 diagonal nach unten an die zweite Position 810 bewegt hat. Die Position des Makroblocks in dem momentanen Rahmen 806 und zwei Verschiebungs- oder Bewegungsvektoren 814 und 816 beschreiben die zeitliche und räumliche Bewegung des Makroblocks 806 in dem Zeitraum, der durch die vorhergehenden, momentanen und nachfolgenden Rahmen dargestellt ist. Das Grundkonzept der zeitlichen Kompression besteht darin, dass der Makroblock 806 in dem momentanen Rahmen als entweder einer der oder beide Bewegungsvektoren 814 und 816 codiert werden kann, da der Makroblock in Codierungen der vorhergehenden und nachfolgenden Rahmen codiert worden sein wird und daher in dem momentanen Rahmen redundante Informationen darstellt, abgesehen von den bewegungsvektorbasierten Informationen, die seine Position innerhalb des momentanen Rahmens betreffen.
-
9 zeigt die zum zeitlichen Codieren eines momentanen Rahmens verwendeten Informationen. Die zeitliche Codierung eines momentanen Rahmens verwendet den momentanen Rahmen 902 und entweder einen einzelnen vorhergehenden Rahmen 904 und einen einzelnen Bewegungsvektor 906, der dem vorhergehenden Rahmen zugeordnet ist, oder sowohl den vorhergehenden Rahmen und den zugeordneten Bewegungsvektor 904 und 906 als auch einen nachfolgenden Rahmen 908 und zugeordneten Bewegungsvektor 910. Eine zeitliche P-Rahmen-Codierung verwendet möglicherweise nur einen vorhergehenden Rahmen und einen vorhergehenden I-Rahmen oder P-Rahmen, und eine B-Rahmen-Codierung verwendet möglicherweise sowohl einen vorhergehenden als auch einen nachfolgenden I-Rahmen und/oder P-Rahmen.
-
10 illustriert eine zeitliche P-Rahmen-Codierung. Bei der zeitlichen P-Rahmen-Codierung werden ein 16 × 16-Makroblock des momentanen Rahmens 1002 und ein in dem vorhergehenden Rahmen gefundener, passender 16 × 16-Makroblock 1004 zum Codieren des 16 × 16-Makroblocks des momentanen Rahmens 1002 verwendet. Der Makroblock des vorhergehenden Rahmens 1004 wird identifiziert als dem Makroblock des momentanen Rahmens 1002 ausreichend ähnlich, um durch zeitliche Kompression komprimierbar zu sein, und als der Makroblock, der dem Makroblock des momentanen Rahmens am ähnlichsten ist. Zum Identifizieren eines am besten passenden Makroblocks in einem vorhergehenden Rahmen für einen gegebenen Makroblock innerhalb des momentanen Rahmens können unterschiedliche Techniken verwendet werden. Ein am besten passender Makroblock in dem vorhergehenden Rahmen kann für ausreichend ähnlich erachtet werden, wenn die Summe absoluter Differenzen („SAD” = sum of absolute differences) oder die Summe quadratischer Differenzen („SSD” = sum of squared differences) zwischen entsprechenden Werten in dem Makroblock des momentanen Rahmens und dem am besten passenden Makroblock des vorhergehenden Rahmens unterhalb eines Schwellenwertes liegen. Dem Makroblock des momentanen Rahmens 1002 und dem am besten passenden Makroblock des vorhergehenden Rahmens 1004 ist ein Bewegungsvektor (906 in 9) zugeordnet. Der Bewegungsvektor kann berechnet werden als die horizontalen und vertikalen Versätze Δx und Δy der oberen linken Zellen der Makroblöcke des momentanen Rahmens und des am besten passenden Makroblocks des vorhergehenden Rahmens. Der Makroblock des momentanen Rahmens 1002 wird von dem am besten passenden Makroblock des vorhergehenden Rahmens 1004 subtrahiert, um einen Restmakroblock 1006 zu erzeugen. Sodann wird der Restmakroblock in sechs 8 × 8-Blöcke 1008 zerlegt, wie oben mit Bezug auf 5 erläutert, und jeder der 8 × 8-Blöcke wird durch eine DCT 1010 transformiert, um einen 8 × 8-Block von Frequenzdomäne-Koeffizienten 1012 zu erzeugen. Der Block von Frequenzdomäne-Koeffizienten wird quantisiert 1014 und linearisiert 1015, um den eindimensionalen Vektor von quantisierten Koeffizienten 1016 zu erzeugen. Der eindimensionale Vektor von quantisierten Koeffizienten 1016 wird dann lauflängencodiert und Huffman-codiert und mit dem Bewegungsvektor zusammen paketiert, der dem Makroblock des momentanen Rahmens 1002 und dem am besten passenden Makroblock des vorhergehenden Rahmens 1004 zugeordnet ist, um den komprimierten Bitstrom 1018 zu erzeugen. Die zeitliche Kompression eines P-Blocks wird Makroblock für Makroblock durchgeführt. Wenn in dem vorhergehenden Rahmen für einen bestimmten Makroblock des momentanen Rahmens kein ähnlicher Makroblock zu finden ist, kann der Makroblock des momentanen Rahmens räumlich codiert werden, wie oben mit Bezug auf 6 erläutert. Während der zeitlichen Codierung eines momentanen Rahmens kann entweder ein vorhergehender I-Rahmen oder ein vorhergehender P-Rahmen als der vorhergehende Rahmen verwendet werden.
-
11 illustriert eine zeitliche B-Rahmen-Codierung. Viele der Schritte bei der zeitlichen B-Rahmen-Codierung sind mit denen bei der P-Rahmen-Codierung identisch. Bei der B-Rahmen-Codierung werden ein am besten passender Makroblock aus einem vorhergehenden Rahmen 1102 und ein am besten passender Makroblock aus einem nachfolgenden Rahmen 1104, die einem Makroblock eines momentanen Rahmens 1106 entsprechen, zusammengemittelt, um einen gemittelten passenden Rahmen 1108 zu erzeugen. Der Makroblock des momentanen Rahmens 1106 wird von dem gemittelten passenden Makroblock 1108 subtrahiert, um einen Restmakroblock 1110 zu erzeugen. Der Restmakroblock wird dann genau auf dieselbe Weise räumlich codiert, wie der Restmakroblock 1006 bei der P-Rahmen-Codierung räumlich codiert wird, wie in 10 beschrieben. Der eindimensionale Quantisierte-Koeffizienten-Vektor 1112, der sich aus der räumlichen Codierung des Restmakroblocks ergibt, wird entropiecodiert und mit den zwei Bewegungsvektoren paketiert, die dem am besten passenden Makroblock des vorhergehenden Rahmens 1102 und dem am besten passenden Makroblock des nachfolgenden Rahmens 1104 zugeordnet sind, um einen komprimierten Bitstrom 1114 zu erzeugen. Jeder Makroblock in einem B-Rahmen kann zeitlich komprimiert werden unter Verwendung nur eines am besten passenden Makroblocks des vorhergehenden Rahmens und zugeordneten Bewegungsvektors, wie in 10, nur eines am besten passenden Makroblocks des nachfolgenden Rahmens und zugeordneten Bewegungsvektors oder mit sowohl einem am besten passenden Makroblock des vorhergehenden Rahmens und zugeordnetem Bewegungsvektor als auch einem am besten passenden Makroblock des nachfolgenden Rahmens und zugeordnetem Bewegungsvektor, wie in 11 gezeigt. Zusätzlich kann, wenn für einen bestimmten Makroblock des momentanen Rahmens weder in dem vorhergehenden noch dem nachfolgenden Rahmen ein passender Makroblock zu finden ist, der momentane Makroblock räumlich codiert werden, wie mit Bezug auf 6 erläutert. Vorhergehende und nachfolgende Rahmen können entweder P- oder I-Rahmen sein.
-
12 illustriert eine DC-Codierung. Wie oben erläutert, stellt der Koeffizient F(0,0) der Frequenzdomäne die durchschnittliche Intensität in der Raumdomäne dar. Der DC-Koeffizient ist mit Bezug auf eine hochgenaue Rahmen-Wiederherstellung die wichtigste Information. Daher sind die DC-Koeffizienten generell mit höchstmöglicher Auflösung dargestellt und sind durch DCPM-Codierung codiert. Bei der DCPM-Codierung wird der DC-Koeffizient 1202 des ersten I-Rahmens 1204 in den Bitstrom codiert, und für jeden DC-Koeffizienten nachfolgender Rahmen 1206–1208 wird die Differenz zwischen dem DC-Koeffizienten des nachfolgenden Rahmens und dem DC-Koeffizienten des ersten Referenzrahmens 1202 in den Bitstrom codiert.
-
Die Decodierung des komprimierten Bitstroms (150 in 2), der durch das oben mit Bezug auf 1–13 erläuterte Videocodierungsverfahren generiert wird, wird durch Umkehrung der Codierungsschritte durchgeführt. Eine Entropiedecodierung des Bitstroms gibt eindimensionale Quantisierte-Koeffizienten-Vektoren für räumlich codierte Blöcke und für Restblöcke zurück, die während der zeitlichen Kompression generiert werden. Außerdem gibt die Entropiedecodierung Bewegungsvektoren und andere Anfangsblockinformationen zurück, die in dem komprimierten Bitstrom paketiert sind, um die codierten Informationen zu beschreiben und die Decodierung zu ermöglichen. Die eindimensionalen Quantisierte-Koeffizienten-Arrays können dazu verwendet werden, entsprechende zweidimensionale Quantisierte-Koeffizienten-Blöcke und quantisierte Restblöcke zu generieren, und die Quantisierte-Koeffizienten-Blöcke und quantisierten Restblöcke können dann in wiederhergestellte Frequenzdomäne-Koeffizientenblöcke umgewandelt werden. Eine Wiederherstellung der Frequenzdomäne-Koeffizientenblöcke führt generell Rauschen ein, da bei dem Quantisierungsschritt des Codierungsprozesses Informationen verloren gegangen sind. Die wiederhergestellten Frequenzdomäne-Koeffizientenblöcke können dann unter Verwendung einer inversen DCT in die Raumdomäne transformiert werden und zu wiederhergestellten Videorahmen zusammengesetzt werden, wobei Restrahmen wieder zu Makroblöcken hinzugefügt werden, die durch Bewegungsvektoren in bereits wiederhergestellten Rahmen während der inversen zeitlichen Codierung gefunden wurden.
-
Eine momentan verfügbare Videoanzeigevorrichtung und vorgeschlagene Verbesserung
-
13A–I illustrieren den Betrieb einer momentan verfügbaren Videoanzeigevorrichtung. Die in 13A gezeigte Videoanzeigevorrichtung besteht aus einem Videoverarbeitungssystem 1302, das komprimierte und codierte Videodaten 1304 als Eingang empfängt, die als ein „Videosignal” bezeichnet werden, das Eingangsvideosignal unter Verwendung eines internen Prozessors und/oder von Logikschaltungen 1306 verarbeitet, um dekomprimierte und decodierte Videorahmen zu erzeugen, die in Videorahmenpuffern 1308 und 1310 gespeichert werden, und dekomprimierte und decodierte Videorahmen über ein internes Kommunikationsmedium 1312 an ein Zeitsteuerungssystem 1314 überträgt. Das Zeitsteuerungssystem 1314 empfängt die dekomprimierten und decodierten Videorahmen aus dem Videoverarbeitungssystem 1302 in Videorahmenpuffern 1316 und 1318, aus denen die Zeitsteuerung dann die Videorahmen liest, um einen Anzeigeschirm 1320 zu steuern, um die Videorahmen einem oder mehreren Zuschauern anzuzeigen. Die in 13A beschriebene Videoanzeigevorrichtung zeigt die Videorahmen auf einem Flüssigkristall-Anzeigeschirm an, der eine zweidimensionale Matrix von Anzeigeelementen aufweist, die wiederum jeweils drei verschiedenfarbige Anzeigeelementkomponenten aufweisen, die elektronisch gesteuert werden können, um rotes, grünes beziehungsweise blaues Licht zu emittieren. Jedes Anzeigeelement wird in dem vorliegenden Dokument als ein „Pixel” bezeichnet.
-
Das Videoverarbeitungssystem 1302 ist primär für die rechenintensive Aufgabe zuständig, das komprimierte und codierte Videodatensignal, das durch Übertragungsmedien oder durch elektronische Kommunikationsmedien empfangen wird, zu dekomprimieren und decodieren. Wie unten detaillierter erläutert, werden zwei Videorahmenpuffer 1308 und 1310 verwendet, um LESE/SCHREIB-Konflikte sowohl in dem Videoverarbeitungssystem als auch in dem Zeitsteuerungssystem zu vermeiden. Das interne Kommunikationsmedium 1312 ist bei vielen LCD-Anzeigevorrichtungen ein Satz von Paaren von Niederspannungs-Differenzsignalisierungs-Signalleitungen („LVDS” = low-voltage differential signaling) wie etwa denen, die bei den Kommunikationsmedien mit serieller angefügter SCSI („SAS” = serial attached SCSI) und PCIe (PCI express) verwendet werden. LVDS-basierte Kommunikationsmedien verfügen über hohe Bandbreiten und flexible Konfiguration. Zusätzliche Paare von LVDS-Leitungen können beispielsweise hinzugefügt werden, um die Bandbreite eines LVDS-basierten Kommunikationsmediums schrittweise zu erhöhen. Jedes zusätzliche Paar von LVDS-Signalleitungen erhöht jedoch die Implementierungskosten und vermehrt die Entwurfskomplexität.
-
Wie in 13B gezeigt, wird zu Beginn des Anzeigens von Video ein erster Rahmen aus dem Videostrom durch den Prozessor 1306 des Videoverarbeitungssystems 1302 dekomprimiert und decodiert und in dem ersten Videorahmenpuffer 1308 gespeichert. Bei vielen momentan verfügbaren Systemen werden Rahmen mit halber Auflösung ungefähr mit der Rahmenanzeigerate empfangen. Somit wird in 13B der erste Rahmen mit halber Auflösung in dem Videorahmenpuffer 1308 platziert, dargestellt durch Kreuzschraffur. Der nächste Rahmen wird dekomprimiert und decodiert und, wie in 13C gezeigt, zu dem ersten Rahmen mit halber Auflösung hinzugefügt, um einen kompletten Videorahmen mit voller Auflösung zu erzeugen, der in dem Videorahmenpuffer 1308 gespeichert ist. LC-Anzeigen führen eine fortlaufende Anzeige von Rahmen mit voller Auflösung durch, im Gegensatz zu CRT-Anzeigen, die verschachtelte Felder anzeigen, die jeweils abwechselnde Zeilen einer CRT-Anzeige aufweisen. Wie in 13D gezeigt, beginnt der Prozessor einen nächsten Videorahmen in dem zweiten Videorahmenpuffer 1310 aufzubauen, während der in dem ersten Rahmenpuffer 1308 gespeicherte Rahmen an den ersten Rahmenpuffer 1316 in dem Zeitsteuerungssystem 1314 übertragen wird. Der nächste Videorahmen wird unter Verwendung eines Entschachtelungsprozesses, der einen Rahmen mit voller Auflösung erzeugt, aus einem nächsten dekomprimierten und decodierten Rahmen mit halber Auflösung und dem zuvor aufgebauten Rahmen aufgebaut. Der Entschachtelungsprozess erlaubt das Aufbauen von Rahmen mit voller Auflösung mit der Rate, mit der halbauflösende Rahmen empfangen, dekomprimiert und decodiert werden. Eine doppelte Pufferung wird verwendet, damit Videodaten aus dem ersten Videorahmen an das Zeitsteuerungssystem übertragen werden können, während neu dekomprimierte und decodierte Videodaten in den zweiten Videorahmenpuffer geschrieben werden können und umgekehrt. Als Nächstes setzt sich der Prozess, wie in 13E–F gezeigt, unbegrenzt fort, während Videorahmen durch das Videoverarbeitungssystem kontinuierlich dekomprimiert und decodiert werden. Ein nächster Rahmen wird in dem ersten Videorahmenpuffer 1308 aufgebaut, wie in 13E gezeigt, während der bereits aufgebaute Videorahmen in dem zweiten Videorahmenpuffer 1310 an den zweiten Videorahmenpuffer 1318 in dem Zeitsteuerungssystem von 1314 übertragen wird. Sodann werden, wie in 13F gezeigt, die Puffer getauscht, so dass der nächste Videorahmen in dem zweiten Videorahmenpuffer 1310 des Videoverarbeitungssystems 1302 aufgebaut wird, während der bereits aufgebaute Videorahmen in dem ersten Videorahmenpuffer 1308 an den ersten Videorahmenpuffer 1316 des Zeitsteuerungssystems 1314 übertragen wird. In dem Videoverarbeitungssystem wird zu jeder gegebenen Zeit ein nächster Rahmen aus neu dekomprimierten und decodierten Videodaten aufgebaut, während gleichzeitig ein bereits aufgebauter Rahmen an das Zeitsteuerungssystem übertragen wird. In dem Zeitsteuerungssystem wird ein nächster Rahmen in einem der zwei Videorahmenpuffer empfangen, während gleichzeitig ein bereits empfangener Videorahmen in einem anderen Videorahmenpuffer gelesen und in LCD-Anzeige-Steuerungssignale umgewandelt wird, die an den LCD-Bildschirm übertragen werden.
-
14 illustriert eine LCD-Anzeige. Die LCD-Anzeige 1402 zeigt eine Videosequenz 1404 auf einer zweidimensionalen Matrix von Pixelelementen an. Wie in 14 gezeigt, erscheint jeder kleine Teil der LCD-Anzeige 1406 unter Vergrößerung oder bei Betrachtung aus der Nähe als zweidimensionale Matrix von Anzeigeelementen oder Pixeln 1408. Bei noch größerer Vergrößerung 1410 ist sichtbar, dass jedes Pixel drei Unterelemente 1412–1414 aufweist, die, wenn sie elektronisch dazu gesteuert werden, blaues, grünes beziehungsweise rotes Licht emittieren. Ein Pixel kann Licht einer Farbe, die aus einem Bereich verschiedener Farben ausgewählt ist, mit einer Intensität emittieren, die aus einem Bereich von Intensitäten ausgewählt ist.
-
LCD-Anzeigen sind Abtast-und-Halte-Vorrichtungen. Wenn ein Pixel elektronisch dazu gesteuert wird, Licht einer bestimmten Farbe und Intensität zu emittieren, emittiert das Pixel weiter Licht der bestimmten Farbe und Intensität bis zu einem nächsten Zeitpunkt, zu dem das Pixel dazu gesteuert wird, Licht einer anderen Farbe und/oder Intensität zu emittieren. Die Abtast-und-Halte-Eigenschaft von LCD-Anzeigen unterscheidet sich von derjenigen eines CRT-Bildschirms, bei dem eine Elektronenkanone eine phosphorbeschichtete Oberfläche abtastet, um Pixel zu illuminieren, deren Emissionsintensität sinkt, während die Abtastung auf einen nächsten Teil der Oberfläche des phosphorbeschichteten Bildschirms übergeht.
-
Leider führen Abtast-und-Halte-Anzeigen ein wahrnehmbares Verwischen bewegter Objekte ein. 15 illustriert dieses Verwischen bewegter Objekte durch Abtast-und-Halte-Anzeigevorrichtungen. 15 zeigt einen ersten Teil eines Videobildes, das ein bewegtes Objekt auf ideale Weise sowie auf die entschieden nichtkontinuierliche Weise 1504 anzeigt, die durch Abtast-und-Halte-Anzeigevorrichtungen erzeugt wird. Idealerweise würde ein bewegtes Objekt, das sich von Position 1506 an Position 1508 bewegt, dem Betrachter als eine Sequenz von Objektbildern 1506, 1508 und 1510–1512 mit relativ kleinen inkrementellen Positionsveränderungen erscheinen, die es dem Sichtsystem des Betrachters erlauben würden, leicht eine Illusion kontinuierlicher Bewegung bereitzustellen. Bei einer CRT-basierten Anzeige sinkt die Intensität der Pixel im Verlauf des Zwischen-Rahmen-Intervalls, was dem menschlichen visuellen System dabei hilft, eine Illusion kontinuierlicher Bewegung bereitzustellen. Bei einer Abtast-und-Halte-Anzeigevorrichtung dagegen wird das Objekt für ein volles Rahmenanzeigeintervall an einer ersten Position 1520 angezeigt, wechselt für ein zweites volles Rahmenanzeigeintervall plötzlich an eine zweite Position 522 und wechselt dann wieder an eine dritte Position 1524. Anders ausgedrückt, die Abtast-und-Halte-Anzeigevorrichtung stellt keine Wahrnehmung kontinuierlicher Bewegung bereit, was ein wahrgenommenes Verwischen eines Objektes in Bewegung durch das menschliche visuelle System zum Ergebnis hat. Ein menschlicher Betrachter sieht das bewegte Objekt verwischt über die Region, die die drei diskreten Objektbilder 1520, 1522 und 1524 enthält.
-
16A–B illustrieren eine mögliche Lösung des Verwischungsproblems, das Abtast-und-Halte-Anzeigevorrichtungen mit niedrigen und mittleren Rahmenanzeigeraten eigen ist. In 16A sind drei kleine Teile einer digital codierten Videosequenz 1602–1604 mit Bezug auf eine Zeitlinie 1606 dargestellt. Zu der Zeit t1 1608 umfasst ein Videorahmenteil 1602 ein kleines Objekt 1612 in der unteren linken Ecke. Zu der Zeit t2 1614 wird ein neuer Videorahmenteil angezeigt, bei dem das Objekt sich an eine neue Position 1616 bewegt hat. Der anfängliche Videorahmenteil 1602 wird von der Zeit t1 bis zu der Zeit t2 kontinuierlich angezeigt. Der Videorahmenteil 1608 wird von der Zeit t2 1614 bis zu der Zeit t3 1618 kontinuierlich angezeigt, wobei an diesem Punkt ein nächster Videorahmenteil 1604 angezeigt wird. Es wird darauf hingewiesen, dass das Objekt sich noch weiter an eine neue Position 1620 bewegt hat. Wie mit Bezug auf 15 erläutert, wird dieses diskontinuierliche Springen des bewegten Objektes von einer Position an eine andere zu Zeitpunkten, die dem Anzeigen von Rahmen entsprechen, von einem menschlichen Betrachter als ein Verwischen des Objektes wahrgenommen.
-
16B illustriert einen Ansatz zur Verbesserung des Verwischens von schnell bewegten Objekten in einer Videoszene, das durch eine Abtast-und-Halte-Anzeigevorrichtung eingeführt wird. Wie in
16B gezeigt, sind zwei neue Rahmenteile
1630 und
1632 zu den Zeiten
1634 beziehungsweise
1636 eingeführt worden. Durch Einführung der zwei neuen, verschachtelnden Rahmen ist die Bewegung in horizontaler Richtung bei der in
16B gezeigten Sequenz aus fünf Rahmenteilen relativ kontinuierlicher als bei der in
16A gezeigten Sequenz aus drei Rahmenteilen. Jedoch ist aufgrund der niedrigeren Begrenzung der Objektgrenzen, die sich aus der endlichen Pixelgröße ergibt, die Bewegung in vertikaler Richtung immer noch in dem Intervall t
1 bis t
2 und in dem Intervall t
2 bis t
3 festgelegt. Jedoch erzeugen die fünf in
16B gezeigten Rahmenteile, wenn sie mit der doppelten Rahmenanzeigerate der in
16A gezeigten Rahmenteile angezeigt werden, eine signifikante Verbesserung des wahrgenommenen Verwischens von schnell bewegten Objekten. Leider werden Videosignale mit einer festen Rahmenerfassungsrate erfasst, und der Wunsch nach einer Verbesserung von Verwischen durch Einführen zusätzlicher, verschachtelnder Rahmen in eine Rahmensequenz kann nicht durch Erhöhen der Rahmenerfassungsrate erfüllt werden.
-
17 illustriert ein Verfahren, mit dem Zwischenrahmen erzeugt werden können, um die Rahmenanzeigerate in einer Abtast-und-Halte-Videoanzeigevorrichtung zu erhöhen. 17 zeigt einen Rahmen n 1702, der ein kleines bewegtes Objekt 1704 enthält, und einen Rahmenteil n + 1 1706, in dem das kleine bewegte Objekt sich an eine andere Position 1708 bewegt hat. Ein verschachtelnder n / 2 -Rahmen 1710 kann durch Mitteln der Pixelwerte von Rahmenteilen n und n + 1 erzeugt werden. Anders ausgedrückt, der Pixelwert für jedes Pixel Pi,j in dem Rahmen n / 2 wird berechnet als: Pi,j( n / 2) = 1 / 2(Pi,j(n) + Pi,j(n + 1))
-
Wie in 17 gezeigt, führt dies nicht zu einer vollkommenen Interpolation, bei der das Objekt an einer Zwischenposition erscheint, sondern erzeugt stattdessen zwei Bilder mit halber Intensität 1712 und 1714 des Objekts. Durch Erhöhung der Rahmenanzeigerate und Bereitstellen eines zusätzlichen Bewegungshinweises für das menschliche visuelle System ergibt sich jedoch eine signifikante Verringerung des wahrgenommenen Verwischens. Bei alternativen Entwürfen können alternative Arten von Rahmeninterpolation verwendet werden, einschließlich verschiedener Arten von Pixelkombinationsfunktionen.
-
18 illustriert Veränderungen an der mit Bezug auf 13A beschriebenen Videoanzeigevorrichtung, um Rahmeninterpolation zu implementieren, um die Rahmenanzeigerate zu verdoppeln, wie oben mit Bezug auf 16A–17 erläutert. Zu dem Videoverarbeitungssystem 1806 sind zwei zusätzliche Videorahmenpuffer 1802 und 1804 hinzugefügt worden, und zu dem Zeitsteuerungssystem 1812 sind zwei zusätzliche Videorahmenpuffer 1808 und 1810 hinzugefügt worden. Während der bereits aufgebaute Videorahmen in Videorahmenpuffer 1 1814 von dem Videoverarbeitungssystem 1806 an das Zeitsteuerungssystem 1812 übertragen wird und während ein nächster Rahmen in dem Videorahmenpuffer 2 1816 dekomprimiert und decodiert und aufgebaut wird, wird ein interpolierter Rahmen generiert und in Puffer 3 1802 platziert. Der bereits aufgebaute Videorahmen in Puffer 4 1804 wird an den Puffer 4 1810 des Zeitsteuerungssystems 1812 übertragen. Gleichzeitig wird der bereits empfangene Videorahmen in Puffer 3 1808 des Zeitsteuerungssystems 1812 auf dem Anzeigemonitor angezeigt. Die Rahmeninterpolation wird in dem Videoverarbeitungssystem 1806 durchgeführt, da das Videoverarbeitungssystem die Rechenressourcen für diesen relativ rechenaufwendigen Prozess aufweist.
-
Die Implementierung der in 18 gezeigten, verbesserten Vorrichtung mit höherer Rahmenanzeigerate bringt signifikant erhöhte Kosten und Entwurfskomplexitäten mit sich. Das Videoverarbeitungssystem 1806 und das Zeitsteuerungssystem 1812 erfordern jeweils eine Verdoppelung des für Videorahmenpuffer benötigten Speichers, und die Signalleitungen der Interkommunikationsmedien zwischen dem Videoverarbeitungssystem und dem Zeitsteuerungssystem müssen ebenfalls verdoppelt sein, um die zusätzliche Bandbreite bereitzustellen, die benötigt wird, um zweimal so viele Rahmen pro Sekunde zwischen dem Videoverarbeitungssystem und dem Zeitsteuerungssystem zu übertragen.
-
Ausführungsbeispiele der vorliegenden Erfindung
-
19 illustriert die Bewegungsvektoren, die durch ein Videoverarbeitungssystem zusammen mit Videorahmen aus einem codierten und komprimierten Videosignal extrahiert werden. Wie in dem ersten Unterabschnitt oben erläutert, verwendet die Videocodierung Bewegungsvektoren, um die Bewegung von Makroblöcken von Rahmen zu Rahmen zu beschreiben, so dass anstelle der Makroblöcke Bewegungsvektoren übertragen werden können, um das Kompressionsverhältnis für komprimierte und codierte Videosignale signifikant zu erhöhen. Wenn ein dekomprimierter und decodierter Videorahmen als zweidimensionale Matrix von Makroblöcken betrachtet wird, von der ein kleiner Vier-Makroblock-Teil in 19 1902 gezeigt ist, so erzeugt der Dekompressions- und Decodierungsprozess zusätzlich eine zweidimensionale Tabelle von Bewegungsvektoren für jeden Makroblock, von der ein Teil 1904, der dem Teil des zweidimensionalen Arrays von Makroblöcken entspricht, in 19 gezeigt ist. Somit gibt es für jeden Makroblock, wie etwa den Makroblock 1906, einen entsprechenden Bewegungsvektor, wie etwa den Bewegungsvektor 1908, in einer begleitenden Tabelle von Bewegungsvektoren. Wie in dem ersten Unterabschnitt erläutert, wird im Fall von Diskontinuitäten in der Videosequenz möglicherweise nicht immer ein Bewegungsvektor für einen Makroblock gefunden, wobei dann ein Bewegungsvektor der Länge 0 angenommen werden kann. Bewegungsvektoren werden auf mehrere verschiedene Arten codiert. Beispielsweise kann ein Bewegungsvektor so codiert sein, dass er eine von acht oder 16 verschiedenen Richtungen aufweist, wobei drei beziehungsweise vier Bits verwendet werden, zusammen mit einer Länge, die in ausreichend zusätzlichen Bits codiert ist, um die größtmögliche Translationsdistanz eines Makroblocks zwischen aufeinanderfolgenden Rahmen zu beschreiben. Alternativ können die horizontalen und vertikalen Verschiebungen eines Makroblocks zusammen als ein Bewegungsvektor codiert sein.
-
20 illustriert ein Rahmeninterpolationsverfahren, das eine Tabelle von Bewegungsvektoren verwendet. 20 zeigt einen kleinen Teil eines Videorahmens n 2002 und Videorahmens n + 1 2004, wobei sich ein kleines Objekt 2006 von einer unteren linken Region des Bildteils zu einer oberen rechten Region des Bildteils bewegt. Es wird darauf hingewiesen, dass die Teile von Rahmen Rasterlinien aufweisen, die eher Makroblöcken als Pixeln entsprechen. Um einen interpolierten Rahmen 2008 aus dem Teil des Rahmens n 2002 und dem Teil des Rahmens n + 1 2004 zu erzeugen, ist es ausreichend, über den Rahmenteil 2002 zusammen mit der für den Rahmenteil n + 1 2004 erstellten Bewegungsvektortabelle zu verfügen. Insbesondere enthält die Bewegungsvektortabelle die rückwärts weisenden Bewegungsvektoren, d. h. die Bewegungsvektoren, die die Bewegung von Makroblöcken zwischen den Rahmenteilen 2002 und 2004 beschreiben. Die Bewegung der Makroblöcke des bewegten Objektes in dem Intervall zwischen Rahmen 2002 und Rahmen 2004 wird durch Bewegungsvektoren beschrieben, die eine positive horizontale Translation von 96 Pixeln und eine positive vertikale Translation von 96 Pixeln spezifizieren. Daher kann der interpolierte Rahmen 2008 generiert werden, indem die Bewegungsvektoren in der Bewegungsvektortabelle modifiziert werden, indem die Längen der Bewegungsvektoren im Wesentlichen durch zwei geteilt werden. Somit kann der interpolierte Rahmen generiert werden, indem der Rahmenteil des vorhergehenden Rahmens in einen Puffer kopiert wird, während gemäß modifizierten Bewegungsvektoren in einer begleitenden Bewegungsvektortabelle Translationen auf die Makroblöcke angewandt werden. Wie bei jedem Interpolationsverfahren ist ein bewegungsvektorbasiertes Rahmeninterpolationsverfahren nicht vollkommen. Jedoch kann für die Mehrheit der Makroblöcke in einem Bild eine sinnvolle Interpolation vorgenommen werden, wodurch die wahrgenommenen Diskontinuitäten in der Bewegung, die sich aus Abtast-und-Halte-Anzeigevorrichtungen ergeben, signifikant verbessert werden.
-
21A–D illustrieren den Betrieb einer Videoanzeigevorrichtung, die Verfahrens- und Systemausführungsbeispiele der vorliegenden Erfindung enthält. Das Videoverarbeitungssystem 2102 umfasst zusätzlich zu Videorahmenpuffern 1 (2104) und 2 (2106) zwei Bewegungsvektortabellenpuffer 2108 und 2110. Das Zeitsteuerungssystem 2112 umfasst zwei zusätzliche Videorahmenpuffer 2114 und 2116 zur Aufnahme interpolierter Rahmen und umfasst eine zusätzliche Verarbeitungskomponente 2118, die Videorahmeninterpolation auf Basis von Bewegungsvektortabellen durchführt, wie oben mit Bezug auf 20 erläutert. Die zusätzliche Verarbeitungskomponente kann in Firmware, Software oder Logikschaltungen oder einer Kombination aus zweien oder mehr von Firmware, Software und Logikschaltungen implementiert sein. Ein erweitertes Kommunikationsmedium 2120 verbindet das Videoverarbeitungssystem 2102 mit dem Zeitsteuerungssystem 2112. Beispielsweise können ein oder mehrere zusätzliche Paare von LVDS-Signalleitungen zu dem Satz von LVDS-Signalleitungspaaren des Kommunikationsmediums 1312 in 13A hinzugefügt sein. Anders als bei der in 18 illustrierten Vorrichtung braucht das Kommunikationsmedium jedoch nicht die doppelte Bandbreite bereitzustellen wie das in 13A gezeigte Kommunikationsmedium, weil Bewegungsvektortabellen viel kleiner sind als Videorahmen, generell zwischen 1/6 und 1/3 so groß wie Videorahmen, und daher keine Verdoppelung der Bandbreite des Kommunikationsmediums erfordern. Somit ist die Videoanzeigevorrichtung, die Verfahrens- und Systemausführungsbeispiele der vorliegenden Erfindung enthält, unter Verwendung von bewegungsvektorbasierter Videorahmeninterpolation gemäß Verfahren der vorliegenden Erfindung in der Lage, die Rahmenanzeigerate unter Verwendung von bewegungsvektorbasierter Rahmeninterpolation bei nur mäßiger Erhöhung der Komplexität und der Kosten der Videoanzeigevorrichtung zu verdoppeln.
-
In 21A dekomprimiert und decodiert das Videoverarbeitungssystem und einen Rahmen und speichert den dekomprimierten und decodierten Rahmen in dem Videorahmenpuffer 1 (2104), während es Rückwärtsbewegungsvektoren, die während des Dekompressions- und Decodierungsprozesses gewonnen und für die Rahmeninterpolation modifiziert wurden, wie oben erläutert, in den Bewegungsvektortabellenpuffer 2 (2110) speichert. Der bereits aufgebaute Videorahmen in Videorahmenpuffer (2106) in dem Videoverarbeitungssystem wird an den Videorahmenpuffer 2 (2122) in dem Zeitsteuerungssystem übertragen, und der in Videorahmenpuffer 1 (2124) gespeicherte, bereits empfangene Videorahmen des Zeitsteuerungssystems wird auf dem LCD-Bildschirm angezeigt.
-
In 21B wird der Inhalt der Bewegungsvektortabelle 2 (2110) des Videoverarbeitungssystems an das Zeitsteuerungssystem 2112 übertragen, während damit begonnen worden ist, einen nächsten Rahmen zu dekomprimieren und decodieren und in den Videorahmenpuffer 2 (2106) des Videoverarbeitungssystems zu speichern. Das Zeitsteuerungssystem verwendet die Bewegungsvektoren der Bewegungsvektortabelle 2 und einen bereits empfangenen Videorahmen in Videorahmenpuffer 2 (2122), um einen interpolierten Rahmen zu generieren, der in dem Videorahmenpuffer 2.5 (2116) gespeichert wird.
-
In 21C wird der Rahmen, mit dessen Dekomprimierung und Decodierung in 21B begonnen wurde, weiter dekomprimiert und decodiert und in Videorahmenpuffer 2 2106 gespeichert, wobei Bewegungsvektoren, die während dieses Prozesses extrahiert werden und zur Rahmeninterpolation modifiziert werden, in Bewegungsvektortabellenpuffer 1 2108 gespeichert werden. Der in Videorahmenpuffer 1 (2104) gespeicherte, bereits aufgebaute Videorahmen wird an Videorahmenpuffer 1 (2124) in dem Zeitsteuerungssystem 2112 übertragen.
-
In 21D ist damit begonnen worden, einen nächsten Rahmen zu dekomprimieren und decodieren und in den Videorahmenpuffer 1 (2104) zu speichern, während die Bewegungsvektoren in dem Bewegungsvektortabellenpuffer 1 2108 an das Zeitsteuerungssystem 2112 übertragen werden. Das Zeitsteuerungssystem verwendet die Bewegungsvektoren zusammen mit dem in Videorahmenpuffer 1 (2124) gespeicherten, bereits empfangenen Videorahmen, um einen interpolierten Rahmen zu generieren, der in Videorahmenpuffer 1.5 (2114) gespeichert wird, während der in Videorahmenpuffer 2.5 (2116) gespeicherte, bereits aufgebaute, interpolierte Rahmen auf dem LCD-Bildschirm angezeigt wird. Die in 21A–D illustrierte Sequenz von Operationen läuft somit kontinuierlich ab, um Videorahmen in dem Eingangsvideosignal zu decodieren und dekomprimieren, Bewegungsvektoren zu extrahieren, modifizieren und in Bewegungsvektortabellen zu speichern, die dekomprimierten und decodierten Videorahmen und modifizierten Bewegungsvektortabellen an das Zeitsteuerungssystem zu übertragen, durch das Zeitsteuerungssystem interpolierte Rahmen zu generieren und sowohl die dekomprimierten und decodierten Videorahmen aus dem Eingangsvideosignal als auch die interpolierten Rahmen auf verschachtelte Weise mit dem Zweifachen der nominalen Rahmenanzeigerate anzuzeigen. Auf diese Weise kann beispielsweise ein 60-Hz-LDC-Fernseher erweitert werden, um einen 120-Hz-LCD-Fernseher herzustellen. Bei alternativen Ausführungsbeispielen können zusätzliche interpolierte Rahmen zwischen dekomprimierten und decodierten Rahmen eingefügt werden, um die Rahmenanzeigerate weiter zu erhöhen.
-
In dem ersten Unterabschnitt werden mehrere verschiedene Rahmentypen erläutert, die in einem codierten und komprimierten Videosignal enthalten sind, einschließlich I-, B- und P-Rahmen. Codierte I-Rahmen sind nicht von Bewegungsvektoren begleitet, P-Rahmen umfassen Rückwärtsbewegungsvektoren, und B-Rahmen umfassen sowohl Rückwärts- als auch Vorwärtsbewegungsvektoren. Eine zusätzliche Komplexität zu der Videorahmeninterpolation auf Basis von Bewegungsvektoren in bestimmten Ausführungsbeispielen der vorliegenden Erfindung besteht darin, dass für den Rahmen, der einem I-Rahmen vorausgeht, Vorwärtsbewegungsvektoren für die Bewegungsvektortabelle extrahiert werden, die den I-Rahmen begleitet, während für alle anderen Rahmen Rückwärtsbewegungsvektoren aus nachfolgenden Rahmen verwendet werden, um die Bewegungsvektortabellen zu vergleichen, die die vorhergehenden Rahmen begleiten. Es können alternative Verfahren verwendet werden, um das Fehlen von Bewegungsvektoren in codierten I-Rahmen zu überwinden, einschließlich eines Interpolierens eines Rahmens zwischen einem ersten Rahmen und einem zweiten I-Rahmen durch ein Mittlungsverfahren oder ein anderes Berechnungsverfahren, das keine Bewegungsvektoren verwendet.
-
22 stellt ein Zustandsübergangsdiagramm für das Videoverarbeitungssystem einer Videoanzeigevorrichtung bereit, das Verfahrens- und Systemausführungsbeispiele der vorliegenden Erfindung enthält. Ein Videoverarbeitungssystem durchläuft generell Übergänge durch einen Zyklus, der Zustände 2202–2205 aufweist. Zustand 2202 entspricht dem in 21A abgebildeten Zustand, Zustand 2203 entspricht dem in 21B abgebildeten Zustand, Zustand 2204 entspricht dem in 21C abgebildeten Zustand und Zustand 2205 entspricht dem in 21D abgebildeten Zustand. Wenn der nächste zu decodierende Rahmen jedoch einem I-Rahmen vorhergeht, wird die Sequenz von Zuständen 2206–2209 oder die Sequenz von Zuständen 2210–2213 durchgeführt, um in den Zuständen 2206 und 2210 sowohl Rückwärts- als auch Vorwärtsbewegungsvektoren zu extrahieren und modifizieren, so dass eine Bewegungsvektortabelle für einen I-Rahmen in den Zuständen 2208 und 2212 erstellt werden kann. Bei alternativen Ausführungsbeispielen kann alternativ ein Interpolationsverfahren für I-Rahmen verwendet werden, das keine Bewegungsvektoren verwendet, oder bei bestimmten Ausführungsbeispielen kann anstelle einer Interpolation eines Rahmens zwischen einem Rahmen, der einem I-Rahmen vorhergeht, und einem nachfolgenden I-Rahmen der dem I-Rahmen vorhergehende Rahmen einfach wiederholt werden, ohne Interpolation, mit nur geringen Kosten bezüglich einer Verschlechterung oder eines Verwischens des so entstehenden angezeigten Videobildes.
-
23 stellt ein Zustandsübergangsdiagramm für das Zeitsteuerungssystem einer Videoanzeigevorrichtung dar, die Verfahrens- und Systemausführungsbeispiele der vorliegenden Erfindung enthält. Zustand 2302 entspricht dem in 21A gezeigten Zustand, Zustand 2304 entspricht dem in 21B gezeigten Zustand, Zustand 2306 entspricht dem in 21C angezeigten Zustand und Zustand 2308 entspricht dem in 21D gezeigten Zustand.
-
Obwohl die vorliegende Erfindung bezüglich besonderer Ausführungsbeispiele beschrieben worden ist, ist nicht beabsichtigt, dass die Erfindung auf diese Ausführungsbeispiele begrenzt wird. Für den Fachmann sind Modifikationen innerhalb des Gedankens der Erfindung ersichtlich. Beispielsweise können Verfahrens- und Systemausführungsbeispiele der vorliegenden Erfindung in einer Vielzahl verschiedener Typen von Videoanzeigevorrichtungen, einschließlich Fernsehern, Computermonitoren und anderen Typen von Videoanzeigesystemen enthalten sein. Die bewegungsvektorbasierte Rahmeninterpolation kann unter Verwendung einer Vielzahl von verschiedenen Interpolationsverfahren durchgeführt werden, einschließlich des einfachen Verfahrens, die Längen der Bewegungsvektoren durch zwei zu teilen, während die Bewegungsvektorrichtungen beibehalten werden, wie mit Bezug auf 20 erläutert, oder durch andere, rechenaufwendigere Verfahren. Es ist eine große Vielzahl verschiedener Software-, Firmware-, Logikschaltungs- oder Kombinationsimplementierungen der Logik für die Bewegungsvektorextraktion, -modifikation und -pufferung sowie Videorahmeninterpolation auf Basis von Bewegungsvektortabellen möglich, indem unterschiedliche Entwurfsparameter variiert werden, einschließlich einer modularen Organisation, Steuerstrukturen, Datenstrukturen, Steuerfluss und anderen solchen Entwurfsparametern. Bei alternativen Ausführungsbeispielen kann die Rahmenanzeigerate weiter erhöht werden, indem die Anzahl interpolierter Rahmen erhöht wird, die in dem Ausgangs-Videostrom zwischen ursprünglichen, in dem Eingangsvideosignal empfangenen Rahmen enthalten sind.
-
Die vorangehende Beschreibung hat zu Erklärungszwecken eine spezifische Nomenklatur verwendet, um ein gründliches Verständnis der Erfindung bereitzustellen. Für den Fachmann ist jedoch ersichtlich, dass die spezifischen Details zur Ausübung der Erfindung nicht erforderlich sind. Die vorhergehenden Beschreibungen spezifischer Ausführungsbeispiele der vorliegenden Erfindung werden zum Zweck der Illustration und Beschreibung vorgelegt. Es ist nicht beabsichtigt, dass sie erschöpfend sind oder die Erfindung genau auf die offenbarten Formen begrenzen. Viele Modifikationen und Variationen sind angesichts der obigen Lehren möglich. Die Ausführungsbeispiele werden gezeigt und beschrieben, um die Prinzipien der Erfindung und deren praktische Anwendungen bestmöglich zu erklären, um dadurch anderen Fachleuten eine bestmögliche Nutzung der Erfindung und unterschiedlicher Ausführungsbeispiele mit unterschiedlichen Modifikationen zu ermöglichen, wie sie für die erwogene besondere Verwendung geeignet sind. Es ist beabsichtigt, dass der Umfang der Erfindung durch die folgenden Ansprüche und ihre Äquivalente definiert wird.