Giter Site home page Giter Site logo

Comments (10)

maxim-zhao avatar maxim-zhao commented on June 12, 2024

Hmm, PR welcome :) I guess somewhere near https://github.com/maxim-zhao/bmp2tilecompressors/blob/master/benchmark/benchmark.py#L133, I am not a Pythonista so I don't know how to do it easily.

I think the fact that the points are so scattered means the mean+SD isn't very meaningful though.

The graph was inspired by the one at https://github.com/emmanuel-marty/lzsa but it seems impossible to distil my benchmarks into a single point.

from bmp2tilecompressors.

sverx avatar sverx commented on June 12, 2024

PR welcome :)

I feared that.

The mean (and the SD circle/ellipsis around it) would help identify strengths and weaknesses more easily. It's that distilled single point you wanted.

I don't know how to graph from Python but average and SD should not be too hard to calculate using some statistics package?

from bmp2tilecompressors.

maxim-zhao avatar maxim-zhao commented on June 12, 2024

Yeah, it's the interaction with matplotlib that gets me confused. Just getting it to not repeat colours was hard work.

A mean+SD might mean more if my corpus was larger. It's a matter of building up representative tilesets, which is extra tricky if I try to not use copyrighted material.

from bmp2tilecompressors.

sverx avatar sverx commented on June 12, 2024

I see you're already using copyrighted material (and I suspect it's fair use anyway). How many items do you think are needed to make a good corpus?

from bmp2tilecompressors.

maxim-zhao avatar maxim-zhao commented on June 12, 2024

It's hard to say. The giant spread you see on all the compressors suggest there's a lot of variation in performance and speed depending on the artwork.

Anyway, how about this?
image
I think it's a bit hard to deal with the overlapping ellipses, maybe I can push them to the bottom of the Z order but they still obscure each other a bit...

from bmp2tilecompressors.

maxim-zhao avatar maxim-zhao commented on June 12, 2024

I tried adding trendlines (quadratic best fit, but the X axis is a log scale):
image
I don't think it helps much, especially as some seem pretty non-linear...
This also has Z ordering such that the SD ellipses are at the bottom, then trendlines, then dots and "big dots" for means on the top.

from bmp2tilecompressors.

maxim-zhao avatar maxim-zhao commented on June 12, 2024

Solid ellipse lines instead of transparent fills, the PS Gaiden pink one is still hard to see:
image
Anyway, clearly the PS Gaiden fast compressor is the best option...

from bmp2tilecompressors.

sverx avatar sverx commented on June 12, 2024

Nice!!! 🤩

Probably the third one is the best one IMHO. I would just remove the average and the ellipses on those two (the uncompressed ones) that have zero SD, as it's useless there.

As for the PSGaiden fast, sometimes I wonder if I should try to improve it more, now that I have (or... should have) more experience with Z80 asm. Well, this is off-topic anyway.

from bmp2tilecompressors.

maxim-zhao avatar maxim-zhao commented on June 12, 2024

One final go with the trendlines as it turned out the above was linear best fit rather than quadratic (curvature was just due to the log scale):
image
I'm fairly convinced that trendlines mean nothing here so I'll remove them.

from bmp2tilecompressors.

sverx avatar sverx commented on June 12, 2024

Well, the trendlines aren't completely useless IMHO. They sort of describe how the decoding speed and the compression level relate to each other for each compression scheme. So for instance in some cases better compression brings faster decode times and in some other cases the opposite is true instead... and a few pretty weird cases in between.

from bmp2tilecompressors.

Related Issues (7)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.