© best_vector/Shutterstock.com
Windows Developer
Effiziente Berechnung von digitalen Effekten auf Windows Phone 8

Digitale Kameraeffekte

Als ich mich mit der Kamera meines neuen Windows Phone 8 auseinandersetzte, stellte ich fest, dass man damit zwar tolle Bilder machen kann, mir aber die Möglichkeit fehlte, digitale Bildeffekte direkt im Kamerasucher anzuwenden und verzögerungsfrei zu betrachten. Im Store gab es bereits zahlreiche Apps, mit denen man interessante Kameraeffekte auf bereits aufgenommene Bilder anwenden kann, doch keine war imstande, aufwändige digitale Effekte im Vollbild mit geringer Verzögerung darzustellen.

Philipp Pätzold


Nach einiger Recherche und aus der Erfahrung mit der Programmierung von Grafikprozessoren heraus, entschloss ich mich, mit „Camera Effects“ eine entsprechende App für Windows Phone 8 zu entwickeln. Im vorliegenden Artikel werde ich das verwendete Verfahren im Detail beschreiben.

Die Hardware mobiler Endgeräte hat sich in den letzten Jahren rasant entwickelt. Der Grafikprozessor (GPU) eines halbwegs aktuellen Mobiltelefons ist heute in der Lage, eine Grafikleistung zu erzeugen, wie sie vor einigen Jahren nur hochgezüchteten Spiele-PCs oder Spielekonsolen vorenthalten war. Heute sind viele mobile Grafikprozessoren über standardisierte APIs flexibel programmierbar und für hochgradig parallele Aufgaben optimiert. Damit sind sie geradezu prädestiniert, um typische Aufgaben aus der Bildverarbeitung zu bewältigen, da hierbei meist große Bilddaten in kurzer Zeit verarbeitet werden müssen.

Über die Vorder- und Rückseitenkameras aktueller Mobiltelefone lassen sich die Kameradaten direkt als Video auf dem Display mit hoher Bildwiederholrate betrachten. Es wäre wünschenswert, wenn der Benutzer eine Reihe digitaler Bildeffekte direkt auf dem Display und ohne große Verzögerung betrachten könnte, bevor er die eigentliche Einzelbildaufnahme macht. Da hierbei ohnehin der Grafikprozessor für die Anzeige genutzt wird und eine hohe Anzahl an Pixeln pro Bild verarbeitet werden muss, ergibt sich die Möglichkeit zur Umsetzung durch die direkte Programmierung der GPU.

RechenleistungDas für die Entwicklung der App „Camera Effects“ verwendete HTC 8X ist ein Windows Phone 8 der ersten Generation, der dort verbaute Qualcomm-Adreno-225-Grafikprozessor verglichen mit aktuellen High-End-Telefonen bestenfalls noch Mittelklasse. In technischen Versuchen habe ich feststellen können, dass der Prozessor durchaus in der Lage war, Kamerabilder mit einer Auflösung von 1 280 x 720 und 32 Bit pro Pixel mit mehr als 20 Bildern pro Sekunde zu verarbeiten. Dies entspricht einer Verarbeitung von gut 70 Mb/s. Das ist für ein Ende 2012 veröffentlichtes mobiles Endgerät mit einer nicht mehr aktuellen Grafikhardware eine beachtliche Leistung, die vor einigen Jahren noch undenkbar gewesen wäre.

Visual-Studio-Projekt anlegen

Die Entwicklung der Anwendung erfolgt mit Visual Studio 2012 Phone Express auf Basis des Windows Phone 8 SDKs. Unter Visual Studio 2013 Phone Express mit Windows Phone 8.1 SDK sollten die Codebeispiele ebenfalls funktionieren, allerdings konnten sie aus Zeitgründen nicht mehr unter diese...

Windows Developer
Effiziente Berechnung von digitalen Effekten auf Windows Phone 8

Digitale Kameraeffekte

Als ich mich mit der Kamera meines neuen Windows Phone 8 auseinandersetzte, stellte ich fest, dass man damit zwar tolle Bilder machen kann, mir aber die Möglichkeit fehlte, digitale Bildeffekte direkt im Kamerasucher anzuwenden und verzögerungsfrei zu betrachten. Im Store gab es bereits zahlreiche Apps, mit denen man interessante Kameraeffekte auf bereits aufgenommene Bilder anwenden kann, doch keine war imstande, aufwändige digitale Effekte im Vollbild mit geringer Verzögerung darzustellen.

Philipp Pätzold


Nach einiger Recherche und aus der Erfahrung mit der Programmierung von Grafikprozessoren heraus, entschloss ich mich, mit „Camera Effects“ eine entsprechende App für Windows Phone 8 zu entwickeln. Im vorliegenden Artikel werde ich das verwendete Verfahren im Detail beschreiben.

Die Hardware mobiler Endgeräte hat sich in den letzten Jahren rasant entwickelt. Der Grafikprozessor (GPU) eines halbwegs aktuellen Mobiltelefons ist heute in der Lage, eine Grafikleistung zu erzeugen, wie sie vor einigen Jahren nur hochgezüchteten Spiele-PCs oder Spielekonsolen vorenthalten war. Heute sind viele mobile Grafikprozessoren über standardisierte APIs flexibel programmierbar und für hochgradig parallele Aufgaben optimiert. Damit sind sie geradezu prädestiniert, um typische Aufgaben aus der Bildverarbeitung zu bewältigen, da hierbei meist große Bilddaten in kurzer Zeit verarbeitet werden müssen.

Über die Vorder- und Rückseitenkameras aktueller Mobiltelefone lassen sich die Kameradaten direkt als Video auf dem Display mit hoher Bildwiederholrate betrachten. Es wäre wünschenswert, wenn der Benutzer eine Reihe digitaler Bildeffekte direkt auf dem Display und ohne große Verzögerung betrachten könnte, bevor er die eigentliche Einzelbildaufnahme macht. Da hierbei ohnehin der Grafikprozessor für die Anzeige genutzt wird und eine hohe Anzahl an Pixeln pro Bild verarbeitet werden muss, ergibt sich die Möglichkeit zur Umsetzung durch die direkte Programmierung der GPU.

RechenleistungDas für die Entwicklung der App „Camera Effects“ verwendete HTC 8X ist ein Windows Phone 8 der ersten Generation, der dort verbaute Qualcomm-Adreno-225-Grafikprozessor verglichen mit aktuellen High-End-Telefonen bestenfalls noch Mittelklasse. In technischen Versuchen habe ich feststellen können, dass der Prozessor durchaus in der Lage war, Kamerabilder mit einer Auflösung von 1 280 x 720 und 32 Bit pro Pixel mit mehr als 20 Bildern pro Sekunde zu verarbeiten. Dies entspricht einer Verarbeitung von gut 70 Mb/s. Das ist für ein Ende 2012 veröffentlichtes mobiles Endgerät mit einer nicht mehr aktuellen Grafikhardware eine beachtliche Leistung, die vor einigen Jahren noch undenkbar gewesen wäre.

Visual-Studio-Projekt anlegen

Die Entwicklung der Anwendung erfolgt mit Visual Studio 2012 Phone Express auf Basis des Windows Phone 8 SDKs. Unter Visual Studio 2013 Phone Express mit Windows Phone 8.1 SDK sollten die Codebeispiele ebenfalls funktionieren, allerdings konnten sie aus Zeitgründen nicht mehr unter diese...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang