XSF Discussion - 2019-10-27

  1. mukt2 has joined

  2. karoshi has left

  3. pdurbin has left

  4. andy has left

  5. lskdjf has left

  6. zach has left

  7. zach has joined

  8. mukt2 has left

  9. Daniel has joined

  10. arc has left

  11. arc has joined

  12. !XSF_Martin has left

  13. !XSF_Martin has joined

  14. zach has left

  15. zach has joined

  16. j.r has left

  17. j.r has joined

  18. andrey.g has joined

  19. aj has joined

  20. zach has left

  21. zach has joined

  22. winfried has left

  23. winfried has joined

  24. winfried has left

  25. winfried has joined

  26. j.r has left

  27. j.r has joined

  28. mukt2 has joined

  29. debacle has left

  30. Douglas Terabyte has joined

  31. j.r has left

  32. j.r has joined

  33. zach has left

  34. zach has joined

  35. aj has left

  36. pdurbin has joined

  37. moparisthebest has left

  38. moparisthebest has joined

  39. mukt2 has left

  40. alameyo has left

  41. alameyo has joined

  42. zach has left

  43. zach has joined

  44. adiaholic has left

  45. Zash has left

  46. !XSF_Martin has left

  47. !XSF_Martin has joined

  48. neshtaxmpp has left

  49. neshtaxmpp has joined

  50. zach has left

  51. zach has joined

  52. mukt2 has joined

  53. mukt2 has left

  54. pdurbin has left

  55. adiaholic has joined

  56. matlag has joined

  57. adiaholic has left

  58. adiaholic has joined

  59. aj has joined

  60. lorddavidiii has joined

  61. zach has left

  62. zach has joined

  63. adiaholic has left

  64. zach has left

  65. zach has joined

  66. david has left

  67. !XSF_Martin has left

  68. adiaholic has joined

  69. Douglas Terabyte has left

  70. Douglas Terabyte has joined

  71. david has joined

  72. adiaholic has left

  73. !XSF_Martin has joined

  74. adiaholic has joined

  75. aj has left

  76. mukt2 has joined

  77. zach has left

  78. zach has joined

  79. lorddavidiii has left

  80. lorddavidiii has joined

  81. Nekit has joined

  82. mukt2 has left

  83. adiaholic has left

  84. adiaholic has joined

  85. xalek has left

  86. Mikaela has joined

  87. david has left

  88. pdurbin has joined

  89. moparisthebest has left

  90. moparisthebest has joined

  91. Mikaela has left

  92. Mikaela has joined

  93. arc has left

  94. arc has joined

  95. zach has left

  96. zach has joined

  97. pdurbin has left

  98. adiaholic has left

  99. andy has joined

  100. waqas has joined

  101. !XSF_Martin has left

  102. !XSF_Martin has joined

  103. arc has left

  104. arc has joined

  105. karoshi has joined

  106. zach has left

  107. zach has joined

  108. adiaholic has joined

  109. zach has left

  110. zach has joined

  111. Tobias has joined

  112. mukt2 has joined

  113. !XSF_Martin has left

  114. mukt2 has left

  115. !XSF_Martin has joined

  116. jmpman has joined

  117. waqas has left

  118. adiaholic has left

  119. krauq has left

  120. adiaholic has joined

  121. Shell has left

  122. Shell has joined

  123. krauq has joined

  124. zach has left

  125. zach has joined

  126. wurstsalat has left

  127. lorddavidiii has left

  128. pdurbin has joined

  129. lorddavidiii has joined

  130. adiaholic has left

  131. adiaholic has joined

  132. zach has left

  133. Nekit has left

  134. zach has joined

  135. j.r has left

  136. j.r has joined

  137. pdurbin has left

  138. adiaholic has left

  139. adiaholic has joined

  140. adiaholic has left

  141. adiaholic has joined

  142. jmpman has left

  143. j.r has left

  144. j.r has joined

  145. zach has left

  146. zach has joined

  147. aj has joined

  148. debacle has joined

  149. wurstsalat has joined

  150. mukt2 has joined

  151. zach has left

  152. zach has joined

  153. j.r has left

  154. mukt2 has left

  155. Zash has joined

  156. jonas’

    MattJ, blurhash calculated server-side or blurhash expected to be sent from the client?

  157. zach has left

  158. zach has joined

  159. j.r has joined

  160. lovetox has joined

  161. lskdjf has joined

  162. mathijs has left

  163. mathijs has joined

  164. pdurbin has joined

  165. Ge0rG

    I'd say it should be part of the SIMS

  166. winfried has left

  167. winfried has joined

  168. winfried has left

  169. andrey.g has left

  170. winfried has joined

  171. j.r has left

  172. matkor has left

  173. matkor has joined

  174. zach has left

  175. zach has joined

  176. pdurbin has left

  177. jubalh has joined

  178. j.r has joined

  179. emus has joined

  180. adiaholic has left

  181. moparisthebest has left

  182. moparisthebest has joined

  183. jubalh has left

  184. LNJ has joined

  185. andrey.g has joined

  186. lskdjf has left

  187. lskdjf has joined

  188. adiaholic has joined

  189. jabberjocke has left

  190. zach has left

  191. zach has joined

  192. jubalh has joined

  193. jubalh has left

  194. adiaholic has left

  195. adiaholic has joined

  196. adiaholic has left

  197. adiaholic has joined

  198. !XSF_Martin has left

  199. !XSF_Martin has joined

  200. mukt2 has joined

  201. Shell has left

  202. zach has left

  203. zach has joined

  204. mukt2 has left

  205. chronosx88 has joined

  206. Shell has joined

  207. zach has left

  208. zach has joined

  209. pdurbin has joined

  210. Shell has left

  211. pdurbin has left

  212. Shell has joined

  213. zach has left

  214. zach has joined

  215. LNJ has left

  216. wurstsalat has left

  217. wurstsalat has joined

  218. MattJ

    jonas’: I think either works - there are some advantages to client-side (sender)

  219. Ge0rG

    MattJ: what's the benefit of blurhash over a small BoB preview?

  220. MattJ

    Sender controlled preview doesn't necessarily cover the NSFW case without extra work

  221. Ge0rG

    the only difference between blurhash and preview is the resolution, right?

  222. MattJ

    Kinda, kinda not

  223. MattJ

    You can get away with lower resolution blurhash because of the blurring

  224. MattJ

    Preview at the same resolution would be blocky

  225. MattJ


  226. zach has left

  227. zach has joined

  228. Ge0rG

    MattJ: most modern rendering algorithms will blur instead of blocking

  229. MattJ

    All blurhash algorithms blur, regardless of image type/etc.

  230. Zash

    All? There's more than one?

  231. MattJ


  232. MattJ

    Sorry, I have a baby in one hand and the other is multitasking between making lunch and typing

  233. Ge0rG

    MattJ: if we add a BoB into SIMS, we surely can demand it to be blurred up to the original image resolution ;)

  234. Zash

    And like a tiny very compressed jpeg image there

  235. Zash

    8x8 or smaller

  236. MattJ

    I really don't care if you want to spec the same effect a different way that works

  237. MattJ

    I am just trying to do stuff

  238. 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

  239. 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

  240. MattJ

    Blurhash is well defined with multiple libraries available

  241. Ge0rG

    JPEG is well defined with multiple libraries available ;)

  242. MattJ

    If you can do better, I beg you to

  243. Zash

    Reviwe progessive JPEG! :)

  244. 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

  245. 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!

  246. Ge0rG

    jonas’: this is exactly what I want to learn - what's the difference?

  247. jonas’


  248. jonas’

    look at it

  249. jonas’

    technically, I think they use spherical functions or something like that and save the coefficients for those

  250. jonas’

    but I haven’t gotten around to look into it in more detail yet

  251. Zash

    From when I read the spec it sounded like one block of JPEG

  252. 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

  253. Shell has left

  254. j.r has left

  255. j.r has joined

  256. LNJ has joined

  257. zach has left

  258. zach has joined

  259. adiaholic has left

  260. adiaholic has joined

  261. debacle has left

  262. zach has left

  263. zach has joined

  264. zach has left

  265. zach has joined

  266. MattJ

    The 4x3 JPEG file I made is 667 bytes compared to 28 bytes for the same image's blurhash

  267. 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)

  268. mukt2 has joined

  269. j.r has left

  270. 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

  271. Daniel

    Need to ask my university buddies at some point

  272. mukt2 has left

  273. j.r has joined

  274. zach has left

  275. zach has joined

  276. edhelas

    I really like the idea behind blurhash, would be pleased to use it in Movim :)

  277. Chobbes has joined

  278. mukt2 has joined

  279. pdurbin has joined

  280. Ge0rG

    again, what's the actual benefit over a significantly downscaled picture?

  281. sonny has joined

  282. adiaholic has left

  283. adiaholic has joined

  284. Zash

    Presumably that the "hash" is smaller.

  285. zach has left

  286. zach has joined

  287. pdurbin has left

  288. Daniel

    No jpeg overhead?

  289. Daniel

    The decoding / upscalling is specified?

  290. Ge0rG

    the jpeg overhead needs to be offset by the additional library overhead, though ;)

  291. 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 ;)

  292. mukt2 has left

  293. 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.

  294. Ge0rG


  295. mukt2 has joined

  296. Zash


  297. zach has left

  298. zach has joined

  299. aj has left

  300. adiaholic has left

  301. adiaholic has joined

  302. david has joined

  303. Chobbes has left

  304. Chobbes has joined

  305. zach has left

  306. zach has joined

  307. mukt2 has left

  308. j.r has left

  309. j.r has joined

  310. jmpman has joined

  311. waqas has joined

  312. waqas has left

  313. waqas has joined

  314. edhelas has left

  315. edhelas has joined

  316. adiaholic has left

  317. adiaholic has joined

  318. sonny has left

  319. LNJ has left

  320. sonny has joined

  321. LNJ has joined

  322. adiaholic has left

  323. adiaholic has joined

  324. zach has left

  325. zach has joined

  326. j.r has left

  327. j.r has joined

  328. edhelas has left

  329. j.r has left

  330. j.r has joined

  331. edhelas has joined

  332. edhelas

    could be really nice to also use it for the avatars :)

  333. zach has left

  334. zach has joined

  335. LNJ has left

  336. LNJ has joined

  337. Yagiza has joined

  338. Yagiza has left

  339. Yagiza has joined

  340. jmpman has left

  341. j.r has left

  342. zach has left

  343. zach has joined

  344. j.r has joined

  345. jmpman has joined

  346. adiaholic has left

  347. debacle has joined

  348. zach has left

  349. zach has joined

  350. adiaholic has joined

  351. goffi has joined

  352. adiaholic has left

  353. mukt2 has joined

  354. andy has left

  355. zach has left

  356. zach has joined

  357. andy has joined

  358. jmpman has left

  359. xalek has joined

  360. mukt2 has left

  361. zach has left

  362. zach has joined

  363. edhelas has left

  364. neshtaxmpp has left

  365. neshtaxmpp has joined

  366. edhelas has joined

  367. neshtaxmpp has left

  368. neshtaxmpp has joined

  369. mukt2 has joined

  370. emus has left

  371. emus has joined

  372. neshtaxmpp has left

  373. neshtaxmpp has joined

  374. neshtaxmpp has left

  375. zach has left

  376. zach has joined

  377. mukt2 has left

  378. mukt2 has joined

  379. lorddavidiii has left

  380. lorddavidiii has joined

  381. neshtaxmpp has joined

  382. neshtaxmpp has left

  383. neshtaxmpp has joined

  384. adiaholic has joined

  385. karoshi has left

  386. mathijs has left

  387. mathijs has joined

  388. moparisthebest has left

  389. moparisthebest has joined

  390. zach has left

  391. zach has joined

  392. Chobbes has left

  393. Douglas Terabyte has left

  394. mukt2 has left

  395. adiaholic has left

  396. adiaholic has joined

  397. mukt2 has joined

  398. chronosx88 has left

  399. adiaholic has left

  400. chronosx88 has joined

  401. neshtaxmpp has left

  402. neshtaxmpp has joined

  403. zach has left

  404. zach has joined

  405. neshtaxmpp has left

  406. neshtaxmpp has joined

  407. debacle has left

  408. Douglas Terabyte has joined

  409. andy has left

  410. andy has joined

  411. pdurbin has joined

  412. lskdjf has left

  413. lskdjf has joined

  414. larma has left

  415. larma has joined

  416. zach has left

  417. zach has joined

  418. pdurbin has left

  419. mukt2 has left

  420. mukt2 has joined

  421. karoshi has joined

  422. Yagiza has left

  423. sonny has left

  424. xalek has left

  425. lskdjf has left

  426. lskdjf has joined

  427. zach has left

  428. zach has joined

  429. jubalh has joined

  430. jubalh has left

  431. mukt2 has left

  432. mukt2 has joined

  433. mathijs has left

  434. mathijs has joined

  435. mathijs has left

  436. jubalh has joined

  437. mathijs has joined

  438. zach has left

  439. zach has joined

  440. !XSF_Martin has left

  441. !XSF_Martin has joined

  442. eevvoor has joined

  443. jubalh has left

  444. zach has left

  445. zach has joined

  446. jonas’

    I’d question the "shell-safe" base83 encoding though. the character set contains $ and * and # and { and } and [ and ]

  447. jonas’

    not that it matters much

  448. jonas’

    Daniel, they essentially do what jpeg does

  449. jonas’

    I’m not quite sure why the rendering is that much better though

  450. jonas’

    maybe because they have more bits for the few pixels

  451. Zash

    Because it's done in JavaScript of course

  452. Shell has joined

  453. 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

  454. jonas’

    that’s why it’s smoother than upscaling a 8x8 jpeg

  455. zach has left

  456. zach has joined

  457. chronosx88 has left

  458. mathijs has left

  459. mathijs has joined

  460. chronosx88 has joined

  461. zach has left

  462. zach has joined

  463. pdurbin has joined

  464. jabberjocke has joined

  465. Syndace has left

  466. pdurbin has left

  467. Syndace has joined

  468. Shell has left

  469. derdaniel has joined

  470. lovetox has left

  471. mukt2 has left

  472. Nekit has joined

  473. lovetox has joined

  474. mukt2 has joined

  475. lovetox

    what i dont get

  476. lovetox

    ok there are librarys who let me get the hash from a picture

  477. lovetox

    but i dont see one that let me get a picture from the hash

  478. jonas’

    note, blurhash is a misnomer

  479. jonas’

    it’s not a cryptographic one-way hash function

  480. alameyo has left

  481. jonas’

    lovetox, https://github.com/halcy/blurhash-python here is an encoder and decoder thing

  482. lovetox

    where do you see the decode?

  483. jonas’


  484. lovetox

    hm yeah but this is some fork

  485. lovetox

    not the original project

  486. lovetox

    but good :)

  487. jonas’

    it’s linked in their readme

  488. jonas’

    I guess their decoders are all JS because web

  489. lovetox

    yeah hm the original project has it in c and only wraps in python

  490. lovetox

    also it lets me just pass a filename

  491. lovetox

    with this fork, i have to install PIL and numpy to even pass something to the lib

  492. jonas’

    which makes sense

  493. jonas’

    (the original C thing also is only an encoder)

  494. lovetox

    why does it make sense, i will never install numpy and PIL only to get a blurhash

  495. lovetox

    insane to me :)

  496. david has left

  497. jonas’

    you need PIL to load image data

  498. jonas’

    you need numpy to efficiently calculate the DCT and do the inverse

  499. neshtaxmpp has left

  500. lovetox

    i dont think so, the c implementation doesnt need numpy so why should the python one

  501. jonas’

    you can do it in pure python, but it’ll be slow

  502. lovetox

    they should just add a decode method to the c version

  503. lovetox

    and nobody needs the pure python one

  504. jonas’

    I bet "PRs welcome"

  505. jonas’

    except that the C version has restrictions on the input file formats. e.g. they don’t support all JPEG and PNG variants

  506. eevvoor has left

  507. zach has left

  508. zach has joined

  509. david has joined

  510. lovetox

    or i save me the whole trouble with 3 thirdparty librarys

  511. lovetox

    and just show the same blurred out placeholder for all pictures

  512. lovetox

    this seems like a gimmick, i get that its nice for webpages with many pictures

  513. lovetox

    but for a messaging client where most of the time only one picture is on the screen

  514. lovetox

    i would not add all that stuff

  515. arc has left

  516. arc has joined

  517. lorddavidiii has left

  518. Chobbes has joined

  519. Nekit has left

  520. moparisthebest has left

  521. moparisthebest has joined

  522. Chobbes has left

  523. david has left

  524. david has joined

  525. mukt2 has left

  526. adiaholic has joined

  527. mukt2 has joined

  528. zach has left

  529. zach has joined

  530. adiaholic has left

  531. chronosx88 has left

  532. jubalh has joined

  533. adiaholic has joined

  534. zach has left

  535. zach has joined

  536. adiaholic has left

  537. adiaholic has joined

  538. Chobbes has joined

  539. mukt2 has left

  540. xalek has joined

  541. Tobias has left

  542. xalek has left

  543. jubalh has left

  544. pdurbin has joined

  545. zach has left

  546. zach has joined

  547. mukt2 has joined

  548. debacle has joined

  549. pdurbin has left

  550. david has left

  551. adiaholic has left

  552. david has joined

  553. lovetox has left

  554. !XSF_Martin has left

  555. goffi has left

  556. karoshi has left

  557. !XSF_Martin has joined

  558. xalek has joined

  559. emus has left

  560. emus has joined

  561. LNJ has left

  562. zach has left

  563. zach has joined

  564. wurstsalat has left

  565. Mikaela has left

  566. Shell has joined

  567. david has left

  568. david has joined

  569. zach has left

  570. zach has joined

  571. zach has left

  572. zach has joined

  573. andy has left

  574. mukt2 has left

  575. david has left

  576. emus has left

  577. david has joined

  578. neshtaxmpp has joined

  579. mukt2 has joined

  580. zach has left

  581. zach has joined