JentGent
JentGent
  • 2
  • 305 722
these compression algorithms could halve our image file sizes (but we don't use them) #SoMEpi
an explanation of the source coding theorem, arithmetic coding, and asymmetric numeral systems
this was my entry into #SoMEpi. this video can get pretty confusing, so don't worry if it takes some rewatches to understand. if i had more time i would've made it better....but anyway i hadn't seen many videos on this so i hope it is a helpful introduction
Reducible's huffman codes video: ua-cam.com/video/B3y0RsVCyrw/v-deo.html
arithmetic coding implementation: marknelson.us/posts/2014/10/19/data-compression-with-arithmetic-coding.html
tabled asymmetric numeral system implementation: github.com/JentGent/tANS/blob/main/ans.ipynb
00:00 intro
01:07 what's wrong with huffman
02:46 prove the source coding theorem
05:35 entropy and information theory
06:59 everything is a number
07:50 arithmetic coding
11:38 asymmetric numeral systems
the music is debussy, satie, and schumann
Переглядів: 231 383

Відео

Making a Pitch Shifter
Переглядів 75 тис.Рік тому
introductory guide to pitch shifting algorithms #SoME3 code: github.com/JentGent/pitch-shift possibly helpful papers SOLA: doi.org/10.1109/ICASSP.1985.1168381 WSOLA: doi.org/10.1109/ICASSP.1993.319366 Phase vocoder: doi.org/10.1002/j.1538-7305.1966.tb01706.x Phase vocoder: doi.org/10.1109/89.759041 attributions auto-tuned music data from wikipedia images cher: flickr.com/photos/raph_ph/48932500...

КОМЕНТАРІ

  • @michaelwesolek
    @michaelwesolek 2 дні тому

    I would never explain Arithmetic Coding, with floats.

  • @theparadox42
    @theparadox42 9 днів тому

    I remember you way back on the days of KA. Awesome to see what you're making now. Keep it up!!

  • @norude
    @norude 11 днів тому

    bro, you really dropped 1000 search terms in the first 5 minutes and said "it's not important"

  • @rivest-oss
    @rivest-oss 18 днів тому

    THIS VIDEO IS SOOO GOOOOD!

  • @AluminumHaste
    @AluminumHaste 21 день тому

    But jpegs do lose information

  • @davidkaye821
    @davidkaye821 22 дні тому

    JPGs and MP3s use lossy encoding.

  • @pokmandeng5650
    @pokmandeng5650 23 дні тому

    love this video

  • @samhodge7460
    @samhodge7460 23 дні тому

    Very well done

  • @LZeugirdor
    @LZeugirdor 24 дні тому

    I know I do too much tech stuff when I saw images and thought about ISO files.

  • @SiMeGamer
    @SiMeGamer 27 днів тому

    I think it would be nice if in future you put what people need to know beforehand. This was monumentally complex with how much terminology was thrown at the viewer as well as incredibly fast equation transformations. There was pretty much zero edge case examples (the ones you use to establish how it works and build on top of). I find this video pedagogically horrendous for an average viewer and there was no attempt whatsoever to dissuade anyone and inform them that it was not for them. Many other comments in the comment section here reflect that - the people who choose to watch this are likely a little familiar with computer science and math to what I'd argue high school degree and maybe a little more. I would expect the level of explanation to be as such. Huffman encoding is fairly straight forward to explain. This felt like you'd needs an entire degree just to grasp it when in actuality it's not that complex when you go and experiment to try and understand it on your own. The entire section in the middle that explains information density was, for me, impossible to understand. Part of it is the excessive use of formulas and their transformations rather than raw data examples. This felt like a thesis paper and not an educational video. Pedagogy is a skill. And the best way to improve at it is to practice and test. Did you even show this to anyone who isn't as knowledgeable on the subject matter? They would point out dozens of points where they got completely lost. That is where you ask questions and figure out a way to explain the concept you are talking about in more clear terms. Maybe it's he words being used. Maybe it's the pacing. Maybe it's the visuals. Maybe it's all of the above. Or maybe it's something else entirely. But you will never have the intuition until you develop it. And to me, this video shows a very deep lack of said intuition. I love teaching. I love learning. I think you have the skills and knowledge to remake this into something amazing. But as it is now, it's extremely lackluster. This almost makes me want to learn these algorithms deeper just so I could put out a better video on the subject since this, to my instinct, turns people away from using it rather the encouraging. I'll personally take more time to learn this since I find lossless data compression potentially very valuable in what I do for a living. I'm happy you showcased these even exist. And I hope this comment encourages you to make more stuff in the future rather than stop completely. This is made as constructive criticism. Take your time and show someone your work before you publish it. Preferably a few people with different levels of understanding so you know how approachable it is and which group to cater to. The production was very good. So good luck and I hope you inspired more people to pursue these types of algorithms.

  • @RaaynML
    @RaaynML Місяць тому

    Huff man + +Latent Encoding then all you need is a magic box to unfuck the tree on the decoding side

  • @dangboor4277
    @dangboor4277 Місяць тому

    Patents are fundamentally terrible

  • @0LoneTech
    @0LoneTech Місяць тому

    DjVu employs arithmetic coding, and DjVuLibre includes the lossless compression utility bzz. I don't think it's received much attention to make it fast, though; zstd is likely a more practical choice today.

  • @drancerd
    @drancerd Місяць тому

    🥲 ahora entendi por que nadie los usa

  • @reamuji6775
    @reamuji6775 Місяць тому

    2:40 edit : nvm he adress it later lol i think huffmann lost because it also store number with 0 in front as posible number, where as the conversion method store 00123 the same as 123

  • @considerthehumbleworm
    @considerthehumbleworm Місяць тому

    never underestimate the human ability to claim ownership over anything they possibly can

  • @MegaArti2000
    @MegaArti2000 Місяць тому

    Nice video! Just one suggestion: don't let the video black-out for so long while you're talking. I was confused thinking something was wrong with the image, because you were still talking regardless hahaha

  • @Siroitin
    @Siroitin Місяць тому

    Huffman also accepts that "01" can be multiple characters like "you"? Also H(X) is sometimes called Shannon's measurement of Information (SMI)

  • @soeasyastonercoulddoit
    @soeasyastonercoulddoit Місяць тому

    I don't think anything can beat middle out compression....

  • @Seedwreck
    @Seedwreck Місяць тому

    I recommend anybody using this method to also implement try to implement more layers, compressing with algorithms and compressing neighbour pattern delimiters with some form of character. This will greatly improve the compression and complexity of your data! <Bull:<Bull_Chunk:cGQ=SBbScxHn(D)Ib=GdgsvlsC(I)JZVxJMW|15:>:>

  • @xdasdaasdasd4787
    @xdasdaasdasd4787 Місяць тому

    I got lost in the first 10 minutes haha, all the math killed me

  • @automatescellulaires8543
    @automatescellulaires8543 Місяць тому

    is there any legal risk to bake the ideas pointed at in this video into a commercial product ?

  • @ZILtoid1991
    @ZILtoid1991 Місяць тому

    Someone should patent patent-trolling. "Method of using fraudulent patents as money extortion and corporate sabotage"

  • @ac130kz
    @ac130kz Місяць тому

    it looks sooo similar to binary search, interesting

  • @ron5948
    @ron5948 Місяць тому

    How 8:45 do you store all messages and allow easy lookup??? There are a few REALLY one excellent, and many adaptive ones, approach here 8:45

  • @ТимофейЧерников-щ2х

    Patents stifle innovation

  • @kuroclown
    @kuroclown Місяць тому

    3 minutes into the video and i knew.....my brain is smooth, very smooth

  • @ATOM-vv3xu
    @ATOM-vv3xu Місяць тому

    Another proof that patents should be abolished

  • @jan-pi-ala-suli
    @jan-pi-ala-suli Місяць тому

    “i reject your rejection”

  • @patternwhisperer4048
    @patternwhisperer4048 Місяць тому

    zstd uses tANS

  • @gnt10
    @gnt10 Місяць тому

    This video is a bit too complicated for me😭

  • @sasjadevries
    @sasjadevries Місяць тому

    Interesting topic, good explanation, nice animations, and a special thanks to Frédéric Chopin. UA-cam, is as bad as the US patent office, and doesn't recognise all authors of the music. YT didn't recognise Satie either.

  • @lucavogels
    @lucavogels Місяць тому

    Es gibt nur eine Person die ins solch ein Straflager lebenslänglich reingesteckt gehört …

  • @ADRIANO782
    @ADRIANO782 Місяць тому

    To be honest this should've been an hour long video, it really went over my head

  • @tremon3688
    @tremon3688 Місяць тому

    It is an interesting video, but you go too fast for this to be understand es without pausing the video. I recommend going a little bit slower

  • @googleyoutubechannel8554
    @googleyoutubechannel8554 Місяць тому

    Interesting topic but terribly explained, I've written a toy ANS implementation and I couldn't follow what this guy was trying to say half the time, good visuals though.

  • @rogercruz1547
    @rogercruz1547 Місяць тому

    Intellectual property is the attempt to own somebody else's capacity to reproduce work. Ownership over brains or body of somebody else is abolished and so should patents and the whole concept of intellectual property as well be.

  • @fluffy_tail4365
    @fluffy_tail4365 Місяць тому

    Imagine a world with no patent laywers

  • @KushLemon
    @KushLemon Місяць тому

    Terrible video.

  • @asshole124
    @asshole124 2 місяці тому

    i wish i could intergrate this into my audio format but i cannot due to its way of storing data is by string and cannot be binary in any way

  • @lucasa8710
    @lucasa8710 2 місяці тому

    this video was very difficult to digest, I don't have a math background, but I also think that the video should focus more on what something means rather then what it is

  • @michaelbuchholz992
    @michaelbuchholz992 2 місяці тому

    I first heared of this about 30 years ago and i was so excited that i wrote it in C. I can acknowledge, it's compressing better than huffmann, but twice? Maybe with very specific data. But it was quite slow. Most probably because i wrote the adaptive version. It should be written in assembly, because it has some very special needs that no higher programming language provides. And writing a workaround to get that missing feature in C is a pain in the afternoon and also slow. Maybe using libgnump will be helpfull, if you don't want to use assembly - libgnump is written in assembly, as far as i know.

  • @neogen23
    @neogen23 2 місяці тому

    I stumbled upon ANS for the first time in this video, so thanks, but I didn't understanding it at all. I had to watch Stanford's EE 274 on the subject, where it seemed ... approachable, at least. Not that a video of this length was going to fully explain such fairly advanced topics, the pace is quite fast, but it was an excellent introduction to the subject, and it motivated me for further research, so goal achieved I guess. Also the effort in making it really shows.

  • @DB-Barrelmaker
    @DB-Barrelmaker 2 місяці тому

    I almost understood this but there was a damn plane kept flying over my head

  • @SWAGCOWVIDEO
    @SWAGCOWVIDEO 2 місяці тому

    if the akinator was a compression algorithm lmao

  • @MDNQ-ud1ty
    @MDNQ-ud1ty 2 місяці тому

    When auto-tune was invented all the talentless acts became instant celebrities.

  • @timmygilbert4102
    @timmygilbert4102 2 місяці тому

    What about markov compression? 😮

  • @Mnnvint
    @Mnnvint 2 місяці тому

    This was a heroic effort at an explanation video, but it should really have been a 10 video series at least.

  • @RikAllen-b1c
    @RikAllen-b1c 2 місяці тому

    Erm, pretty sure I’m watching the video encoded with arithmetic coding. It’s the basis of h.265 and h.264 video codecs, s as long with their still image profiles. H.264 baseline profile is closer to Huffman, but the main profiles expect to use context adaptive binary arithmetic coding.