Picserver

Aus TuxBoxWIKI
Wechseln zu: Navigation, Suche


Allgemeines

Der Picserver soll dem in Neutrino integrierten Bildbetrachter zu neuem Schwung verhelfen. Das Übertragen, Decodieren und Umrechnen der JPEG-Bilder durch die DBox2 dauert zum Beispiel bei 4MB-Bildern 7-8 Sekunden. Mit Picserver ist dies von der Rechenleistung des Server-Rechners abhängig. Ein Pentium M mit 2Ghz schafft es z.B. das Bild in 1 Sekunde aufzubereiten.


Funktionsprinzip

Die der DBox2 ist schon sehr betagt. Der Prozessor ist leistungsschwach und die Netzwerkschnittstelle auf 10 MBit/s beschränkt. Die Idee ist, die Bilder von einem Bilderserver auf die Fernsehauflösung umrechnen zu lassen und dann nur noch die reduzierte Datenmenge zu übertragen. Idealerweise ist der Bildserver auch der Server auf dem die Bilder abgelegt sind.


Serverprogram

Das Serverprogramm gibt es für Linux und Win32 auf http://dboxjffs2.sourceforge.net/#yadi_tools bzw hier: http://sourceforge.net/project/showfiles.php?group_id=100493&package_id=116737 .

Unter Windows wird ein Dienst eingerichtet (von mir nicht getestet). Der genutzte Port ist per Registry-Eintrag auch später noch änderbar:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\picserver\Parameters


Unter Linux erfolgt der Aufruf von der Kommandozeile oder automatisch über ein init-Script:


Stop hand.png An dieser Stelle muss noch ein Bild rein. 444px


Usage: picserver [-d] [-r "<replace>,<to>"] <port>
#
-d : Debug-Ausgabe (stderr)
-r : <replace> entspricht dem Mount-Verzeichnis auf der Dbox2.
     <to> entspricht dem tatsächlichen Pfad der Bilder auf dem Server
-s : Einfachen "resize"-Algorithmus nutzen, statt der aufwändigeren Interpolation
#
z.B. picserver -d -r "/var/mnt/bilder,/home/dbox2/bilder" 9999


Hier im Beispiel: mit zusätzlichen Debuginformationen zum Testen. Das Verzeichnis "/var/mnt/bilder" ist das normale Bildverzeichnis das auf der DBox2 montiert ist (mount). Der zweite Teil des Parameters, das Verzeichnis "/home/dbox2/bilder" enthält auch die Bilder, nur auf dem Bildserver. Idealerweise liegt es auf einer Partition des Servers, um die Ladezeit gering zu halten.


Im Beispiel der Übertragungsport 9999 muss gleich der Neutrinoeinstellung sein (s.u.). Bei der Auswahl des Ports ist auf eventuell aktivierte Firewalls zu achten, damit ein- und ausgehende Daten per Portfreigaben zugelassen sind.


Einstellungen unter Neutrino

Unter Neutrino muss entsprechend die Adresse und der Port angegeben werden. Siehe auch Audioplayer/Bildbetrachter

Decoding-Server IP [###.###.###.###]
Decoding-Server Port [9999]

Wie man aus obigem Screenshot erkennen kann, fordert die Dbox das Bild in einer Größe von 644x515 an. Da dies nicht die volle PAL-Auflösung (720x576) ist, bleiben bei mir ringsum schwarze Ränder zu sehen. Eine Anpassung der Auflösung in der Einstellung wäre nicht schlecht.


Bedienung

Die Bedienung und Tastenbelegung bleibt wie beim normalen Bildbetrachter. ?-Taste in der Dateilisten-Ansicht bringt eine ausführliche Online-Hilfe.


Fall Back

Wenn der Picserver nicht erreichbar ist, wird die Umrechnung weiterhin von der DBox2 übernommen. Dann natürlich ohne Geschwindigkeitsvorteil ;-)


Auszug aus dem Quellcode

Notes:
 - Neutrino does not send the data of the compressed picture (e.g. jpeg) to
   the server, since this would take too much time (slow network) and would
   eat up almost all speed increase. There for only
   the path of the pic is sent. This means the picture
   needs to be accesible by the server somehow. The fastest
   solution is to run the picserver prog on the machine
   that hosts the pictures.
   Since pathnames are not identical on client (mounted filesys)
   and server (local filesys). The server needs to do some mapping.
   (e.g. convert /mnt/photos/pic1.jpg -> /data/photos/pic1.jpg)
 - The server sends the pic to neutrino in 16 bit resultion (RGB555)
   This decreases the amount of data that need to be transferred to the
   box via network by 33% and results in a overall speed increase.
   The neutrino picviewer on the dbox2 does not display the pic with
   more colors anyway...
 - Picviewer works with jpeg only at the moment...
 - If the picserver is not reachable or the picture cannot be decoded by the
   server for whatever reason, the picture is decoded locally.

 Limitations (at the moment)
 - Only one picserver can be defined
 - If picserver is enabled, all JPEG are tried to be decoded via this
   server.

 Configuration
 ==============
 - Enter ip and port of decode server in neutrino picviwer settings.
 - Start picserver programm on server (use same port)
   e.g. picserver -d -r "/mnt/photos,/data/src/pix" 9999