So I understand what is being proposed. I suppose my questions twofold a)
what is your time frame for this work and b) why 10.x ( since we are
nearing the 11.0)?
As for moving code between projects, everything looks okay. For the
GeoServer code subject to a license change we will need a email request w/
response from GeoServer PSC (Quantizer / PNGEncoder).
Cheers,
Jody
On Friday, February 7, 2014, Nicola Lagomarsini <
nicola.lagomars...@geo-solutions.it> wrote:
> Hi all,
>
> I would submit a proposal for changing the GeoWebCache WMSTileFuser class.
>
> This class presents some limitations associated to bad performances on
> reading the input tiles and writing the final image. These performances are
> dued to a direct call to the ImageIO methods.
>
> A possible improvement could be to skip the ImageIO methods by adding some
> classes which internally handle image writing and reading. Also the output
> image can be optimized, if it is PNG8, with an optimal colorTable. Finally
> better performance and quality results could be achieved with improvements
> on the image scaling phase.
>
> This proposal requires moving some code to avoid cyclic dependencies:
>
> - moving Quantizer from GeoServer to GeoTools.
> - moving the new PNGEncoder from GeoServer to ImageIO-Ext and leaving
> only a single facade class which calls the PNGEncoder.
>
> The GeoServer, GeoTools, GeoWebCache and ImageIO-Ext versions are all
> taken from their master branch, but a backport will be needed:
>
> - for Geoserver on 2.4.x;
> - for GeoWebCache on 1.5.0;
> - for ImageIo-Ext on 1.1.x;
> - for GeoTools 10.x.
>
>
> The modifications on the WMSTileFuser class can be divided in 3 groups:
>
> - improving the reading of every tile and the final image writing by
> adding few classes and avoiding to call directly the ImageIO class, which
> requires a lookup of the streams and readers/writers;
> - improving the PNG8 images by applying the Quantizer on them;
> - improving the scaling of the final image by adding RenderingHints.
>
> The first improvement consist of creating 2 container classes which
> internally handle the writing/reading by automatically using the
> encoder/decoder for the defined MimeType. These encoders/decoders are
> defined in the Spring application context as subclasses of 2 new abstract
> classes called ImageDecoder and ImageEncoder. Each subclass internally
> searches all the Spi classes defined in the associated bean configuration
> and then stores the first Spi available. All the encoder/decoder beans are
> injected into the related container when the application is launched.
>
> For PNG images, the new GeoServer PNGEncoder is used by default, but the
> user can disable this functionality by changing a property file associated.
>
>
> An UML diagram could help understanding these modifications.
>
> The second improvement consists of calculating an optimal ColorTable
> associated to the image with the Quantizer class.
>
> The last improvement consists of using an optimal configuration for the
> RenderingHints for having better quality and speed.
>
> The estimated time is 1/2 days.
>
> If there is any question I would be pleased to answer.
>
> Best Regards,
> Nicola Lagomarsini.
>
> --
> ==
> Our support, Your Success! Visit http://opensdi.geo-solutions.it for more
> information.
> ==
>
> Ing. Nicola Lagormarsini
> Junior Software Engineer
>
> GeoSolutions S.A.S.
> Via Poggio alle Viti 1187
> 55054 Massarosa (LU)
> Italy
> phone: +39 0584 962313
> fax: +39 0584 1660272
>
> http://www.geo-solutions.it
> http://twitter.com/geosolutions_it
>
> -------------------------------------------------------
>
------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk
_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel