2012-03-28 6 views

Antwort

2

Es gibt keine naive Möglichkeit, dies zu lösen - geschweige denn eine allgemeine "automatische Umwandlung".

Nur ein detailliertes Verständnis wie H.264 arbeitet und sorgfältige Anwendung der richtigen Parallelisierungstechniken nach einem richtig parallized Algorithmus werden brauchbare Ergebnisse liefern.

H.264, wie die meisten Videoformate, stützt sich auf zeitlichen Rahmen Daten und effektiv berechnet nur „eine laufende Delta“, die dieses Problemsehr komplex macht. Dies ist nur ein der Techniken, die verwendet, um eine solche gute Komprimierung zu erreichen, aber die Komplexität des Formats hört nicht auf: meisten der Daten ist in irgendeiner Weise verwandt! (Je abhängiger die Daten sind, desto weniger ideal ist sie für die parallele Verarbeitung.)

Ich würde vorschlagen, nach einer (nicht referenzierten Open Source) Implementierung zu suchen, die Threads verwendet, wenn eine solche Implementierung existiert. Sehen Sie sich vielleicht den Codec an, den VLC verwendet? (Am Ende habe ich mehr Nutzen vermuten, kommt von Offloading auf spezielle Hardware-Hilfsmodule wie diejenigen, gebündelt mit modernen ATI oder NVIDIA-GPUs.)


Wenn Sie wirklich daran interessiert sind diese bei der Verfolgung, siehe ...

... und die Millionen anderer White Papers da draußen (Suche nach "parallel decode h.264").

+0

Ich stimme mit Ihnen über die Komplexität überein und ich habe es für eine ziemlich lange Zeit konfrontiert.Ich habe ein Call-Graph der Hauptfunktion generiert, um ein besseres Verständnis des Codes zu bekommen und eine Vorstellung von Datenfluss aber immer noch zu bekommen kommt zur Parallelisierung des Codes, Datenabhängigkeit ist zu viel, dass es die parallele Verarbeitung sehr schwierig macht. Ich werde deinen Vorschlag versuchen. Danke. –

+0

Ich habe diese Papiere und noch ein paar mehr dazu gelesen. Es gibt mir ein theoretisches Verständnis davon, wie es gemacht wurde, aber wie man es implementiert, ist immer noch ein Zweifel. –

Verwandte Themen