-
Die Erfindung betrifft ein Verfahren zum Empfangen und Verarbeiten von Streamingdaten durch eine, insbesondere als ein AVB-Switch ausgestaltete, Verarbeitungseinheit. Des Weiteren betrifft die Erfindung eine Verarbeitungseinheit zum Durchführen eines derartigen Verfahrens.
-
Stand der Technik
-
Im Bereich der Übertragung von Streamingdaten ist das sogenannte Audio Video Bridging (AVB) bekannt, welches Standards für synchronisiertes und priorisiertes Streaming von Audio- und Videodaten über Netzwerke ermöglicht.
-
Die Übertragung von Streamingdaten in AVB erfolgt im Multicast-Verfahren mit einem sogenannten Talker bzw. Quellen und mehreren Zuhörern bzw. Empfängern. Die Übertragung von Streamingdaten erfolgt hierbei in Form von Paketen, welche in regelmäßigen zeitlichen Abständen übermittelt werden. Die Übertragung mittels des AVB ermöglicht eine besonders schnelle Übertragung mit einer Latenzzeit von 2 ms für Klasse A Streaming.
-
Problematisch ist jedoch der Empfang von Klasse A Streamingdaten, bei welchen eine hohe Anzahl von Paketen mit einer geringen Datengröße übertragen wird. Für die üblicherweise eingesetzten System on Chip (SoC) Systeme stellt die Vielzahl an Paketen eine große Herausforderung dar, da die Prozessoreinheiten der SoC-Systeme bei der Dekodierung vollständig ausgelastet werden. Die Prozessoreinheit kann in einem zu 100% ausgelasteten Zustand keine weiteren Aufgaben wahrnehmen. Aus diesem Grund ist eine Umgehungsmöglichkeit bekannt, welche einen externen digitalen Signalprozessor einsetzt, um die empfangenen Streamingdaten zu dekodieren. Die zusätzliche Komponente erhöht jedoch die Kosten des Empfängers.
-
Offenbarung der Erfindung
-
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zu schaffen, welches bei einem Empfang und einer Verarbeitung von AVB-basierten Streamingdaten die Beanspruchung der Prozessoreinheit reduziert und den Einsatz zusätzlicher Prozessoreinheiten vermeidet.
-
Diese Aufgabe wird durch die im Anspruch 1 und Anspruch 10 angegebenen Merkmale gelöst. Weitere vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen beschrieben.
-
Gemäß einem Aspekt der Erfindung wird ein Verfahren zum Empfangen und Verarbeiten von Streamingdaten durch eine, insbesondere als ein AVB-Switch ausgestaltete, Verarbeitungseinheit bereitgestellt.
-
In einem Schritt werden von mindestens einer Quelle ausgesendete Streamingdaten über eine Ethernetverbindung empfangen. Die Streamingdaten können vorzugsweise AVB-basiert übertragen werden, sodass mehrere Quellen und mehrere Verarbeitungseinheiten als Empfänger über gemeinsame Ethernetverbindungen anschließbar sind.
-
Die empfangenen Streamingdaten werden durch die Verarbeitungseinheit dekodiert. Die dekodierten Streamingdaten werden anschließend als Audiodaten von der Verarbeitungseinheit an eine Prozessoreinheit übermittelt.
-
Gemäß einem weiteren Aspekt der Erfindung wird eine Verarbeitungseinheit, insbesondere ein AVB-Switch oder eine Komponente eines AVB-Switchs, bereitgestellt. Die Verarbeitungseinheit ist dazu eingerichtet, das erfindungsgemäße Verfahren auszuführen.
-
Die Verarbeitungseinheit, welche als ein AVB-Switch oder eine Komponente eines AVB-Switchs ausgestaltet sein kann, kann einen oder mehrere Klasse A Streams decodieren und einem SoC-System bzw. der Prozessoreinheit in einer geeigneten Weise zur Verfügung zu stellen.
-
Durch das Verfahren können die empfangenen Streamingdaten bereits von der Verarbeitungseinheit dekodiert bzw. vorverarbeitet werden. Durch diese Maßnahme kann die Prozessoreinheit entlastet werden. Dabei kann die Prozessoreinheit die nach der Dekodierung resultierenden Audiodaten direkt verwerten bzw. verarbeiten, wodurch die Auslastung der Prozessoreinheit verringert wird.
-
Aufgrund der resultierenden Entlastung der Prozessoreinheit können zusätzliche Signalprozessoren eingespart werden.
-
Die dekodierten Streamingdaten können vielseitig an die Prozessoreinheit übertragen werden, wenn dekodierten Streamingdaten über eine I2S-Schnittstelle, eine Pulse-Code-Modulierung oder ein Time-Division-Multiplexing als Audiodaten an die Prozessoreinheit übermittelt werden. Hierdurch können unterschiedliche Schnittstellen und Übertragungstechnologien für eine Übermittelung der dekodierten Streamingdaten an die Prozessoreinheit gewählt werden.
-
Gemäß einem weiteren Aspekt der Erfindung werden die dekodierten Streamingdaten über einen Speicherdirektzugriff, insbesondere einer PCI-Express-Schnittstelle, an die Prozessoreinheit übermittelt. Hierdurch kann eine weitere alternative Übertragungsmöglichkeit zum Übertragen der dekodierten Audiodaten an die Prozessoreinheit bereitgestellt werden. Dabei kann ein direkter DMA-Kanal von einem PCIe-Bus eingesetzt werden, welcher die Verarbeitungseinheit mit der Prozessoreinheit datenleitend verbindet. Dabei kann vorzugsweise eine Applikation auf der Prozessoreinheit in einem festen Zeitintervall via „Polling“ dekodierte Audiodaten empfangen. Das Empfangen der Audiodaten kann beispielsweise ein Mal pro Millisekunde erfolgen. Bei einer beispielhaften Übertragung von 16 bit Audiodaten und einem Stereo Format entspricht ein Sample 6 Bytes je Audio Kanal. Die möglichen Audio Übertragungsraten sind in der IEEE 1722 Norm spezifiziert.
-
Die Prozessoreinheit kann die empfangenen Audiodaten beispielsweise für eine Wiedergabe über einen Verstärker vorbereiten und/oder weiterleiten.
-
Eine Dekodierung der empfangenen Streamingdaten kann technisch besonders einfach erfolgen, wenn bei der Dekodierung der empfangenen Streamingdaten ein IEEE-Header der empfangenen Streamingdaten, insbesondere von Paketen der Streamingdaten, entfernt wird. Der IEEE-Header wird durch die Verarbeitungseinheit abgeschnitten, sodass nur die reinen Audiodaten weitergeleitet werden. Hierfür kann die Verarbeitungseinheit die beispielsweise als IEEE 1722 Audiostreams ausgestalteten Streamingdaten erkennen. Dazu wird eine sogenannte Multicast-MAC-Adresse und die sogenannte Stream-ID verwendet. Durch diese Parameter können die Streamingdaten eindeutig gekennzeichnet werden.
-
Nach einer weiteren Ausführungsform werden die empfangenen Streamingdaten in Form von Paketen mit jeweils einem IEEE-Header empfangen und mit der mindestens einen Quelle synchronisiert. Bevorzugterweise wird ein Paketsequenzzähler der Verarbeitungseinheit ausgewertet und bei einem fehlenden Paket ein Mittelwert zum Ersetzen des fehlenden Pakets aus zumindest zwei vorherigen empfangenen Paketen gebildet. Für eine robuste Übertragung der Streamingdaten muss die Verarbeitungseinheit mindestens 8 Audio Samples je Stream speichern können. Das entspricht einem Intervall von einer Millisekunde. Die Verarbeitungseinheit kann den Paketsequenzzähler auswerten, um fehlende Pakete der empfangenen Streamingdaten zu erkennen. Fehlt ein Paket, so kann beispielsweise ein Mittelwert der vorhergehenden zwei Pakete berechnet werden, um das fehlende Paket zu ersetzen.
-
Es können Übertragungsfehler besonders effizient detektiert und vermieden werden, wenn der Paketsequenzzähler der Verarbeitungseinheit ausgewertet und bei mehr als einem fehlenden Paket eine Stummschaltung veranlasst wird. Fehlt mehr als ein Paket der Streamingdaten, kann der Stream stummgeschaltet werden. Dazu können Nullen in den Stream kopiert werden. Erst wenn mindestens 16 Pakete der Streamingdaten erneut ohne Fehler durch die Verarbeitungseinheit empfangen werden, kann der Stream bzw. die Audiodaten des Streams wieder weitergegeben werden. Hierdurch kann die Stummschaltung aufgehoben werden.
-
Nachstehend werden mehrere Ausführungsbeispiele der Erfindung anhand der Zeichnungen näher erläutert. Es zeigen:
- 1 eine schematische Darstellung eines Systems mit einer Verarbeitungseinheit zum Veranschaulichen eines Verfahrens gemäß einer ersten Ausführungsform,
- 2 eine schematische Darstellung eines Systems mit einer Verarbeitungseinheit zum Veranschaulichen eines Verfahrens gemäß einer zweiten Ausführungsform, und
- 3 eine schematische Darstellung eines beispielhaften AVB-Frames gemäß der IEEE 1722 Norm.
-
In der 1 ist eine schematische Darstellung eines Systems 100 mit einer Verarbeitungseinheit 10 zum Veranschaulichen eines Verfahrens gemäß einer ersten Ausführungsform gezeigt.
-
Das System 100 weist eine Verarbeitungseinheit 10 auf, welche beispielhaft als ein AVB-Switch ausgestaltet ist. Die Verarbeitungseinheit 10 ist über eine Ethernetverbindung 20 mit einer oder mehreren Quellen 30 für Streams verbunden.
-
Die Quellen 30 können Audiodaten und/oder Videodaten in Form von Streamingdaten über die Ethernetverbindung 20 übertragen. Die Verarbeitungseinheit 10 kann die Streamingdaten empfangen und dekodieren, um eine Prozessoreinheit 40 des Systems 100 zu entlasten.
-
Die Prozessoreinheit 40 kann als ein SoC-System oder ein Teil eines SoC-Systems ausgestaltet sein.
-
Die Prozessoreinheit 40 ist im ersten Ausführungsbeispiel über einen Netzwerkadapter 50 mit der Verarbeitungseinheit 10 bzw. dem AVB-Switch verbunden. Die Prozessoreinheit 40 ist vorzugsweise über eine PCI-Express-Schnittstelle bzw. Bus 60 mit dem Netzwerkadapter 50 verbunden.
-
Die von der Verarbeitungseinheit 10 empfangenen und dekodierten Audiodaten bzw. Streamingdaten können an dem Netzwerkadapter 50 vorbei über eine als I2S-Schnittstelle ausgestaltete Leitung 70 an die Prozessoreinheit 40 übermittelt werden. Die I2S-Schnittstelle 70 fungiert somit als eine Bypassleitung zwischen der Verarbeitungseinheit 10 und der Prozessoreinheit 40.
-
Die Leitung 70 zwischen der Verarbeitungseinheit 10 und der Prozessoreinheit 40 kann alternativ oder zusätzlich zum Übertragen von Audiodaten durch Pulse-Code-Modulierung oder ein Time-Division-Multiplexing eingesetzt werden.
-
Zum Überprüfen einer Vollständigkeit der empfangenen Streamingdaten bzw. der Pakete der Streamingdaten weist die Verarbeitungseinheit 10 einen Paketsequenzzähler 11 auf, welcher auf einen oder mehrere quellenseitige Paketsequenzzähler 31 abgestimmt ist.
-
Die 2 zeigt eine schematische Darstellung eines Systems 100 mit einer Verarbeitungseinheit 10 zum Veranschaulichen eines Verfahrens gemäß einer zweiten Ausführungsform. Im Unterschied zum in 1 gezeigten Ausführungsbeispiel erfolgt die Übertragung der Audiodaten zwischen der Prozessoreinheit 40 und der Verarbeitungseinheit 10 über einen PCI-Express-Bus 60. Hierdurch kann der Einsatz des Netzwerkadapters 50 eingespart werden.
-
Die Übertragung der dekodierten Streamingdaten von der Verarbeitungseinheit 10 zu der Prozessoreinheit 40 erfolgt über einen Speicherdirektzugriff bzw. einen DMA-Kanal von dem PCI-Express-Bus 60.
-
Die Verarbeitungseinheit 10 kann dabei einen oder mehrere Streams bzw. Streamingdaten von einer oder mehreren Quellen 30 empfangen und verarbeiten. Bei der Verarbeitung wird eine Dekodierung von Paketen der Streamingdaten durchgeführt, bei welcher Header der Pakete der Streamingdaten entfernt und die verbleibenden Audiodaten der Pakete an die Prozessoreinheit 40 weitergeleitet werden.
-
Die Prozessoreinheit 40 kann anschließend eine weitere Verarbeitung oder Weiterleitung der Audiodaten vornehmen. Beispielsweise kann die Prozessoreinheit 40 die Audiodaten an ein Infotainmentsystem oder an einen Verstärker weiterleiten. Beispielsweise kann die Prozessoreinheit 40 eine Rauschunterdrückung und eine Echoreduzierung veranlassen oder umsetzen, dies kann insbesondere bei Spracheingaben, wie beispielsweise bei der sogenannten „Handsfree“ Telefonie in Fahrzeugen eingesetzt werden.
-
In der 3 ist eine schematische Darstellung eines beispielhaften AVB-Frames gemäß der IEEE 1722 Norm gezeigt. Dabei sind insbesondere die notwendigen Parameter des AVB-Frames dargestellt, welche zum Ermöglichen der Übertragung bzw. des Streamings von Streamingdaten notwendig sind. Die Übertragung der Streamingdaten kann beispielsweise in Form von AVB-Frames erfolgen.
-
Zu den notwendigen Parametern gehören beispielsweise die Zieladresse DA und die Absenderadresse SA, welche als Multicast-MAC Adressen ausgestaltet sein können. Ein sogenannter Streamidentifier SID dient zur Identifizierung des Streams und der über den Stream übertragenen Streamingdaten. Weiterhin kann in den AVB-Frame eine Ausgabe eines Paketsequenzzählers 11, 31 in Form einer sogenannten Stream Sequenz registriert werden.
-
Des Weiteren weist der AVB-Frame die Audiodaten auf, welche als Streamingdaten übermittelt werden.
-
Bei der Dekodierung der AVB-Frames bzw. der Streamingdaten durch die Verarbeitungseinheit 10 können die Audiodaten der AVB-Frames extrahiert und separat an die Prozessoreinheit 40 weitergeleitet werden. Hierdurch kann das Dekodieren und Extrahieren der Audiodaten durch die Prozessoreinheit 40 entfallen.