-
Die Erfindung bezieht sich auf ein Speichersystem für Digital-Video (DV) und ein sich darauf beziehendes Verfahren zum Speichern von über ein Schnittstellenmodul empfangenen DV-Daten in einem Speicher, welcher von Video- und Audio-Dekodern verwendet werden kann, nach den Oberbegriffen der Patentansprüche 1 und 9. Solch ein Speichersystem und Verfahren sind aus
EP 1 432 252 A2 bekannt.
-
Der internationale Standard IEEE 1394-1995, ”IEEE 1394-1995 Standard For A High Performance Serial Bus”, definiert einen Aufbau eines wirtschaftlichen, skalierbaren seriellen Busses für hohe Übertragungsgeschwindigkeiten. Dieser Standard bietet einen universellen Eingangs-/Ausgangsanschluss zur Verbindung von digitalen Vorrichtungen, einschließlich von z. B. Audio/Video-Ausrüstung und Computern.
-
Der Standard IEEE 1394-1995 unterstützt sowohl asynchrone als auch isochrone Informationsübertragungen. Asynchrone Übertragungen sind Vorgänge, die Daten von einem Quellenknoten zu einem Zielknoten übertragen und stattfinden, sobald dies nach der Aktivierung erlaubt wird. Isochrone Übertragungen stellen eine Informationslieferung bereit, die durch eine vorhersehbare, beschränkte Wartezeit, garantierte Bandbreite und pünktlichen Datenempfang gekennzeichnet ist. Zeitintervalle zwischen bestimmten Ereignissen haben sowohl bei der sendenden als auch bei der empfangenen Anwendung im Wesentlichen die gleiche Dauer. Eine isochrone Übertragung ist bei in Echtzeit ablaufenden Multimedia-Anwendungen besonders vorteilhaft, wie z. B. die Echtzeit-Übertragung von digitalen Audio- und Videodaten zwischen einer digitalen Videokamera und einem digitalen Fernseher in einem Standardformat, wie z. B. Digital-Video (DV).
-
Bei den herkömmlichen DV-Speichersystemen wird jedoch ein Speicher mit einer hohen Bandbreite benötigt. Diese hohe Bandbreite wird benötigt, um sowohl die Datenübertragung über die IEEE1394-Schnittstelle in den Speicher als auch durch eine CPU des DV-Speichersystems aus dem Speicher zu ermöglichen. Zusätzlich wird ein Pufferbereich benötigt, welcher die Größe des Speichers um wenigstens 480 Byte erhöht (korrespondierend zu einem CIP-Datenfeld). Weiter sind sowohl die IEEE1394-Schnittstelle als auch die CPU in getrennten ICs implementiert, wodurch die Komplexität des Aufbaus und die Kosten des herkömmlichen DV-Speichersystems weiter angehoben werden.
-
Dieses berücksichtigend zielt diese Erfindung darauf ab, eine Vorrichtung anzugeben, die einen DV-Demultiplexer aufweist, der direkt an das Schnittstellenmodul angeschlossen ist, um einen eingehenden Bitstrom zu empfangen, die empfangenen Blöcke in dem eingehenden Bitstrom in wenigstens Video-Blöcke und Audio-Blöcke zu demultiplexen, und die Video- und Audio-Blöcke in einem Speicher zu speichern.
-
Dies wird jeweils durch ein Digital-Video-Speichersystem und ein Verfahren nach den Patentansprüchen 1 und 9 erreicht. Die abhängigen Patentansprüche beziehen sich auf korrespondierende Weiterentwicklungen und Verbesserungen.
-
Wie aus der nachfolgenden ausführlichen Beschreibung klarer erkannt werden kann, verbinden das beanspruchte Digital-Video-Speichersystem und Verfahren direkt mit dem Schnittstellenmodul, um den eingehenden Bitstrom zu empfangen und empfangene Blöcke in dem eingehenden Bitstrom in wenigstens Video-Blöcke, die sich in Video-Abschnitten befinden, und Audio-Blöcke, die sich in Audio-Abschnitten befinden, zu demultiplexen, wobei der eingehende Bitstrom nicht außerhalb des Schnittstellenmoduls gepuffert wird.
-
Im Folgenden wird die Erfindung weiter beispielhaft unter Bezugnahme auf die beigefügten Zeichnungen dargestellt. Es zeigen:
-
1 ein Blockschaltbild eines isochronen Pakets nach IEEE 1394-1995 nach dem Stand der Technik;
-
2 ein Blockschaltbild eines CIP-Pakets, das unter Verwendung des in 1 gezeigten isochronen Pakets nach IEEE 1394-1995 übertragen wurde;
-
3 ein Digital-Video-(DV-)Frame, der unter Verwendung des in 2 gezeigten CIP-Pakets übertragen wurde;
-
4 ein Diagramm des Aufbaues von den gesamten 150 in der 3 gezeigten DIF-Blöcken;
-
5 ein vereinfachtes Blockschaltbild eines ersten herkömmlichen DV-Speichersystems;
-
6 ein vereinfachtes Blockschaltbild eines zweiten herkömmlichen DV-Speichersystems;
-
7 ein Blockschaltbild eines Digital-Video-(DV-)Speichersystems nach einer beispielhaften Ausführungsform nach dieser Erfindung;
-
8 ein Diagramm von Fehlerzählern, die in dem in der 7 gezeigten Datenextrahierer angeordnet sind;
-
9 ein Blockschaltbild der in 7 gezeigten Puffer-Verwaltungseinrichtung;
-
10 ein Flussdiagramm, das die Vorgänge des FSMs des in 8 gezeigten Datenextrahierers 704a beschreibt;
-
11 ein Flussdiagramm, das das Gesamtverfahren des in 7 gezeigten DV-Demultiplexers beschreibt;
-
12 ein Speicherabbild eines Video-Bereichs und eines Audio-Bereichs des in 7 gezeigten Speichers;
-
13 ein Diagramm eines bevorzugten Verfahrens des Schreibens von Daten in einen bestimmten Frame N des Speichers; und
-
14 und 15 Diagramme, die die Verwendung unterschiedlicher Verfahren des Schreibens von Daten in den Speicher nach dieser Erfindung zeigen.
-
1 zeigt ein Blockdiagramm, das ein isochrones Paket 10 nach dem Standard IEEE 1394-1995 zeigt. Der Standard IEEE 1394-1995 definiert ein strukturiertes Paket, in das Information gekapselt ist, um auf dem Bus isochron übertragen zu werden. Das isochrone Paket 10 nach dem Standard IEEE 1394-1995 umfasst ein Kopffeld 12; ein Feld 14 für die zyklische Redundanzprüfung (CRC) des Kopfs (Kopf-CRC-Feld 14); ein Nutzdatenfeld 16; und ein Nutzdaten-CRC-Feld 18.
-
Der Standard IEEE 1394-1995 spezifiziert keine bestimmten Formate für die Inhalte des Nutzdatenfelds 16. Im Gegenteil sind die Organisation von Nutzdaten entsprechend eines bestimmten Formats und die Interpretation der Inhalte von Nutzdatenfeldern jeweils Funktionen der sendenden und empfangenen Anwendungen. Um die Interoperabilität zwischen einem großen Bereich digitaler Vorrichtungen zu ermöglichen, sollten Nutzdatenfelder 16 Daten entsprechend eines standardisierten Formats kapseln. Ein solches Format, das eine große Akzeptanz erlangt hat, ist das Common Isochronous Protokoll (CIP).
-
2 zeigt ein Blockdiagramm, das ein CIP-Paket 20 darstellt. Das CIP-Paket 20 umfasst ein CIP-Kopffeld 22 und ein CIP-Datenfeld 28. Das CIP-Kopffeld 22 umfasst ein erstes und ein zweites CIP-Kopf-Quadlet 24, 26 (d. h., insgesamt 8 Byte), wohingegen das CIP-Datenfeld 28 480 Byte umfasst. Das CIP-Kopffeld 22 speichert Quellenknoten-Identifikations- und -Zeitinformation sowie Parameter, die Methoden definieren, auf die die in dem CIP-Datenfeld 28 enthaltene Information interpretiert werden kann. Z. B. können die CIP-Paketsequenzen durch das Extrahieren von Videodaten und das Erzeugen eines vollständigen Video-Frames entsprechend eines Standard-Formats, wie z. B. Digital-Video (DV), verarbeitet werden.
-
3 zeigt das Format eines Digital-Video-(DV-)Frames, wie in einem DV-Bitstrom empfangen, und 4 zeigt den Aufbau von allen 150 DIF-Blöcken 330 in dem in 3 gezeigten DV-Frame entsprechend der Standards IEC61938 und SMPTE314. Wie in 3 gezeigt, umfasst jeder DV-Frame 120 Kilobytes komprimierter digitaler Audio- und Video-Daten, die als ein Satz von Daten im Frame(DIF)-Sequenzen 310 organisiert sind. In Umgebungen, in denen das Video-Format des National Television Standards Committee (NTSC) unterstützt wird, umfasst der DV-Frame 300 10 DIF-Sequenzen 310. In Phase Alternating Line(PAL)-Umgebungen umfasst der DV-Frame 300 12 DIF-Sequenzen 310. Jede DIF-Sequenz 310 umfasst einen Kopfabschnitt 312, einen Subkode-Abschnitt 314, einen Video-Zusatzabschnitt 316 (VAUX-Abschnitt 316) und einen AV-Datenabschnitt 318. Zusammen belegen die zuvor angegebenen Abschnitte 312, 314, 316, 318 150 DIF-Blöcke 330, die angeordnet sind, wie in 4 gezeigt. Jeder DIF-Block 330 umfasst 80 Byte und enthält ein drei Byte langes Block-Identifikationsfeld (ID-Feld) 332, hinter dem ein 77 Byte langes Datenfeld 334 angeordnet ist.
-
5 zeigt ein vereinfachtes Blockschaltbild eines ersten herkömmlichen DV-Speichersystems 500. Das erste herkömmliche DV-Speichersystem 500 unterstützt die Echtzeitübertragung von digitalen Audio- und Video-Daten zwischen Vorrichtungen, wie einer digitalen Video-Kamera und einem digitalen Fernsehen, und umfasst eine IEEE1394-Schnittstelle 502, einen Speicher 504 und eine zentrale Verarbeitungseinheit (CPU) 512. An das DV-Speichersystem 500 sind ein Videodekoder und ein Audiodekoder 516 angeschlossen. Die IEEE1394-Schnittstelle 502 empfängt einen Strom DATA_IN von isochronen Paketen 10 nach dem Standard IEEE 1394-1995 und speichert die Inhalte von jedem Nutzdatenfeld 16 jedes Pakets in einem Pufferbereich 506 des Speichers 504. Auf der CPU 512 laufende Software weist die CPU 512 an, die in dem Pufferbereich 506 gespeicherten Daten zu lesen und die darin gespeicherten Daten entsprechend des in den 3 und 4 gezeigten DV-Frame-Aufbaus zu rekonstruieren. Die CPU 512 speichert anschließend die in Video-DIF-Blöcken 330 des Audio- und Video-Abschnitts 318 enthaltenen Daten in einem Video-Bereich 508 des Speichers 504 und speichert in Audio-DIF-Blöcken 330 des Audio- und Video-Abschnitts 318 enthaltene Daten in einem Audio-Bereich 510 des Speichers 504. Der Video-Dekoder 514 liest die in dem Video-Bereich 508 des Speichers 504 gespeicherten Daten, um das digitale Video wiederzugeben, das zu dem DV-Bitstrom korrespondiert, der in dem eingehenden Strom DATA_IN empfangen wurde. Der Audio-Dekoder 516 liest die in dem Audio-Bereich 510 des Speichers 504 gespeicherten Daten, um das Audio wiederzugeben, das zu dem DV-Bitstrom korrespondiert, der in dem eingehenden Strom DATA_IN empfangen wurde. Es ist ein Problem des ersten herkömmlichen DV-Speichersystems 500, das eine große CPU-Prozessorleistung benötigt wird.
-
6 zeigt ein vereinfachtes Blockschaltbild eines zweiten herkömmlichen DV-Speichersystems 600. Der Aufbau des zweiten herkömmlichen DV-Speichersystems 600 wird manchmal als Pull-Modus bezeichnet. Bei der Verwendung des Pull-Modus umfasst das zweite herkömmliche DV-Speichersystem 600 dieselben in derselben. Weise verbundenen Komponenten, wie bei dem ersten herkömmlichen DV-Speichersystem 500; wobei jedoch in der 6 die softwaregesteuerte CPU 512 durch einen als Hardware ausgeführten DV-Demultiplexer 602 ersetzt wurde. Auf diese Art kann der DV-Demultiplexer 602 als ein Teil einer integrierten Schaltung aufgebaut werden, wodurch Verarbeitungsanforderungen einer (in 6 nicht gezeigten) in der Schaltung vorgesehenen CPU reduziert werden.
-
Bei der Verwendung von sowohl dem ersten als auch dem zweiten herkömmlichen DV-Speichersystem 600 wird jedoch für den Speicher 504 eine hohe Bandbreite benötigt. Diese hohe Bandbreite wird benötigt, um eine Datenübertragung durch die IEEE1394-Schnittstelle 502 und die CPU 512 (oder den DV-Demultiplexer 602) in den Speicher 504 und durch die CPU 512 (oder den DV-Demultiplexer 602), den Video-Dekoder 514 und den Audio-Dekoder 516 aus dem Speicher 504 zu ermöglichen. Zusätzlich wird ein Pufferbereich 506 benötigt, wodurch die Größe des Speichers um wenigstens 480 Bytes (korrespondierend zu dem CIP-Datenfeld 28) erhöht wird. Weiter sind sowohl die IEEE1394-Schnittstelle 502 als auch die CPU 512 (oder der DV-Demultiplexer 602) in getrennten ICs aufgebaut, wodurch die Komplexität des Aufbaus und die Kosten des DV-Speichersystems 500, 600 weiter erhöht werden.
-
7 zeigt ein Blockschaltbild eines Digital-Video-(DV-)Speichersystems 700 nach einer beispielhaften Ausführungsform nach dieser Erfindung. Das DV-Speichersystem 700 umfasst ein Schnittstellenmodul 702, einen DV-Demultiplexer 704, eine Speicher-Steuereinrichtung 706 und einen Speicher 708. Wie in den 5 und 6 sind der Video-Dekoder 514 und der Audio-Dekoder 516 mit dem DV-Speichersystem 700 verbunden. In dieser Ausführungsform ist das Schnittstellenmodul ein IEEE1394-Schnittstellenmodul zum Empfang eines eingehenden Signals DATA_IN und zum Wandeln des eingehenden Signals DATA_IN in einem eingehenden Bitstrom DV_DATA. Der DV-Demultiplexer 704 ist direkt mit dem Schnittstellenmodul 702 verbunden, um den eingehenden Bitstrom DV_DATA zu empfangen, und der DV-Demultiplexer 704 demultiplext empfangene DIF-Blöcke 330 in dem eingehenden Bitstrom DV_DATA in wenigstens Video-Blöcke, die sich in Video-Abschnitten befinden, und Audio-Blöcke, die sich in Audio-Abschnitten befinden. Der Speicher 708, welcher in dieser Ausführungsform ein Strom-First-In-First-Out (Strom-FIFO) 708 ist, ist an den DV-Demultiplexer 704 angeschlossen, um die Video- und Audio-Blöcke zu speichern, welche durch die Speicher-Steuereinrichtung 706 unter Steuerung des DV-Demultiplexers 704 in den Speicher 708 eingeschrieben werden. Da das Schnittstellenmodul 702 direkt mit dem DV-Demultiplexer 704 verbunden ist, und da der eingehende Bitstrom DV_DATA nicht außerhalb des Schnittstellenmoduls 702 und des DV-Demultiplexers 704 gepuffert wird, ist nach dieser Erfindung die benötigte Bandbreite des Speichers 708 stark reduziert. Zusätzlich können das Schnittstellenmodul 702 und der DV-Demultiplexer 704 leicht als ein einziges IC aufgebaut werden.
-
In 7 umfasst der DV-Demultiplexer 704 weiter einen Datenextrahierer 704a, eine Puffer-Verwaltungseinrichtung 704b und eine Host-Steuereinrichtung 704c. Der Datenextrahierer 704a bestimmt zunächst, ob der eingehende Bitstrom mit dem in 3 und 4 gezeigten DV-Format konform ist, indem der eingehende Bitstrom DV_DATA empfangen wird und der eingehende Bitstrom DV_DATA auf Fehler überprüft wird, um zu bestimmen, ob der eingehende Bitstrom DV_DATA mit dem DV-Format konform ist. Anschließend demultiplext der Datenextrahierer 704a den eingehenden Bitstrom DV_DATA in die Video- und Audio-Blöcke.
-
8 zeigt Fehlerüberprüfungszähler 800, die in dem Datenextrahierer 704a angeordnet sind. Die Fehlerzähler 800 umfassen einen Doppelwortzähler 802, einen Blockzähler 804 und einen Sequenzzähler 806 zusätzlich zu einer Zustandsmaschine FSM 808, die verwendet wird, um die Genauigkeit einer Mehrzahl von empfangenen Blöcken 300 in dem eingehenden Bitstrom DV_DATA zu überprüfen. Das eingehende Signal DATA_IN umfasst CIP-Pakete 20 und das Schnittstellenmodul 702 gibt einen Paket-Anfangsanzeiger aus, um den Anfang von jedem Paket 20 in dem eingehenden Bitstrom DV_DATA anzuzeigen. Der Datenextrahierer 704a vergleicht die Anzahl von Doppelwörtern, die in dem eingehenden Bitstrom DV_DATA mit Beginn des Paket-Anfangsanzeigers empfangen wurden, mit einem vorbestimmten Wert von 120. Übersteigt die Anzahl von in dem Doppelwortzähler 802 empfangenen Doppelwörtern den vorbestimmten Wert von 120, so bestimmt der Datenextrahierer 704a, dass der eingehende Bitstrom DV_DATA einen Fehler aufweist. Um weiter auf Fehler zu überprüfen, vergleicht der Datenextrahierer 704a eine Reihenfolge von Nummern empfangener Blöcke der empfangenen Blöcke 330 in dem eingehenden Bitstrom mit der in 4 gezeigten vorbestimmten Reihenfolge. Weicht die Reihenfolge der Nummern empfangener Blöcke von der in 4 gezeigten vorbestimmten Reihenfolge ab (z. B., wenn eine bestimmte Blocknummer fehlt oder wiederholt wird), so bestimmt der Datenextrahierer 704a, dass der eingehende Bitstrom DV_DATA einen Fehler aufweist. Zusätzlich vergleicht der Datenextrahierer 704a eine Reihenfolge von Nummern empfangener Sequenzen der empfangenen Blöcke 330 in dem eingehenden Bitstrom mit der in 3 gezeigten vorbestimmten Reihenfolge. Weicht die Reihenfolge der Nummern empfangener Sequenzen von der vorbestimmten Reihenfolge ab (z. B., wenn eine bestimmte Sequenznummer fehlt oder wiederholt wird), so bestimmt der Datenextrahierer 704a, dass der eingehende Bitstrom DV_DATA einen Fehler aufweist.
-
10 zeigt ein Flussdiagramm der Abläufe der Zustandsmaschine 808 des Datenextrahierers 704a. Die Zustandsmaschine 808 wird verwendet, um zu bestimmen, ob die ersten acht empfangenen Blöcke 330 den Bedingungen des Anfangs eines Frames genügen. Das in 10 gezeigte Flussdiagramm enthält die folgenden Zustände:
Zustand 1010: INIT – Die Abläufe beginnen in diesem Zustand. Wenn der DV-Demultiplexer das Start-Flag vom IEEE1394 empfangen hat, gehe in den Zustand 1020; sonst, verbleibe in dem Zustand 1010.
Zustand 1020: CHK1 – Wenn der nächste empfangene Block 330 in dem Frame der in 4 gezeigte [H0]-Block ist, gehe in den Zustand 1030; sonst kehre in den Zustand 1010 zurück.
Zustand 1030: CHK2 – Wenn der nächste empfangene Block 330 in dem Frame der in 4 gezeigte [SC0]-Block ist, gehe in den Zustand 1040; sonst kehre in den Zustand 1010 zurück.
Zustand 1040: CHK3 – Wenn der nächste empfangene Block 330 in dem Frame der in 4 gezeigte [SC1]-Block ist, gehe in den Zustand 1050; sonst kehre in den Zustand 1010 zurück.
Zustand 1050: CHK4 – Wenn der nächste empfangene Block 330 in dem Frame der in 4 gezeigte [VA0]-Block ist, gehe in den Zustand 1060; sonst kehre in den Zustand 1010 zurück.
Zustand 1060: CHK5 – Wenn der nächste empfangene Block 330 in dem Frame der in 4 gezeigte [VA1]-Block ist, gehe in den Zustand 1070; sonst kehre in den Zustand 1010 zurück.
Zustand 1070: CHK6 – Wenn der nächste empfangene Block 330 in dem Frame der in 4 gezeigte [VA2]-Block ist, gehe in den Zustand 1080; sonst kehre in den Zustand 1010 zurück.
Zustand 1080: CHK7 – Wenn der nächste empfangene Block 330 in dem Frame der in 4 gezeigte [A0]-Block ist, gehe in den Zustand 1000; sonst kehre in den Zustand 1010 zurück.
Zustand 1000: A_OK – Wenn von dem Datenextrahierer 704a unter Verwendung des zuvor beschriebenen Doppelwortzählers 802, Blockzählers 804 und Sequenzzählers 806 keine Fehler in dem eingehenden Bitstrom DATA_IN detektiert wurden, verbleibe im Zustand 1000; sonst, wenn Fehler detektiert wurden, kehre in den Zustand 1010 zurück. Der Zustand 1000 zeigt an, dass die in dem empfangenen Datenstrom DV_DATA empfangenen Daten gültig sind.
-
9 zeigt ein Blockschaltbild 900 der Puffer-Verwaltungseinrichtung 704b. Wie gezeigt, weist die Puffer-Verwaltungseinrichtung 704b eine Speicherschnittstelle 902 (wie z. B. eine DRAM-Schnittstelle), die mit dem Speicher 708 verbunden ist; einen Schreibblock-Zeiger 904; und einen Leseblock-Zeiger 906 auf. Die Puffer-Verwaltungseinrichtung 704b speichert die von dem Datenextrahierer 704a demultiplexten Video- und Audio-Blöcke unter Verwendung der Speicherschnittstelle 902 entsprechend des Schreibblock-Zeigers 904 in dem Speicher 708. Der Leseblock-Zeiger 906 wird verwendet, um Daten aus dem Speicher 708 auszulesen und die Daten anschließend an den Video-Dekoder 514 und den Audio-Dekoder 516 zuzuführen.
-
11 zeigt ein Flussdiagramm, dass den Gesamtablauf des zuvor beschriebenen DV-Demultiplexers 704 beschreibt. Das Flussdiagramm enthält die folgenden Schritte:
Schritt 1100: Beginne mit dem Betrieb des DV-Demultiplexers 704. Schritt 1102: Hat die Zustandsmaschine 808 A_OK (Zustand 1000) erreicht, wodurch angezeigt wird, dass die empfangenen Daten gültig sind? Wenn ja, gehe zu dem Schritt 1104; sonst verbleibe im Schritt 1102.
Schritt 1104: Stimmt der Blockzähler 804 mit der Blocknummer des gerade empfangenen Blocks 330 überein? Wenn ja, gehe zu dem Schritt 1106; sonst kehre zu dem Schritt 1100 zurück.
Schritt 1106: Stimmt der Sequenzzähler 806 mit der Sequenznummer des gerade empfangenen Blocks 330 überein? Wenn ja, gehe zu dem Schritt 1108; sonst kehre zu dem Schritt 1100 zurück.
Schritt 1108: Ist der derzeitige Abschnitt ein Audio Abschnitt? Wenn ja, gehe zu dem Schritt 1112; sonst gehe zu dem Schritt 1110.
Schritt 1110: Ist der derzeitige Abschnitt ein Video-Abschnitt? Wenn ja, gehe zu dem Schritt 1114; sonst gehe zu dem Schritt 1116.
Schritt 1112: Führe eine Datenübertragung mit direktem Speicherzugriff (DMA) aus, um ein Doppelwort der Daten des empfangenen Blocks 330 in dem Speicher 708 zu speichern. Gehe zu dem Schritt 1118.
Schritt 1114: Führe eine Datenübertragung mit direktem Speicherzugriff (DMA) aus, um ein Doppelwort der Daten des empfangenen Blocks 330 in dem Speicher 708 zu speichern. Gehe zu dem Schritt 1120.
Schritt 1116: Der gerade empfangene Block 330 ist ein Steuerblock, leite deswegen notwendige Informationen, die in dem Steuerblock enthalten ist, in geeignete Register in der Host-Steuervorrichtung 704c. Danach, gehe zu dem Schritt 1126.
Schritt 1118: Inkrementiere den Doppelwort-Zähler 802 und gehe zu dem Schritt 1122.
Schritt 1120: Inkrementiere den Doppelwort-Zähler 802 und gehe zu dem Schritt 1124.
Schritt 1122: Ist der Doppelwort-Zähler 802 gleich zu einem Wert von 20? Wenn ja, gehe zu dem Schritt 1126; sonst fahre durch Rückkehr zu dem Schritt 1112 mit dem Speichern von Daten fort.
Schritt 1124: Ist der Doppelwort-Zähler 802 gleich zu einem Wert von 20? Wenn ja, gehe zu dem Schritt 1126; sonst fahre durch Rückkehr zu dem Schritt 1114 mit dem Speichern von Daten fort.
Schritt 1126: Inkrementiere den Block-Zähler 804 und gehe zu dem Schritt 1128.
Schritt 1128: Ist der Block-Zähler 804 gleich zu einem Wert von 150? Wenn ja, gehe zu dem Schritt 1130; sonst fahre durch das Zurückkehren zu dem Schritt 1102 mit dem Empfangen des nächsten Blocks fort.
Schritt 1130: Inkrementiere den Sequenzzähler 806 und kehre zu dem Schritt 1102 zurück.
-
12 zeigt ein Speicherabbild eines Video-Bereichs (Videostrom FIFO) und eines Audio-Bereichs (Audiostrom FIFO) des Speichers 708. Der Speicher 708 ist als zwei Strom-FIFOs implementiert: der Videostrom-FIFO und der Audiostrom-FIFO. Durch das Verwenden des Schreibzeigers 904 als den Video-Lesezeiger 1204 und den Audio-Schreibzeiger 1206, und durch das Verwenden des Lesezeigers 906 als den Video-Lesezeiger 1202 und den Audio-Lesezeiger 1208 wird nach dieser Erfindung die Zeigerverwaltung des Speichers 708 leicht ausgeführt. In dieser Situation werden der Lesezeiger 906 und der Schreibzeiger 904 verwendet, um Frames sowohl in dem Audio-Bereich als auch in dem Video-Bereich des Speichers 704 anzuzeigen.
-
13 zeigt ein bevorzugtes Verfahren des Einschreibens von Daten in einem bestimmten Frame N des Speichers 708. Da die Reihenfolge der empfangenen Blöcke 330 bekanntermaßen wie in 4 gezeigt ist, kann das 3 Byte lange Block-Identifikations-(ID-)Feld 332 von jedem empfangenen Block 330 zu einer Adresse innerhalb des bestimmten Frames N in dem Speicher 708 zugewiesen werden. Auch wenn ein Fehler auftritt, wird es auf diese Weise verhindert, dass sich der Fehler in dem Speicher 708 weiterverbreitet. Jeder empfangene Block 330 wird in die korrekte Position in dem Frame eingeschrieben. Tritt in einem Block 330 ein Fehler auf, so wird dieser Block 330 nicht in den Speicher 708 eingeschrieben, wodurch jedoch das Einschreiben von anderen Blöcken 330 in den Speicher 708 nicht beeinflusst wird, welche unter Verwendung der Adresse innerhalb des bestimmten Frames N des korrekten Abschnitts, die zu dem 3 Byte langen Block-Identifikations-(ID-)Feld 332 korrespondiert, das in jedem empfangenen Block 330 empfangen wurde, direkt in den Speicher eingeschrieben werden.
-
Wie in den 14 und 15 gezeigt, sind nach dieser Erfindung auch andere Ausführungsformen möglich, die unterschiedliche Verfahren des Einschreibens von Daten in den Speicher 708 verwenden. Z. B. zeigt 14 ein zweites Verfahren des Einschreibens von Daten in einen bestimmten Frame N des Speichers 708. In dieser Ausführungsform speichert die Puffer-Verwaltungseinrichtung 704b aufeinanderfolgend die Video- und Audio-Blöcke entsprechend des Schreib-Blockzeigers 904 in jeweilige Bereiche des Speichers. Bestimmt der Datenextrahierer 704a, dass der eingehende Bitstrom DV_DATA einen Fehler aufweist, so kehrt die Puffer-Verwaltungseinrichtung 704b an den Anfang der jeweiligen Bereiche zurück. Als ein anderes Beispiel zeigt 15 ein drittes Verfahren des Einschreibens von Daten in einen bestimmten Frame N des Speichers 708. In dieser Ausführungsform speichert die Puffer-Verwaltungseinrichtung 704b aufeinanderfolgend die Video- und Audio-Blöcke entsprechend des Schreib-Blockzeigers 904 in jeweilige Bereiche des Speichers 708. Bestimmt der Datenextrahierer 704a, dass der eingehende Bitstrom DV_DATA einen Fehler aufweist, so inkrementiert die Puffer-Verwaltungseinrichtung 704b den Schreib-Blockzeiger 904 und überspringt entsprechend des inkrementierten Schreib-Blockzeigers 904 an den Anfang der jeweiligen Bereiche. In anderen Worten überspringt die Puffer-Verwaltungseinrichtung 704b an den nächsten Frame, wenn ein Fehler auftritt. Beide in der 14 und der 15 gezeigten Verfahren verhindern ebenfalls die Fehlerausbreitung innerhalb des Speichers 708.
-
Diese Erfindung offenbart ein Digital-Video-(DV-)Speichersystem 700 und ein sich darauf beziehendes Verfahren zum Speichern von DV-Daten. Das DV-Speichersystem 700 umfasst ein Schnittstellenmodul, welches ein eingehendes Signal DATA_IN empfängt und das eingehende Signal DATA_IN in einen eingehenden Bitstrom DV_DATA wandelt. Ein DV-Demultiplexer 704 ist direkt mit dem Schnittstellenmodul 702 verbunden, um den eingehenden Bitstrom DV_DATA zu empfangen und empfangene DIF-Blöcke 330 in dem eingehenden Bitstrom DV_DATA in wenigstens Video-Blöcke, die in Video-Abschnitten bestehen, und Audio-Blöcke, die in Audio-Abschnitten bestehen, zu demultiplexen. Diese Video- und Audio-Blöcke werden anschließend in einen Speicher 708 eingeschrieben. Durch das direkte Anschließen des Schnittstellenmoduls 702 an den DV-Demultiplexer 704 und dadurch, dass der eingehende Bitstrom DV_DATA nicht außerhalb des Schnittstellenmoduls 702 und des DV-Demultiplexers 706 gepuffert wird, kann nach dieser Erfindung die Anforderung an die Speicher-Bandbreite des Speichers 708 stark reduziert werden. Zusätzlich können das Schnittstellenmodul 702 und der DV-Demultiplexer 704 leicht als ein einziges IC implementiert werden, wodurch der Aufbau vereinfacht wird und die Rechenanforderungen einer in der Schaltung vorgesehenen CPU reduziert werden und die Gesamtkosten des DV-Speichersystems vermindert werden.