> so playback is entirely dependent on network delay
Ultimately true, but I set up my server to send each "frame" separately, with a fixed delay between each. Each frame is small so unless your network is unusually slow, the timing is set by my server.
show comments
robbak
That is 1. Cursed, and 2. Definitely in the right place here.
show comments
tda
I wonder if and how you can use this for steganography, hiding data in plain sight. I bet most automated image analysis programs would only consider the final image. I sure some highschooler can use this to bypass their schools contentfilter
show comments
pavlov
> “Besides unconventional rickrolls and other trolling, this has no practical applications: there's no way to add timing information, so playback is entirely dependent on network delay.”
A progress bar for something that’s loading in parallel over the same network, to give the user an idea of how much the delay is?
show comments
cousin_it
Nice! I think you can approximate timing somewhat, by making your web server create the "jpeg" on the fly and send it to the client in timed chunks. The source could even be a webcam, so the "jpeg" would go on forever.
show comments
est
> so playback is entirely dependent on network delay
You can use Service Worker to emulate a slow connection :)
snailmailman
Weird that it’s inconsistent
Works fine for me in desktop Firefox. But on mobile iOS the “whole video within a jpeg” is 3 frames, all of which are nearly entirely solid color brown->orange->red with a vague cat silhouette. The color changes each frame, so you can tell it’s “working” but it’s certainly not what I’d call a video.
I was surprised when I pulled it up on my desktop and it did actually play like a video. Wonder if it’s causing some weird iOS image decoding glitch/edge case.
Yokohiii
Adjacent advice:
I've recently played with opengl and jpeg turbo and I wanted to display images fast. I don't remember exact numbers, but enabling progressive for a jpeg was a significant slowdown for decoding.
So if anyone like me is stuck with the old school advice that progressive is an nice to have, it's likely not. I personally don't remember any visual progressive image buildup in like decades, so it's not doing anything valuable at all.
show comments
schobi
I tried to think about difficult ways to compute the high frequency coefficients to work from the "wrong" coefficients of the first image...
But this is clever - just smash them together. Low frequency of one image concatenated with high frequency from another. This works surprisingly well!
smath
Is it possible to acquire lower frequency components with a camera too?
This also reminded me of MRI where low frequency is acquired first in a space called k-space
xnx
Excellent hack! Should definitely be possible to make an animated gif to jpeg converter. I guess the animation could be slowed a little by repeating frames.
show comments
remix2000
Wow, Firefox never fully loads the page, while WebKit fails to load it altogether, instead it displays "Operation was cancelled" in system font after a short freeze. I didn't manage to see the images change in any way as the post would suggest though, which left me confused.
tensegrist
oh i thought this was going to be a jpeg that loaded the highest-frequency data first and added the lower frequency data later
Grimblewald
insanity of content aside, that's a really nice website. Kudos.
Jabdoa2
Now you just have to mod your webserver to send the image chunk by chunk (with waits in-between). That way network latency does not matter. Also it probably reduces artefacts as bytes from one frame most likely are received in one network packet.
Obviously the demonstrations that rely on server-side timing don't work through archive.org.
vanderZwan
I wonder if you can do this in JPEG-XL. I know that that has actual animation support, but this would be a different thing.
show comments
akoboldfrying
I love the first JPEG where the final image is... a different picture of the cat. "The first images you see are just approximations to the final, exact version." Audience's heads nod in understanding
korbatz
If the online porn industry hasn't used it, it's probably worthless. Still funny, though.
einpoklum
I like how that website has not just a "Dark" and "Light" mode, but also a monochromatic "TTY" mode.
fitsumbelay
my kinda hackin'
so much creative potential ...
LoganDark
Safari just freezes in place until the image is entirely finished downloading.
show comments
ingen0s
Your website is inspiring
solodynamo
hmm interesting
fractorial
Now, stuff like _this_ is why I keep coming back to HN.
I did something very similar with progressive (adam7 interlaced) PNG: https://www.da.vidbuchanan.co.uk/adamation/image.png
> so playback is entirely dependent on network delay
Ultimately true, but I set up my server to send each "frame" separately, with a fixed delay between each. Each frame is small so unless your network is unusually slow, the timing is set by my server.
That is 1. Cursed, and 2. Definitely in the right place here.
I wonder if and how you can use this for steganography, hiding data in plain sight. I bet most automated image analysis programs would only consider the final image. I sure some highschooler can use this to bypass their schools contentfilter
> “Besides unconventional rickrolls and other trolling, this has no practical applications: there's no way to add timing information, so playback is entirely dependent on network delay.”
A progress bar for something that’s loading in parallel over the same network, to give the user an idea of how much the delay is?
Nice! I think you can approximate timing somewhat, by making your web server create the "jpeg" on the fly and send it to the client in timed chunks. The source could even be a webcam, so the "jpeg" would go on forever.
> so playback is entirely dependent on network delay
You can use Service Worker to emulate a slow connection :)
Weird that it’s inconsistent
Works fine for me in desktop Firefox. But on mobile iOS the “whole video within a jpeg” is 3 frames, all of which are nearly entirely solid color brown->orange->red with a vague cat silhouette. The color changes each frame, so you can tell it’s “working” but it’s certainly not what I’d call a video.
I was surprised when I pulled it up on my desktop and it did actually play like a video. Wonder if it’s causing some weird iOS image decoding glitch/edge case.
Adjacent advice: I've recently played with opengl and jpeg turbo and I wanted to display images fast. I don't remember exact numbers, but enabling progressive for a jpeg was a significant slowdown for decoding. So if anyone like me is stuck with the old school advice that progressive is an nice to have, it's likely not. I personally don't remember any visual progressive image buildup in like decades, so it's not doing anything valuable at all.
I tried to think about difficult ways to compute the high frequency coefficients to work from the "wrong" coefficients of the first image...
But this is clever - just smash them together. Low frequency of one image concatenated with high frequency from another. This works surprisingly well!
Is it possible to acquire lower frequency components with a camera too?
This also reminded me of MRI where low frequency is acquired first in a space called k-space
Excellent hack! Should definitely be possible to make an animated gif to jpeg converter. I guess the animation could be slowed a little by repeating frames.
Wow, Firefox never fully loads the page, while WebKit fails to load it altogether, instead it displays "Operation was cancelled" in system font after a short freeze. I didn't manage to see the images change in any way as the post would suggest though, which left me confused.
oh i thought this was going to be a jpeg that loaded the highest-frequency data first and added the lower frequency data later
insanity of content aside, that's a really nice website. Kudos.
Now you just have to mod your webserver to send the image chunk by chunk (with waits in-between). That way network latency does not matter. Also it probably reduces artefacts as bytes from one frame most likely are received in one network packet.
This website appears to be maliciously using IP address blocking. Here is a less-censored link: https://web.archive.org/web/20260718065449/https://maurycyz....
Obviously the demonstrations that rely on server-side timing don't work through archive.org.
I wonder if you can do this in JPEG-XL. I know that that has actual animation support, but this would be a different thing.
I love the first JPEG where the final image is... a different picture of the cat. "The first images you see are just approximations to the final, exact version." Audience's heads nod in understanding
If the online porn industry hasn't used it, it's probably worthless. Still funny, though.
I like how that website has not just a "Dark" and "Light" mode, but also a monochromatic "TTY" mode.
my kinda hackin' so much creative potential ...
Safari just freezes in place until the image is entirely finished downloading.
Your website is inspiring
hmm interesting
Now, stuff like _this_ is why I keep coming back to HN.
Here is another cat https://idiod.video/njz0kx.mp4
My jaw dropped. Very cool. Thanks for sharing.
Thanks for sharing