Softwareentwicklungspraktikum - MPEG Analyzer

Veranstaltungsart: Praktikum
Semester: SS
Stunden: 0+4
Dozent:
Übungsleiter: ,
Hörerkreis: Studierende der Informatik, Wirtschaftsinformatik und Informations-Systemtechnik im vierten Semester.
Ort und Zeit: Für das Projekt gilt der folgende (vorläufige) Zeitplan:
Datum Meilenstein
Mi., 25.01.2006 Vorstellung der SEP Aufgaben (PK 2.2), 9:45 Uhr
Di., 14.02.2006 SEP Eingangsklausur 13:30-16:00 Uhr
Do., 20.04.2006 Kickoff-Meeting in Raum 105, 9:45Uhr-11:15Uhr (Folien)
Mi., 26.04.2006 Pflichtenheft
Do., 27.04.2006 Projekttreffen in Raum 105, 15:00 Uhr (Folien)
Mo., 08.05.2006 Grobentwurf
Do., 11.05.2006 Projekttreffen in Raum 105, 15:00 Uhr
Mo., 22.05.2006 Feinentwurf
Fr., 26.05.2006 Projekttreffen in Raum 105, 10:00 Uhr
Mo., 29.05.2006 Folien für Zwischenpräsentation, vor 12:00 Uhr
Di., 30.05.2006 Zwischenpräsentation (16:30-19:40 in Raum 160)
Do., 08.06.2006 Projekttreffen in Raum 105, 13:30 Uhr
Mo., 12.06.2006 Zwischenversion der Implementierung
Do., 15.06.2006 Gemeinsames Treffen und Testen der Zwischenversion in Raum 105, 15:00 Uhr
Mo., 26.06.2006 Implementierung
Mi., 28.06.2006 Projekttreffen, Abnahme der Implementierung 16:30 Uhr, Raum 105
Mo., 17.07.2006 Validierung
Do., 20.07.2006 Projekttreffen um 15:00 Uhr in Raum 105
Mo., 24.07.2006 Folien für Abschlusspräsentation, Dokumente
Do., 27.07.2006 Abschlusspräsentation (IZ Plaza)

Bitte haltet euch in eigenem Interesse und um Stress zu vermeiden strikt an die Termine!

Jeweils am Donnerstag nach einem Endabgabetermin findet in Raum 105 um 15:00 Uhr ein Projekttreffen statt, bei dem die Phasenverantwortlichen jeder Teilgruppe die Ergebnisse präsentieren.

Webseiten der Gruppen

Übungstermine am IBR

Folgende Übungstermine werden angeboten:

  • Dienstag, 8:00-13:00 Uhr
  • Donnerstag, 9:00-12:00 Uhr
  • Freitag, ganztägig
Eine Betreuung findet zu folgenden Zeiten statt:
  • Dienstag, 10:00-12:00
  • Freitag, 10:00-12:00

Beginn: 20.04.2006, 9:45 Uhr
Inhalt:

Im Rahmen des SEP 2006 bietet die Forschungsgruppe "Kommunikation und Multimedia" des IBR die Entwicklung eines Tools für das Parsen und Visualisiern von MPEG Datenströmen an. Der sogenannte MPEG Analyzer soll dazu dienen die verschiedenen Eigenschaften und Parameter von MPEG-2 Datenströmen zu veranschaulichen. Es ist geplant das Tool im Anschluss auch im Rahmen der Lehre am IBR einzusetzen.

Einführung

TBD

Lastenheft

Im Rahmen des SEP soll ein Werkzeug entwickelt werden, mit dem es möglich ist MPEG-2 Datenströme zu parsen und anschließend beim Abspielen dieser Ströme verschiedene Eigenschaften zu visualisieren.

Die Grobarchitektur des Werkzeugs gliedert sich dabei in drei Hauptkomponenten, die von unterschiedlichen Gruppen bearbeitet werden:

  • Vorverarbeitung von Videodatenströmen
  • Analyse und Ablage der Parameter des Videostroms
  • Visualisierung der Parameter

Vorverarbeitung von Videodatenströmen

Diese Komponente soll das eigentliche Parsen der Videostöme zuständig. Dabei soll ein modulares Konzept verfolgt werden, das es erlaubt verschiedene Module für das Parsen unterschiedlich kodierter Videoströme in das Werkzeug einzubinden. Im Rahmen des Softwareentwicklungspraktikums ist allerdings nur das Modul für das Parsen von MPEG-2 Datenströmen zu realisieren. Die Parserkomponenten muss eine einteitliche Schnittstelle zur Analysekomponente bereitstellen, die die Weiterverarbeitung der Videodaten übernimmt.

Analyse und Ablage der Parameter des Videostroms

Die vorbereiteten Videodaten sollen in dieser Komponente analysiert werden. D.h. es müssen die Makroblöcke der einzelnen Frames identifiziert werden. Zu den Makroblöcken die müssen auch die Bewegungsvektoren bestimmt werden. Weitere wichtige Parameter für die Analyse des Videostroms sind unter anderem die Art des jeweiligen Frames, die verwendete Quantisierungsstufe, wie auch die Größe des Frames in Bytes. Die analysierten Daten sind zusammen mit dem Video in einer einheitlichen Datenstruktur abzulegen. Beim Entwurf dieser Datenstruktur soll abermals ein besonderes Augenmerk auf die Erweiterbarkeit gelegt werden.

Visualisierung der Parameter

