Frage

muß ich 4 mehr vollen PAL-Videos (720x576 @ 25) von YUV umwandeln: 2: 2 RGB, in Echtzeit, und wahrscheinlich eine individuelle Größenanpassung für jeden. Ich habe gedacht, um die GPU zu verwenden, wie ich einige Beispiele gesehen habe, die genau dies tut (außer dass es 4: 4: 4, so dass die bpp das gleiche ist in Quelle und Schicksal) - http://www.fourcc.org/source/YUV420P-OpenGL-GLSLang.c

Aber ich habe keine Erfahrung mit GPUs verwenden und ich bin nicht sicher, was getan werden kann. Das Beispiel, wie ich es verstehe, nur wandelt das Videobild YUV und zeigt sie auf dem Bildschirm.

Ist es möglich, anstelle den verarbeiteten Rahmen zu bekommen? Wäre es die Mühe wert sein es auf die GPU zu schicken, bekommen sie verwandelt, und es wieder in dem Hauptspeicher zu senden, oder würde es Leistung töten?

Als ein wenig plattformspezifische, vorausgesetzt, ich Arbeit an Fenstern, ist es möglich, eine OpenGL oder DirectDraw Oberfläche aus einem Fenster zu erhalten, damit die GPU direkt daran ziehen kann?

War es hilfreich?

Lösung

Die eigentliche Frage ist, was Sie tun, hoffen dies raus?

Bei der Frame-Rate Sie Video empfangen, Sie so etwas wie Intel Performance Primitives nutzen konnte das Paar von Operationen zu tun, die Sie benötigen und einfach mit dem Strom halten.

Wenn Sie erfahren möchten, wie gpu Programmierung zu tun, das ist ein schönes einfaches Problem, dass Sie implementieren können.

Es ist möglich, den verarbeiteten Rahmen zu erhalten, indem eine abgefragten vom gpu in dem Speicher zu tun. Die tatsächlichen Mechaniker variieren, je nachdem, was api Sie verwenden (OpenGL, DirectX, CUDA, OpenCL). Ich habe es mit viel größerer Auflösung Video gemacht und immer noch mit einem 25 fps Strom gehalten. Allerdings ist dies alles von der Hardware abhängig, dass Sie verwenden werden.

DirectX und OpenGL beide haben große Tutorien auf Fenster mit Flächen als Ziele machen.

Andere Tipps

Ich habe programmiert tatsächlich dies für CUDA in C und ein pThreads einen in C (nur zum Spaß, Sie aber etwas dagegen.) Und ich fand, dass die GPU so schnell arbeitet, dass Sie 50-80% Ihrer Zeit verbringen Senden von Daten hin und her, auch wenn Sie jedes Mal, füllt vollständig die Erinnerung an der GPU. Aufgrund dieser Tatsache hat die CPU diese Arbeit so ziemlich genauso schnell wie der GPU konnte. Dieses Problem ist sehr freundlich fädelt, wie Sie herausgefunden haben, so mit moderner Hardware, Speicher-Bandbreite die größte Ausgabe ist.

Getestet habe ich diese mit Core i7 als CPU und GeForce 8800GT / GTX 285 als Grafikkarte. Die GTX285 afaik 1500fps von 1920x1080 Video verarbeitet, also egal, was Sie wählen, wird es unglaublich schnell sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top