My plans for studying for my Algorithm Analysis class from now on... Step 1 - Read the syllabus to find the topics my professor will talk about in the upcoming lecture. Step 2 - Watch Mr. Bari's videos on topics from step 1. Step 3 - Read book for some more info on topics from step 1. Step 4 - Attend my lecture, and desperately try to stay conscious. Thanks for another great video. +1 cookie for you!
After I watched this, I did my discussion on my class related to this topic, many classmates thanked me for a clear explanation. Thank you sir. You helped me and classmates too.
Abdul, please keep doing what you are doing! You are a great teacher and a huge help to confused students. We all appreciate your teaching style very much. Well done!
I've been binge watching his videos, it's so addictive 😂 I keep on reminding myself about the stature he carries, the command he brings, that professor element is something special which will keep you attentive..!! 🙌
sir the technique you showed is wrong as in huffman tree the smaller node should be on the left side , here you placed 4 to the right of 5 which changed the code of the element d which is wrong
i took multimedia class and learned this from your video 1 day before exam got 85 then i didnt study for final and didnt do project and got D, then i took the course again and relearned this from your video got B from course. now i am preparing for master degree interview and reviewing again from same video of yours :D thanks for helping me out all these years :)
I love you man, i come from my lecture confused and in 1 video I completely understand everything. You have a gift, thank you for sharing it with the world!
The way you explain huffman coding makes it very easy to learn and understand. With the help of the simple examples and exercise it also helps me understand the concept better. After watching this video, I instantly understand about huffman coding and how to decode and compress a message.
I am glad to see a video actually dwelling into the concepts used behind any algorithm implementation. It's hard to find such videos on RU-vid. Great work Sir :)
Sir me college me ek lecture nhi attend karta hun....teachers ko kudh nhi pata hota....unlog kya pada rahe han.....aap jaise logo ka video dekh dekh ke hi sikh raha hun....sir aap aise hi video banate rahiye
Some people (mostly western folk) don't like heavy accents and differences in grammar when trying to learn complex topics. I've come across a lot of nearly unwatchable videos on RU-vid before but it's never (well it can be) the accent that makes it bad, it's the horrible, inaudible or distorted audio. This video is recorded well and the audio, although clipping a bit, is still intelligible. No dislike from me.
Free and good content should not be given dislikes, Many assholes will not understand one line and rage dislike the video, really selfish according to me
00:00 Huffman coding is a compression technique 02:25 Message size can be reduced by using custom codes with fewer bits. 04:34 Encoding messages using 3-bit codes 06:44 Table and chart decoding reduces message size by 35-40% 08:58 Huffman code generates variable size codes for characters based on their frequency. 10:54 Variable size codes can be used for message encoding 13:22 Huffman coding reduces message size 15:33 Huffman coding can be decoded to get the original message in ASCII code.
17 minutes worth one full set of question. Thanks a bunch, Sir!!! Really appreciate your effort for making the world a better place for learners like us
Thank you so much, sir. I have a test on data compression tomorrow and I had no idea about Huffman coding. I don't who else would have given a more succinct explanation and I understand this concept more clearly now. You are literally every computer science student's saviour. Thank you so much. Keep up the amazing work!! 🙏👏
Thank you Sir, the way you explain is marvelous, i saw so many video's but still my concept was not clear but after watching your video i know better.. thanks a lot.. 🙏🏼
A friend recommended this channel for algorithms, I have never looked back ever since, your approach makes everything easy to understand. I am studying my MSc in Software Engineering and the knowledge I am gaining from this channel is playing a vital role in my studies, Thank you Abdul Bari.
I was watching it everywhere on others channel but not able to understand clearly... But somehow i have got your video and ultimately i can say that my concept has been cleared... Thank u so much !
Hi Sir, It was very difficult for me to get to know the difference between the algorithms and it's implementation.. But after listening to your videos, I m master in solving those problems. Really I am grateful to you sir.. Thank you so much for your wonderful teaching.. you teach us the very difficult concepts in a simple way.. Really I am very thankful to you sir.. I am struck up in heaps and heapsort concept. Please make a video on it sir.. I didn't find that part. So asking sir.. If it's already been done, please share the link sir.. Thank you so much sir....
@@abdul_bari Beautiful video, sir. Are you familiar with Sloot encoding? He was able to compress a whole HD movie down to 4 kilobytes losslessly. He had a library of 370Mb, about 70Mb for each kind of data, movies, sound... He was obviously comparing data to data in his library, generating keys of minimal size which could regenerate the original on the remote computer from the same library. Only way this can be done even in theory is if he reduced big chunks of numbers to small mathematical expressions. For example number 302875106592253 can be shortened as 13^13. If numbers related to this one appear often, we can define it as letter a and then just express those other numbers as 2a, 3a etc. Multistage compression would allow for such extreme compression ratio. Exactly how he did it is not clear.
I really Like how you explain Huffman coding very simply and make it for me really easy to understand in one go without having to repeat the video to understand. my favorite part is when you explain how to determine the bit using a tree, and with that, I immediately understand how to compress a message using Huffman coding and also how to decode the message
I really like the way you explain Huffman coding in the video, the explanation is very simple and easy to understand and the examples you use in the video are really helpful, it helps me understand the topic better. Thank You!
The above example can be further reduced into 8.625 bytes(69 bits) from 20 bytes(160 bits) Input: BCCABBDDAECCBBAEDDCC [1.] Total number of ASCII characters = 20 [2.] Each ASCII character take minimum of 8 bits( 8 bits = 1 byte) [3.] Required size = 20 * 8 = 160 bits ~ 20 bytes The compression algorithm, [Step 0] : Use a TreeSet [Step 1] : Create a bit_level, and all possible pattern (assume the level start by 1) when bit_level = 1 It means, the bit can only take two forms( either [1 or 0]) (i.e 2^1) [Step 2] : Check character existence in Step [0], doesn't exist goto Step[3], else goto step[4] [Step 3] : Character doesn't exist, and bit_pattern hasn't been exhausted Key that character( perhaps using a DLL--> DoublyLinkedList) with the unused bit pattern B
@@ujin981 Can I assume this is what you're referring to by Prefix Property? "(computing theory) A coding system that uses (typically variable-length) codes that are distinguished by their "prefix property", which requires that there is no code word in the system that is a prefix (initial segment) of any other code word in the system."
@@amudaadeolubadmus6282 Yes. Correct. Now you can comprehend that in your example BC is the prefix of A and therefore the proposed codes are not prefix-free.
This video about Huffman Coding is very easy to understand! I really like the part when you show that we can also use tree other than table since it's simpler and yet very interesting. Thank you for making this video sir!
I wish all the teacher are like HIM. He is a very good teacher. He understands what students need. Come to Kenya and mentor all the teachers/professors
Great explanation. Other videos try to explain it using a trick, but they clearly don't understand what's going on. This video clearly explains the greedy choice!
Hi, isn't (5) and 4(D) supposed to be inverted under 9? 5 is bigger than 4(D) but stays on the left. Shouldn't it be 4(D) to the left and 5 to the right of 9 ? 9 / \ D(4) 5 By doing those changes, and after calculating the values using software, i get the following codes d:00 e:010 a:011 b:10 c:11 Thank you
Sir, please check the Huffman codes because when I inserted the values in the online Huffman tree generator i got different values and different Huffman code.Please cross-check. The values which i got are: D=00 E=010 A=011 B=10 C=11
I really appreciate your explanation regarding Huffman coding, especially regarding the coding and decoding. The explnation of the tree was reallyceasy to understand becuase of the great explanations and presentation.
This master's teaching is simply fantastic, and I was able to understand with his explanation, what I was unable to understand in books by many famous authors, but which do not have such excellent language and teaching. The creation of the message in compressed binary code was very clear, but I would greatly appreciate it if the teacher could complement it with the coding of the table, as apparently the simple joining of binaries and codes can cause some mixing or confusion when decoding, as the program would separate binary ones, considering that some are variable size?
respect for going through the decoding. I was having a hard time on how could the reciever know that he should take 2 or 3 bits for the letter, but I understood that there is no confusion in that because the tree sorts that problem
The way you explain it is very easy to understand. As a computer science student your video help me a lot in understanding lots of difficult topic. Thank you sir keep up the good work!
Really Really amazing Explanation of the huffman Coding. After hours of pounding over other sites this video made this algoithm extremely clear and easy to understand and implement. Thank you.
i have a query. if we use Fixed size codes or Variable sized codes(huffman), the number bits to be sent for each characters are reduced for sure. While sending the table information, you mentioned character(8bits) + its fixed or variable sized codes( lets 2 bits for example). How can we send just 2 bits ?? I think we need to send the frequencies of each character again so that tree is reconstructed at the receiving end. But again if we send frequencies, in case of the huffman example it will be = 45(message) + 40(ascii characters) + 40(frequency count) = 125. The same is the case with Fixed. Can you please clarify on this? if it has to work the way you mentioned, my assumption is that this whole data A(01000010) A's Huffman(001) followed by B, C, D etc and the orignal data. But i believe we need to have some kind of delimiters between each pair( character, huffman code) and the before the original data.
Hey Ravi, Your doubt is very genuine now read it carefully, Let say you want to send a message above illustrated example in encoded form with the same frequency as told by sir, now, two things you must keep in mind 1. The same person writes the encoding and decoding message. 2. Your objective is to read(encode) the message not to count the occurrence of a letter. --Your first doubt- You want to send the frequency of the letters with character+fixed or variable size code. ----------------You are sending the original table with encoded table with encoded message, the message will tell the length.( How go to second doubt). --Your second doubt is you want a delimiter to identify each encoded bits. ---------------See, when you will construct the tree, it will generate the each encoded bits in such a way that "No Huffman code of given character will be prefix of another Huffman code". Using this you will be able to extract each encoded message without any mistake. For illustration---- In the above given problem A- 001 B-10 C-11 D-01 E-000 Here you can not find a single encoded character which is the prefix in any other encoded character. Hope it will help you. Thanks
Your explanation of Huffman coding really helps me understand the topic better. I really like your approach to explaining the topic, where you used a simple example for the coding and decoding steps. Your explanation makes this complicated topic look so simple, thank you for the clear explanation!
Your way of explanation is amazing...You tells everything about the topic which associate with other topics.Your starting is very effective of any topic that makes me your fan..You are an Effective Teacher.I am sharing your video with my friends.
Thanks a lot sir.. because of you only I feel confident in dsa . No one other then you can teach dsa in such a manner , we are blessed to have you . Thankyou sir!!
Thank you for the clear explanation about Huffman Coding, Mr. Abdul Bari! It was excellent, really helps me to understand the concept better since you made the complex concept of Huffman coding become simpler. My favorite moment from this video is when you use a case to introduce and explain the greedy method in the beginning of the video, as well as when to illustrate the greedy method using the optimal pattern tree graph. This is a must-watch video as a computer science student!
Goodness gracious this is so clear :O I'm pursuing CS right now (on Greedy) and just discovered the interesting optimization behind information compression (and man, are Huffman trees elegant) I'm so glad I got to learn it from you, thank u sir you |Legend| :D
Sir app nai kamaal explains kiya hai thankue sir Sir app isi trah ki video banaty rhee ga App ka teach kr ny ka method acha but thori bohat urdu lay ager to bohat achi video app ki Kue ky her person ko English nhi ati Thanks a lot of given the lecture of this topic