MSE-Projekt<br />GPGPU-Videoverarbeitung mit<br />Rich Internet Application-Fontend<br />Christian Froh, Marcus Geißler, S...
Übersicht - Backend<br />2<br /><ul><li>Einleitung
 Frontend-Entwicklung
Backend-Entwicklung
Server-Konfiguration
 Fusion
 Präsentation</li></ul>Christian Froh, Marcus Geißler, Sebastian Tippelt<br />Fakultät für Ingenieurwissenschaften<br />Be...
3<br /><ul><li> Einleitung
 Backend-Entwicklung
 Frontend-Entwicklung
 Server-Konfiguration
Fusion
 Präsentation</li></ul>3<br />Einleitung<br />Videoverarbeitungssoftware mit Web-Frontend<br />Zielgruppe:<br />kleine und...
4<br /><ul><li> Einleitung
 Backend-Entwicklung
Nächste SlideShare
Wird geladen in …5
×

Video-Konvertierung über GPGPU mit RIA-FrontEnd

1.051 Aufrufe

Veröffentlicht am

Veröffentlicht in: Bildung, Technologie, Unterhaltung & Humor
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.051
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
5
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Video-Konvertierung über GPGPU mit RIA-FrontEnd

  1. 1. MSE-Projekt<br />GPGPU-Videoverarbeitung mit<br />Rich Internet Application-Fontend<br />Christian Froh, Marcus Geißler, Sebastian Tippelt<br />
  2. 2. Übersicht - Backend<br />2<br /><ul><li>Einleitung
  3. 3. Frontend-Entwicklung
  4. 4. Backend-Entwicklung
  5. 5. Server-Konfiguration
  6. 6. Fusion
  7. 7. Präsentation</li></ul>Christian Froh, Marcus Geißler, Sebastian Tippelt<br />Fakultät für Ingenieurwissenschaften<br />Bereich Elektrotechnik und Informatik<br />
  8. 8. 3<br /><ul><li> Einleitung
  9. 9. Backend-Entwicklung
  10. 10. Frontend-Entwicklung
  11. 11. Server-Konfiguration
  12. 12. Fusion
  13. 13. Präsentation</li></ul>3<br />Einleitung<br />Videoverarbeitungssoftware mit Web-Frontend<br />Zielgruppe:<br />kleine und mittelständische Unternehmen<br />Netbook/Notebook-Nutzer<br />Virtualisierte Umgebung<br />Verarbeitung auf der GPU  Kompensation des Upload-Overheads<br />Verarbeitung des Videos mit Effekten<br />Effektivitätsanalyse<br />Web-Frontend als RIA<br />Interaktive Bedienung<br />Online-App mit Desktop-ähnlicher Oberfläche<br />Christian Froh, Marcus Geißler, Sebastian Tippelt<br />Fakultät für Ingenieurwissenschaften<br />Bereich Elektrotechnik und Informatik<br />
  14. 14. 4<br /><ul><li> Einleitung
  15. 15. Backend-Entwicklung
  16. 16. Frontend-Entwicklung
  17. 17. Server-Konfiguration
  18. 18. Fusion
  19. 19. Präsentation</li></ul>4<br />Einleitung<br />Christian Froh, Marcus Geißler, Sebastian Tippelt<br />Fakultät für Ingenieurwissenschaften<br />Bereich Elektrotechnik und Informatik<br />
  20. 20. 5<br /><ul><li>Effektberechnung auf der GPU
  21. 21. Verbindung von GPGPU und OpenCV
  22. 22. Videoverarbeitung mit OpenCV
  23. 23. ODBC-Datenbankverbindung
  24. 24. Effektivitätsanalyse
  25. 25. Einleitung
  26. 26. Backend-Entwicklung
  27. 27. Frontend-Entwicklung
  28. 28. Server-Konfiguration
  29. 29. Fusion
  30. 30. Präsentation</li></ul>5<br />Effektberechnung auf der GPU<br />Genutzte Technologie ist freies OpenCL (32- und 64Bit verfügbar)<br />Möglichkeit zur Server-Erweiterung und Portierung auf ATI-PCs<br />Behandlung der Bilder als Pixel-Stream<br />Alle GPU-Berechnungen gleich für alle Konfigurationen<br />Statische Kernels und Puffer, dynamische Datensätze<br />Kein Mapping (pinnedBuffers), da nachladen der Bildinformationen<br />Laden eines Bildes in den globalen GDRAM<br />Multi-Kernel-Verarbeitung der einzelnen Effekte<br />Für Effektberechnung Vorteilhaft: YIQ-Farbraum<br />Daher: Konvertierung von Byte-Werten in Fließkomma-zahlen<br />Christian Froh, Marcus Geißler, Sebastian Tippelt<br />Fakultät für Ingenieurwissenschaften<br />Bereich Elektrotechnik und Informatik<br />
  31. 31. 6<br /><ul><li>Effektberechnung auf der GPU
  32. 32. Verbindung von GPGPU und OpenCV
  33. 33. Videoverarbeitung mit OpenCV
  34. 34. ODBC-Datenbankverbindung
  35. 35. Effektivitätsanalyse
  36. 36. Einleitung
  37. 37. Backend-Entwicklung
  38. 38. Frontend-Entwicklung
  39. 39. Server-Konfiguration
  40. 40. Fusion
  41. 41. Präsentation</li></ul>6<br />Effektberechnung auf der GPU<br />Helligkeitsinformationen sehr entscheidend für Wahrnehmung<br />Anwendung von Helligkeits- und Kontraständerungen nur auf Y-Kanal<br />Anwendung von Schärfung und Gaußfilter auf Y,I und Q-Kanal<br />Bei „Graustufenbild“ wird I- und Q-Kanal verworfen<br />Sepia-Effekt findet Anwendung auf RGB-Ergebnis<br />Christian Froh, Marcus Geißler, Sebastian Tippelt<br />Fakultät für Ingenieurwissenschaften<br />Bereich Elektrotechnik und Informatik<br />
  42. 42. 7<br /><ul><li>Effektberechnung auf der GPU
  43. 43. Verbindung von GPGPU und OpenCV
  44. 44. Videoverarbeitung mit OpenCV
  45. 45. ODBC-Datenbankverbindung
  46. 46. Effektivitätsanalyse
  47. 47. Einleitung
  48. 48. Backend-Entwicklung
  49. 49. Frontend-Entwicklung
  50. 50. Server-Konfiguration
  51. 51. Fusion
  52. 52. Präsentation</li></ul>7<br />Verbindung von GPGPU und OpenCV<br />Abstaktionsniveau in GPU:<br />Pixel<br />Bild<br />Bilder werden von OpenCV an die GPU gesandt<br />Einzelbilder sind Teil-informationen der Videos<br />Weitergabe der Bilder über GPGPU-Tech-Verbindungs-klasse<br />Christian Kehl, Henry Schneider<br />Fakultät für Ingenieurwissenschaften<br />Bereich Elektrotechnik und Informatik<br />
  53. 53. 8<br /><ul><li>Effektberechnung auf der GPU
  54. 54. Verbindung von GPGPU und OpenCV
  55. 55. Videoverarbeitung mit OpenCV
  56. 56. ODBC-Datenbankverbindung
  57. 57. Effektivitätsanalyse
  58. 58. Einleitung
  59. 59. Backend-Entwicklung
  60. 60. Frontend-Entwicklung
  61. 61. Server-Konfiguration
  62. 62. Fusion
  63. 63. Präsentation</li></ul>8<br />Videoverarbeitung mit OpenCV<br />Laden der Videos mittels OpenCV-Interfaces zu FFMPEG<br />Unterstützte Codecs:<br />MPEG-1<br />MPEG-4<br />FLV<br />H.263<br />DivX<br />Motion JPEG<br />Sequenz von Einzelbildern wird aus Video-Stream und an die GPGPU-Klasse gesandt<br />Hin- und Rückkonvertierung nötig (BBGGRR in RGBRGB)<br />Skalierung und parallele Abspeicherung mehrerer Konfigurationen<br />Christian Kehl, Henry Schneider<br />Fakultät für Ingenieurwissenschaften<br />Bereich Elektrotechnik und Informatik<br />
  64. 64. 9<br /><ul><li>Effektberechnung auf der GPU
  65. 65. Verbindung von GPGPU und OpenCV
  66. 66. Videoverarbeitung mit OpenCV
  67. 67. ODBC-Datenbankverbindung
  68. 68. Effektivitätsanalyse
  69. 69. Einleitung
  70. 70. Backend-Entwicklung
  71. 71. Frontend-Entwicklung
  72. 72. Server-Konfiguration
  73. 73. Fusion
  74. 74. Präsentation</li></ul>9<br />Videoverarbeitung mit OpenCV<br />Unterstützte Container-Formate:<br />wmv<br />avi<br />mpg<br />mov<br />Mp4<br />Flv<br />Grundlegendes Problem: OpenCV nur in 32 Bit verfügbar<br />Daher: Programm muss ausschließlich in 32 Bit x86-Architektur kompiliert und auf 64-Bit System zum laufen gebracht werden<br />Christian Kehl, Henry Schneider<br />Fakultät für Ingenieurwissenschaften<br />Bereich Elektrotechnik und Informatik<br />
  75. 75. 10<br /><ul><li>Effektberechnung auf der GPU
  76. 76. Verbindung von GPGPU und OpenCV
  77. 77. Videoverarbeitung mit OpenCV
  78. 78. ODBC-Datenbankverbindung
  79. 79. Effektivitätsanalyse
  80. 80. Einleitung
  81. 81. Backend-Entwicklung
  82. 82. Frontend-Entwicklung
  83. 83. Server-Konfiguration
  84. 84. Fusion
  85. 85. Präsentation</li></ul>10<br />ODBC-Datenbankverbindung<br /><ul><li>Datenbankverbindung wird durch MFC-Klassenpaket „Cdatabase“ hergestellt
  86. 86. ODBC als Grundlage
  87. 87. ODBC in 64 Bit und 32 Bit verfügbar
  88. 88. C++ Programmierung mit Exception-Handling
  89. 89. Grundlegender ODBC-Treiber zur MS SQL Server Datenbank: MS SQL Native 10.0</li></ul>Christian Kehl, Henry Schneider<br />Fakultät für Ingenieurwissenschaften<br />Bereich Elektrotechnik und Informatik<br />
  90. 90. 11<br /><ul><li>Effektberechnung auf der GPU
  91. 91. Verbindung von GPGPU und OpenCV
  92. 92. Videoverarbeitung mit OpenCV
  93. 93. ODBC-Datenbankverbindung
  94. 94. Effektivitätsanalyse
  95. 95. Einleitung
  96. 96. Backend-Entwicklung
  97. 97. Frontend-Entwicklung
  98. 98. Server-Konfiguration
  99. 99. Fusion
  100. 100. Präsentation</li></ul>11<br />Effektivitätsanalyse<br />Christian Kehl, Henry Schneider<br />Fakultät für Ingenieurwissenschaften<br />Bereich Elektrotechnik und Informatik<br />
  101. 101. 12<br /><ul><li> Einleitung
  102. 102. Frontend-Entwicklung
  103. 103. Backend-Entwicklung
  104. 104. Server-Konfiguration
  105. 105. Fusion
  106. 106. Präsentation</li></ul>12<br />Frontend-Entwicklung<br />Christian Kehl, Henry Schneider<br />Fakultät für Ingenieurwissenschaften<br />Bereich Elektrotechnik und Informatik<br />
  107. 107. 13<br /><ul><li> Effekte
  108. 108. Unabhängige Kernel-Abschaltung
  109. 109. Seitenverhältnisanpassung
  110. 110. Laufzeit-Test und Messung
  111. 111. Database-Interface
  112. 112. Fortschrittsplan</li></ul>13<br />Laufzeit-Test und Messung<br />1. Video: Dauer: 0:00:09 Eingang: <Format> / MOV<br />Konvertierung in Motion JPEG / MOV / 1280x720 – 0:03:14<br />Konvertierung in MPEG-4 / AVI / 1280x720 – 0:57:47<br />2. Video: Dauer: 0:01:40 Eingang: <Format> / MOV<br />Konvertierung in MPEG-4 / AVI / 960x720 – 0:08:32<br />3. Video: Dauer: 0:21:11 Eingang: MPEG-4 / AVI / 640x480<br />Konvertierung in MPEG-4 (Gray) / AVI / 1280x720 – 0:25:53<br /><ul><li>Software läuft für:
  113. 113. Unterschiedliche Formate
  114. 114. Unterschiedliche Dateiendungen
  115. 115. Unterschiedliche Auflösungen
  116. 116. Unterschiedliche Kernelwahl
  117. 117. Geschwindigkeitszuwachs zur letzten Version: Faktor 20-25</li></ul>Christian Kehl, Henry Schneider<br />Fakultät für Ingenieurwissenschaften<br />Bereich Elektrotechnik und Informatik<br />
  118. 118. 14<br /><ul><li> Effekte
  119. 119. Unabhängige Kernel-Abschaltung
  120. 120. Seitenverhältnisanpassung
  121. 121. Laufzeit-Test und Messung
  122. 122. Database-Interface
  123. 123. Fortschrittsplan</li></ul>14<br />Datenbank-Interface<br />Nutzung von MS-SQL-ODBC-Treibern und MFC-“CDatabase“<br />typedefstruct _VideoProject<br />{<br />intproject_id;<br />//ANNOTATION: depth of config_ids = depth of codecs = depth of datatypes<br />int* config_ids;<br />//signfor multi-file videoorsinglevideo<br />boolmode;<br />char* filepath[512];<br />//ANNOTATION: Rule : codecs[i] -> datatypes[i]<br />char** codecs;<br />char** datatypes;<br />intdestination_width;<br />intdestination_height;<br />floataspect_ratio;<br />floatcontrast;<br />floatluminance;<br />floatgamma;<br />floatsigma;<br />floatalpha_edge;<br />intcolor_mode;<br />intinterpolation_type;<br />} VideoProject;<br />Christian Kehl, Henry Schneider<br />Fakultät für Ingenieurwissenschaften<br />Bereich Elektrotechnik und Informatik<br />
  124. 124. 15<br /><ul><li> Effekte
  125. 125. Unabhängige Kernel-Abschaltung
  126. 126. Seitenverhältnisanpassung
  127. 127. Laufzeit-Test und Messung
  128. 128. Database-Interface
  129. 129. Fortschrittsplan</li></ul>15<br />Fortschrittsplan<br />Schlüsselbildextraktion<br />Lösung AVCHD-Problem<br />Video-Verbindungsklasse<br />CPU-Effektprogramm für Modifikation der Schlüsselbilder<br />Anfertigung des DB-Interfaces / Komplettierung<br />DB-Trigger<br />Christian Kehl, Henry Schneider<br />Fakultät für Ingenieurwissenschaften<br />Bereich Elektrotechnik und Informatik<br />

×