HN user

ruarai

227 karma
Posts6
Comments11
View on HN
Signs of the Times 7 years ago

This article read a little annoying. I don't know why this PhD holder failed to find the actual paper describing the algorithm: https://www.cv-foundation.org/openaccess/content_cvpr_2016/p...

The author is making it sound like the work is just p-hacking when it's /very clearly/ not.

This single paragraph in the Method section explains it best:

"Reconstructing an image using bispectrum measurements is an ill-posed problem, and as such there are an infinite number of possible images that explain the data [28]. The challenge is to find an explanation that respects our prior assumptions about the “visual” universe while still satisfying the observed data."

This is literally all of physics! You can say that Newtonian physics is 'just curve fitting' just the same.

I don't know enough about the philosophy of science to make a further argument here but clearly the author does not either.

This is an area that needs work, but basically there's the table of 'edge intensity' that gets multiplied by a constant baseChance variable for every pixel.

baseChance = 8 * samples / (width * height)

samples is the desired number of samples.

Again, this needs work. I'm pretty sure there's a way I can more accurately match the number of output samples to the desired number of samples.

Edit: And no, it can't produce a response if there's no edge (a value of zero). However, there's always some level of noise. This is true of the example you've shown - there's very light noise visible.

Wow, that works pretty well. I was mistaken in thinking that either the Dictionary class or the process of sampling would sort them.

Mind if I merge that? Or you could submit a pull request. Either would be great!

Also, do you know of any resources for learning about how to optimise for gzip compression? Google is just telling me about compression for websites.

I tried your struct-of-array idea, and that's produced an okay improvement ~1%.

Sorting them seems tough as the index of each value must match for each channel, so any sorting would have to occur beforehand. Except that is already sorted by x-y values, and my attempts otherwise have failed to produce results.

It's not very comparable to PNG, since they're designed for different types of imagery. I know currently Trigrad cannot handle text at all. In regards to your other comment, it's currently definitely worse than JPEG for vector imagery.

However, it handles gradients amazingly. A full colour gradient such as [0] can be made a tenth of the size since only ~500 samples are really needed.

[0] http://i.imgur.com/QzW0z2O.png