MattJ, blurhash calculated server-side or blurhash expected to be sent from the client?
zachhas left
zachhas joined
j.rhas joined
lovetoxhas joined
lskdjfhas joined
mathijshas left
mathijshas joined
pdurbinhas joined
Ge0rG
I'd say it should be part of the SIMS
winfriedhas left
winfriedhas joined
winfriedhas left
andrey.ghas left
winfriedhas joined
j.rhas left
matkorhas left
matkorhas joined
zachhas left
zachhas joined
pdurbinhas left
jubalhhas joined
j.rhas joined
emushas joined
adiaholichas left
moparisthebesthas left
moparisthebesthas joined
jubalhhas left
LNJhas joined
andrey.ghas joined
lskdjfhas left
lskdjfhas joined
adiaholichas joined
jabberjockehas left
zachhas left
zachhas joined
jubalhhas joined
jubalhhas left
adiaholichas left
adiaholichas joined
adiaholichas left
adiaholichas joined
!XSF_Martinhas left
!XSF_Martinhas joined
mukt2has joined
Shellhas left
zachhas left
zachhas joined
mukt2has left
chronosx88has joined
Shellhas joined
zachhas left
zachhas joined
pdurbinhas joined
Shellhas left
pdurbinhas left
Shellhas joined
zachhas left
zachhas joined
LNJhas left
wurstsalathas left
wurstsalathas joined
MattJ
jonas’: I think either works - there are some advantages to client-side (sender)
Ge0rG
MattJ: what's the benefit of blurhash over a small BoB preview?
MattJ
Sender controlled preview doesn't necessarily cover the NSFW case without extra work
Ge0rG
the only difference between blurhash and preview is the resolution, right?
MattJ
Kinda, kinda not
MattJ
You can get away with lower resolution blurhash because of the blurring
MattJ
Preview at the same resolution would be blocky
MattJ
Very
zachhas left
zachhas joined
Ge0rG
MattJ: most modern rendering algorithms will blur instead of blocking
MattJ
All blurhash algorithms blur, regardless of image type/etc.
Zash
All? There's more than one?
MattJ
Implementations
MattJ
Sorry, I have a baby in one hand and the other is multitasking between making lunch and typing
Ge0rG
MattJ: if we add a BoB into SIMS, we surely can demand it to be blurred up to the original image resolution ;)
Zash
And like a tiny very compressed jpeg image there
Zash
8x8 or smaller
MattJ
I really don't care if you want to spec the same effect a different way that works
MattJ
I am just trying to do stuff
MattJ
Currently that means I am not going to get everyone in a channel to upgrade their clients to one that sends a hash, but I have a bit of influence on the server sidr✎
MattJ
Currently that means I am not going to get everyone in a channel to upgrade their clients to one that sends a hash, but I have a bit of influence on the server side ✏
MattJ
Blurhash is well defined with multiple libraries available
Ge0rG
JPEG is well defined with multiple libraries available ;)
MattJ
If you can do better, I beg you to
Zash
Reviwe progessive JPEG! :)
jonas’
12:29:19 Ge0rG> MattJ: most modern rendering algorithms will blur instead of blocking
Quality of blurhash isn’t comparable to linearly interpolated pixels of a low-res previow
Ge0rG
Zash: awesome idea! make the preview image the first layer of the progressive jpeg, that way we can skip some bits on the actual transmission!
Ge0rG
jonas’: this is exactly what I want to learn - what's the difference?
jonas’
https://blurha.sh/
jonas’
look at it
jonas’
technically, I think they use spherical functions or something like that and save the coefficients for those
jonas’
but I haven’t gotten around to look into it in more detail yet
Zash
From when I read the spec it sounded like one block of JPEG
Ge0rG
converting an image into an 8x8 px JPEG is a standard feature of any platform that supports JPEG images. Converting into blurha.sh... not so much
Shellhas left
j.rhas left
j.rhas joined
LNJhas joined
zachhas left
zachhas joined
adiaholichas left
adiaholichas joined
debaclehas left
zachhas left
zachhas joined
zachhas left
zachhas joined
MattJ
The 4x3 JPEG file I made is 667 bytes compared to 28 bytes for the same image's blurhash
MattJ
and some things display it blocky, some do blur (but so far I haven't managed to find an image viewer that does blur and also allows unlimited zoom)
mukt2has joined
j.rhas left
Daniel
That's one of these moments where actually studying that stuff at university would have been helpful. Because I don't really understand what blurhash is doing
Daniel
Need to ask my university buddies at some point
mukt2has left
j.rhas joined
zachhas left
zachhas joined
edhelas
I really like the idea behind blurhash, would be pleased to use it in Movim :)
Chobbeshas joined
mukt2has joined
pdurbinhas joined
Ge0rG
again, what's the actual benefit over a significantly downscaled picture?
sonnyhas joined
adiaholichas left
adiaholichas joined
Zash
Presumably that the "hash" is smaller.
zachhas left
zachhas joined
pdurbinhas left
Daniel
No jpeg overhead?
Daniel
The decoding / upscalling is specified?
Ge0rG
the jpeg overhead needs to be offset by the additional library overhead, though ;)
Ge0rG
okay, https://github.com/woltapp/blurhash/blob/master/Kotlin/lib/src/main/java/com/wolt/blurhashkt/BlurHashDecoder.kt doesn't look like a huge overhead ;)
mukt2has left
Ge0rG
> We usually decode placeholders that are 32 or even 20 pixels wide, and then let the UI layer scale them up, which is indistinguishable from decoding them at full size.
Ge0rG
Heh.
mukt2has joined
Zash
Huh
zachhas left
zachhas joined
ajhas left
adiaholichas left
adiaholichas joined
davidhas joined
Chobbeshas left
Chobbeshas joined
zachhas left
zachhas joined
mukt2has left
j.rhas left
j.rhas joined
jmpmanhas joined
waqashas joined
waqashas left
waqashas joined
edhelashas left
edhelashas joined
adiaholichas left
adiaholichas joined
sonnyhas left
LNJhas left
sonnyhas joined
LNJhas joined
adiaholichas left
adiaholichas joined
zachhas left
zachhas joined
j.rhas left
j.rhas joined
edhelashas left
j.rhas left
j.rhas joined
edhelashas joined
edhelas
could be really nice to also use it for the avatars :)
zachhas left
zachhas joined
LNJhas left
LNJhas joined
Yagizahas joined
Yagizahas left
Yagizahas joined
jmpmanhas left
j.rhas left
zachhas left
zachhas joined
j.rhas joined
jmpmanhas joined
adiaholichas left
debaclehas joined
zachhas left
zachhas joined
adiaholichas joined
goffihas joined
adiaholichas left
mukt2has joined
andyhas left
zachhas left
zachhas joined
andyhas joined
jmpmanhas left
xalekhas joined
mukt2has left
zachhas left
zachhas joined
edhelashas left
neshtaxmpphas left
neshtaxmpphas joined
edhelashas joined
neshtaxmpphas left
neshtaxmpphas joined
mukt2has joined
emushas left
emushas joined
neshtaxmpphas left
neshtaxmpphas joined
neshtaxmpphas left
zachhas left
zachhas joined
mukt2has left
mukt2has joined
lorddavidiiihas left
lorddavidiiihas joined
neshtaxmpphas joined
neshtaxmpphas left
neshtaxmpphas joined
adiaholichas joined
karoshihas left
mathijshas left
mathijshas joined
moparisthebesthas left
moparisthebesthas joined
zachhas left
zachhas joined
Chobbeshas left
Douglas Terabytehas left
mukt2has left
adiaholichas left
adiaholichas joined
mukt2has joined
chronosx88has left
adiaholichas left
chronosx88has joined
neshtaxmpphas left
neshtaxmpphas joined
zachhas left
zachhas joined
neshtaxmpphas left
neshtaxmpphas joined
debaclehas left
Douglas Terabytehas joined
andyhas left
andyhas joined
pdurbinhas joined
lskdjfhas left
lskdjfhas joined
larmahas left
larmahas joined
zachhas left
zachhas joined
pdurbinhas left
mukt2has left
mukt2has joined
karoshihas joined
Yagizahas left
sonnyhas left
xalekhas left
lskdjfhas left
lskdjfhas joined
zachhas left
zachhas joined
jubalhhas joined
jubalhhas left
mukt2has left
mukt2has joined
mathijshas left
mathijshas joined
mathijshas left
jubalhhas joined
mathijshas joined
zachhas left
zachhas joined
!XSF_Martinhas left
!XSF_Martinhas joined
eevvoorhas joined
jubalhhas left
zachhas left
zachhas joined
jonas’
I’d question the "shell-safe" base83 encoding though. the character set contains $ and * and # and { and } and [ and ]
jonas’
not that it matters much
jonas’
Daniel, they essentially do what jpeg does
jonas’
I’m not quite sure why the rendering is that much better though
jonas’
maybe because they have more bits for the few pixels
Zash
Because it's done in JavaScript of course
Shellhas joined
jonas’
ah, probably because what jpeg would normally expand to just 8x8 pixels, they expand to more pixels, and they don’t do that linearly, but they evaluate the cosine functions the DCT gave
jonas’
that’s why it’s smoother than upscaling a 8x8 jpeg
zachhas left
zachhas joined
chronosx88has left
mathijshas left
mathijshas joined
chronosx88has joined
zachhas left
zachhas joined
pdurbinhas joined
jabberjockehas joined
Syndacehas left
pdurbinhas left
Syndacehas joined
Shellhas left
derdanielhas joined
lovetoxhas left
mukt2has left
Nekithas joined
lovetoxhas joined
mukt2has joined
lovetox
what i dont get
lovetox
ok there are librarys who let me get the hash from a picture
lovetox
but i dont see one that let me get a picture from the hash
jonas’
note, blurhash is a misnomer
jonas’
it’s not a cryptographic one-way hash function
alameyohas left
jonas’
lovetox, https://github.com/halcy/blurhash-python here is an encoder and decoder thing