[Geoserver-devel] Latest bunch of commits on 1.5.x

Hi list,
some of you might have noticed a fllod of commmits coming from me yesterday
on the 1.5.x branch of geoserver.
These are parts of a more general work that I am carrying on in order to
improve the geoserver mapproducers we currently have in GeoServer.
Specifically what I achieved (or tried to achieve :slight_smile: ) with this first
bunch of changes is:
1>jpeg does not support transparency hence it is a waste of memory and
resource the fact that we were using an RGBA image even though jpeg wass
requested as an output format. I changed tha mapproducer in order to use an
RGB one.
2>I substantially improved the generation of paletted images for GIF
support. I added some customized code to create a near-optimal paletted with
support for a single transparent color which would then be applied using an
efficient (octtree based) shortest distance search with no error diffusion.
This has removed all the annoying artefacts that we were seeing in the past
when requesting GIF.
3>I added support for 3 new (minor) formats which uses the palette code,
PNG8 (image/png8), tiff8 (image/tiff8) and geotiff8 (image/geotiff8).
4>I slightly improved the management of palette file as used when using the
PALETTE vendor params.

What I would really like to do next together with aaime (btw, support needed
:-)):
1>Improve the case when we use the PALETTE vendor params. I am working on an
efficient algorithm, to perform Inversion of Color given a palette which
would also support transparency. I still have not had enough time to test it
but preliminary standalone test showed that the generation of images would
be 10 to 20 times faster than by creating a near optimal palette.
2>JPEG2K output format. I would add initial support as an output format just
to test how good (bad?) the support is inside ImageIO. From my tests it
should work fine with the images we get from the WMS which are pretty small.
3>Test VolatileImages support (with java 1.5 and newer)

It would be great to have some feedback on the changes I made before we port
them to trunk next week.
Ciao,
Simone.
-------------------------------------------------------
Eng. Simone Giannecchini
President /CEO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 333 8128928

http://www.geo-solutions.it

-------------------------------------------------------

--
View this message in context: http://www.nabble.com/Latest-bunch-of-commits-on-1.5.x-tf3954835.html#a11221431
Sent from the GeoServer - Dev mailing list archive at Nabble.com.

Simone.Giannecchini ha scritto:

Hi list,
some of you might have noticed a fllod of commmits coming from me yesterday
on the 1.5.x branch of geoserver.
These are parts of a more general work that I am carrying on in order to
improve the geoserver mapproducers we currently have in GeoServer. Specifically what I achieved (or tried to achieve :slight_smile: ) with this first
bunch of changes is:
1>jpeg does not support transparency hence it is a waste of memory and
resource the fact that we were using an RGBA image even though jpeg wass
requested as an output format. I changed tha mapproducer in order to use an
RGB one.

Good :slight_smile:

2>I substantially improved the generation of paletted images for GIF
support. I added some customized code to create a near-optimal paletted with
support for a single transparent color which would then be applied using an
efficient (octtree based) shortest distance search with no error diffusion.
This has removed all the annoying artefacts that we were seeing in the past
when requesting GIF.

Very nice indeed.

3>I added support for 3 new (minor) formats which uses the palette code,
PNG8 (image/png8), tiff8 (image/tiff8) and geotiff8 (image/geotiff8).
4>I slightly improved the management of palette file as used when using the
PALETTE vendor params.

Good, I knew you could do it better :slight_smile:

What I would really like to do next together with aaime (btw, support needed
:-)):
1>Improve the case when we use the PALETTE vendor params. I am working on an
efficient algorithm, to perform Inversion of Color given a palette which
would also support transparency. I still have not had enough time to test it
but preliminary standalone test showed that the generation of images would
be 10 to 20 times faster than by creating a near optimal palette.

Hmmm... you're talking about image generation, or just the part that applyes the palette? Making it 10 times faster from buffered image to full encoding into gif/png format seems a little too much to me? (but I would be glad of it!!!).

2>JPEG2K output format. I would add initial support as an output format just
to test how good (bad?) the support is inside ImageIO. From my tests it
should work fine with the images we get from the WMS which are pretty small.

Nice. I'm wondering what would be the usage of it thought. I mean, browsers aren't capable of displaying JPEG2K format, so a (possibly platform and browser dependent) plugin would be needed, or a custom application (it may be interesting to boost wms serving to a remote uDig).

3>Test VolatileImages support (with java 1.5 and newer)

That would be interesting indeed.

Good stuff, keep it coming (along with mails on the devel list :-p)
Cheers
Andrea