Marcus263 Wrote:I'm in the middle of writing up a comprehensive guide for optimising the performance of Apple TV; so far I've taken the Alaska Revisited skin stripped it down to the core, repacked the textures for speed, written up some startup scripts to disable unnecessary services (Printer, Airtunes, Network Time, PBS etc) and given XBMC a 'nice' high priority, optimised all image and XML files to take up a small footprint and it seems to be working. We only have 250megs of RAM to work with and a bad processor but so far so good.
I'm on the bit where I'm optimising the fan art, I've temporarily disabled DDS in advancedsettings.xml so that I can optimise the JPG files (currently set at .tbn). My question is this; A current fan-art downloaded with a file size of 100kb, when optimised with certain tools gives me a 50-60% optimisation, so let's say it's reduced to 50kb in file size. If I then enable DDS in advancedsettings.xml, will it re-encode the existing optimised 50kb file or will it download the original file, re-encode, then save as a DDS, ultimately negating the initial optimisation?
1. Optimizing image size (i.e. size in bytes) by tweaking the jpeg/png compression settings is not going to have much if any impact on performance on an Apple TV. It will save disk space of course, but it won't make the images load much faster. The time delta between reading a 100kb file and a 50kb file is going to be virtually zero - the disk i/o (which is actually pretty fast since it is flash based) is completely eclipsed by the rendering overhead. The bottleneck is in the GPU, and everything ends up being a bitmap eventually so the byte size of compressed images is mostly irrelevant.
No matter how much you compress the on disk version of an image, it's size once it reaches the framebuffer is width x height x bitsPerPixel (with the exception of native GPU compression formats - see 2). If you want to increase performance, you should be reducing the resolution of the images, not optimizing the compression.
2. Apple TV's using OpenGL ES and do not support DXT textures (which is what xbmc produces currently when the useddsfanart option is set). As things are now, useddsfanart won't work on an Apple TV. Support for PVR texture compression (which is similar to DXT and serves roughly the same purpose on Apple devices) may be added in the future, but as of right now it is not supported.
Anway, to answer your specific question (caveats mentioned above aside): If you enable dds xbmc will compress the version of the image it already has in it's cache - it will not re-download the image.