{"id":27537,"date":"2017-04-26T16:19:54","date_gmt":"2017-04-26T14:19:54","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=27537"},"modified":"2017-04-26T16:19:54","modified_gmt":"2017-04-26T14:19:54","slug":"jpeg-huffman-coding-tutorial","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2017\/04\/26\/jpeg-huffman-coding-tutorial\/","title":{"rendered":"JPEG Huffman Coding Tutorial"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/04\/huff_tree1.gif?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"27538\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2017\/04\/26\/jpeg-huffman-coding-tutorial\/huff_tree1\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/04\/huff_tree1.gif?fit=600%2C400&amp;ssl=1\" data-orig-size=\"600,400\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"huffman tree\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/04\/huff_tree1.gif?fit=600%2C400&amp;ssl=1\" class=\"aligncenter size-medium wp-image-27538\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/04\/huff_tree1-500x333.gif?resize=500%2C333&#038;ssl=1\" alt=\"\" width=\"500\" height=\"333\" \/><\/a><\/p>\n<p>I came across this rather useful and practical <a href=\"http:\/\/www.impulseadventure.com\/photo\/jpeg-huffman-coding.html\">tutorial on Huffman Coding in JPEG images<\/a>. \u00a0It looks at a very small and basic black-and-white image, and how the size of the data and overhead changes between different image formats, and then in more detail, how the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Huffman_coding\">Huffman Coding<\/a> helps make that happen.<\/p>\n<p>Unless you are dealing with compression, image formats, and binary trees on a daily basis, this tutorial is a good memory refresher of those college days.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>I came across this rather useful and practical tutorial on Huffman Coding in JPEG images. \u00a0It looks at a very small and basic black-and-white image, and how the size of the data and overhead changes between different image formats, and then in more detail, how the Huffman Coding helps make that happen. Unless you are &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2017\/04\/26\/jpeg-huffman-coding-tutorial\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">JPEG Huffman Coding Tutorial<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"JPEG Huffman Coding Tutorial #ComputerScience #Huffman #algorithms #WebDev #programming","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,18,62,1334],"tags":[850,1192,3512,1330],"keyring_services":[],"class_list":["post-27537","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","category-web-work","tag-algorithms","tag-computer-science","tag-huffman","tag-web-development"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":27266,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/01\/26\/html-canvas-tutorial\/","url_meta":{"origin":27537,"position":0},"title":"HTML Canvas Tutorial","author":"Leonid Mamchenkov","date":"January 26, 2017","format":false,"excerpt":"Skilled.co put together this HTML Canvas Tutorial, which covers the HTML 5 <canvas> functionality, that allows web developers to draw all sorts of graphics on the fly, using JavaScript. \u00a0The tutorial is available for download in PNG and PDF formats, as well as on the webpage, and it covers the\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/01\/canvas-500x228.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":25954,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/03\/19\/sass-coding-style-guides\/","url_meta":{"origin":27537,"position":1},"title":"SASS Coding Style Guides","author":"Leonid Mamchenkov","date":"March 19, 2016","format":false,"excerpt":"Here are a few coding style guides for those of you on the front lines using SASS: SASS-Guidelin.es - an opinionated styleguide for writing sane, maintainable and scalable Sass. Bigcommerce SASS Coding Guidelines Airbnb CSS \/ SASS Styleguide \u00a0","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":42705,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/06\/10\/unraveling-the-jpeg\/","url_meta":{"origin":27537,"position":2},"title":"Unraveling the JPEG","author":"Leonid Mamchenkov","date":"June 10, 2019","format":false,"excerpt":"It always amazes me how little do we know about everyday things around us. Today I came across \"Unraveling the JPEG\" article, which is a deep dive into the JPEG format. JPEG images all around us, but how much do we really now about them? I bet you even the\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/06\/jpeg-editor.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/06\/jpeg-editor.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/06\/jpeg-editor.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/06\/jpeg-editor.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/06\/jpeg-editor.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/06\/jpeg-editor.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":11949,"url":"https:\/\/mamchenkov.net\/wordpress\/2009\/11\/29\/enforcing-coding-styles-in-php\/","url_meta":{"origin":27537,"position":3},"title":"Enforcing coding styles in PHP","author":"Leonid Mamchenkov","date":"November 29, 2009","format":false,"excerpt":"I came across a plugin for CakePHP which helps to check if the certain code follows CakePHP coding style.\u00a0 While I haven't tried it, I think the better way is to utilize CodeSniffer.\u00a0 As per PHP_CodeSniffer PEAR page: PHP_CodeSniffer tokenises PHP, JavaScript and CSS files and detects violations of a\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":138,"url":"https:\/\/mamchenkov.net\/wordpress\/2003\/02\/14\/stvalentine-and-php-coding\/","url_meta":{"origin":27537,"position":4},"title":"St.Valentine and PHP coding","author":"Leonid Mamchenkov","date":"February 14, 2003","format":false,"excerpt":"Lots of PHP coding. Then a bit more of PHP coding. Some PHP coding for desert. Finished the day with yet some more PHP coding and a nice fish tavern dinner. P.S.: Happy Valentine day to everyone.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":23927,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/04\/20\/smallpdf-pdf-conversion-tools-online\/","url_meta":{"origin":27537,"position":5},"title":"smallpdf &#8211; PDF conversion tools online","author":"Leonid Mamchenkov","date":"April 20, 2015","format":"link","excerpt":"smallpdf - PDF conversion tools online (convert between PDF and JPEG images, Microsoft Office documents, compress, unlock and even send printed PDF via regular mail)","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/27537","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=27537"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/27537\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=27537"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=27537"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=27537"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=27537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}