-
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 12.
-
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 Rudio- 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 12 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 Resonanzprü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.
-
Den
Fachleuten auf diesem Gebiet ist es erkenntlich, dass die Vorrichtung
vielfältig
modifiziert und abgewandelt werden kann, ohne von der Lehre der
Erfindung abzuweichen. Demzufolge sollte die obige Offenbarung als
nur durch das Maß und
Ziel der angefügten
Patentansprüche
begrenzt ausgelegt werden.