More
See all Show me
47. Camera Vision test day 1
2 months ago
46. Battle
5 months ago
45. Corporate Ladder
6 months ago
43. corporate ladder 3d test
7 months ago
42. Nothing Happens
7 months ago
41. Human Powered Chatbot
7 months ago
40. Generation Loss
8 months ago
39. All Or Nothing timer
8 months ago
38. Binary Counter
8 months ago
34. High On Life
1 year ago
33. Writing Machine
1 year ago
32. Whats Your Pattern
1 year ago
31. Wall Ride
1 year ago
30. Walk the Line
1 year ago
29. Walk the Dog
1 year ago
28. Unseen Forces
1 year ago
27. Trees
1 year ago
26. The Train
1 year ago
25. Stunt no.3
1 year ago
24. Stormfront
1 year ago
23. Steamroller
1 year ago
22. Sidewalk
1 year ago
21. Segway
1 year ago
Open the last saved jpeg image
Save it as a new jpeg image with slightly more compression
Repeat 600 times

Code is here if you want:
hadto.net/category/sketchbook/generation-loss

Credits

243 Likes

  • Ariane Vee 7 months ago
    600 times all by hand?

    (stunning!)
  • Andrew Maiman 7 months ago
    I hope you scripted that and didn't manually do it 600 times :-)

    Nice video.
  • hadto plus 7 months ago
    not by hand unless you imagine that my computer has hands ;)
  • Ariane Vee 7 months ago
    hands of time, and stuff :)

    okay, then i'm becalmed. congrats for that idea and the scripting skillz.

    looks very van gogh-y.
  •  
  • Nick Seaver 7 months ago
    Would it do a similar thing if you just kept re-encoding at the same compression? (I guess by converting to a bitmap in between jpg encodings. Maybe I should try...)
  • hadto plus 7 months ago
    I was reading the Wikipedia entry on Generation loss:
    en.wikipedia.org/wiki/Generation_loss
    That article makes it seem that its not the compression level that matters but the change in compression level with every save that leads to maximum generation loss. So I tried to do the same thing with random a compression level chosen with each file save and it looks very different, it's certainly a better way to wreck a jpeg. I didn't like the way it looked as much and chose this instead.
  •  
  • Brian Moore 7 months ago
    hadto, great idea—I think I'm going to have to make a version of something like this, too (obviously with a big credit to your awesomeness).

    Question, though: are you increasing the compression during this, or are you just setting it at the same quality level (say, 50 or 60) and running it over and over?

    Just curious! Thanks for this awesome study!
  • hadto plus 7 months ago
    I'm saving it with slightly more compression each turn.
    compression = map(i, 0, 600, 1, 0)
    where
    i is the current iteration
    0 - 600 is the number of iterations
    and 1 - 0 is the compression of the jpeg 1 being no compression and 0 being maximum compression.
  • Brian Moore 7 months ago
    Got it. So basically, the compression is happening pretty close to exponentially, as you are tossing an already more-compressed version into an even higher compression rate.
  • hadto plus 7 months ago
    The increase of compression is linear because I'm just mapping the number of iterations inverse to the range of compression.
  •  
  • william herwig 7 months ago
    this is cool. i'm a painter who's been working with something very similar to this for the last year or so. check it out: williamherwig.com/2008.html
  • hadto plus 7 months ago
    wow! those are great. If I could paint I would do that instead.
  • photismo 7 months ago
    Hey, nice work! I am very curious about your metal pieces. I don't paint but those are very intriguing. Is that paint on metal or chemicals on metal to create tarnish / corrosion or both? What's the process?
  • william herwig 7 months ago
    thanks a lot. they're sheets of metal that i treated with chemicals, rinsed, treated, repeated. kind of hard to control what happens but that's what's nice about it i think.
  •  
  • superdraw plus 7 months ago
    nice job, but why stop at 600? it was just getting interesting!
  • hadto plus 7 months ago
    I know.
  • Alex Stanciu 7 months ago
    agreed. i want to see it go to 6000. We might glimpse god at some point
  • hadto plus 7 months ago
    Need to grasp Claude Shannon's 'A Mathematical Theory of Communication':
    plan9.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf
  •  
  • JIm Mason 7 months ago
    Wow, most impressive. Well dne!

    RT
    online-privacy.pro.tc
  •  
  • Roland Crosby 7 months ago
    Similarly, what happens when you save a PNG image 600 times: vimeo.com/3822911
  •  
  • Brad Miller 7 months ago
    wow, I'm switching to RAW after seeing this!
  •  
  • tamimat 7 months ago
    i like it too
  •  
  • Ryan K Adams plus 7 months ago
    a digital jj murphy print generation
  •  
  • Steven Wittens 7 months ago
    it would be more interesting to see what happens when you keep the same level of compression throughout the process: the repeated lossy compression will still cause quality degradation, even with a high quality setting.
  •  
  • Eduardo García 7 months ago
    Sorry to say it is really unuseful.

    When using "slightly more compressio" with
    compression = map(i, 0, 600, 1, 0)
    you are deliberately smashing the picture.

    Let me show you:

    As iterations go on, "i" grows until 600, and the returned value from map call decreases towards "0".

    So, as iterations go on, you are using a worse quality recompressing for an already an already degraded image. On the last step you save as quality 0 from an image wich has already been smashed out by previous low quality compresions.

    You are deliberately lossing quality on every step, but you are even loosing more quality on each step than in previous one. What did you spect to get from that process ?
  • hadto plus 7 months ago
    That is the idea
  •  
  • Martin Lindhe 7 months ago
    php:

    $file = 'chicago_hdr_west02_1280.jpg';
    $im = imagecreatefromjpeg($file);
    $i = 0;
    for ($q=100; $q>0; $q--) imagejpeg($im, "out_".(++$i).".jpg", $q);


    then to make a movie:
    ffmpeg -r 10 -b 180000 -i out_%d.jpg test.mp4
  •  
  • Mike Merrill plus 7 months ago
    Reminds me of this: rhizome.org/object.php?47761
  •  
  • Eduardo García 7 months ago
    Sorry to say then itis a crazy idea. Of course you are going to break the image if compresing at ZERO quality !

    I think most of people wide the internet mis-understood your point as being demostrating jpeg degradation effect when saving once and again, like
    Brad Miller did:
    "wow, I'm switching to RAW after seeing this!"
    Brad, you'd better use RAW, but not because of this test.

    Also, hadto, as far as you apply more compresión over already compressed images, you are exponentially degrading the image. Brian More was right.
  • hadto plus 7 months ago
    Open the last saved jpeg image
    Save it as a new jpeg image with slightly more compression
    Repeat 600 times

    that's all, this was not meant to teach people how to save a jpeg.

    compression level is linear regardless of wether the over all compression is exponential or not.
    map = linear
  •  
  • Roldan 7 months ago
    What you have here is the "photocopy of a photocopy of a photocopy..." effect compounded by using a different (cheaper) copying machine each time.

    The quality level parameter would indeed be linear if you applied it to the *original* image at each iteration, i.e. q_i = (1 - i/600). By applying it to the *previous* image, you have something else.

    Regardless, what people are really interested is in seeing the effect of saving a jpg repeatedly at a *fixed* quality level (say 0.8).

    Care to put together a small video on *that?*
  • hadto plus 7 months ago
    ok, here's your order:
    vimeo.com/3860779
    (BTW saved at 0.8)
  •  
  • Roldan 7 months ago
    Thanks for doing this! Nothing happened to image, huh? Are you sure you are performing the recompression each time? The effect should be greatly diminished, but you should start to see some tiny effects as the iterations increase. Perhaps 600 were not enough...
  •  
  • Carlo Mazza 7 months ago
    See the comments at reddit.com/r/technology/comments/86v2z/see_what_happen_when_saving_600_times_a_jpg_image
    From what I understand, the JPEG algorithm cuts some frequencies in the image, so once they are cut there is nothing else to do. In practice, it does stabilize after a few steps (there are some rounding effets possibly), check with the md5 scripts on that page.
  •  
  • Roldan 7 months ago
    After a little digging around, it has become clear that the steps in the JPEG algorithm reach a fixed point after the second and subsequent iterations. Most implementations are configured to recognize this situation and basically leave the image untouched.

    So, the new video is correct. "Nothing happens," indeed.

    Boring, isn't it? ;-)
  •  
  • Alexander Stewart 7 months ago
    Here's a short film I made in 2005 using the photocopy-of-a-photocopy idea. 4,600 copies, 12 copiers - lumeneclipse.com/gallery/26/stewart/
  • hadto plus 7 months ago
    that's great! outstanding work.
  •  
  • Jonathan Martin 6 months ago
    It's incredibly scary. Let's make .tifs !
  •  
  • Bernard Arce 2 months ago
    HI i love this stuff!!!!

    Here´s a video made with a code error provocated
    vimeo.com/5014465

    greetings!
  •  
This conversation is missing your voice. Take five seconds to join Vimeo or log in.

Advertisement

Statistics

  •  
    plays
    likes
    comments
  • Total
    plays 344K
    likes 243
    comments 39
  • Nov 7th
    plays 393
    likes 0
    comments 0
  • Nov 6th
    plays 614
    likes 0
    comments 0
  • Nov 5th
    plays 469
    likes 0
    comments 0
  • Nov 4th
    plays 534
    likes 1
    comments 0
  • Nov 3rd
    plays 849
    likes 0
    comments 0
  • Nov 2nd
    plays 1,017
    likes 0
    comments 0
  • Nov 1st
    plays 1,396
    likes 0
    comments 0
  • Oct 31st
    plays 2,537
    likes 0
    comments 0
Previous Week

Downloads

Please join Vimeo or log in to download the original file. It only takes a few seconds.