Jump to content

Making every picture in the world


ToukieToucan

Recommended Posts

So a friend and I have seen a video from vsauce

where he explains something about a website called "library of babel" where every possible combination of letters, periods and commas are used within 3200 characters. Now we thought, what if we could do the same with pictures, instead of letters uses pixels.

We have about 2 years to solve and some help might be nice since we dont really know where to start.

my general idea is somethibg like this:

use a random pixel generator

add a algorithm

???

Link to comment
Share on other sites

Yeah, we talked about that a few days ago here: http://forum.kerbalspaceprogram.com/threads/135154-Everything-Ever-Written

There is one user who wanted to do what you said:

Haha, a while back I wanted to do something similar with the pixels on a computer screen. With reduced resolution and color count, it is possible to systematically display every single possible combination of pixels on the screen... in a lifetime.

Think about it.... Though the would mostly be random garbage on screen at some point there would be a picture of:

Earth from space.

A cartoon of you eating a tire.

A picture of your mother holding a burning ketchup bottle.

A blueprint for an undiscovered technology.

Consider that text can be part of a picture....

The text of any national anthem, past current or future.

Lyric to an unwritten song.

A correct (and incorrect) text explaining about how the last human dies.

etc.... every picture you can think of... yea you prb get the idea.

Link to comment
Share on other sites

You don't want a random generator, you want the pictures to be generated according to an algorithm.

You need to decide on the resolution and color depth.

For the number of possible combinations, the resolution is not a significant factor, but it skyrockets with the increase in color depth.

A modest VGA resolution of 640x480 rendered at very modest 8-bit color depth of 256 different colors will give you a whooping 6x10^1404 combinations.

If you dare to increase the color depth to "true color" 24 bit, you're already in the ballpark of 1x10^10^7.

HDMI specifications allow for up to 48 bits, or 1x10^10^15.

That's all nice and theoretically doable, but before you decide on that, I'll ask you one question.

How do you plan on browsing/searching the pictures?

It's easy with text, pictures are quite different.

Link to comment
Share on other sites

You can start with shapes. I mean, well, Google image search is an example of these things in work. It tries to associate the values in an image then finding something similar. Maybe we can test it with a black-white 640*640 px image - then trying to search for a set of shapes supposedly giving close enough real-life image recreation. A tree maybe can be simplified to a rectangle and two ellipse. A face can be a set of ellipses. Earth is picky, but having Australia in the image is easy (just ellipse over a circle). And so on. But the hard part is that you actually needs to store all the possible images first.

Link to comment
Share on other sites

You don't want a random generator, you want the pictures to be generated according to an algorithm.

You need to decide on the resolution and color depth.

For the number of possible combinations, the resolution is not a significant factor, but it skyrockets with the increase in color depth.

A modest VGA resolution of 640x480 rendered at very modest 8-bit color depth of 256 different colors will give you a whooping 6x10^1404 combinations.

If you dare to increase the color depth to "true color" 24 bit, you're already in the ballpark of 1x10^10^7.

HDMI specifications allow for up to 48 bits, or 1x10^10^15.

That's all nice and theoretically doable, but before you decide on that, I'll ask you one question.

How do you plan on browsing/searching the pictures?

It's easy with text, pictures are quite different.

I was planning to put all the possible pictures next to each other so they form a square and that square is divived in 4 invisible square which you can click on to render the pictures, then there are again 4 squares and so on.

About searching, we where planning to have a box where you can add your picture and it could compare it to all the pictures (surely theres a faster way but this is just an idea) and then it could tell its location (1,2,1,4,3,2,1,4,3,2,1,3,4,3,1,2) now that is far from being zoomed in all the way but all the small pictures could make a bigger picture (maybe).

ill make a sketch soon.

Also this is an 'honors' project so we can take 2 years and ask people who know a lot about algorithms and some good coders.

- - - Updated - - -

28v7nkh.jpg

this is how you'd browse it:

4 invisible sections, each section has 4 section which has 4 sections etc etc.

@YNM if you have a good algorithm each time the outcome will be the same so you'll only have to render 2 layers beneath the current layer to make it look smooth.

All tips are welcome.

Link to comment
Share on other sites

About searching, we where planning to have a box where you can add your picture and it could compare it to all the pictures (surely theres a faster way but this is just an idea)

You better find a faster way, because comparing it to all possible pictures will take a while (vastly understated and on cosmological timescale).

Your algorithm has to be reversible, meaning you have to be able to generate a picture from the address (your four sections) and in reverse be able to produce the address from that picture.

Your 4 sections per image will require many, many layers to be clicked through to get to the final image, around 6x10^351 of them (at 256 colors per pixel).

Just writing down that address in the form of ((1,2,1,4,3,2,1,4,3,2,1,3,4,3,1,2)....) is impossible.

Link to comment
Share on other sites

You better find a faster way, because comparing it to all possible pictures will take a while (vastly understated and on cosmological timescale).

Your algorithm has to be reversible, meaning you have to be able to generate a picture from the address (your four sections) and in reverse be able to produce the address from that picture.

Your 4 sections per image will require many, many layers to be clicked through to get to the final image, around 6x10^351 of them (at 256 colors per pixel).

Just writing down that address in the form of ((1,2,1,4,3,2,1,4,3,2,1,3,4,3,1,2)....) is impossible.

Hmmm how about using coordination like (2958214, 4738582938) perhaps each picture could be one x and one y. This would be easier to look for pictures if you know where to look at least... knowing where to look would be the challenge for navigation.

Or split every section up in 100(0) pieces instead of 4 (still a lot of layers needed but less than 4.)

Edited by ToukieToucan
Link to comment
Share on other sites

Ah yes, your quadtree coding idea is easy to do (at a high level, dont know about implementation):

1. Take picture

2. Interpret as bits

3. Split in half in some way (so theres two sets of bits)

4. Interpret the halves as big integer x,y coordinates.

5. This is unique location of image in that rectangle of yours.

The sequence of choices to find the image is trivially computable from the integer x,y coordinates. (first step is given by first bit of x and y coords, second step given by second bit, and so on)

I assume you want the images to get "closer and closer" as you go deeper. Not sure how to do this, but I would begin by optimally choosing how to order the bits of the image when interpreting it as x,y integer coords. (you want the most significant bits to have most effect on the image - perhaps the image should be encoded as fourier transform, or maybe something like gray code where one bit at a time it goes toward the target, idk)

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...