I would love to see a native ssim/dssim implementation in PHP…

On Fri, Jun 17, 2016 at 6:54 AM, Pierre Joye <pierre....@gmail.com> wrote:

> Hi
> On Jun 17, 2016 8:18 PM, "Christoph Becker" <cmbecke...@gmx.de> wrote:
> >
> > Hi!
> >
> > I like to suggest to improve the current test suite of the gd extension.
> > The main issue I see with the current suite is that many (~ 28) tests
> > use md5() to verify that a drawn image is correct.  However, as Pierre
> > mentioned long ago[1], md5() does not work (reliably) for this purpose.
> >
> > An alternative would be to have prepared images, and to compare these
> > with the actual resulting images pixel by pixel.  While that might work
> > fine for lossless compression, it still can result in failing tests,
> > which would be hard to track down, and obviously a pure PHP
> > implementation is slow.
> >
> > Especially, when it comes to verify lossy image compression a more
> > sophisticated approach is required.  Due to the necessity to test
> > imagewebp() I had committed a very simplistic calc_image_dissimilarity()
> > a while ago[2].  Obviously, this should be improved either regarding the
> > algorithm as well as the performance.
> >
> > libgd already has a much better testing library written in C[3], which
> > generates image diffs for failing tests, and we may consider to use
> > parts of it for PHP.  I can't see any issues regarding the license.
> >
> > Thoughts?
>
> The current testing code is under new bsd, so there is no license issue
> here.
>
> I plan to improve the current code to be more useful as well as adding
> perceptual diff. My initial idea was to use pdiff. It is under gpl but as
> it uses only for the tests suite it is ok. Sadly not for php. Alternatively
> the cmd pdiff can be used but it is then slower.
>
> In any case we can expose the image diff functions in ext/gd but it will
> need some work on the results to be useful in the wild.
>
> It should also be easy to write a script to port test from c to/from  php
> to complete both side testing.
>
> Thanks for bringing that up :)
>
> Cheers
> Pierre
>

Reply via email to