{"id":17437,"date":"2017-03-16T15:14:08","date_gmt":"2017-03-16T19:14:08","guid":{"rendered":"http:\/\/mjtsai.com\/blog\/?p=17437"},"modified":"2017-03-22T20:07:30","modified_gmt":"2017-03-23T00:07:30","slug":"guetzli-a-new-open-source-jpeg-encoder","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2017\/03\/16\/guetzli-a-new-open-source-jpeg-encoder\/","title":{"rendered":"Guetzli: A New Open Source JPEG Encoder"},"content":{"rendered":"<p><a href=\"https:\/\/opensource.googleblog.com\/2017\/03\/guetzli-new-open-source-jpeg-encoder.html\">Robert Obryk and Jyrki Alakuijala<\/a>:<\/p>\n<blockquote cite=\"https:\/\/opensource.googleblog.com\/2017\/03\/guetzli-new-open-source-jpeg-encoder.html\">\n<p>Guetzli [gu&#x25B;tsli] &mdash; <i>cookie<\/i> in Swiss German &mdash; is a JPEG encoder for digital images and web graphics that can enable faster online experiences by producing smaller JPEG files while still maintaining compatibility with existing browsers, image processing applications and the JPEG standard. From the practical viewpoint this is very similar to our <a href=\"https:\/\/github.com\/google\/zopfli\">Zopfli<\/a> algorithm, which produces smaller <a href=\"https:\/\/en.wikipedia.org\/wiki\/Portable_Network_Graphics\">PNG<\/a> and <a href=\"https:\/\/en.wikipedia.org\/wiki\/Gzip\">gzip<\/a> files without needing to introduce a new format; and different than the techniques used in <a href=\"https:\/\/research.googleblog.com\/2016\/09\/image-compression-with-neural-networks.html\">RNN-based image compression<\/a>, <a href=\"https:\/\/blog.google\/products\/google-plus\/saving-you-bandwidth-through-machine-learning\/\">RAISR<\/a>, and <a href=\"https:\/\/developers.google.com\/speed\/webp\/\">WebP<\/a>, which all need client and ecosystem changes for compression gains at internet scale.<\/p>\n<p>[&#8230;]<\/p>\n<p>Guetzli specifically targets the quantization stage in which the more visual quality loss is introduced, the smaller the resulting file. Guetzli strikes a balance between minimal loss and file size by employing a search algorithm that tries to overcome the difference between the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Human_visual_system_model\">psychovisual<\/a> modeling of JPEG's format, and <a href=\"https:\/\/github.com\/google\/butteraugli\">Guetzli&rsquo;s psychovisual model<\/a>, which approximates color perception and visual masking in a more thorough and detailed way than what is achievable by simpler color transforms and the discrete cosine transform.<\/p>\n<\/blockquote>\n<p>Previously: <a href=\"http:\/\/mjtsai.com\/blog\/2015\/09\/23\/brotli\/\">Brotli<\/a>, <a href=\"http:\/\/mjtsai.com\/blog\/2013\/02\/28\/zopfli\/\">Zopfli<\/a>, <a href=\"http:\/\/mjtsai.com\/blog\/2014\/11\/25\/jpeg-image-compression\/\">JPEG Image Compression<\/a>, <a href=\"http:\/\/mjtsai.com\/blog\/2016\/07\/15\/lepton-image-compression\/\">Lepton Image Compression<\/a>.<\/p>\n\n<p>Update (2017-03-22): <a href=\"http:\/\/daringfireball.net\/linked\/2017\/03\/20\/guetzli\">John Gruber<\/a>:<\/p>\n<blockquote cite=\"http:\/\/daringfireball.net\/linked\/2017\/03\/20\/guetzli\">\n<p>There is, of course, a catch. Image processing is <em>really<\/em> slow. It takes about 8 minutes for Guetzli to process a single iPhone camera image on my 5K iMac.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Robert Obryk and Jyrki Alakuijala: Guetzli [gu&#x25B;tsli] &mdash; cookie in Swiss German &mdash; is a JPEG encoder for digital images and web graphics that can enable faster online experiences by producing smaller JPEG files while still maintaining compatibility with existing browsers, image processing applications and the JPEG standard. From the practical viewpoint this is very [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"","apple_news_api_id":"","apple_news_api_modified_at":"","apple_news_api_revision":"","apple_news_api_share_url":"","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[289,357,51,1496,177,74],"class_list":["post-17437","post","type-post","status-publish","format-standard","hentry","category-technology","tag-algorithm","tag-compression","tag-google","tag-guetzli","tag-jpeg","tag-opensource"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/17437","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=17437"}],"version-history":[{"count":2,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/17437\/revisions"}],"predecessor-version":[{"id":17492,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/17437\/revisions\/17492"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=17437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=17437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=17437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}