![]() |
Universitätsrechenzentrum |
![]() |
|
Aufgabe 1:
| Schreiben Sie ein kleines Programm, um ein Bild in RGB-Farbrepräsentation in eine Graustufendarstellung der Luminanzkomponente Y zu konvertieren. Die Luminanzdarstellung soll der PAL TV-Norm entsprechen. Beachten Sie, daß ein Computermonitor nur das RGB-Farbmodell darstellen kann. Als Grafikformat wird PPM (ASCII) empfohlen, Konvertierung via gimp . |
#! /usr/bin/env python
#
# Konverter: RGB -> Y
#
import string
import sys
f=open(sys.argv[1], 'r')
# read PPM-Header
MagicKey = f.readline()
if (MagicKey[0:2] != 'P3'):
print "Sorry, wrong MagicKey."
sys.exit(255)
Comment = f.readline()
Size = string.split(f.readline())
MaxColor = eval(f.readline())
x=eval(Size[0])
y=eval(Size[1])
# write PPM-Header
print MagicKey[0:2]
print "# CREATOR: ",sys.argv[0]
print x,y
print MaxColor
# read every RGB-Triplet
for i in range(0,x*y):
red = eval(f.readline())
green = eval(f.readline())
blue = eval(f.readline())
............................
............................
f.close()
|
Lösung 1:
Aufgabe 2:
| Generieren Sie ein kleines Bild 16x16 Pixel (weiss mit schwarzen Punkten) und speichern Sie dieses in einem verlustfreiem Bildformat (PPM raw). Konvertieren Sie das Bild in das JPEG-Format und in das JPEG2000-Format. Vergleichen Sie die Ergebnisse (Vergrößerung). |
# Konvertieren in JPEG convert -quality 50 quadrat_16x16.ppm quadrat_16x16.jpg # Konvertieren in JPEG2000 setenv CLASSPATH ~anhe/PUBLIC/java/jj2000-4.1.jar java JJ2KEncoder -i quadrat_16x16.ppm -o quadrat_16x16.jpeg2000 -rate 50 java JJ2KDecoder -i quadrat_16x16.jpeg2000 -o quadrat_16x16_j2k.ppm |
Lösung 2:

Aufgabe 3:
| Als Quelle für Bewegtbildkodierung soll eine Menge Einzelbilder dienen. Downloaden Sie eine der empfohlenen Einzelbildserien, entpacken Sie diese im Verzeichnis /tmp/.../ und wenden Sie eine Motion-JPEG-Kodierung auf die Bildserie an. Die entstandene Bildserie kann mit animate betrachtet werden. |
# bash for i in *.ppm do ........... done |
Lösung 3:
# Konvertieren
for i in *.ppm
do
convert $i $(basename $i ppm)jpg
done
# Betrachten
animate *.jpg
# alternativ
mencoder -mf on -ovc copy -o output.avi \*.jpg
|
Aufgabe 4:
| Kodieren Sie die Bildfolge aus Aufgabe 3 in einem MPEG1-Datenstrom. Als Werkzeug wird mpeg_encode empfohlen. Vergleichen Sie die Größe der Ausgangsdaten, der Motion-JPEG- und der MPEG1-Kodierung. Als MPEG1-Betrachter kann gtv verwendet werden. |
Lösung 4:
Zusatzaufgabe:
| Erstellen Sie aus den MPEG1-Datenstrom aus Aufgabe 4 einen MPEG4-Datenstrom (Divx). Als Koder kann mencoder und für die Darstellung [g]mplayer verwendet werden. Vergleichen Sie die Filegrößen. |
Lösung:
mencoder output.mpg -ovc lavc -lavcopts vcodec=mpeg4 -o output.avi
|
Aufgabe 5:
| Löschen Sie Ihre Arbeitsdaten aus dem /tmp/-Verzeichnis. |
| Andreas Heik 25. November 2003 |
Technische Universität Chemnitz, Straße der Nationen 62, 09107 Chemnitz Impressum - Copyright © 2005 by TU Chemnitz, URZ, alle Rechte vorbehalten. |
Druckansicht |