-
Die Erfindung betrifft ein Videodecodierverfahren und einen Videodecoder, die dazu dienen, einen komprimierten Videosignal-Bitstrom auf Grundlage eines einzelnen Synchronisiersignals zu decodieren, und sie betrifft ein digitales Fernsehsystem unter Verwendung eines solchen Verfahrens und eines solchen Decoders.
-
Bildkompressionstechnik und Digitalisierungstechnik sind wichtige Faktoren, die Multimediaabläufe unterstützen. In jüngerer Zeit erfährt die Digitalisierung von Daten schnelle Fortschritte, und Bildkompressionstechniken stehen im Vordergrund.
-
MPEG (Moving Pictures Expert Group) ist der vorherrschende Standard betreffend Komprimierung und Codierung digitalisierter Signale zu bewegten Bildern, bei denen es sich um die wichtigsten Multimediasignale handelt.
-
Es existieren zahlreiche Gebiete, die die MPEG-Technologie als Kompressionsalgorithmus verwenden, wie Kommunikationstechnik, Rundfunktechnik, Spiele usw. Auch gehört digitales Fernsehen hierzu.
-
Der MPEG-Videokompressionsalgorithmus beruht auf zwei grundlegenden Technologien. Es wird eine Bewegungsabschätzung und eine Kompensation in Einheiten von Blöcken verwendet, um zeitliche Redundanz zu verringern, und es wird diskrete Cosinustransformation (DCT) dazu verwendet, räumliche Redundanz zu verringern.
-
DCT-Signale werden über einen Quantisierungsprozess übertragen, der Daten reduziert, und zwar durch Anzeigen von Daten mit begrenzter Bitanzahl, und es wird auch ein Prozess mit variabler Lauflängencodierung (VLC = Variable Length Coding) verwendet, der die Gesamtbitzahl dadurch verringert, dass ein häufig auftretender Wert mit einer kleinen Anzahl von Bits dargestellt wird, während ein selten auftretender Wert mit einer größeren Anzahl von Bits dargestellt wird.
-
Ein Bewegungsvektor wird in einer Einheit von 16 × 16 Blöcken erfasst und mit der obigen VLC-verarbeiteten Koeffizienteninformation übertragen. Der obige Bewegungsvektor wird manchmal für maximalen Wirkungsgrad des Codiervorgangs VLC-verarbeitet.
-
Digitales Fernsehen unter Verwendung dieser MPEG-Technologie verfügt über einen Tuner, einen Demultiplexer, einen Videodecoder und einen Monitor. Der Tuner wählt unter mehreren von einer Antenne empfangenen Kanälen einen aus und decodiert ihn, und der Multiplexer wählt ein in einem Kanal enthaltenes Programm aus und zerlegt es in gepackte Audio- und Videosignal-Bitströme. Da der abgetrennte Videosignal-Bitstrom mit variabler Rate codiert ist, wird er zum Decodieren in einem Videopuffer zwischengespeichert und an den Videodecoder mit fester Rate ausgegeben. Der Videodecoder entfernt Overheadsignale (alle Arten von Kopfinformation, Startcodes usw.) aus dem eingegebenen Videosignal-Bitstrom, er decodiert durch VLD der reinen Dateninformation die ursprünglichen Pixelwerte, er führt einen inversen Quantisierungsprozess, eine inverse diskrete Cosinusinformation (IDCT), einen Bewegungskompensationsprozess unter Verwendung des Bewegungsvektors aus, und er liefert die Information als Ausgangssignal an den Monitor.
-
Der obige Bewegungskompensationsprozess nutzt Blöcke mit Vorwärts- und Rückwärtsvorhersage, und es existieren zwei Arten von Bewegungskompensations-Vollbildern. Ein P-Vollbild ist nur durch Vorhersage in Vorwärtsrichtung bewegungskompensiert, und es wird dazu verwendet, das nächste P-Vollbild selbst vorherzusagen. Er wird auch bei der Vorhersage eines B-Vollbilds (Vollbild, das in beiden Richtungen vorhergesagt wird) bei Vorhersage in Vorwärts- und Rückwärtsrichtung verwendet. Jedoch wird ein B-Vollbild nicht zur Vorhersage selbst verwendet.
-
D. h., dass beim MPEG-Algorithmus ein I(Intra)-Bild den grundsätzlichen Schirminhalt bildet, wenn irgendein Schirminhalt komprimiert und codiert wird, und die Redundanz in räumlicher Beziehung wird durch DCT und durch Quantisierung des ursprünglichen Signals pro Block beseitigt. Ein P(predicted = vorhergesagtes)Bild ist hinsichtlich I- und P-Bildern das, das am ehesten vorhergesagt ist, und das Vorhersageabweichungssignal und der Bewegungsvektor zwischen einer Bewegungskompensation und einem bereits codierten I- oder P-Bild werden per Makroblock codiert. Betreffend das Vorhersageabweichungssignal werden Quantisierungs- und VLC-Vorgänge aufeinanderfolgend nach der DCT-Operation pro Block ausgeführt. Ein B(bidirektionales)-Bild entspricht einem etwas komplexen Schirminhalt, wie durch ein Verfahren ausgewählt, bei dem der am ehesten nahezu vorhergesagte Schirminhalt unter vorherigen I-, P-Bildern, und in Rückwärtsrichtung vorhergesagten I-, P-Bildern ausgewählt wird, und es wird auch ein Mittelwert dieser zwei Verfahren verwendet.
-
Dabei sind der Systemzeittakt (STC), die Decodierzeitkennzeichnung (DTS = Decoding Time Stamp), die den Zeitpunkt repräsentiert, zu dem jedes Bild auf Grundlage des STC zu decodieren ist, die Wiedergabezeitkennzeichnung (PTS), die den Zeitpunkt repräsentiert, zu dem die decodierten Daten auf Grundlage des STC anzuzeigen sind, in einem A/V-Multiplexbitstrom gemultiplext, der in den obigen Demultiplexer eintritt. STC ist das gesamte Taktsignal, das mit dem Taktsignal des Codierers synchronisiert ist, und der Codierer und der Decodierer verfügen über denselben STC. Da das Videosignal interne Verzögerungen aufweist, erzeugt der obige Decodierer die DTS und die PTS auf Grundlage des STC und überträgt sie zusammen für A/V-Lippensynchronisierung und normale Videodecodierung.
-
So stellt der obige Demultiplexer den STC wieder her, der die Grundlage für die DTS, PTS im A/V-Bitstrom bildet, und er liefert ihn an den Videodecoder.
-
Jedoch bestehen beim obigen Videodecoder die folgenden Probleme.
-
Erstens decodiert er den komprimierten Videosignal-Bitstrom unter Verwendung der auf Grundlage des STC erzeugten DTS, PTS, und er zeigt das Signal an. Die DTS-, PTS-Signalintervalle sind nicht gleichmässig, da die STC-Frequenz 27 MHz beträgt und durch Umgebungsbedingungen wie Störsignale bei der Übertragung beeinflusst wird. Demgemäss werden der Decodiervorgang und die Anzeige instabil, und insbesondere wird die Anzeige bei Echtzeitsystemen instabil.
-
Zweitens ist die Schaltung kompliziert, da digitale Fernsehsignale unter Verwendung des obigen Videodecodierers verschieden formatiert sind, und es werden auch Synchronisiersignale entsprechend ihrem Format variabel eingegeben.
-
Drittens verwendet der obige Videodecodierer einen 3-Vollbild-Speicher zum sequentiellen Ausführen von Anzeigevorgängen, wenn Vollbilder fehlen oder wiederholt sind, was auf verschiedenen Gründen beruhen kann. Dies führt zu einer Speichervergeudung, z. B. bei Anzeigeformattransformation im Fall von Videosignalen mit mehreren Formaten, da der Hauptspeicher im Anzeigeteil redundant vorliegt.
-
EP 0 716 547 A2 beschreibt eine Vorrichtung zur Decodierung eines Eingangsvideodatensignals das von einem Systemdecoder bereitgestellt wird und einem Audio/Videodecoder zugeführt wird, der die Decodierung der komprimierten Daten vornimmt und ein DTS Signal für die Audio- und Videoframes ausgibt. Die Vorrichtung enthält einen Framespeicher zum Speichern der Audio- und Videodaten und einen Taktsignalgenerator Das decodierte Audio/Videosignal wird auf einem Wiedergabegerät abgespielt.
-
WO 96/010 889 A1 beschreibt ein Multimedia-System, das einen Audio-/Video Decodierer/Dekomprimierer für die Decodierung/Dekomprimierung eines komprimierten kodierten Audio-/Videodatenstroms umfasst. Das System ermittelt, ob eine Wiedergabe synchron ist oder nicht. Hierzu wird ein gerundeter programmierbarer Wert verwendet, der mit einer Differenz zwischen einem Videodarstellungs-Zeitstempel und einem Audiodarstellungs-Zeitstempel verglichen wird.
-
Der Erfindung liegt die Aufgabe zugrunde, ein Videodecodierverfahren und einen Videodecoder zu schaffen, die einen Videosignal-Bitstrom mit verschiedenen Bildformaten auf Grundlage eines stabilen, einzelnen Synchronisiersignals decodieren.
-
Diese Aufgabe ist hinsichtlich des Verfahrens durch die Lehre des beigefügten Anspruchs 1, hinsichtlich des Videodecoders durch die Lehre des beigefügten Anspruchs 13 und hinsichtlich des digitalen Fernsehsystems durch die Lehre des beigefügten Anspruchs 23 gelöst.
-
Es ist eine vorteilhafte Ausgestaltung der Erfindung, ein Videodecodierverfahren und einen Videodecoder zu schaffen, die einen Videosignal-Bitstrom in der Einheit eines Befehlssignals auf Grundlage eines einzelnen Signals decodieren oder einen Bilddaten-Bitstrom auslassen oder warten, ohne den Videosignal-Bitstrom zu decodieren.
-
Es ist eine weitere vorteilhafte Ausgestaltung der Erfindung, ein Videodecodierverfahren und einen Videodecoder zu schaffen, die die Decodierzeit dadurch verringern können, dass der Kopf des nächsten Bilds kontinuierlich vorab decodiert wird, wenn Bilddaten auf Grundlage eines einzelnen Synchronisiersignals decodiert werden.
-
Es ist noch eine vorteilhafte Ausgestaltung der Erfindung, ein Videodecodierverfahren und einen Videodecoder zu schaffen, die für eine Periode von einem Vollbild warten, wenn in einem Videopuffer ein Unterschreiten auftritt, und die einen Bitstrom nur dann decodieren, wenn nach der Periode eines Vollbilds kein Unterschreiten erkannt ist. Es ist noch eine andere Aufgabe der Erfindung, ein Videodecodierverfahren und einen Videodecoder zu schaffen, die die DTS überprüfen, wenn kein Trickmodus vorliegt, falls nicht die Decodiergeschwindigkeit wegen eines definierten Fehlers abweichen sollte.
-
Es ist noch eine vorteilhafte Ausgestaltung der Erfindung, ein Videodecodierverfahren und einen Videodecoder zu schaffen, die einen Bitstrom nur dann decodieren, wenn die Feldparität eines Decodierbilds mit der einer Signalsynchronisierung übereinstimmt, wenn eine Videoquelle durch das Zeilensprung-Abrasterverfahren decodiert wird.
-
Es ist noch eine vorteilhafte Ausgestaltung der Erfindung, ein digitales Fernsehsystem unter Verwendung eines solchen Videodecoders zu schaffen Beim erfindungsgemäßen Videodecoder decodiert der Videodecodierabschnitt den über den Videopuffer eingegebenen Videosignal-Bitstrom, oder er lässt den Videosignal-Bitstrom aus, oder er wartet für eine definierte Vollbildperiode, ohne den Videosignal-Bitstrom zu decodieren, was unter Steuerung durch den Decodiersteuerungsabschnitt erfolgt.
-
Der Videodecodierabschnitt gibt im Warte- oder Auslassmodus keine Pixeldaten für ein Bild an den Anzeigeabschnitt aus, während er dies im Decodiermodus tut. Hinsichtlich eines nicht an den Anzeigeabschnitt ausgegebenen Vollbilds kombiniert der Anzeigeabschnitt die Funktionen mit einem anderen Anzeigeabschnitt für effektive Wiederholung unter Verwendung des AnzeigeVollbildspeichers.
-
Wenn der Videosignal-Bitstrom auf Grundlage eines Synchronisiersignals decodiert wird, decodiert der Videodecodierabschnitt die aktuellen Bilddaten vor dem nächsten Synchronisiersignal, er gibt Kopfinformation aus, nachdem der Kopf des nächsten Bilds kontinuierlich vorab decodiert wurde, und wenn das nächste Synchronisiersignal eingegeben wird, decodiert er erneut die nächsten Bilddaten. So ist es möglich, dass der Decodiersteuerabschnitt Kopfinformation dazu verwendet, Decodierbedingungen zu untersuchen, bevor die nächsten Bilddaten decodiert werden.
-
Der Decodiersteuerabschnitt kann dadurch verschiedene Trickmodi mittels externer Befehle dadurch realisieren, dass er drei Grunddecodier-Steuerungsvorgänge wie Decodieren, Auslassen und Warten geeignet kombiniert.
-
Wenn eine Videoquelle eine Zeilensprung-Abrasterquelle ist, empfängt der Decodiersteuerabschnitt Kopfinformation vom Videodecodierabschnitt, um die Feldparität eines Decodierbilds zu erfassen, und er steuert den Videodecodierabschnitt, um Bilddaten nur dann zu decodieren, wenn die Feldparität des erfassten Decodierbilds mit der eines einzelnen Synchronisiervorgangs übereinstimmt.
-
Der Decodiersteuerabschnitt wartet für die Periode eines Vollbilds und untersucht ein Unterschreiten des Videopuffers, wenn Information betreffend ein Unterschreiten des Videopuffers vom Videodecodierabschnitt eingegeben wird, oder er steuert den Videodecodierabschnitt zum Decodieren des Bitstroms nur dann, wenn kein Unterschreiten erkannt ist.
-
Der Decodiersteuerabschnitt prüft die DTS für jedes Bild, während der Videosignal-Bitstrom decodiert wird, was entsprechend dem einzelnen Synchronisiervorgang erfolgt, damit die Decodiergeschwindigkeit nicht von einem definierten Fehler abweicht, und es erfolgt ein Korrigieren des Fehlers unter Verwendung des Auslass- oder Wartemodus.
-
Der Decodiersteuerabschnitt stellt die Decodierzeit für 24 Hz oder 23,98 Hz in Bezug auf ein Videoformat von 24 Hz oder 23,98 Hz ein und gibt sie an den Videodecodierabschnitt aus.
-
Zusätzliche Vorteile der Erfindung werden teilweise in der folgenden Beschreibung dargelegt, und teilweise werden sie dem Fachmann bei der Untersuchung des Folgenden oder beim Ausüben der Erfindung erkennbar. Die Aufgaben und Vorteile der Erfindung werden speziell durch die Maßnahmen erzielt, wie sie in den beigefügten Ansprüchen dargelegt sind.
-
Die Erfindung wird aus der nachfolgenden detaillierten Beschreibung und den beigefügten Zeichnungen, vollständiger zu verstehen sein.
-
1 ist ein Blockdiagramm, das den Aufbau eines Videodecoders gemäß einem Ausführungsbeispiel der Erfindung zeigt;
-
2a und 2b sind Flussdiagramme, die ein Ausführungsbeispiel eines erfindungsgemäßen Videodecodierverfahrens veranschaulichen;
-
3(a) bis 3(e) sind zeitbezogene Diagramme, für jeweils 30 Hz, für ein Vollbild, das obere Halbbild als erstes, eine Zeilensprung-Abrasterquelle sowie Abrastern mit Zeilensprung;
-
4(a) bis 4(d) sind zeitbezogene Diagramme, für jeweils 30 Hz, eines Vollbilds, einer Zeilensprung-Abrasterquelle und eines oberen Halbbilds als erstem;
-
5(a) bis 5(d) sind zeitbezogene Diagramme, für jeweils 30 Hz, eines Vollbilds, einer Zeilensprung-Abrasterquelle und eines unteren Halbbilds als erstem;
-
6(a) bis 6(d) sind zeitbezogene Diagramme, für jeweils 60 Hz, eines Vollbilds und einer sequentiellen Abrasterquelle; und
-
7(a) bis 7(d) sind zeitbezogene Diagramme, für jeweils 24 Hz, eines Vollbilds und einer sequentiellen Abrasterquelle.
-
Das Ausführungsbeispiel eines erfindungsgemäßen Videodecodierers, wie es in 1 dargestellt ist, weist Folgendes auf: einen Videodecodierabschnitt 11 zum Decodieren eines komprimierten Videosignal-Bitstroms in Bildeinheit auf Grundlage eines auszugebenden einzelnen Vertikalsynchronisiersignals VSYNC; einen Decodiersteuerabschnitt 12, der das einzelne Vertikalsynchronisiersignal VSYNC und einen externen Befehl empfängt, um den Decodierbetrieb des Videodecodierabschnitts 11 durch Erzeugen von Signalen DSYNC und DSKIP an den Videodecodierabschnitt 11 bei Empfang von Kopfinformation und Unterschreitinformation vom Videodecodierabschnitt 11 zu erzeugen; einen Videopuffer 13 zum Zwischenspeichern eines mit variabler Rate codierten Videosignal-Bitstroms und zum Ausgeben desselben an den Videodecodierabschnitt 11, um den Bitstrom mit fester Rate zu decodieren; einen 2-Vollbild-Speicher 14 zum Decodieren des Videosignal-Bitstroms; und einen Anzeigeabschnitt 15 zum Anzeigen von im Videodecodierabschnitt 11 decodierten Bildpixeldaten.
-
Dieser Videodecoder empfängt ein stabiles, einzelnes Vertikalsynchronisiersignal VSYNC, um einen Videosignal-Bitstrom mit verschiedenen Bildformaten auf Grundlage dieses Signals VSYNC zu decodieren und es an den Anzeigeabschnitt auszugeben, der die verschiedenen Bildformate auf dem Bildschirm darstellt. Insbesondere ist die Erfindung für einen Anzeigeabschnitt mit einem einzelnen Anzeigeformat sehr geeignet.
-
Zu diesem Zweck empfängt der Videodecodierabschnitt 11 einen komprimierten Videosignal-Bitstrom über den Videopuffer 13, und er decodiert ihn in Bildeinheit unter Verwendung des 2-Vollbild-Speichers 14. D. h., dass der Decodiersteuerabschnitt 12 den Videodecodierabschnitt 11 so steuert, dass er ein Bild auf drei Arten decodiert: Decodierung des Videosignal-Bitstroms in Bildeinheit oder Auslassen eines Bilddaten-Bitstroms, oder Warten ohne Decodieren des Bilds. Diese drei Modi werden als ”Decodieren”, ”Auslassen” bzw. ”Warten” bezeichnet.
-
Pixeldaten eines im Videodecodierabschnitt 11 decodierten Bilds werden an den Anzeigeabschnitt 15 ausgegeben.
-
Der Videodecodierabschnitt 11 gibt im Warte- und Auslassmodus keine Bildpixeldaten an den Anzeigeabschnitt 15 aus, sondern er tut dies nur im Decodiermodus, durch welchen Prozess der Vollbildspeicher 14 für zwei statt drei Vollbilder realisiert werden kann. Hinsichtlich eines nicht an den Anzeigeabschnitt 15 ausgegebenen Vollbilds kombiniert dieser die Funktionen mit einem anderen Anzeigeabschnitt für effektive Wiederholung unter Verwendung des Anzeigevollbildspeichers.
-
Zu diesem Zweck gibt der Videodecodierabschnitt 11 Kopfinformation, Unterschreitinformation hinsichtlich des Puffers 13 sowie ein Signal DREADY an den Decodiersteuerabschnitt 12 aus. Der Decodiersteuerabschnitt 12 empfängt das Ausgangssignal des Videodecodierabschnitts 11, das Vertikalsynchronisiersignal VSYNC vom Anzeigeabschnitt 15 und einen externen Befehl, um Signale DSYNC und DSKIP an den Videodecodierabschnitt 11 auszugeben, um dessen Decodierbetrieb zu steuern.
-
Das Signal DSYNC ist ein Signal, das dazu verwendet wird, ein aktuelles Bild zu decodieren, das zum Decodieren bereit ist, während das Signal DSKIP ein Signal ist, das dazu verwendet wird, Bilddaten ohne Decodierung auszulassen. Das Signal DREADY ist ein Signal zum Decodieren oder Auslassen von Bilddaten im Videodecodierabschnitt 11, und es kennzeichnet den Abschluss des Decodier- oder Auslassvorgangs. Diese Vorgänge werden in Verbindung mit den 3(a) bis (e) erläutert.
-
Wie es in 3(a) dargestellt ist, empfängt der Decodiersteuer- abschnitt 12 das Signal VSYNC, das mit einem Zyklus von 60 Hz variiert, vom Anzeigeabschnitt 15, und er führt die Anzeige eines oberen Halbbilds aus, wenn VSYNC den Wert ”1” hat, oder die Anzeige eines unteren Halbbilds, wenn VSYNC den Wert ”0” hat. Wie es in den 3(b) und 3(c) dargestellt ist, sind DSYNC und DSKIP mit VSYNC synchronisiert. In einem derartigen Fall weist ein zu decodierendes Bild 30 Hz auf, und 1 Bild wird synchron mit Variation zweier Signale VSYNC decodiert, wie es in 3(e) dargestellt ist. Das obere Halbbild wird synchron zum hohen Potential von VSYNC als Erstes decodiert. Wenn beim hohen Potential von VSYNC weder das Signal DSYNC vorhanden ist, das ein Decodieren anzeigt, noch DSKIP, das ein Auslassen anzeigt, wartet der Videodecodierabschnitt 11 für eine Periode von 1 Vollbild, ohne dass decodiert oder ausgelassen wird, wie es in 3(e) dargestellt ist. In diesem Fall wird das Signal DREADY auf ”1 (HOCH)” gesetzt.
-
Wie es in den 3(a) bis 3(e) dargestellt ist, werden, da beim hohen Potential des nächsten Signals VSYNC ein Auslassbefehl (DSKIP) eingegeben wird, nachdem die Periode von 1 Vollbild gewartet wurde, Bilddaten ”Bild_Daten2” und der nächste Kopf ”Kopf3” ausgelassen. Da der Auslassvorgang dazu dient, einen Datenwert zu löschen und da er sehr schnell ausgeführt wird, gibt der Videodecodierabschnitt 11 das Signal DREADY im Zustand ”1” unmittelbar nach dem Auslassvorgang an den Decodiersteuerabschnitt 12 aus. Der Decodiersteuerabschnitt 12 gibt das Signal DSYNC so bald wie möglich bei Empfang des Signals DREADY im Zustand ”1” an den Videodecodierabschnitt 11 aus. Der Videodecodierabschnitt 11 decodiert die aktuell eingegebenen Bilddaten ”Bild_Daten3” und den nächsten Kopf ”Kopf4”. Folgend auf den Decodiervorgang wird das Signal DREADY im Zustand ”1” erneut an den Videodecodierabschnitt 12 ausgegeben. So ist erkennbar, dass die Vorgänge zum Decodieren und Auslassen von Daten ausgeführt werden, während sich das Signal DREADY auf NIEDRIG befindet.
-
Wenn Bilddaten auf Grundlage von VSYNC decodiert werden, führt der Videodecodierabschnitt 11 einen Decodiervorgang auf solche Weise aus, dass er die aktuellen Bilddaten vor VSYNC decodiert, wenn VSYNC erscheint, nachdem der Kopf des nächsten Bilds kontinuierlich vorab decodiert wurde, wobei er wiederum die nächsten Bilddaten decodiert. Kopfinformation ist bereits decodiert, wenn das nächste Signal VSYNC erscheint, da der nächste Kopf vorab nach dem vorangegangenen Bild decodiert wird. So verwendet der Decodiersteuerabschnitt 12 Kopfinformation beim Untersuchen der Decodierbeziehungen, bevor er bei VSYNC die nächsten Bilddaten decodiert. Dies ermöglicht es, schnell zu ermitteln, ob die Daten zu decodieren sind oder nicht. Ferner existieren Zeiträume, da die nach dem Decodieren des vorigen Bilds verbliebene Zeit für die Kopfinformation genutzt wird.
-
Aus diesem Grund wird die Kopfinformation des nächsten Bilds, wie sie dazu erforderlich ist, die Decodierbedingungen zu untersuchen, vom Videodecodierabschnitt 11 vorab, also vor dem Decodieren des nächsten Bilds, an den Decodiersteuerabschnitt 12 ausgegeben. Zu Beginn des Flussdiagramms führt der Decodiersteuerabschnitt 12 eine Steuerung zum Decodieren des Kopfs ”Kopf0” des ersten Bilds in einem Schritt 201 aus, wobei er auf VSYNC wartet.
-
Wenn VSYNC in einem Schritt 202 empfangen wird, erfolgt eine Beurteilung, ob das aktuelle Bild zu decodieren ist oder nicht, was in einem Schritt 203 entsprechend einem extern eingegebenen Befehl erfolgt. D. h., dass ein Auslassflag auf ”1” gesetzt wird, wenn der externe Befehl ein Auslassbefehl ist, oder ein Modusflag auf ”1” gesetzt wird, um in einem DTS-Prüfzustand im Trickmodus verwendet zu werden. Dies erfolgt, da für A/V-Lippensynchronisation durch Untersuchen der DTS im normalen Decodiermodus gesorgt werden muss, was im Trickmodus nicht der Fall sein muss.
-
Wenn in einem Schritt 204 der externe Befehl als Befehl zum Decodieren des aktuellen Bilds ermittelt wird, wird in einem Schritt 206 beurteilt, ob die Quelle eine Zeilensprung-Abrasterquelle oder eine Sequentiellabrasterquelle ist. Wenn der externe Befehl als solcher ermittelt wird, ohne Decodierung zu warten, wird in einem Schritt 205 für die Periode eines Vollbilds gewartet, ohne dass decodiert wird.
-
Der externe Befehl ist als Decodier-, Auslass- oder Wartebefehl für jedes Bild abhängig davon einzugeben, ob es sich um einen normalen Anzeigemodus oder einen Trickmodus handelt.
-
Wenn der externe Befehl im Schritt 204 als Befehl zum Decodieren des aktuellen Bits erkannt wird, erfolgt im Schritt 206 eine Beurteilung dahingehend, ob das zu decodierende Bild von einer Zeilensprung-Abrasterquelle herrührt. Wenn das im Schritt 206 gebildete Beurteilungsergebnis anzeigt, dass das Bild von einer Zeilensprung-Abrasterquelle herrührt, wird die Halbbildparität des zu decodierenden Bilds aus der Kopfinformation erhalten und dann in einem Schritt 207 mit der Halbbildparität von VSYNC verglichen. Wenn die Halbbildparität des zu decodierenden Bilds mit derjenigen von VSYNC übereinstimmt, geht der Ablauf zu einem Schritt 208 zum Untersuchen eines Unterschreitens im Videopuffer 13 weiter. Falls nicht, wartet der Decodiersteuerabschnitt 12, bis das nächste Signal VSYNC erscheint und die Halbbildparität des zu decodierenden Bilds mit der des Signals VSYNC übereinstimmt. Dies dient zum Decodieren des Bilds entsprechend jedem Halbbild durch Bestimmen oberer und unterer Halbbilder. Demgemäß kann der Videodecoder 11 die Halbbildparität des Bilds entsprechend derjenigen des Signals VSYNC an den Anzeigeabschnitt 15 ausgeben. Demgemäß kann die Halbbildparität des zu decodierenden Bilds an den Anzeigeabschnitt 15 ausgegeben werden, ohne dass Übereinstimmung mit der Halbbildparität von VSYNC existiert, in welchem Fall der Anzeigeabschnitt 15 einen 1-Halbbild-Speicher zum Anpassen der Halbbildparitäten benötigt. Dagegen muss die Erfindung für keine Anpassung der Halbbildparitäten sorgen, und es kann der 1-Halbbild-Speicher im Anzeigeabschnitt 15 eingespart werden.
-
Wenn die Videoquelle gemäß dem Schritt 206 eine Sequentiellabrasterquelle ist oder wenn sich im Schritt 207 ergibt, dass die Halbbildparität des zu decodierenden Bilds mit der von VSYNC übereinstimmt, empfängt der Videodecodierabschnitt 11 das Unterschreitsignal betreffend den Videopuffer 13, um im Schritt 208 den Unterschreitzustand zu ermitteln. Da dann im Videopuffer 13 kein Bitstrom für ein Bild existiert, wenn in ihm ein Unterschreitzustand existiert, wartet der Decodiersteuerabschnitt 12 für die Periode von 1 Vollbild und untersucht dann in einem Schritt 208 den Unterschreitzustand des Videopuffers 13. Unterschreitinformation betreffend den Videopuffer 13 zeigt an, ob in diesem Daten für mindestens 1 Bild existieren oder nicht. Damit kann ein Unterschreitzustand des Videopuffers 13 verhindern, dass eine Decodierzeit für 1 Bild eine definierte Periode überschreitet. Das bedeutet, dass die Daten für ein zu decodierendes Bild nicht alle in den Videopuffer 13 eingespeichert wurden, wenn in diesem ein Unterschreitzustand auftritt, und es ist erforderlich, auf Daten zu warten, während Daten decodiert werden. Auch wird ein Decodieren in einem definierten Intervall nicht ausgeführt, und der Prozess geht zum nächsten Intervall über. Dies beeinflusst den Anzeigevorgang in nachteiliger Weise.
-
Es erfolgt dann, wenn im Schritt 208 kein Unterschreiten ermittelt wird, in einem Schritt 210 eine Ermittlung, ob das Trickmodusflag auf ”1” gesetzt ist.
-
Der Trickmodus ist ein anomaler Modus innerhalb von MPEG, der schnellem Vorlauf (FF), Zeitlupe, Suchvorgängen und dergleichen in einem Videokassettenrecorder (VCR) entspricht. So kann der Decodiersteuerabschnitt 12 durch externe Befehle dadurch für verschiedene Trickmodi sorgen, dass er in geeigneter Weise die drei Fälle Decodieren, Auslassen und Warten kombiniert. Zum Beispiel wird schneller Vorlauf durch Kombinieren des Decodierens und Auslassens erzielt, während Zeitlupe durch Kombinieren des Decodierens und Wartens realisiert wird. Die anderen Trickmodi können ebenfalls durch solche Kombinationen realisiert werden.
-
Wenn das Trickmodusflag im Schritt 210 auf ”1” gesetzt ist, geht der Ablauf zu einem Schritt 215 weiter, um das Auslassflag zu untersuchen. Wenn das Trickmodusflag auf ”0” rückgesetzt ist, was normalen MPEG-Betrieb anzeigt, wird in einem Schritt 211 die DTS überprüft, und in einem Schritt 212 erfolgt eine Beurteilung dahingehend, ob VSYNC und DTS von einem definierten Fehler abweichen. Die Erfindung führt das Decodieren auf Grundlage von VSYNC aus, und die DTS wird nur überprüft.
-
Wenn das im Schritt 212 erzielt Beurteilungsergebnis anzeigt, dass VSYNC oder DTS nicht von einem definierten Fehler abweichen, geht der Prozess zum Schritt 215 weiter. Wenn die Decodiergeschwindigkeit in einem Schritt 213 von einem definierten Fehler abweicht und hoch ist, wartet der Decodierabschnitt 11 für die Periode von 1 Vollbild und der Ablauf geht zum Schritt 215 weiter. Wenn die Decodiergeschwindigkeit niedriger als ein definierter Fehler ist, wird das Auslassflag in einem Schritt 214 auf ”1” gesetzt, und der Ablauf geht zum Schritt 215 weiter. Wie oben beschrieben, decodiert der Decodiersteuerabschnitt 12 ein Bild entsprechend zu VSYNC, und er prüft die DTS für alle Bilder, um zu verhindern, dass die Decodiergeschwindigkeit von einem definierten Fehler abweicht. Wenn ein Abweichen von einem definierten Fehler vorliegt, stellt der Decodiersteuerabschnitt 12 A/V-Lippensynchronisation durch Korrigieren des Fehlers, durch Auslassen oder Warten her.
-
Das Auslassflag wird im Schritt 215 untersucht. Wenn es auf ”1” gesetzt ist, zeigt dies an, dass das aktuelle Bild auszulassen ist.
-
Wenn das Auslassflag im Schritt 215 auf ”0” gesetzt ist, gibt der Decodiersteuerabschnitt 12 das Signal DSYNC an den Videodecodierabschnitt 11 aus, um 1 Vollbild zu decodieren. Der Videodecodierabschnitt 11 decodiert das aktuelle Bild mittels des Signals DSYNC, und nach dem Decodieren gibt er das Signal DREADY im Zustand ”1” in einem Schritt 216 erneut an den Decodiersteuerabschnitt 12 aus. Der Decodiersteuerabschnitt 12 zählt mit jedem VSYNC ein Register VSYNC_Anzahl nach unten. Wenn das Signal DREADY erneut auf ”1” gesetzt wird und das Register SYNC_Anzahl den Wert 0 hat, wartet es auf das nächste Signal VSYNC. Der Anfangswert des Registers VSYNC_Anzahl zeigt die Anzahl von Signalen VSYNC an, die dazu erforderlich ist, das aktuelle Videoformat zu decodieren. Damit wird die zum Decodieren erforderliche Zeit berechnet, und es können die Daten verschiedener Videoformate entsprechend der Zeit unter Verwendung eines einzelnen Signals VSYNC decodiert werden.
-
Wenn zum Beispiel VSYNC mit einem Zyklus von 1/60 Sekunde variiert, wird der Anfangswert des Registers VSYNC_Anzahl für 60 Hz auf 1 und für 30 Hz auf 2 gesetzt.
-
Wenn dagegen das Auslassflag im Schritt 215 auf ”1” gesetzt ist, erfolgt in einem Schritt 217 eine Beurteilung, ob das aktuelle Bild ein B-Bild ist. Wenn dies der Fall ist, gibt der Decodiersteuerabschnitt 12 das Signal DSKIP an den Videodecodierabschnitt 11 aus, um 1 Vollbild auszulassen. Der Videodecodierabschnitt 11 lässt gemäß dem Signal DSKIP das B-Bild aus, und er gibt nach dem Auslassen desselben das Signal DREADY in einem Schritt 218 im Zustand ”1” an den Decodiersteuerabschnitt 12 aus. Wenn das Signal DREADY erneut auf ”1” gesetzt ist, kehrt der Decodiersteuerabschnitt 12 zum Schritt 203 zurück, um einen Befehl für das nächste Bild auszuführen, wodurch der obige Vorgang wiederholt wird.
-
Wenn das aktuelle Bild im Schritt 217 als I- oder P-Bild ermittelt wird, wird das Signal DSYNC an den Videodecodierabschnitt 11 ausgegeben, während das Auslassflag auf ”1” gesetzt wird, um das nächste B-Bild auszulassen. Der Videodecodierabschnitt 11 decodiert das I- oder P-Bild unter dem Signal DSYNC und gibt, in einem Schritt 216, nach dem Decodieren des Bilds das Signal DREADY im Zustand ”1” an den Decodiersteuerabschnitt 12 aus.
-
Dies dient zum Auslassen des nächsten B-Bilds, das, anstelle eines I- oder P-Bilds, keine Fehler hervorruft, um den Auslassbedingungen zu genügen.
-
Tatsächlich existieren keine Probleme beim Realisieren von A/V-Lippensynchronisation oder einem Trickmodus, wenn nur ein B-Bild ausgelassen wird, um für eine Auslassfunktion zu sorgen.
-
Andererseits führt die Erfindung für 24 Hz einen speziellen Decodiervorgang aus. Der Anfangswert des Registers VSYNC_Anzahl wird wiederholt abwechselnd auf 2 und 3 gesetzt, um die Decodierzeit aller Bilder zu ändern. Dies wird entsprechend VSYNC ausgegeben, damit der Anzeigeabschnitt einen 3:2-Skalierungsvorgang zum Ändern der Frequenz von 24 Hz auf 60 Hz auf die Anzeige ausführen kann.
-
Ferner enthalten Videoformate in der NTSC-Familie Frequenzen von 59,94, 29,97 und 23,98 Hz, die auf dieselbe Weise wie 60, 30 und 24 Hz decodiert werden. VSYNC wird mit 59,94 Hz statt 60 Hz decodiert.
-
Die 4 bis 7 veranschaulichen die Art, gemäß der verschiedene Videoformate decodiert werden.
-
Die 4(a) bis (d) sind zeitbezogene Diagramme, die den Betrieb eines erfindungsgemäßen Videodecoders für 30 Hz zeigen, mit einem Vollbild, einer Zeilensprung-Abrasterquelle und mit erster Darstellung des oberen Halbbilds. Wie es in 4(a) dargestellt ist, wird das mit einem Zyklus von 60 Hz variierende Signal VSYNC vom Anzeigeabschnitt 15 eingegeben. Ein Signal VSYNC im Zustand ”1” zeigt an, dass das obere Halbbild angezeigt wird, während VSYNC im Zustand ”0” anzeigt, dass das untere Halbbild angezeigt wird. DSYNC ist mit VSYNC synchronisiert, wie es in 4(b) dargestellt ist. In diesem Fall hat das zu decodierende Bild 30 Hz, und es wird 1 Bild synchron mit einer Variation von zwei Signalen VSYNC decodiert, wie es in 4(d) dargestellt ist. Wenn das obere Halbbild das erste ist, wird das Bild synchron mit dem hohen Potential von VSYNC decodiert.
-
Die 5(a) bis (d) sind zeitbezogene Diagramme, die den Betrieb eines erfindungsgemäßen Videodecoders für 30 Hz zeigen, nämlich für ein Vollbild, eine Zeilensprung-Abrasterquelle und mit erster Darstellung des unteren Halbbilds. Wie es in 5(a) dargestellt ist, wird das mit einem Zyklus von 60 Hz variierende Signal VSYNC vom Anzeigeabschnitt 15 eingegeben. Wenn sich das Signal VSYNC im Zustand ”1” befindet, zeigt dies die Anzeige des oberen Halbbilds an, und VSYNC im Zustand ”0” zeigt die Anzeige des unteren Halbbilds an. DSYNC ist mit dem niedrigen Potential von VSYNC synchronisiert, wie es in 5(b) dargestellt ist, in welchem Fall das zu decodierende Bild 30 Hz hat, und 1 Bild synchron mit einer Änderung von zwei Signalen VSYNC decodiert wird, wie es in 5(d) dargestellt ist. Wenn das untere Halbbild das erste ist, wird das Bild synchron mit dem niedrigen Potential von VSYNC decodiert.
-
Die 6(a) bis 6(d) sind zeitbezogene Diagramme, die den Betrieb eines erfindungsgemäßen Videodecoders für 60 Hz zeigen, mit einem Vollbild und einer Sequentiellabrasterquelle. Wie es in 6(a) dargestellt ist, wird das mit einem Zyklus von 60 Hz variierende Signal VSYNC vom Anzeigeabschnitt 15 eingegeben, und Bilddaten werden sequentiell unabhängig vom hohen oder niedrigen Potential decodiert. DSYNC ist mit VSYNC synchronisiert, wie es in 6(b) dargestellt ist, in welchem Fall das zu decodierende Bild 60 Hz hat, und 1 Bild synchron mit einer Änderung eines Signals VSYNC decodiert wird, wie es in 6(d) dargestellt ist.
-
Die 7(a) bis 7(d) sind zeitbezogene Diagramme, die den Betrieb eines erfindungsgemäßen MPEG-Decoders für den Fall von 24 Hz mit Vollbild und sequentieller Quelle zeigen. In 7(a) wird das mit einem Zyklus von 60 Hz variierende Signal VSYNC vom Anzeigeabschnitt 15 eingegeben, und es wird das Intervall des Auftretens von DSYNC variiert. Das bedeutet, dass der Anfangswert des Registers VSYNC_Anzahl wiederholt abwechselnd auf 2 oder 3 gesetzt wird, um die Decodierzeit für alle Bilder zu ändern. Die Wiederholung des Halbbilds, wie in 7(d) dargestellt, kann dadurch realisiert werden, dass das vorige obere oder untere Halbbild auf den Anzeigeabschnitt 15 gegeben wird.
-
Andererseits ist der erfindungsgemäße Videodecoder bei einem Digitalfernseher anwendbar, wodurch sich eine Verbesserung dessen Funktionsvermögens ergibt.
-
Wie oben beschrieben, erhält der erfindungsgemäße Videodecoder ein stabiles, einzelnes Vertikalsynchronisiersignal zum Decodieren eines Videobitstroms mit verschiedenen Bildformaten auf Grundlage des Synchronisiersignals, und er gibt ein Signal entsprechend dem einzelnen Vertikalsynchronisiersignal an den Anzeigeabschnitt aus. Dies stabilisiert Decodier- und Anzeigevorgänge und vereinfacht die Decodierschaltung, so dass der Anzeigeabschnitt leicht verschiedene Bildformate auf dem Bildschirm anzeigen kann.
-
Insbesondere ist der Signalfluss vereinfacht, und die Decodierschaltung ist vereinfacht, da der Decodiersteuerabschnitt 12 ein einzelnes Vertikalsynchronisiersignal VSYNC, einen externen Befehl, Kopfinformation und Information betreffend einen Unterschreitzustand des Videopuffers empfängt, und der den Videodecodierabschnitt so steuert, dass dieser einen Bilddaten-Bitstrom in der Einheit eines Bilds decodiert, oder den Bitstrom auslässt, oder ohne Decodieren wartet.
-
Der Videodecodierabschnitt gibt im Warte- oder Auslassmodus keine Bildpixeldaten an den Anzeigeabschnitt aus, was er jedoch im Decodiermodus tut, was es ermöglicht, den minimalen Speicher zu nutzen, wie er zum Decodieren des Bitstroms erforderlich ist, d. h. einen Videopuffer und einen 2-Vollbild-Speicher zum Verringern der Größe des Vollbildspeichers.
-
Wenn der Videosignal-Bitstrom auf Grundlage eines Synchronisiersignals decodiert wird, decodiert der Videodecodierabschnitt die aktuellen Bilddaten vor dem nächsten Synchronisiersignal, er gibt Kopfinformation aus, nachdem er den Kopf des nächsten Bilds kontinuierlich vorab decodiert hat, und er decodiert erneut die nächsten Bilddaten, wenn das nächste Synchronisiersignal eingegeben wird. So ist es möglich, dass der Decodiersteuerabschnitt Kopfinformation dazu verwendet, Decodierbedingungen zu untersuchen, bevor die nächsten Bilddaten decodiert werden, wodurch die Zeit zum Bestimmen, ob das aktuelle Bild decodiert wird oder nicht, verringerbar ist.
-
Ferner kann der Decodiersteuerabschnitt mittels externer Befehle verschiedene Trickmodi dadurch realisieren, dass er die drei grundlegenden Decodiersteuerungsvorgänge wie Decodieren, Auslassen und Warten geeignet kombiniert.
-
Wenn eine Videoquelle eine Zeilensprung-Abrasterquelle ist, empfängt der Decodiersteuerabschnitt Kopfinformation vom Videodecodierabschnitt, um die Halbbildparität eines Decodierbilds zu erfassen, und er steuert den Videodecodierabschnitt so an, dass dieser Bilddaten nur dann decodiert, wenn die Halbbildparität des erfassten Decodierbilds in Übereinstimmung mit der eines einzelnen Synchronisiersignals steht. Im Ergebnis ist es nicht erforderlich, einen Halbbildspeicher zu verwenden, um Paritäten anzupassen, und es kann die Größe des Speichers im Anzeigeabschnitt verringert werden.
-
Der Decodiersteuerabschnitt wartet für die Periode von 1 Vollbild, und er untersucht den Unterschreitzustand des Videopuffers, wenn Information betreffend einen Unterschreitzustand des Puffers, wie vom Videodecodierabschnitt geliefert, einen solchen Unterschreitzustand des Videopuffers anzeigt, oder er decodiert nur dann, wenn keine Ermittlung eines Unterschreitvorgangs vorliegt. Dies ermöglicht es, zu verhindern, dass die Decodierzeit für 1 Bild ein definiertes Intervall aufgrund eines Unterschreitzustands des Videopuffers überschreitet.
-
Der Decodiersteuerabschnitt prüft die DTS für alle Bilder, während der Videosignal-Bitstrom entsprechend dem einzelnen Synchronisiersignal decodiert wird, damit die Decodiergeschwindigkeit nicht von einem definierten Fehler abweicht, und er korrigiert den Fehler unter Verwendung des Auslass- oder Wartemodus, um dadurch genaue A/V-Lippensynchronisation zu erzielen.
-
Auch ändert sich die Decodierzeit für alle Bilder für ein Videoformat mit einer Bildfrequenz von 24 Hz oder 23,98 Hz abwechselnd, was einen Skalierungsvorgang im Anzeigeabschnitt erleichtert.
-
Ferner ist das Gesamtsystem vereinfacht, da statt 60 Hz ein einzelnes Synchronisiersignal von 59,94 Hz verwendet ist, um Bilddaten mit einem Videoformat aus der NTSC-Familie zu decodieren, wie solche von 59,94, 29,97 und 23,98 Hz.