Forum: Digitale Signalverarbeitung / DSP / Machine Learning Suche DEV-Board bzw. CPU Empfehlung für MP4 bwz. H264 Video Encoding


von FPGA-Fragender (Gast)


Lesenswert?

Zur Info: Frage wurde ohne inhaltliche Antwort schon in anderer Forums 
Kategorie gepostet, passt aber wohl besser hier her.

Hallo beisammen,

ich hab keine Erfahrung mit den am Markt angebotenen preisgünstigen
Linux/Android Boards ( mit ARM CPU + GPU ) und brauche eure
Einschätzung/ Empfehlung welche Rechenleistung (Single/Dual/QuadCore
Board, xy MHz ) ich benötige, um meinen Windows PC durch das gesuchte
Board zu ersetzen.

Bisher übernimmt ein handelsüblicher Windows PC folgende Aufgaben:

- kontinuierliches einlesen von full HD JPG Einzelbilder
  per USB ( Endpoint lesen ). Jedes Bild ist ca. 1 MByte groß. 24 FPS
- Dokodieren von JPG nach RGB Format
- Encodieren in MP4 Format
- Einlesen von Sound über Sound Karte
- Schreiben der Audio / Video Daten in einen AVI Container auf
Festplatte


ich habe folgendes funktionsfähiges System aufgebaut
======================================================
- FPGA Board
- erweitert mit selbstgebautem HDMI Input Board
- erweitert mit USB 2.0 Board ( Slave )


Folgende Funktion wird durch das System realisiert:
===================================================
- Ein Video Stream full HD 1080p wird per HDMI eingelesen
- Wandlung in eine Serie von unabhängigen Einzelbildern im JPG Format
- Bereitstellung der einzelnen Bilder im full HD Format 1080p am USB Bus


Ich gehe davon aus, dass ein Board OHNE zusätzlichen Graphic CHIP die
MP4 Codierung 1080p / 24FPS in Echtzeit NICHT zuverlässig schaffen wird.

Deshalb meine spezielle Frage, kennt jemand ein Board, das einen Graphic
Chip mit Encoder Funktion besitzt und hat Erfahrungen damit ?

Vielen Dank

von Vanilla (Gast)


Lesenswert?

FPGA-Fragender schrieb im Beitrag #3393139:

> Folgende Funktion wird durch das System realisiert:
> ===================================================
> - Ein Video Stream full HD 1080p wird per HDMI eingelesen
> - Wandlung in eine Serie von unabhängigen Einzelbildern im JPG Format
> - Bereitstellung der einzelnen Bilder im full HD Format 1080p am USB Bus
>
>
> Ich gehe davon aus, dass ein Board OHNE zusätzlichen Graphic CHIP die
> MP4 Codierung 1080p / 24FPS in Echtzeit NICHT zuverlässig schaffen wird.
>
> Deshalb meine spezielle Frage, kennt jemand ein Board, das einen Graphic
> Chip mit Encoder Funktion besitzt und hat Erfahrungen damit

Den Schrtt das HD Video erst in JPG zu verbuchseln um das hinerther 
erneut zu recodieren, mag zwar in deinem Proof of Concept noch einen 
Sinn gemacht haben. Das ganze beibehalten zu wollen wenn Du jetzt den 
Rechnerkern verändern willst jedoch nicht.

Überlicherweise enthalten die ARM Derivate welche in der Lage sind (HD) 
Video MPEG(2 oder H.264) zu encodieren auch Videoinputs welche in der 
Lage sind Video >= Full-HD direkt an einer dedizierten 
Videoschnittstelle entgegen zu nehmen.

Eine CPU mit Full-HD H2.264 Encode welche auch für kleinere Firmen und 
Hobbyisten erhälltlich ist, wäre z.B. Freescale´s i.MX6. Gibt und kommen 
diverse Evalboards in der Region $60 - $160.

>
> Vielen Dank

Nix zu Danke, zahl dei Sach ;)

Gruß

Vanilla

von FPGA-Fragender (Gast)


Lesenswert?

Hallo Vanilla,

