7 ms·
Go, Colourspace, and All the RGB Colours in One Image
- voidlogic 12y agoI'm curious how much of the authors Go speedup was Go's typically faster single threaded execution or if it was from using Go's easy multi-threading primitives. Of course I imagine it was some ratio of both, but I'm curious about it.
- infimum 12y agoI recently had a similar project [0] and wrote the first version in Java. In some cases it took almost an hour to render a simple 6 bit per color channel image. After that I rewrote it in Go and got it down to ~120s. I think this is mainly due to the fact that the Java version lays way to heavy on OO and does a lot of dynamic memory stuff and the rewritten Go version uses simply 2 (or 3) large arrays. I think in our case it wasn't a raw performance thing but rather the fact that go's proximity to C made us code smarter (= [0]https://github.com/31415us/olga https://github.com/31415us/olga basically a straight up copy/reimplementation of joco's [1] response to [2] [1]http://joco.name/2014/03/02/all-rgb-colors-in-one-image/ http://joco.name/2014/03/02/all-rgb-colors-in-one-image/ [2]http://codegolf.stackexchange.com/questions/22144/images-with-all-colors http://codegolf.stackexchange.com/questions/22144/images-wit...
- voidlogic 12y agoThat is true, while it often using more memory the same code in Java is usually faster than the same code in Go. The thing is- as you aptly pointed out, the idiomatic Go solution is not the same code and is often lighter and faster.
- drivingmenuts 12y agoUm, Jaypeg? Did I miss a terminology change somewhere? Is the author being ironic? That's going to right beside "solider", "bro" and "rouge" as words that make me cringe when I see them.
- Kapura 12y agoListen, it's really simple. You've got your Jaypegs, which are lossy but small file size. Then you've got your Pings, which are lossless but really large. But you also have Jiffs, which can be animated.
- JetSpiegel 12y agoDon't forget the Targets, and the Tiffs
- Mandatum 12y agoAnd the Bimps and Pisds.. (I can't do PDF.)
- JetSpiegel 12y agoThe Eggses. The Bats. The shhhhhs.
- sp332 12y agoPadoof.
- anon4 12y agoThat's a paedofile, Shirley. Don't get too close.
- drivingmenuts 12y agoohgod. please. stop. you're hurting ... technology.
- deleted 12y ago[deleted]
- AYBABTME 12y agoWhat's wrong with 'rouge'?
- alecrn 12y ago[1] is a similar project someone else did, where he used a space-filling curve (Hilbert's curve, specifically) to plot all the RGB colors in one image, and have nearby colors be similar. [1] http://corte.si/%2Fposts/code/hilbert/portrait/index.html http://corte.si/%2Fposts/code/hilbert/portrait/index.html
- slagfart 12y agoI'm more amazed that this kid is unemployed! Someone who can code, with a college degree, possessing communications skills and some initiative, sitting around bored. 'Murica.
- sp332 12y agoUnemployment is quite high. Chances are, he would have to compete for any position with people who are more experienced.
- morgante 12y agoSeriously. I'd be very interested in offering him a job.
- yzzxy 12y agoWell, college has only been out for at most a month. He's probably in a transition phase or still doing the interview process. It's also possible he's not a coder by trade.
- Kapura 12y agoWell, it's not so surprising. I don't live in a tech hub (yet), I have relatively little professional dev experience, almost no side projects, and my resume didn't wasn't very professional looking until relatively recently. Not that I'm complaining; I've been wanting to take on this project since I saw Joco's original posting.
- timestretch 12y agoWhew! Took about 12 minutes on my 2010 MacBook Pro
- Kapura 12y agoHey all, I've gone ahead and updated the targeting algorithm to reduce the darkness bias described in the article. It has been updated to reflect this, with before and after pictures.
- mkesper 12y agoLooks so much nicer than plain RGB cube. I wonder though whether NumPy wouldn't have been a possible alternative.
- dmd 12y agoThere's an entire community dedicated to this: http://www.allrgb.com http://www.allrgb.com Unless I missed the reference to that somewhere in the post?
- phaedrus 12y agoHave you thought of inverting the function? It's a one-to-one mapping, so it should be invertible. Use the same algorithm, but pick a place in R,G,B space as the seed location and search in concentric circles (instead of spheres/shells) in the X,Y space.
- Kapura 12y agoI'm not certain what you're trying to say. When you talk about "the function," I'm assuming you're referring to the nearest unused colour function, which, while it is a one-to-one mapping is also a) a function from colour 3space to colour 3space (input is a targeted RGB point, output is a valid, unused RGB point) and b) it is also dependent on the state of the colour space i.e. the function is of the form (r0, g0, b0, colourspace) -> (r, g, b) + the colour space is modified to indicate that (r, g, b) has been used. All of the dealings with the X, Y space (the image) are separate from the colour searching algorithm. There is a function to approximate the target colour of an unfilled pixel in X, Y by averaging the values of its neighbours, but that value is then used as input to the above-described search function. I could simply be misunderstanding what you're trying to say.
- fogleman 12y agoAll RGB photos: https://github.com/fogleman/AllRGB https://github.com/fogleman/AllRGB