Auf Basis der Informationen aus der obigen Datenstruktur soll die Visualisierungskomponente in der Lage sein das Video abzuspielen und gleichzeitig die verschiedenen Parameter direkt im Videobild anzuzeigen. Die Visualisierungskomponente soll über eine graphische Oberfläche bedienbar sein. Es müssen Möglichkeiten zur Auswahl der Darstellung verschiedener Parameter vorhanden sein. Außerdem sollen auch statistische Informationen über das Video ausgegeben werden.

Funktionalitäten

Folgende Funktionalitäten muss das Werkzeug bei der Vizualisierung von Videodatenströmen unterstützen:

Anzeige der Makroblöcke eines Frames

Während des Abspielen eines Videostroms sollen die einzelnen Makroblöcke der Frames kenntlich gemacht werden.

Visualisierung der Bewegungsvektoren als Richtungspfeile

Bei MPEG-2 wird zur Reduzierung der Datenmenge eine Bewegungsschätzung eingesetzt. Dabei werden sogenannte Bewegungsvektoren bestimmt. Diese Vektoren sollen beim Abspielen eines Videostromes als Richtungspfeile in das Bild eingeblendet werden.

Darstellung der Chrominanz- und Luminanzinformationen

Während des Abspielens eines Videos soll es möglich sein auch nur die Farb- bzw. die Helligkeitsinformationen im Bild anzuzeigen.

Unterscheidung von I, P und B Blöcken

Die verschiedenen Blocktypen sollen im Bild des Videos kenntlich gemacht werden.

Möglichkeiten zur Steuerung der Wiedergabe

Es sind verschiedene Funktionen für die Steuerung der Wiedergabe eines Videostroms vorzusehen. In jedem Fall soll es möglich sein soll es möglich sein eine Wiedergabe zu starten, zu stoppen und anzuhalten. Außerdem muss es möglich sein, im Video vor- und zurückzuspulen. Darüber hinaus sind auch eine Zeitlupenwiedergabe und das Anzeigen von und Springen zwischen einzelnen Frames (in Vor- und Rückrichtung) zu integrieren.

Skalierung des Videos

Das Werkzeug soll eine Umskalierung des angezeigten Videos um Vielfache des Faktors 2 beherschen.

Umschaltung zwischen den verschiedenen Visualisierungsfunktionen

Die graphische Benutzeroberfläche soll es auf einfache Weise ermöglichen zwischen den verschiedenen Visualisierungsmöglichkeiten umzuschalten.

Ausgabe von Statistiken für die einzelnen Frames in Echtzeit

Während der Wiedergabe von Videoströmen sollen zusätzlich verschiedene statistische Daten angezeigt werden. Dazu gehören:

  • Größe des Frames in Bytes
  • Anzahl verschiedener Blöcke
  • Aktueller Zeitstempel innerhalb des Stroms
  • Nummer des Frames
  • Typ des Frames
  • Quantisierungsstufe

Ausgabe von Gesamtstatistiken für den Videostrom

Neben den Statistiken für die einzelnen Frames sollen auch statistische Werte für den gesamten Videostrom angezeigt werden können:

  • Duchschnittliche Anzahl von Bits pro Makroblock
  • Durchschnittliche Quantisierungsstufe
  • Verhältnis der verschiedenen Frametypen

Laden und Speichern von analysierten Videoströmen

Es ist eine Funktion vorzusehen, um den Videostrom samt der verarbeiteten Parameter als ganze Datenstruktur zu speichern und zu laden.

Erweiterbarkeit

Bei der Entwicklung des Werkzeugs ist auf eine einfache Erweiterbarkeit des Systems zu achten. Dies bezieht sich sowohl auf die Ergänzung zusätzlicher Visualisierungsoptionen, als auch die Unterstützung weiterer Videoformate. In diesem Zusammenhang ist auch auf eine detailierte Dokumentation des Quelltextes während der gesamten Implementierungsphase zu achten.

Allgemeine Hinweise

Als Vorgehensmodell wird im diesjährigen SEP das Wasserfallmodell eingesetzt. Die Gruppen müssen daher zu festgelegten Terminen Analyse- und Designdokumente erstellen sowie die Implementierung umsetzen.

Die Bearbeitung des Projektes erfolgt in Gruppen, die jeweils eine Teilkomponente des MPEG Analyzers bearbeiten. Für die Koordination der Arbeiten und die Definition von Schnittstellen zwischen den Kompenten ist daher eine regelmäßige Absprache unter den einzelnen Gruppen nötig. Die Projektteilnehmer sollten für jede Projektphase einen Phasenverantwortlichen bestimmen, der die Aufgabe dieser Koordination übernimmt und den Fortschritt in den einzelnen Teilbereichen kontrolliert.

Jeder Projektteilnehmer muss sich an allen Projektphasen aktiv beteiligen. Dazu gehört unter anderem die Mitarbeit an der Implementierung, am Verfassen der verscheidenen Dokumente (Pflichtenheft, Designdokumente, Benutzerhandbuch) sowie die gegenseitige Fortschrittskontrolle.

Für die implementierten Softwarekomponenten sind Testfälle zu schreiben, um die korrekte Funktionalität dieser Kompenenten zu prüfen und nachzuweisen.

Scheinerwerb: Erfolgreiche Bearbeitung der Aufgabenstellung innerhalb der Gruppe und aktive Mitarbeit in allen Phasen des Projekts.
Links: Vorlagen Dokumente Tools
Bemerkungen: