Forum: PC-Programmierung h264/5 mit Geschmacksrichtung h262


von Dergute W. (derguteweka)


Lesenswert?

Moin,

Unn zwaa haett ich gern folgendes Problem:

Es gibt so diverse SoCs (fuer Dashcams, etc.) die fuer h264/5 
encodierung einen Hardwarebeschleuniger eingebaut haben, als CPU aber 
eher nur kuemmerliche AeRMchen - also nix, wo ein ffmpeg performant 
drauf laufen wuerde.
Wenn ich nun mit so einem SoC "mit Gewalt" einen h262 (mpeg2) Videostrom 
erzeugen will, was der Hardwarebeschleuniger nicht so direkt hergibt, 
ist die Frage, ob man das nicht irgendwie "anders" hinkriegen kann - 
z.b. dass man versucht, per hw-beschleunigter h264/5 encodierung einen 
entsprechenden Bitstrom zu erzeugen, der danach moeglichst "billig" (im 
Sinn von CPU-Bumms- Verbrauch) in h262 (mpeg2video) gewandelt werden 
kann. "Billig" waere es z.b. wenn man nicht die Bewegungsschaetzung, DCT 
oder sowas "neu" machen muesste, die GOP-Stuktur gleichbliebe, etc.

Nu ist aber h264 (und wahrscheinlich h265 auch) ein arg komplexes Ding, 
mit vielen Schraeubchen zum Drehen. Hier wird z.B. beschrieben, wie man 
unkomprimiertes Video in h264 encodieren ( eigentlich eher nur 
"verpackeln") kann:
https://www.cardinalpeak.com/blog/worlds-smallest-h-264-encoder

Hat dazu analog mal jemand z.b. was in Richtung h262 in h264 encodieren 
irgendwo gesichtet - das waere zumindest schon mal das umgekehrte 
Szenario, was ich eigentlich gerne haette?

Ich tu mir mit googlen auch etwas schwer, da kommen eher Vergleiche 
zwischen den verschiedenen Videocodecs oder eben allgemeines Blabla, wie 
diese Codecs funktionieren...

Gruss
WK

von c-hater (Gast)


Lesenswert?

Dergute W. schrieb:

> Wenn ich nun mit so einem SoC "mit Gewalt" einen h262 (mpeg2) Videostrom
> erzeugen will, was der Hardwarebeschleuniger nicht so direkt hergibt,
> ist die Frage, ob man das nicht irgendwie "anders" hinkriegen kann

Kurz: Vergiß es.

Das liegt weniger daran, dass nicht durchaus Teile der 
H.264/5-Hardwarebeschleunigung auch für MPEG2 sehr schick nutzbar wären. 
Es liegt vielmehr daran, dass du praktisch keine Chance hast, an diese 
Teile direkt ranzukommen.

Typisch ist es heute sogar so, dass nichtmal vollständige Doku hier 
helfen würde (die natürlich der Normalsterbliche sowieso nicht bekommt). 
Das liegt daran, das Schnittstellen zu den interessanten Teilbereichen 
schon im Design der Hardware einfach nicht mehr vorgesehen sind.

von Messtechnikprofi (Gast)


Lesenswert?

Diese encoder, die hier angesprochen werden, sind bei SoC ausnahmslos 
fest verdrahtete Hardware. Diese lässt sich in aller Regel nicht so 
konfigurieren, dass sie alte Standards ausgibt und wenn dürfte das nicht 
nur ein SW- und Konfigurationsproblem werden, sondern auch eines der HH. 
Verschiedene Modi und Bandbreiten müssen abgespeckt werden, weil der 262 
nicht alles kann.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Ja, ist mir schon klar, dass ich an der fest verdrahteten Encoder)Logik 
nix aendern kann.
Frage ist nur, ob man bestimmte (welche) Betriebsarten einstellen kann, 
z.b. SimpleProfile, keine B-Frames, etc. um einen h264 Strom zu kriegen, 
der relativ aufwandsarm von der CPU auf h262 umgemodelt werden koennte.
Klar muesste dann die CPU per (hoechstwahrscheinlich noch zu 
schreibender) Software hergehen und eben aus den h264 NAL units (die 
aus'm HW-Beschleuniger rausfallen) die entsprechenden mpeg2 Geschichten 
machen.

Also z.b. aus ner Nalu "Nummer 5; IDR-Picture" ein mpeg2 iframe basteln 
(ohne IDCT und neue DCT berechnen zu muessen), aus den SPS und PPS Nalus 
entsprechende mpeg2 sequence header und GOP Header...
Was sicherlich noch Aufriss ist.
Aber eben deutlich weniger, wie ein ffmpeg draufzuhetzen, was das h264 
komplett decodiert und mpeg2 komplett neu encodiert.

Gruss
WK

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.