Dein Hinweis auf die i.MX6 Familie ist gut, aber leider konnte ich 
gerade KEIN Eval Board finden, das HDMI input über Buchse oder 
Erweiterungsplatine anbietet.

Nach meine Recherche hat der Processor an sich nur einen HDMI out Port.

Der Video Input ist wohl üblicherweise nur über "Camera Link" möglich, 
der sich von HDMI, DVI grundsätzlich unterscheidet.

Die Multimedia codecs werden von FreeScale grundsätzlich angeboten. Ist 
Dir bekannt unter welchen Bedingungen ( Kosten, Lizenz, Abnahmemengen 
usw ) überhautp an Privatkunden weitergegeben wird ?

bin weiterhin auf der Suche.

von Vanilla (Gast)


Lesenswert?

Hallo FPGA Fragender,

mit HDMI Input wirst Du wohl auch nichts finden.
Kommerziel wird mit HDMI Input sofort auch HDCP verbunden sein, welches 
dann wohl eher nicht in einem gut dokumentierten? und debugbaren System 
gelöst werden sollte...

Der iMX6 besitzt parallele und LVDS (MIPI) Videoinputs womit er ja nach 
Typ 1-2 Videoinputs parallel geliefert bekommen kann. Der MIPI Input ist 
meines Wissens nach bei den meisten Evalboards herausgeführt. Beim 
paralellen muss man wohl suchen. Unter anderem auch deshalb, weil die 
Pins mit anderen Funktionen geshared sind, und für andere Funktionen 
dann nicht mehr zur Verfügung stehen.
MIPI hat grundsätzlich schon Ähnllichkeiten mit Camaralink. Für eine 
Konvertierung von einem HDMI/DVI Input kann entweder mit FPGA oder aber 
über 1-2 fertige ICs erfolgen.

Der Weg über USB-JPG ist grundsätzlich natürlich auch möglich kostet 
jedoch zusätzliche Rechenpower JPG erst mal wieder zu decodieren.

Für den iMX gibt es sowohl Android als auch Linux Support (Ubuntu?).
Die Treiber zur VPU sind zwar Closed Source, stehen aber 
lizenskostenfrei zur Verfügung und werden auch standardmäßig genutzt zum 
Beispiel vom GStreamer etc.

Die CPU kannst Du einzelstückmässig z.B. bei DigiKey und Konsorten 
bekommen. Ggfs. bietet es sich aber an, ein fertiges Board z.B. auf 
Basis Q7 o.ä. zu kaufen und "nur" das Baseboard zu designen.

von Strubi (Gast)


Lesenswert?

Hi,

an HDMI in hab ich mir auch schon die Zähne ausgebissen und nix 
gefunden.
Ein FPGA-Hack ist sicher machbar, aber für ein Endprodukt wirds 
rechtlich ev. noch knifflig...wahrscheinlich darf man's einfach nicht 
als HDMI bezeichnen.

Vanilla schrieb:
> Der Weg über USB-JPG ist grundsätzlich natürlich auch möglich kostet
> jedoch zusätzliche Rechenpower JPG erst mal wieder zu decodieren.

Das Problem könnte vor allem sein, die isochronen (wie ich mal annehme) 
Datenströme von der Kamera garantiert verlustfrei ins System zu kriegen. 
Mit Restart-Markern kann man zwar was reparieren, aber 100% Garantie auf 
ein intaktes Bild gibt's nicht. Erlebe da gerade Enttäuschungen auf div. 
embedded ARM-Rechnern auf der USB-Seite.

FPGA-Fragender: Hast du schon direkt h264 encoding auf dem FPGA 
evaluiert?
Ich habe mal was angefangen, aber die Hürde für die DDR-Anbindung war 
mir in dem Moment zu gross (da es nix von der Stange fertig gab), ist 
also erst mal auf Eis. Es gibt auf jeden Fall etwas Referenz-Code im 
Netz, so dass man nicht bei Null anfangen muss.

Ansonsten soll der RPi auch HW-unterstütztes encoding per GPU können, 
aber da das ganze alles ziemlich closed source/doc ist, habe ich mir das 
noch nicht angesehen. Kommt vielleicht mal noch..

Grüsse,

- Strubi

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.