[Geoserver-devel] Modification on WMSTileFuser class

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


(attachments)

uml_diag.png

Ok I will send an email to the ML.

Is there another feedback?

Cheers,
Nicola.

···

2014-02-10 12:37 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

I am always troubled by such questions, let me think.

As the original contributor you can pick up the code and contribute it to another project.

Since it is Nicola is doing the work, your +1 on the GeoServer list as a PSC will work out fine. That way the GeoServer list has a record that the request was made, and that a PSC member approved.

==
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


Jody Garnett

On Mon, Feb 10, 2014 at 7:44 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Sun, Feb 9, 2014 at 1:29 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

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).

No problem with it, but do we? I’m the sole author of both bits of code, so my agreement with the backport should be enough. Or not?

Cheers
Andrea

== Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information ==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


Not from me, technically what you are doing is very clear cut.

It would be good to hear back from GWC list as that appears to be the most effected (i.e. new functionality).

···

Jody Garnett

On Tue, Feb 11, 2014 at 2:12 AM, Nicola Lagomarsini <nicola.lagomarsini@anonymised.com> wrote:

Ok I will send an email to the ML.

Is there another feedback?

Cheers,
Nicola.

2014-02-10 12:37 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

I am always troubled by such questions, let me think.

As the original contributor you can pick up the code and contribute it to another project.

Since it is Nicola is doing the work, your +1 on the GeoServer list as a PSC will work out fine. That way the GeoServer list has a record that the request was made, and that a PSC member approved.

==

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


Jody Garnett

On Mon, Feb 10, 2014 at 7:44 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Sun, Feb 9, 2014 at 1:29 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

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).

No problem with it, but do we? I’m the sole author of both bits of code, so my agreement with the backport should be enough. Or not?

Cheers
Andrea

== Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information ==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


Hi all,

I would recall the proposal for modifying the WMSTileFuser class in order to reach better performances on image reading and writing.

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/GIF images by applying the Quantizer on them;
  • improving the scaling of the final image by adding a better RenderingHints configuration.

These proposal requires to move some parts of the code from GeoServer to GeoTools and ImageIO-Ext for using the Quantizer class and the PNGWriter class located in the gs-wms module.

With these modifications it could be possible to use the following classes on GeoWebCache without cyclic dependencies.

I opened the following JIRA in order to trace the operation: https://jira.codehaus.org/browse/GEOS-6376.

The exact order of the pull requests that will be sent will be:

  • pull request for GeoTools;
  • pull request for GeoWebCache;
  • pull request for GeoServer.

These modifications will be on the master branch for GeoServer, GeoTools, GeoWebCache, but a backport will be needed:

  • for Geoserver 10.x. and 11.x
  • for GeoWebCache on 1.5.0;
  • for Geoserver on 2.4.x and 2.5.x;

If there is any question I would be pleased to answer.

Cheers,

Nicola.

···

2014-02-10 22:10 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

Not from me, technically what you are doing is very clear cut.

It would be good to hear back from GWC list as that appears to be the most effected (i.e. new functionality).

==
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


Jody Garnett

On Tue, Feb 11, 2014 at 2:12 AM, Nicola Lagomarsini <nicola.lagomarsini@anonymised.com> wrote:

Ok I will send an email to the ML.

Is there another feedback?

Cheers,
Nicola.

2014-02-10 12:37 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

I am always troubled by such questions, let me think.

As the original contributor you can pick up the code and contribute it to another project.

Since it is Nicola is doing the work, your +1 on the GeoServer list as a PSC will work out fine. That way the GeoServer list has a record that the request was made, and that a PSC member approved.

==

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


Jody Garnett

On Mon, Feb 10, 2014 at 7:44 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Sun, Feb 9, 2014 at 1:29 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

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).

No problem with it, but do we? I’m the sole author of both bits of code, so my agreement with the backport should be enough. Or not?

Cheers
Andrea

== Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information ==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


Adding a bit to this.

The longer term plan is to make use of these util classes also in the
core GWC where we chunk and write down metatiles.
There is room for making that part faster/more scalable.

Regards,
Simone Giannecchini

Our support, Your Success! Visit http://opensdi.geo-solutions.it for
more information.

Ing. Simone Giannecchini
@simogeo
Founder/Director

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 333 8128928

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

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

On Fri, Feb 28, 2014 at 4:06 PM, Nicola Lagomarsini
<nicola.lagomarsini@anonymised.com> wrote:

Hi all,

I would recall the proposal for modifying the WMSTileFuser class in order to
reach better performances on image reading and writing.

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/GIF images by applying the Quantizer on them;
improving the scaling of the final image by adding a better RenderingHints
configuration.

These proposal requires to move some parts of the code from GeoServer to
GeoTools and ImageIO-Ext for using the Quantizer class and the PNGWriter
class located in the gs-wms module.

With these modifications it could be possible to use the following classes
on GeoWebCache without cyclic dependencies.

I opened the following JIRA in order to trace the operation:
https://jira.codehaus.org/browse/GEOS-6376.

The exact order of the pull requests that will be sent will be:

pull request for GeoTools;
pull request for GeoWebCache;
pull request for GeoServer.

These modifications will be on the master branch for GeoServer, GeoTools,
GeoWebCache, but a backport will be needed:

for Geoserver 10.x. and 11.x
for GeoWebCache on 1.5.0;
for Geoserver on 2.4.x and 2.5.x;

If there is any question I would be pleased to answer.

Cheers,
Nicola.

2014-02-10 22:10 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

Not from me, technically what you are doing is very clear cut.

It would be good to hear back from GWC list as that appears to be the most
effected (i.e. new functionality).

Jody Garnett

On Tue, Feb 11, 2014 at 2:12 AM, Nicola Lagomarsini
<nicola.lagomarsini@anonymised.com> wrote:

Ok I will send an email to the ML.

Is there another feedback?

Cheers,
Nicola.

2014-02-10 12:37 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

I am always troubled by such questions, let me think.

As the original contributor you can pick up the code and contribute it
to another project.

Since it is Nicola is doing the work, your +1 on the GeoServer list as a
PSC will work out fine. That way the GeoServer list has a record that the
request was made, and that a PSC member approved.

Jody Garnett

On Mon, Feb 10, 2014 at 7:44 PM, Andrea Aime
<andrea.aime@anonymised.com> wrote:

On Sun, Feb 9, 2014 at 1:29 PM, Jody Garnett <jody.garnett@anonymised.com>
wrote:

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).

No problem with it, but do we? I'm the sole author of both bits of
code, so my agreement with the backport should be enough. Or not?

Cheers
Andrea

--
== Our support, Your Success! Visit http://opensdi.geo-solutions.it for
more information ==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

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

--

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

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

--

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

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

------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Question: are you wishing to apply this to 11.x before 11.0 goes out? That is a bit risk, if that is your intention you will need to move promptly to perform the change prior to RC2 going out.

Jody

···

Jody Garnett

On Sat, Mar 1, 2014 at 2:06 AM, Nicola Lagomarsini <nicola.lagomarsini@anonymised.com> wrote:

Hi all,

I would recall the proposal for modifying the WMSTileFuser class in order to reach better performances on image reading and writing.

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/GIF images by applying the Quantizer on them;
  • improving the scaling of the final image by adding a better RenderingHints configuration.

These proposal requires to move some parts of the code from GeoServer to GeoTools and ImageIO-Ext for using the Quantizer class and the PNGWriter class located in the gs-wms module.

With these modifications it could be possible to use the following classes on GeoWebCache without cyclic dependencies.

I opened the following JIRA in order to trace the operation: https://jira.codehaus.org/browse/GEOS-6376.

The exact order of the pull requests that will be sent will be:

  • pull request for GeoTools;
  • pull request for GeoWebCache;
  • pull request for GeoServer.

These modifications will be on the master branch for GeoServer, GeoTools, GeoWebCache, but a backport will be needed:

  • for Geoserver 10.x. and 11.x
  • for GeoWebCache on 1.5.0;
  • for Geoserver on 2.4.x and 2.5.x;

If there is any question I would be pleased to answer.

Cheers,

Nicola.

2014-02-10 22:10 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

Not from me, technically what you are doing is very clear cut.

It would be good to hear back from GWC list as that appears to be the most effected (i.e. new functionality).

==
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


Jody Garnett

On Tue, Feb 11, 2014 at 2:12 AM, Nicola Lagomarsini <nicola.lagomarsini@anonymised.com> wrote:

Ok I will send an email to the ML.

Is there another feedback?

Cheers,
Nicola.

2014-02-10 12:37 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

I am always troubled by such questions, let me think.

As the original contributor you can pick up the code and contribute it to another project.

Since it is Nicola is doing the work, your +1 on the GeoServer list as a PSC will work out fine. That way the GeoServer list has a record that the request was made, and that a PSC member approved.

==

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


Jody Garnett

On Mon, Feb 10, 2014 at 7:44 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Sun, Feb 9, 2014 at 1:29 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

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).

No problem with it, but do we? I’m the sole author of both bits of code, so my agreement with the backport should be enough. Or not?

Cheers
Andrea

== Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information ==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


Hi Jody,

I will apply my changes only when the 11.0 will go out.

Cheers,
Nicola.

···

2014-03-01 13:32 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

Question: are you wishing to apply this to 11.x before 11.0 goes out? That is a bit risk, if that is your intention you will need to move promptly to perform the change prior to RC2 going out.

Jody

==
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


Jody Garnett

On Sat, Mar 1, 2014 at 2:06 AM, Nicola Lagomarsini <nicola.lagomarsini@anonymised.com> wrote:

Hi all,

I would recall the proposal for modifying the WMSTileFuser class in order to reach better performances on image reading and writing.

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/GIF images by applying the Quantizer on them;
  • improving the scaling of the final image by adding a better RenderingHints configuration.

These proposal requires to move some parts of the code from GeoServer to GeoTools and ImageIO-Ext for using the Quantizer class and the PNGWriter class located in the gs-wms module.

With these modifications it could be possible to use the following classes on GeoWebCache without cyclic dependencies.

I opened the following JIRA in order to trace the operation: https://jira.codehaus.org/browse/GEOS-6376.

The exact order of the pull requests that will be sent will be:

  • pull request for GeoTools;
  • pull request for GeoWebCache;
  • pull request for GeoServer.

These modifications will be on the master branch for GeoServer, GeoTools, GeoWebCache, but a backport will be needed:

  • for Geoserver 10.x. and 11.x
  • for GeoWebCache on 1.5.0;
  • for Geoserver on 2.4.x and 2.5.x;

If there is any question I would be pleased to answer.

Cheers,

Nicola.

2014-02-10 22:10 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

Not from me, technically what you are doing is very clear cut.

It would be good to hear back from GWC list as that appears to be the most effected (i.e. new functionality).

==
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


Jody Garnett

On Tue, Feb 11, 2014 at 2:12 AM, Nicola Lagomarsini <nicola.lagomarsini@anonymised.com> wrote:

Ok I will send an email to the ML.

Is there another feedback?

Cheers,
Nicola.

2014-02-10 12:37 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

I am always troubled by such questions, let me think.

As the original contributor you can pick up the code and contribute it to another project.

Since it is Nicola is doing the work, your +1 on the GeoServer list as a PSC will work out fine. That way the GeoServer list has a record that the request was made, and that a PSC member approved.

==

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


Jody Garnett

On Mon, Feb 10, 2014 at 7:44 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Sun, Feb 9, 2014 at 1:29 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

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).

No problem with it, but do we? I’m the sole author of both bits of code, so my agreement with the backport should be enough. Or not?

Cheers
Andrea

== Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information ==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


Hi all,

I have sent you the following pull requests to review. They should be merged in the following order:

Geotools → https://github.com/geotools/geotools/pull/384

GeoWebCache → https://github.com/GeoWebCache/geowebcache/pull/229

GeoServer → https://github.com/geoserver/geoserver/pull/524

I’m pleased to answer to your questions.

Cheers,

Nicola.

···

2014-03-03 9:29 GMT+01:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com>:

Hi Jody,

I will apply my changes only when the 11.0 will go out.

Cheers,
Nicola.

==
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


2014-03-01 13:32 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

Question: are you wishing to apply this to 11.x before 11.0 goes out? That is a bit risk, if that is your intention you will need to move promptly to perform the change prior to RC2 going out.

Jody

==
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


Jody Garnett

On Sat, Mar 1, 2014 at 2:06 AM, Nicola Lagomarsini <nicola.lagomarsini@anonymised.com> wrote:

Hi all,

I would recall the proposal for modifying the WMSTileFuser class in order to reach better performances on image reading and writing.

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/GIF images by applying the Quantizer on them;
  • improving the scaling of the final image by adding a better RenderingHints configuration.

These proposal requires to move some parts of the code from GeoServer to GeoTools and ImageIO-Ext for using the Quantizer class and the PNGWriter class located in the gs-wms module.

With these modifications it could be possible to use the following classes on GeoWebCache without cyclic dependencies.

I opened the following JIRA in order to trace the operation: https://jira.codehaus.org/browse/GEOS-6376.

The exact order of the pull requests that will be sent will be:

  • pull request for GeoTools;
  • pull request for GeoWebCache;
  • pull request for GeoServer.

These modifications will be on the master branch for GeoServer, GeoTools, GeoWebCache, but a backport will be needed:

  • for Geoserver 10.x. and 11.x
  • for GeoWebCache on 1.5.0;
  • for Geoserver on 2.4.x and 2.5.x;

If there is any question I would be pleased to answer.

Cheers,

Nicola.

2014-02-10 22:10 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

Not from me, technically what you are doing is very clear cut.

It would be good to hear back from GWC list as that appears to be the most effected (i.e. new functionality).

==
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


Jody Garnett

On Tue, Feb 11, 2014 at 2:12 AM, Nicola Lagomarsini <nicola.lagomarsini@anonymised.com> wrote:

Ok I will send an email to the ML.

Is there another feedback?

Cheers,
Nicola.

2014-02-10 12:37 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

I am always troubled by such questions, let me think.

As the original contributor you can pick up the code and contribute it to another project.

Since it is Nicola is doing the work, your +1 on the GeoServer list as a PSC will work out fine. That way the GeoServer list has a record that the request was made, and that a PSC member approved.

==

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


Jody Garnett

On Mon, Feb 10, 2014 at 7:44 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Sun, Feb 9, 2014 at 1:29 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

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).

No problem with it, but do we? I’m the sole author of both bits of code, so my agreement with the backport should be enough. Or not?

Cheers
Andrea

== Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information ==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


Hi all,

I would ask you a question about the GeoWebCache configuration.

In my pull request I have set the GeoWebCache fullWMS parameter from FALSE to TRUE inside the applicationContext for enabling the operations with the WMSTileFuser class.

Could this parameter always be set to true or it must be configurable from, for example, the geowebcache.xml file?

Cheers,

Nicola.

···

2014-03-05 10:36 GMT+01:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com>:

Hi all,

I have sent you the following pull requests to review. They should be merged in the following order:

Geotools → https://github.com/geotools/geotools/pull/384

GeoWebCache → https://github.com/GeoWebCache/geowebcache/pull/229

GeoServer → https://github.com/geoserver/geoserver/pull/524

I’m pleased to answer to your questions.

Cheers,

Nicola.

==
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


2014-03-03 9:29 GMT+01:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com>:

Hi Jody,

I will apply my changes only when the 11.0 will go out.

Cheers,
Nicola.

==
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


2014-03-01 13:32 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

Question: are you wishing to apply this to 11.x before 11.0 goes out? That is a bit risk, if that is your intention you will need to move promptly to perform the change prior to RC2 going out.

Jody

==
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


Jody Garnett

On Sat, Mar 1, 2014 at 2:06 AM, Nicola Lagomarsini <nicola.lagomarsini@anonymised.com> wrote:

Hi all,

I would recall the proposal for modifying the WMSTileFuser class in order to reach better performances on image reading and writing.

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/GIF images by applying the Quantizer on them;
  • improving the scaling of the final image by adding a better RenderingHints configuration.

These proposal requires to move some parts of the code from GeoServer to GeoTools and ImageIO-Ext for using the Quantizer class and the PNGWriter class located in the gs-wms module.

With these modifications it could be possible to use the following classes on GeoWebCache without cyclic dependencies.

I opened the following JIRA in order to trace the operation: https://jira.codehaus.org/browse/GEOS-6376.

The exact order of the pull requests that will be sent will be:

  • pull request for GeoTools;
  • pull request for GeoWebCache;
  • pull request for GeoServer.

These modifications will be on the master branch for GeoServer, GeoTools, GeoWebCache, but a backport will be needed:

  • for Geoserver 10.x. and 11.x
  • for GeoWebCache on 1.5.0;
  • for Geoserver on 2.4.x and 2.5.x;

If there is any question I would be pleased to answer.

Cheers,

Nicola.

2014-02-10 22:10 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

Not from me, technically what you are doing is very clear cut.

It would be good to hear back from GWC list as that appears to be the most effected (i.e. new functionality).

==
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


Jody Garnett

On Tue, Feb 11, 2014 at 2:12 AM, Nicola Lagomarsini <nicola.lagomarsini@anonymised.com> wrote:

Ok I will send an email to the ML.

Is there another feedback?

Cheers,
Nicola.

2014-02-10 12:37 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

I am always troubled by such questions, let me think.

As the original contributor you can pick up the code and contribute it to another project.

Since it is Nicola is doing the work, your +1 on the GeoServer list as a PSC will work out fine. That way the GeoServer list has a record that the request was made, and that a PSC member approved.

==

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


Jody Garnett

On Mon, Feb 10, 2014 at 7:44 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Sun, Feb 9, 2014 at 1:29 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

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).

No problem with it, but do we? I’m the sole author of both bits of code, so my agreement with the backport should be enough. Or not?

Cheers
Andrea

== Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information ==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


Ciao Nicola,
I would leave this parameter as it was originally, which is False.

This behaviour should be, IMHO, enabled explicitly if needed.

Regards,
Simone Giannecchini

Our support, Your Success! Visit http://opensdi.geo-solutions.it for
more information.

Ing. Simone Giannecchini
@simogeo
Founder/Director

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 333 8128928

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

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

On Wed, Mar 5, 2014 at 4:33 PM, Nicola Lagomarsini
<nicola.lagomarsini@anonymised.com> wrote:

Hi all,

I would ask you a question about the GeoWebCache configuration.

In my pull request I have set the GeoWebCache fullWMS parameter from FALSE
to TRUE inside the applicationContext for enabling the operations with the
WMSTileFuser class.

Could this parameter always be set to true or it must be configurable from,
for example, the geowebcache.xml file?

Cheers,
Nicola.

2014-03-05 10:36 GMT+01:00 Nicola Lagomarsini
<nicola.lagomarsini@anonymised.com>:

Hi all,

I have sent you the following pull requests to review. They should be
merged in the following order:

Geotools --> https://github.com/geotools/geotools/pull/384
GeoWebCache --> https://github.com/GeoWebCache/geowebcache/pull/229
GeoServer --> https://github.com/geoserver/geoserver/pull/524

I'm pleased to answer to your questions.

Cheers,
Nicola.

2014-03-03 9:29 GMT+01:00 Nicola Lagomarsini
<nicola.lagomarsini@anonymised.com>:

Hi Jody,

I will apply my changes only when the 11.0 will go out.

Cheers,
Nicola.

2014-03-01 13:32 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

Question: are you wishing to apply this to 11.x before 11.0 goes out?
That is a bit risk, if that is your intention you will need to move promptly
to perform the change prior to RC2 going out.

Jody

Jody Garnett

On Sat, Mar 1, 2014 at 2:06 AM, Nicola Lagomarsini
<nicola.lagomarsini@anonymised.com> wrote:

Hi all,

I would recall the proposal for modifying the WMSTileFuser class in
order to reach better performances on image reading and writing.

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/GIF images by applying the Quantizer on them;
improving the scaling of the final image by adding a better
RenderingHints configuration.

These proposal requires to move some parts of the code from GeoServer
to GeoTools and ImageIO-Ext for using the Quantizer class and the PNGWriter
class located in the gs-wms module.

With these modifications it could be possible to use the following
classes on GeoWebCache without cyclic dependencies.

I opened the following JIRA in order to trace the operation:
https://jira.codehaus.org/browse/GEOS-6376.

The exact order of the pull requests that will be sent will be:

pull request for GeoTools;
pull request for GeoWebCache;
pull request for GeoServer.

These modifications will be on the master branch for GeoServer,
GeoTools, GeoWebCache, but a backport will be needed:

for Geoserver 10.x. and 11.x
for GeoWebCache on 1.5.0;
for Geoserver on 2.4.x and 2.5.x;

If there is any question I would be pleased to answer.

Cheers,
Nicola.

2014-02-10 22:10 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

Not from me, technically what you are doing is very clear cut.

It would be good to hear back from GWC list as that appears to be the
most effected (i.e. new functionality).

Jody Garnett

On Tue, Feb 11, 2014 at 2:12 AM, Nicola Lagomarsini
<nicola.lagomarsini@anonymised.com> wrote:

Ok I will send an email to the ML.

Is there another feedback?

Cheers,
Nicola.

2014-02-10 12:37 GMT+01:00 Jody Garnett <jody.garnett@anonymised.com>:

I am always troubled by such questions, let me think.

As the original contributor you can pick up the code and contribute
it to another project.

Since it is Nicola is doing the work, your +1 on the GeoServer list
as a PSC will work out fine. That way the GeoServer list has a record that
the request was made, and that a PSC member approved.

Jody Garnett

On Mon, Feb 10, 2014 at 7:44 PM, Andrea Aime
<andrea.aime@anonymised.com> wrote:

On Sun, Feb 9, 2014 at 1:29 PM, Jody Garnett
<jody.garnett@anonymised.com> wrote:

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).

No problem with it, but do we? I'm the sole author of both bits of
code, so my agreement with the backport should be enough. Or not?

Cheers
Andrea

--
== Our support, Your Success! Visit http://opensdi.geo-solutions.it
for more information ==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

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

--

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

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

--

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

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

--

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

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

--

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

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

--

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

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

------------------------------------------------------------------------------
Subversion Kills Productivity. Get off Subversion & Make the Move to
Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works.
Faster operations. Version large binaries. Built-in WAN optimization and
the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
_______________________________________________
Geowebcache-devel mailing list
Geowebcache-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geowebcache-devel

On Wed, Mar 5, 2014 at 4:41 PM, Simone Giannecchini <
simone.giannecchini@anonymised.com> wrote:

Ciao Nicola,
I would leave this parameter as it was originally, which is False.

This behaviour should be, IMHO, enabled explicitly if needed.

The annoying bit is that now it's enabled in Spring app context files (
http://geowebcache.org/docs/1.5.1/services/wms.html#support-for-regular-wms-clients
),
it's not easily configured, if we want it configurable we should move it to
geowebcache.xml instead, so that we don't have to modify
jars (at least in GeoServer integration) to enable it.

Cheers
Andrea

--
== Our support, Your Success! Visit http://opensdi.geo-solutions.it for
more information ==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

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

Hi all,

I’m going to show some images for comparing the old wmsTileFuser class and its modified version, both in fullWMS mode enabled.

I made the fullWMS parameter configurable from the geowebcache.xml file by adding the TRUE(or FALSE) field.

I added the possibility for the user to change the image quality by setting an additional WMS parameter called hints. The user can choose one of the 3 following values: speed, default, quality.

The first image represents the result of a WMS request on a vectorial layer, in image/png format. The other 3 images represent the same WMS request with the new WMS parameter.

The second image value represents the result with the speed value which takes minor time without any care about the quality.
The third image (default value selected) provides a better image quality but requires more time than the speed configuration.
The last image with the quality value takes more time than the others but the final image has the best quality between the 4 images.

From the results, in fact, it is easy to note that the image created with the quality hints has a better quality than that returned by the old WMSTileFuser class.

I hope this could help to review the pull requests.

Cheers,
Nicola.

(attachments)

oldwms.png
oldwms.png
oldwms.png
newwmsQuality.png

···

2014-03-05 16:47 GMT+01:00 Andrea Aime <andrea.aime@anonymised.com268…>:

==
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


On Wed, Mar 5, 2014 at 4:41 PM, Simone Giannecchini <simone.giannecchini@anonymised.com> wrote:

Ciao Nicola,
I would leave this parameter as it was originally, which is False.

This behaviour should be, IMHO, enabled explicitly if needed.

The annoying bit is that now it’s enabled in Spring app context files (http://geowebcache.org/docs/1.5.1/services/wms.html#support-for-regular-wms-clients),
it’s not easily configured, if we want it configurable we should move it to geowebcache.xml instead, so that we don’t have to modify
jars (at least in GeoServer integration) to enable it.

Cheers

Andrea

== Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information ==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


Hi all,

I’m going to show some images for comparing the old wmsTileFuser class and its modified version, both in fullWMS mode enabled.

I made the fullWMS parameter configurable from the geowebcache.xml file by adding the TRUE(or FALSE) field.

I added the possibility for the user to change the image quality by setting an additional WMS parameter called hints. The user can choose one of the 3 following values: speed, default, quality.

The first image represents the result of a WMS request on a vectorial layer, in image/png format. The other 3 images represent the same WMS request with the new WMS parameter.

The second image value represents the result with the speed value which takes minor time without any care about the quality.
The third image (default value selected) provides a better image quality but requires more time than the speed configuration.
The last image with the quality value takes more time than the others but the final image has the best quality between the 4 images.

From the results, in fact, it is easy to note that the image created with the quality hints has a better quality than that returned by the old WMSTileFuser class.

I hope this could help to review the pull requests.

P.S. The images are too big to be sent by mail, I add the following links for download:

old wms request: https://drive.google.com/file/d/0B_H-B1p4qGi6VVgyVGJPYVV1c1hBMDMzakhPRTZlQTdzRFl3/edit?usp=sharing

new wms request with speed hints: https://drive.google.com/file/d/0B_H-B1p4qGi6MEhJR1NxTkV2Tnh0Y3Zza2JJdHNtY0RhZVN3/edit?usp=sharing
new wms request with default hints: https://drive.google.com/file/d/0B_H-B1p4qGi6bk5adnNYN2NjRUk/edit?usp=sharing
new wms request with quality hints: https://drive.google.com/file/d/0B_H-B1p4qGi6b1RTYktBSjBtYlpOdGdFS3NVWkVIb1Rzd3g4/edit?usp=sharing

Cheers,
Nicola.

···

2014-03-07 10:15 GMT+01:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com1268…>:

Hi all,

I’m going to show some images for comparing the old wmsTileFuser class and its modified version, both in fullWMS mode enabled.

I made the fullWMS parameter configurable from the geowebcache.xml file by adding the TRUE(or FALSE) field.

I added the possibility for the user to change the image quality by setting an additional WMS parameter called hints. The user can choose one of the 3 following values: speed, default, quality.

The first image represents the result of a WMS request on a vectorial layer, in image/png format. The other 3 images represent the same WMS request with the new WMS parameter.

The second image value represents the result with the speed value which takes minor time without any care about the quality.
The third image (default value selected) provides a better image quality but requires more time than the speed configuration.
The last image with the quality value takes more time than the others but the final image has the best quality between the 4 images.

From the results, in fact, it is easy to note that the image created with the quality hints has a better quality than that returned by the old WMSTileFuser class.

I hope this could help to review the pull requests.

Cheers,
Nicola.

==
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


2014-03-05 16:47 GMT+01:00 Andrea Aime <andrea.aime@anonymised.com268…>:

==
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


On Wed, Mar 5, 2014 at 4:41 PM, Simone Giannecchini <simone.giannecchini@anonymised.com> wrote:

Ciao Nicola,
I would leave this parameter as it was originally, which is False.

This behaviour should be, IMHO, enabled explicitly if needed.

The annoying bit is that now it’s enabled in Spring app context files (http://geowebcache.org/docs/1.5.1/services/wms.html#support-for-regular-wms-clients),
it’s not easily configured, if we want it configurable we should move it to geowebcache.xml instead, so that we don’t have to modify
jars (at least in GeoServer integration) to enable it.

Cheers

Andrea

== Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information ==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


On Fri, Mar 7, 2014 at 10:28 AM, Nicola Lagomarsini <
nicola.lagomarsini@anonymised.com> wrote:

Hi all,

I'm going to show some images for comparing the old wmsTileFuser class and
its modified version, both in *fullWMS* mode enabled.

I made the *fullWMS* parameter configurable from the geowebcache.xml file
by adding the <fullWMS>TRUE(or FALSE)</fullWMS> field.

I added the possibility for the user to change the image quality by
setting an additional WMS parameter called *hints*. The user can choose
one of the 3 following values: *speed*, *default*, *quality*.

The first image represents the result of a WMS request on a vectorial
layer, in image/png format. The other 3 images represent the same WMS
request with the new WMS parameter.

The second image value represents the result with the *speed* value which
takes minor time without any care about the quality.
The third image (*default* value selected) provides a better image
quality but requires more time than the *speed* configuration.
The last image with the *quality* value takes more time than the others
but the final image has the best quality between the 4 images.

From the results, in fact, it is easy to note that the image created with
the *quality* hints has a better quality than that returned by the old
WMSTileFuser class.

I hope this could help to review the pull requests.

P.S. The images are too big to be sent by mail, I add the following links
for download:

old wms request:
https://drive.google.com/file/d/0B_H-B1p4qGi6VVgyVGJPYVV1c1hBMDMzakhPRTZlQTdzRFl3/edit?usp=sharing
new wms request with speed hints:
https://drive.google.com/file/d/0B_H-B1p4qGi6MEhJR1NxTkV2Tnh0Y3Zza2JJdHNtY0RhZVN3/edit?usp=sharing
new wms request with default hints:
https://drive.google.com/file/d/0B_H-B1p4qGi6bk5adnNYN2NjRUk/edit?usp=sharing
new wms request with quality hints:
https://drive.google.com/file/d/0B_H-B1p4qGi6b1RTYktBSjBtYlpOdGdFS3NVWkVIb1Rzd3g4/edit?usp=sharing

Hi Nicola,
I'm looking at the outputs, and finding something strange. The quality one
is definitely much better, for sure, however:
* the new images are ~20 times larger than the oldwms one (from 34kb to
758KB), something is wrong with the png compression parameters I suppose
* I cannot see any difference, visually, between oldwms, new with speed,
and new with default

Cheers
Andrea

--
== Our support, Your Success! Visit http://opensdi.geo-solutions.it for
more information ==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

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

Hi Andrea,

the quality parameter can be configured inside the application context for the PNGEncoder inside the gwc-wms and gs-gwc modules. By setting for example the quality parameter to 0.1 the image size is considerably reduced.

About the hints considerations I have used different hints for each configuration, so I think that this similarity between speed and default configuration could be associated to a similar hints behaviour.

Below are listed the hints for each configurations.

Speed:
KEY_COLOR_RENDERING = VALUE_COLOR_RENDER_SPEED;
KEY_ANTIALIASING = VALUE_ANTIALIAS_OFF;
KEY_FRACTIONALMETRICS = VALUE_FRACTIONALMETRICS_OFF;
KEY_ALPHA_INTERPOLATION = VALUE_ALPHA_INTERPOLATION_SPEED;
KEY_INTERPOLATION = VALUE_INTERPOLATION_NEAREST_NEIGHBOR;
KEY_RENDERING = VALUE_RENDER_SPEED;
KEY_TEXT_ANTIALIASING = VALUE_TEXT_ANTIALIAS_OFF;
KEY_STROKE_CONTROL = VALUE_STROKE_PURE;

Default:
KEY_COLOR_RENDERING = VALUE_COLOR_RENDER_DEFAULT;
KEY_ANTIALIASING = VALUE_ANTIALIAS_DEFAULT;
KEY_FRACTIONALMETRICS = VALUE_FRACTIONALMETRICS_DEFAULT;
KEY_ALPHA_INTERPOLATION =VALUE_ALPHA_INTERPOLATION_DEFAULT;
KEY_RENDERING = VALUE_RENDER_DEFAULT;
KEY_TEXT_ANTIALIASING = VALUE_TEXT_ANTIALIAS_DEFAULT;
KEY_STROKE_CONTROL = VALUE_STROKE_DEFAULT;

Quality:
KEY_COLOR_RENDERING = VALUE_COLOR_RENDER_QUALITY;
KEY_ANTIALIASING = VALUE_ANTIALIAS_ON;
KEY_FRACTIONALMETRICS = VALUE_FRACTIONALMETRICS_ON;
KEY_ALPHA_INTERPOLATION = VALUE_ALPHA_INTERPOLATION_QUALITY;
KEY_INTERPOLATION = VALUE_INTERPOLATION_BILINEAR;
KEY_RENDERING = VALUE_RENDER_QUALITY;
KEY_TEXT_ANTIALIASING = VALUE_TEXT_ANTIALIAS_ON;
KEY_STROKE_CONTROL = VALUE_STROKE_NORMALIZE;

Cheers,

Nicola.

···

2014-03-07 10:32 GMT+01:00 Andrea Aime <andrea.aime@anonymised.com>:

==
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


On Fri, Mar 7, 2014 at 10:28 AM, Nicola Lagomarsini <nicola.lagomarsini@anonymised.com> wrote:

Hi all,

I’m going to show some images for comparing the old wmsTileFuser class and its modified version, both in fullWMS mode enabled.

I made the fullWMS parameter configurable from the geowebcache.xml file by adding the TRUE(or FALSE) field.

I added the possibility for the user to change the image quality by setting an additional WMS parameter called hints. The user can choose one of the 3 following values: speed, default, quality.

The first image represents the result of a WMS request on a vectorial layer, in image/png format. The other 3 images represent the same WMS request with the new WMS parameter.

The second image value represents the result with the speed value which takes minor time without any care about the quality.
The third image (default value selected) provides a better image quality but requires more time than the speed configuration.
The last image with the quality value takes more time than the others but the final image has the best quality between the 4 images.

From the results, in fact, it is easy to note that the image created with the quality hints has a better quality than that returned by the old WMSTileFuser class.

I hope this could help to review the pull requests.

P.S. The images are too big to be sent by mail, I add the following links for download:

old wms request: https://drive.google.com/file/d/0B_H-B1p4qGi6VVgyVGJPYVV1c1hBMDMzakhPRTZlQTdzRFl3/edit?usp=sharing

new wms request with speed hints: https://drive.google.com/file/d/0B_H-B1p4qGi6MEhJR1NxTkV2Tnh0Y3Zza2JJdHNtY0RhZVN3/edit?usp=sharing
new wms request with default hints: https://drive.google.com/file/d/0B_H-B1p4qGi6bk5adnNYN2NjRUk/edit?usp=sharing
new wms request with quality hints: https://drive.google.com/file/d/0B_H-B1p4qGi6b1RTYktBSjBtYlpOdGdFS3NVWkVIb1Rzd3g4/edit?usp=sharing

Hi Nicola,
I’m looking at the outputs, and finding something strange. The quality one is definitely much better, for sure, however:

  • the new images are ~20 times larger than the oldwms one (from 34kb to 758KB), something is wrong with the png compression parameters I suppose
  • I cannot see any difference, visually, between oldwms, new with speed, and new with default

Cheers

Andrea

== Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information ==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


Hi all,

I have set the quality factor to 0.1 inside the pull requests.

Cheers,

Nicola.

···

2014-03-07 11:11 GMT+01:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com>:

Hi Andrea,

the quality parameter can be configured inside the application context for the PNGEncoder inside the gwc-wms and gs-gwc modules. By setting for example the quality parameter to 0.1 the image size is considerably reduced.

About the hints considerations I have used different hints for each configuration, so I think that this similarity between speed and default configuration could be associated to a similar hints behaviour.

Below are listed the hints for each configurations.

Speed:
KEY_COLOR_RENDERING = VALUE_COLOR_RENDER_SPEED;
KEY_ANTIALIASING = VALUE_ANTIALIAS_OFF;
KEY_FRACTIONALMETRICS = VALUE_FRACTIONALMETRICS_OFF;
KEY_ALPHA_INTERPOLATION = VALUE_ALPHA_INTERPOLATION_SPEED;
KEY_INTERPOLATION = VALUE_INTERPOLATION_NEAREST_NEIGHBOR;
KEY_RENDERING = VALUE_RENDER_SPEED;
KEY_TEXT_ANTIALIASING = VALUE_TEXT_ANTIALIAS_OFF;
KEY_STROKE_CONTROL = VALUE_STROKE_PURE;

Default:
KEY_COLOR_RENDERING = VALUE_COLOR_RENDER_DEFAULT;
KEY_ANTIALIASING = VALUE_ANTIALIAS_DEFAULT;
KEY_FRACTIONALMETRICS = VALUE_FRACTIONALMETRICS_DEFAULT;
KEY_ALPHA_INTERPOLATION =VALUE_ALPHA_INTERPOLATION_DEFAULT;
KEY_RENDERING = VALUE_RENDER_DEFAULT;
KEY_TEXT_ANTIALIASING = VALUE_TEXT_ANTIALIAS_DEFAULT;
KEY_STROKE_CONTROL = VALUE_STROKE_DEFAULT;

Quality:
KEY_COLOR_RENDERING = VALUE_COLOR_RENDER_QUALITY;
KEY_ANTIALIASING = VALUE_ANTIALIAS_ON;
KEY_FRACTIONALMETRICS = VALUE_FRACTIONALMETRICS_ON;
KEY_ALPHA_INTERPOLATION = VALUE_ALPHA_INTERPOLATION_QUALITY;
KEY_INTERPOLATION = VALUE_INTERPOLATION_BILINEAR;
KEY_RENDERING = VALUE_RENDER_QUALITY;
KEY_TEXT_ANTIALIASING = VALUE_TEXT_ANTIALIAS_ON;
KEY_STROKE_CONTROL = VALUE_STROKE_NORMALIZE;

Cheers,

Nicola.

==
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


2014-03-07 10:32 GMT+01:00 Andrea Aime <andrea.aime@anonymised.com>:

==

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


On Fri, Mar 7, 2014 at 10:28 AM, Nicola Lagomarsini <nicola.lagomarsini@anonymised.com> wrote:

Hi all,

I’m going to show some images for comparing the old wmsTileFuser class and its modified version, both in fullWMS mode enabled.

I made the fullWMS parameter configurable from the geowebcache.xml file by adding the TRUE(or FALSE) field.

I added the possibility for the user to change the image quality by setting an additional WMS parameter called hints. The user can choose one of the 3 following values: speed, default, quality.

The first image represents the result of a WMS request on a vectorial layer, in image/png format. The other 3 images represent the same WMS request with the new WMS parameter.

The second image value represents the result with the speed value which takes minor time without any care about the quality.
The third image (default value selected) provides a better image quality but requires more time than the speed configuration.
The last image with the quality value takes more time than the others but the final image has the best quality between the 4 images.

From the results, in fact, it is easy to note that the image created with the quality hints has a better quality than that returned by the old WMSTileFuser class.

I hope this could help to review the pull requests.

P.S. The images are too big to be sent by mail, I add the following links for download:

old wms request: https://drive.google.com/file/d/0B_H-B1p4qGi6VVgyVGJPYVV1c1hBMDMzakhPRTZlQTdzRFl3/edit?usp=sharing

new wms request with speed hints: https://drive.google.com/file/d/0B_H-B1p4qGi6MEhJR1NxTkV2Tnh0Y3Zza2JJdHNtY0RhZVN3/edit?usp=sharing
new wms request with default hints: https://drive.google.com/file/d/0B_H-B1p4qGi6bk5adnNYN2NjRUk/edit?usp=sharing
new wms request with quality hints: https://drive.google.com/file/d/0B_H-B1p4qGi6b1RTYktBSjBtYlpOdGdFS3NVWkVIb1Rzd3g4/edit?usp=sharing

Hi Nicola,
I’m looking at the outputs, and finding something strange. The quality one is definitely much better, for sure, however:

  • the new images are ~20 times larger than the oldwms one (from 34kb to 758KB), something is wrong with the png compression parameters I suppose
  • I cannot see any difference, visually, between oldwms, new with speed, and new with default

Cheers

Andrea

== Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information ==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


Hi all,

I have changed the quality factor to 0.25 and the image size is above 40kb. Here you can find the links for the new compressed images.

speed configuration link: https://drive.google.com/file/d/0B_H-B1p4qGi6OHhRZU9GcXZTZG8/edit?usp=sharing

default configuration link: https://drive.google.com/file/d/0B_H-B1p4qGi6dUdqSmRQXzJleHM/edit?usp=sharing
quality configuration link: https://drive.google.com/file/d/0B_H-B1p4qGi6NjZVYWw1d19PRHc/edit?usp=sharing

Cheers,

Nicola.

···

2014-03-07 11:53 GMT+01:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com>:

Hi all,

I have set the quality factor to 0.1 inside the pull requests.

Cheers,

Nicola.

==
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


2014-03-07 11:11 GMT+01:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com>:

Hi Andrea,

the quality parameter can be configured inside the application context for the PNGEncoder inside the gwc-wms and gs-gwc modules. By setting for example the quality parameter to 0.1 the image size is considerably reduced.

About the hints considerations I have used different hints for each configuration, so I think that this similarity between speed and default configuration could be associated to a similar hints behaviour.

Below are listed the hints for each configurations.

Speed:
KEY_COLOR_RENDERING = VALUE_COLOR_RENDER_SPEED;
KEY_ANTIALIASING = VALUE_ANTIALIAS_OFF;
KEY_FRACTIONALMETRICS = VALUE_FRACTIONALMETRICS_OFF;
KEY_ALPHA_INTERPOLATION = VALUE_ALPHA_INTERPOLATION_SPEED;
KEY_INTERPOLATION = VALUE_INTERPOLATION_NEAREST_NEIGHBOR;
KEY_RENDERING = VALUE_RENDER_SPEED;
KEY_TEXT_ANTIALIASING = VALUE_TEXT_ANTIALIAS_OFF;
KEY_STROKE_CONTROL = VALUE_STROKE_PURE;

Default:
KEY_COLOR_RENDERING = VALUE_COLOR_RENDER_DEFAULT;
KEY_ANTIALIASING = VALUE_ANTIALIAS_DEFAULT;
KEY_FRACTIONALMETRICS = VALUE_FRACTIONALMETRICS_DEFAULT;
KEY_ALPHA_INTERPOLATION =VALUE_ALPHA_INTERPOLATION_DEFAULT;
KEY_RENDERING = VALUE_RENDER_DEFAULT;
KEY_TEXT_ANTIALIASING = VALUE_TEXT_ANTIALIAS_DEFAULT;
KEY_STROKE_CONTROL = VALUE_STROKE_DEFAULT;

Quality:
KEY_COLOR_RENDERING = VALUE_COLOR_RENDER_QUALITY;
KEY_ANTIALIASING = VALUE_ANTIALIAS_ON;
KEY_FRACTIONALMETRICS = VALUE_FRACTIONALMETRICS_ON;
KEY_ALPHA_INTERPOLATION = VALUE_ALPHA_INTERPOLATION_QUALITY;
KEY_INTERPOLATION = VALUE_INTERPOLATION_BILINEAR;
KEY_RENDERING = VALUE_RENDER_QUALITY;
KEY_TEXT_ANTIALIASING = VALUE_TEXT_ANTIALIAS_ON;
KEY_STROKE_CONTROL = VALUE_STROKE_NORMALIZE;

Cheers,

Nicola.

==
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


2014-03-07 10:32 GMT+01:00 Andrea Aime <andrea.aime@anonymised.com>:

==

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


On Fri, Mar 7, 2014 at 10:28 AM, Nicola Lagomarsini <nicola.lagomarsini@anonymised.com> wrote:

Hi all,

I’m going to show some images for comparing the old wmsTileFuser class and its modified version, both in fullWMS mode enabled.

I made the fullWMS parameter configurable from the geowebcache.xml file by adding the TRUE(or FALSE) field.

I added the possibility for the user to change the image quality by setting an additional WMS parameter called hints. The user can choose one of the 3 following values: speed, default, quality.

The first image represents the result of a WMS request on a vectorial layer, in image/png format. The other 3 images represent the same WMS request with the new WMS parameter.

The second image value represents the result with the speed value which takes minor time without any care about the quality.
The third image (default value selected) provides a better image quality but requires more time than the speed configuration.
The last image with the quality value takes more time than the others but the final image has the best quality between the 4 images.

From the results, in fact, it is easy to note that the image created with the quality hints has a better quality than that returned by the old WMSTileFuser class.

I hope this could help to review the pull requests.

P.S. The images are too big to be sent by mail, I add the following links for download:

old wms request: https://drive.google.com/file/d/0B_H-B1p4qGi6VVgyVGJPYVV1c1hBMDMzakhPRTZlQTdzRFl3/edit?usp=sharing

new wms request with speed hints: https://drive.google.com/file/d/0B_H-B1p4qGi6MEhJR1NxTkV2Tnh0Y3Zza2JJdHNtY0RhZVN3/edit?usp=sharing
new wms request with default hints: https://drive.google.com/file/d/0B_H-B1p4qGi6bk5adnNYN2NjRUk/edit?usp=sharing
new wms request with quality hints: https://drive.google.com/file/d/0B_H-B1p4qGi6b1RTYktBSjBtYlpOdGdFS3NVWkVIb1Rzd3g4/edit?usp=sharing

Hi Nicola,
I’m looking at the outputs, and finding something strange. The quality one is definitely much better, for sure, however:

  • the new images are ~20 times larger than the oldwms one (from 34kb to 758KB), something is wrong with the png compression parameters I suppose
  • I cannot see any difference, visually, between oldwms, new with speed, and new with default

Cheers

Andrea

== Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information ==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


Hi all,

I have changed the hints configurations by differentiating the interpolation type for each configuration:

Cheers,

Nicola.

···

2014-03-07 14:35 GMT+01:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com>:

Hi all,

I have changed the quality factor to 0.25 and the image size is above 40kb. Here you can find the links for the new compressed images.

speed configuration link: https://drive.google.com/file/d/0B_H-B1p4qGi6OHhRZU9GcXZTZG8/edit?usp=sharing

default configuration link: https://drive.google.com/file/d/0B_H-B1p4qGi6dUdqSmRQXzJleHM/edit?usp=sharing
quality configuration link: https://drive.google.com/file/d/0B_H-B1p4qGi6NjZVYWw1d19PRHc/edit?usp=sharing

Cheers,

Nicola.

==
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


2014-03-07 11:53 GMT+01:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com>:

Hi all,

I have set the quality factor to 0.1 inside the pull requests.

Cheers,

Nicola.

==
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


2014-03-07 11:11 GMT+01:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com>:

Hi Andrea,

the quality parameter can be configured inside the application context for the PNGEncoder inside the gwc-wms and gs-gwc modules. By setting for example the quality parameter to 0.1 the image size is considerably reduced.

About the hints considerations I have used different hints for each configuration, so I think that this similarity between speed and default configuration could be associated to a similar hints behaviour.

Below are listed the hints for each configurations.

Speed:
KEY_COLOR_RENDERING = VALUE_COLOR_RENDER_SPEED;
KEY_ANTIALIASING = VALUE_ANTIALIAS_OFF;
KEY_FRACTIONALMETRICS = VALUE_FRACTIONALMETRICS_OFF;
KEY_ALPHA_INTERPOLATION = VALUE_ALPHA_INTERPOLATION_SPEED;
KEY_INTERPOLATION = VALUE_INTERPOLATION_NEAREST_NEIGHBOR;
KEY_RENDERING = VALUE_RENDER_SPEED;
KEY_TEXT_ANTIALIASING = VALUE_TEXT_ANTIALIAS_OFF;
KEY_STROKE_CONTROL = VALUE_STROKE_PURE;

Default:
KEY_COLOR_RENDERING = VALUE_COLOR_RENDER_DEFAULT;
KEY_ANTIALIASING = VALUE_ANTIALIAS_DEFAULT;
KEY_FRACTIONALMETRICS = VALUE_FRACTIONALMETRICS_DEFAULT;
KEY_ALPHA_INTERPOLATION =VALUE_ALPHA_INTERPOLATION_DEFAULT;
KEY_RENDERING = VALUE_RENDER_DEFAULT;
KEY_TEXT_ANTIALIASING = VALUE_TEXT_ANTIALIAS_DEFAULT;
KEY_STROKE_CONTROL = VALUE_STROKE_DEFAULT;

Quality:
KEY_COLOR_RENDERING = VALUE_COLOR_RENDER_QUALITY;
KEY_ANTIALIASING = VALUE_ANTIALIAS_ON;
KEY_FRACTIONALMETRICS = VALUE_FRACTIONALMETRICS_ON;
KEY_ALPHA_INTERPOLATION = VALUE_ALPHA_INTERPOLATION_QUALITY;
KEY_INTERPOLATION = VALUE_INTERPOLATION_BILINEAR;
KEY_RENDERING = VALUE_RENDER_QUALITY;
KEY_TEXT_ANTIALIASING = VALUE_TEXT_ANTIALIAS_ON;
KEY_STROKE_CONTROL = VALUE_STROKE_NORMALIZE;

Cheers,

Nicola.

==
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


2014-03-07 10:32 GMT+01:00 Andrea Aime <andrea.aime@anonymised.com>:

==

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


On Fri, Mar 7, 2014 at 10:28 AM, Nicola Lagomarsini <nicola.lagomarsini@anonymised.com> wrote:

Hi all,

I’m going to show some images for comparing the old wmsTileFuser class and its modified version, both in fullWMS mode enabled.

I made the fullWMS parameter configurable from the geowebcache.xml file by adding the TRUE(or FALSE) field.

I added the possibility for the user to change the image quality by setting an additional WMS parameter called hints. The user can choose one of the 3 following values: speed, default, quality.

The first image represents the result of a WMS request on a vectorial layer, in image/png format. The other 3 images represent the same WMS request with the new WMS parameter.

The second image value represents the result with the speed value which takes minor time without any care about the quality.
The third image (default value selected) provides a better image quality but requires more time than the speed configuration.
The last image with the quality value takes more time than the others but the final image has the best quality between the 4 images.

From the results, in fact, it is easy to note that the image created with the quality hints has a better quality than that returned by the old WMSTileFuser class.

I hope this could help to review the pull requests.

P.S. The images are too big to be sent by mail, I add the following links for download:

old wms request: https://drive.google.com/file/d/0B_H-B1p4qGi6VVgyVGJPYVV1c1hBMDMzakhPRTZlQTdzRFl3/edit?usp=sharing

new wms request with speed hints: https://drive.google.com/file/d/0B_H-B1p4qGi6MEhJR1NxTkV2Tnh0Y3Zza2JJdHNtY0RhZVN3/edit?usp=sharing
new wms request with default hints: https://drive.google.com/file/d/0B_H-B1p4qGi6bk5adnNYN2NjRUk/edit?usp=sharing
new wms request with quality hints: https://drive.google.com/file/d/0B_H-B1p4qGi6b1RTYktBSjBtYlpOdGdFS3NVWkVIb1Rzd3g4/edit?usp=sharing

Hi Nicola,
I’m looking at the outputs, and finding something strange. The quality one is definitely much better, for sure, however:

  • the new images are ~20 times larger than the oldwms one (from 34kb to 758KB), something is wrong with the png compression parameters I suppose
  • I cannot see any difference, visually, between oldwms, new with speed, and new with default

Cheers

Andrea

== Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information ==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


Hi all,

I would ask if I can backport my modifications related to the WMSTileFuser class (GeoWebCache) on the following versions of GeoTools, GeoServer and GeoWebCache:

  • Geotools: 11.x and 10.x
  • GeoServer: 2.5.x and 2.4.x
  • GeoWebCache: 1.5.x

I will wait a month from the date of each pull requests on the master branch before sending the new pull requests.

It should be noted that these pull requests will upgrade the ImageIO-Ext version from 1.1.8 to 1.1.9 which are very similar except for the new PNG Writer plugin.

This is a short summary of the 3 pull requests:

  • for GeoTools I have moved the Quantizer code from GeoServer. It is related to the following JIRA https://jira.codehaus.org/browse/GEOS-6376.
  • for GepServer I have moved the Quantizer code to GeoTools and the PNGEncoder code to ImageIO-Ext. (see the JIRA above).
  • for GeoWebCache, I have improved the WMSTileFuser class and made full WMS support configurable from the geowebcache.xml file. Also I added a new WMS parameter called “hints” which can be set to SPEED, DEFAULT and QUALITY. This parameter gives the possibility to make a WMS request faster or with a better quality.

I will be pleased to answer to all your questions.

Cheers,
Nicola.

···

2014-03-07 15:43 GMT+01:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com>:

Hi all,

I have changed the hints configurations by differentiating the interpolation type for each configuration:

Cheers,

Nicola.

==
Meet us at GEO Business 2014! in London! Visit http://goo.gl/fES3aK
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


2014-03-07 14:35 GMT+01:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com>:

Hi all,

I have changed the quality factor to 0.25 and the image size is above 40kb. Here you can find the links for the new compressed images.

speed configuration link: https://drive.google.com/file/d/0B_H-B1p4qGi6OHhRZU9GcXZTZG8/edit?usp=sharing

default configuration link: https://drive.google.com/file/d/0B_H-B1p4qGi6dUdqSmRQXzJleHM/edit?usp=sharing
quality configuration link: https://drive.google.com/file/d/0B_H-B1p4qGi6NjZVYWw1d19PRHc/edit?usp=sharing

Cheers,

Nicola.

==
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


2014-03-07 11:53 GMT+01:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com>:

Hi all,

I have set the quality factor to 0.1 inside the pull requests.

Cheers,

Nicola.

==
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


2014-03-07 11:11 GMT+01:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com>:

Hi Andrea,

the quality parameter can be configured inside the application context for the PNGEncoder inside the gwc-wms and gs-gwc modules. By setting for example the quality parameter to 0.1 the image size is considerably reduced.

About the hints considerations I have used different hints for each configuration, so I think that this similarity between speed and default configuration could be associated to a similar hints behaviour.

Below are listed the hints for each configurations.

Speed:
KEY_COLOR_RENDERING = VALUE_COLOR_RENDER_SPEED;
KEY_ANTIALIASING = VALUE_ANTIALIAS_OFF;
KEY_FRACTIONALMETRICS = VALUE_FRACTIONALMETRICS_OFF;
KEY_ALPHA_INTERPOLATION = VALUE_ALPHA_INTERPOLATION_SPEED;
KEY_INTERPOLATION = VALUE_INTERPOLATION_NEAREST_NEIGHBOR;
KEY_RENDERING = VALUE_RENDER_SPEED;
KEY_TEXT_ANTIALIASING = VALUE_TEXT_ANTIALIAS_OFF;
KEY_STROKE_CONTROL = VALUE_STROKE_PURE;

Default:
KEY_COLOR_RENDERING = VALUE_COLOR_RENDER_DEFAULT;
KEY_ANTIALIASING = VALUE_ANTIALIAS_DEFAULT;
KEY_FRACTIONALMETRICS = VALUE_FRACTIONALMETRICS_DEFAULT;
KEY_ALPHA_INTERPOLATION =VALUE_ALPHA_INTERPOLATION_DEFAULT;
KEY_RENDERING = VALUE_RENDER_DEFAULT;
KEY_TEXT_ANTIALIASING = VALUE_TEXT_ANTIALIAS_DEFAULT;
KEY_STROKE_CONTROL = VALUE_STROKE_DEFAULT;

Quality:
KEY_COLOR_RENDERING = VALUE_COLOR_RENDER_QUALITY;
KEY_ANTIALIASING = VALUE_ANTIALIAS_ON;
KEY_FRACTIONALMETRICS = VALUE_FRACTIONALMETRICS_ON;
KEY_ALPHA_INTERPOLATION = VALUE_ALPHA_INTERPOLATION_QUALITY;
KEY_INTERPOLATION = VALUE_INTERPOLATION_BILINEAR;
KEY_RENDERING = VALUE_RENDER_QUALITY;
KEY_TEXT_ANTIALIASING = VALUE_TEXT_ANTIALIAS_ON;
KEY_STROKE_CONTROL = VALUE_STROKE_NORMALIZE;

Cheers,

Nicola.

==
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


2014-03-07 10:32 GMT+01:00 Andrea Aime <andrea.aime@anonymised.com>:

==

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


On Fri, Mar 7, 2014 at 10:28 AM, Nicola Lagomarsini <nicola.lagomarsini@anonymised.com> wrote:

Hi all,

I’m going to show some images for comparing the old wmsTileFuser class and its modified version, both in fullWMS mode enabled.

I made the fullWMS parameter configurable from the geowebcache.xml file by adding the TRUE(or FALSE) field.

I added the possibility for the user to change the image quality by setting an additional WMS parameter called hints. The user can choose one of the 3 following values: speed, default, quality.

The first image represents the result of a WMS request on a vectorial layer, in image/png format. The other 3 images represent the same WMS request with the new WMS parameter.

The second image value represents the result with the speed value which takes minor time without any care about the quality.
The third image (default value selected) provides a better image quality but requires more time than the speed configuration.
The last image with the quality value takes more time than the others but the final image has the best quality between the 4 images.

From the results, in fact, it is easy to note that the image created with the quality hints has a better quality than that returned by the old WMSTileFuser class.

I hope this could help to review the pull requests.

P.S. The images are too big to be sent by mail, I add the following links for download:

old wms request: https://drive.google.com/file/d/0B_H-B1p4qGi6VVgyVGJPYVV1c1hBMDMzakhPRTZlQTdzRFl3/edit?usp=sharing

new wms request with speed hints: https://drive.google.com/file/d/0B_H-B1p4qGi6MEhJR1NxTkV2Tnh0Y3Zza2JJdHNtY0RhZVN3/edit?usp=sharing
new wms request with default hints: https://drive.google.com/file/d/0B_H-B1p4qGi6bk5adnNYN2NjRUk/edit?usp=sharing
new wms request with quality hints: https://drive.google.com/file/d/0B_H-B1p4qGi6b1RTYktBSjBtYlpOdGdFS3NVWkVIb1Rzd3g4/edit?usp=sharing

Hi Nicola,
I’m looking at the outputs, and finding something strange. The quality one is definitely much better, for sure, however:

  • the new images are ~20 times larger than the oldwms one (from 34kb to 758KB), something is wrong with the png compression parameters I suppose
  • I cannot see any difference, visually, between oldwms, new with speed, and new with default

Cheers

Andrea

== Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information ==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


Hi all,

I have prepared the first pull request related to the backport of my modifications for the WMSTileFuser(GeoWebCache) on GeoTools 11.x.

The pull request is https://github.com/geotools/geotools/pull/410.

NOTE: This pull requests will upgrade the ImageIO-Ext version from 1.1.8 to 1.1.9 which are very similar except for the new PNG Writer plugin.

I will be pleased to answer to your questions.

Cheers,
Nicola.

···

2014-04-04 10:48 GMT+02:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com…>:

Hi all,

I would ask if I can backport my modifications related to the WMSTileFuser class (GeoWebCache) on the following versions of GeoTools, GeoServer and GeoWebCache:

  • Geotools: 11.x and 10.x
  • GeoServer: 2.5.x and 2.4.x
  • GeoWebCache: 1.5.x

I will wait a month from the date of each pull requests on the master branch before sending the new pull requests.

It should be noted that these pull requests will upgrade the ImageIO-Ext version from 1.1.8 to 1.1.9 which are very similar except for the new PNG Writer plugin.

This is a short summary of the 3 pull requests:

  • for GeoTools I have moved the Quantizer code from GeoServer. It is related to the following JIRA https://jira.codehaus.org/browse/GEOS-6376.
  • for GepServer I have moved the Quantizer code to GeoTools and the PNGEncoder code to ImageIO-Ext. (see the JIRA above).
  • for GeoWebCache, I have improved the WMSTileFuser class and made full WMS support configurable from the geowebcache.xml file. Also I added a new WMS parameter called “hints” which can be set to SPEED, DEFAULT and QUALITY. This parameter gives the possibility to make a WMS request faster or with a better quality.

I will be pleased to answer to all your questions.

Cheers,
Nicola.

==
Meet us at GEO Business 2014! in London! Visit http://goo.gl/fES3aK
for more information.

Ing. Nicola Lagomarsini
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


2014-03-07 15:43 GMT+01:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com>:

Hi all,

I have changed the hints configurations by differentiating the interpolation type for each configuration:

Cheers,

Nicola.

==
Meet us at GEO Business 2014! in London! Visit http://goo.gl/fES3aK
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


2014-03-07 14:35 GMT+01:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com>:

Hi all,

I have changed the quality factor to 0.25 and the image size is above 40kb. Here you can find the links for the new compressed images.

speed configuration link: https://drive.google.com/file/d/0B_H-B1p4qGi6OHhRZU9GcXZTZG8/edit?usp=sharing

default configuration link: https://drive.google.com/file/d/0B_H-B1p4qGi6dUdqSmRQXzJleHM/edit?usp=sharing
quality configuration link: https://drive.google.com/file/d/0B_H-B1p4qGi6NjZVYWw1d19PRHc/edit?usp=sharing

Cheers,

Nicola.

==
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


2014-03-07 11:53 GMT+01:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com>:

Hi all,

I have set the quality factor to 0.1 inside the pull requests.

Cheers,

Nicola.

==
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


2014-03-07 11:11 GMT+01:00 Nicola Lagomarsini <nicola.lagomarsini@anonymised.com>:

Hi Andrea,

the quality parameter can be configured inside the application context for the PNGEncoder inside the gwc-wms and gs-gwc modules. By setting for example the quality parameter to 0.1 the image size is considerably reduced.

About the hints considerations I have used different hints for each configuration, so I think that this similarity between speed and default configuration could be associated to a similar hints behaviour.

Below are listed the hints for each configurations.

Speed:
KEY_COLOR_RENDERING = VALUE_COLOR_RENDER_SPEED;
KEY_ANTIALIASING = VALUE_ANTIALIAS_OFF;
KEY_FRACTIONALMETRICS = VALUE_FRACTIONALMETRICS_OFF;
KEY_ALPHA_INTERPOLATION = VALUE_ALPHA_INTERPOLATION_SPEED;
KEY_INTERPOLATION = VALUE_INTERPOLATION_NEAREST_NEIGHBOR;
KEY_RENDERING = VALUE_RENDER_SPEED;
KEY_TEXT_ANTIALIASING = VALUE_TEXT_ANTIALIAS_OFF;
KEY_STROKE_CONTROL = VALUE_STROKE_PURE;

Default:
KEY_COLOR_RENDERING = VALUE_COLOR_RENDER_DEFAULT;
KEY_ANTIALIASING = VALUE_ANTIALIAS_DEFAULT;
KEY_FRACTIONALMETRICS = VALUE_FRACTIONALMETRICS_DEFAULT;
KEY_ALPHA_INTERPOLATION =VALUE_ALPHA_INTERPOLATION_DEFAULT;
KEY_RENDERING = VALUE_RENDER_DEFAULT;
KEY_TEXT_ANTIALIASING = VALUE_TEXT_ANTIALIAS_DEFAULT;
KEY_STROKE_CONTROL = VALUE_STROKE_DEFAULT;

Quality:
KEY_COLOR_RENDERING = VALUE_COLOR_RENDER_QUALITY;
KEY_ANTIALIASING = VALUE_ANTIALIAS_ON;
KEY_FRACTIONALMETRICS = VALUE_FRACTIONALMETRICS_ON;
KEY_ALPHA_INTERPOLATION = VALUE_ALPHA_INTERPOLATION_QUALITY;
KEY_INTERPOLATION = VALUE_INTERPOLATION_BILINEAR;
KEY_RENDERING = VALUE_RENDER_QUALITY;
KEY_TEXT_ANTIALIASING = VALUE_TEXT_ANTIALIAS_ON;
KEY_STROKE_CONTROL = VALUE_STROKE_NORMALIZE;

Cheers,

Nicola.

==
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


2014-03-07 10:32 GMT+01:00 Andrea Aime <andrea.aime@anonymised.com>:

==

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


On Fri, Mar 7, 2014 at 10:28 AM, Nicola Lagomarsini <nicola.lagomarsini@anonymised.com> wrote:

Hi all,

I’m going to show some images for comparing the old wmsTileFuser class and its modified version, both in fullWMS mode enabled.

I made the fullWMS parameter configurable from the geowebcache.xml file by adding the TRUE(or FALSE) field.

I added the possibility for the user to change the image quality by setting an additional WMS parameter called hints. The user can choose one of the 3 following values: speed, default, quality.

The first image represents the result of a WMS request on a vectorial layer, in image/png format. The other 3 images represent the same WMS request with the new WMS parameter.

The second image value represents the result with the speed value which takes minor time without any care about the quality.
The third image (default value selected) provides a better image quality but requires more time than the speed configuration.
The last image with the quality value takes more time than the others but the final image has the best quality between the 4 images.

From the results, in fact, it is easy to note that the image created with the quality hints has a better quality than that returned by the old WMSTileFuser class.

I hope this could help to review the pull requests.

P.S. The images are too big to be sent by mail, I add the following links for download:

old wms request: https://drive.google.com/file/d/0B_H-B1p4qGi6VVgyVGJPYVV1c1hBMDMzakhPRTZlQTdzRFl3/edit?usp=sharing

new wms request with speed hints: https://drive.google.com/file/d/0B_H-B1p4qGi6MEhJR1NxTkV2Tnh0Y3Zza2JJdHNtY0RhZVN3/edit?usp=sharing
new wms request with default hints: https://drive.google.com/file/d/0B_H-B1p4qGi6bk5adnNYN2NjRUk/edit?usp=sharing
new wms request with quality hints: https://drive.google.com/file/d/0B_H-B1p4qGi6b1RTYktBSjBtYlpOdGdFS3NVWkVIb1Rzd3g4/edit?usp=sharing

Hi Nicola,
I’m looking at the outputs, and finding something strange. The quality one is definitely much better, for sure, however:

  • the new images are ~20 times larger than the oldwms one (from 34kb to 758KB), something is wrong with the png compression parameters I suppose
  • I cannot see any difference, visually, between oldwms, new with speed, and new with default

Cheers

Andrea

== Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information ==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it