Slashdot Mirror


Google Publishes Zopfli, an Open-Source Compression Library

alphadogg writes "Google is open-sourcing a new general purpose data compression library called Zopfli that can be used to speed up Web downloads. The Zopfli Compression Algorithm, which got its name from a Swiss bread recipe, is an implementation of the Deflate compression algorithm that creates a smaller output size (PDF) compared to previous techniques, wrote Lode Vandevenne, a software engineer with Google's Compression Team, on the Google Open Source Blog on Thursday. 'The smaller compressed size allows for better space utilization, faster data transmission, and lower Web page load latencies. Furthermore, the smaller compressed size has additional benefits in mobile use, such as lower data transfer fees and reduced battery use,' Vandevenne wrote. The more exhaustive compression techniques achieve higher data density, but also make the compression a lot slower. This does not affect the decompression speed though, Vandenne wrote."

124 comments

  1. Overhyped by Anonymous Coward · · Score: 4, Informative

    This team is clearly just trying to make a name for themselves. It improves over gzip by a mere 3% or so, but takes an order of magnitude longer to compress.

    Their underlying implemented might be cool research. But it's practical merit is virtually nil.

    Now, cue the people who are going to do some basic arithmetic to "prove" me wrong, yet who probably don't even bother using gzip content-encoding on their website right now, anyhow.

    1. Re:Overhyped by Anonymous Coward · · Score: 1

      Actually, they state that the 3-8% better maximum compression than zlib is 2-3 orders of magnitude longer to compress.

      I can't imagine what kind of content you're hosting that'd justify 3 orders of magnitude compression time to gain 3% compression.

    2. Re:Overhyped by Anonymous Coward · · Score: 0

      Google's front page.

    3. Re:Overhyped by TeknoHog · · Score: 5, Interesting

      If I understand this correctly, the point is to be compatible with zlib decompression. Obviously, you can bet much better compression with xz/lzma, for example, but that would be out of range for most browsers.

      --
      Escher was the first MC and Giger invented the HR department.
    4. Re:Overhyped by Baloroth · · Score: 5, Insightful

      Actually, they state that the 3-8% better maximum compression than zlib is 2-3 orders of magnitude longer to compress.

      I can't imagine what kind of content you're hosting that'd justify 3 orders of magnitude compression time to gain 3% compression.

      Static content that only has to be compressed once, yet is downloaded hundreds of thousands or millions of times. 3-8% is a pretty significant savings in that case.

      --
      "None can love freedom heartily, but good men; the rest love not freedom, but license." --John Milton
    5. Re:Overhyped by sideslash · · Score: 5, Informative

      It improves over gzip by a mere 3% or so, but takes an order of magnitude longer to compress [...] it's practical merit is virtually nil.

      Maybe it's useless to you as a developer(?), and to most people. However, you benefit from this kind of technology all the time. Compare this to video encoding, where powerful machines spend a heck of a lot of time and CPU power to gain extra 3%'s of compression to save bandwidth and give you a smooth viewing experience.

      This tool could have many useful applications for any kind of static content that is frequently served, including web services, as well as embedded content in mobile games and other apps. Every little bit of space savings helps (as long as it isn't proportionally slower to expand, which the article says it stays comparable).

    6. Re:Overhyped by Anonymous Coward · · Score: 0

      That would make the summary's "general purpose" claim a bit questionable.

    7. Re:Overhyped by zachie · · Score: 1

      I disagree. The practical utility is a function of the number of downloads you get per compression operation, the cost of CPU time, and the amount of money that can be saved in bandwidth reduction. I can see how this can be an improvement to serve static content. For example, assuming browsers incorporate the capability to decompress it, lowering the bandwidth of Youtube by ~3% is an achievement.

    8. Re:Overhyped by Trepidity · · Score: 4, Informative

      One example that comes to mind: Android APKs use the zip format.

    9. Re:Overhyped by K.+S.+Kyosuke · · Score: 4, Interesting

      But it's practical merit is virtually nil.

      ...unless you're a large web-based company serving terabytes of identical textual files to end users using deflated HTTP streams.

      --
      Ezekiel 23:20
    10. Re:Overhyped by Goaway · · Score: 0

      It's too bad they didn't publish any kind of article that would explain to you what kind of content would benefit.

    11. Re:Overhyped by Goaway · · Score: 2

      In addition to all the other explanations of how you missed the point, Deflate is also used in PNG. This will allow you to make smaller PNG files, too, which can be quite a significant part of your bandwidth.

    12. Re:Overhyped by Anonymous Coward · · Score: 0

      Or you could use something like PAQ8 and improve upon gzip by factors measured with integers, but who's looking for actual performance here?

    13. Re:Overhyped by K.+S.+Kyosuke · · Score: 4, Informative

      In addition to all the other explanations of how you missed the point, Deflate is also used in PNG. This will allow you to make smaller PNG files, too, which can be quite a significant part of your bandwidth.

      Well, If you're Google and you detect Chrome on the client side, it might be even better for you to serve a WebP version instead. Out of a random sample of 1,000 PNG files, a lossless WebP version was at least 20% smaller in more than 50% of the cases (link).

      --
      Ezekiel 23:20
    14. Re:Overhyped by Anonymous Coward · · Score: 0

      And the decompression is faster when compression is higher, never mind the bandwidth savings. The reason for this is that processor spends more time copying from the cache memory and uses more string copy operations when the input is smaller.

    15. Re:Overhyped by AliasMarlowe · · Score: 4, Funny

      Android APK

      The hosts troll is a robot? Somehow, I'm not surprised.

      --
      Those who can make you believe absurdities can make you commit atrocities. - Voltaire
    16. Re:Overhyped by Nyder · · Score: 0

      Actually, they state that the 3-8% better maximum compression than zlib is 2-3 orders of magnitude longer to compress.

      I can't imagine what kind of content you're hosting that'd justify 3 orders of magnitude compression time to gain 3% compression.

      Static content that only has to be compressed once, yet is downloaded hundreds of thousands or millions of times. 3-8% is a pretty significant savings in that case.

      Word, when I'm downloading the latest pirated release of a 1080p movie, or some big ass game, that 3% will save the host a lot of bandwidth, which is good.

      Of course, with limited download amounts, that will even be better.

      Chances of this being used? Probably only for game "rips", everything else, nill.

      --
      Be seeing you...
    17. Re:Overhyped by nabsltd · · Score: 4, Insightful

      For example, assuming browsers incorporate the capability to decompress it, lowering the bandwidth of Youtube by ~3% is an achievement.

      I don't know why people keep mentioning Youtube, since all videos are already compressed in such a way that pretty much no external compression is going to gain anything.

      Although when compressing a video Zopfli might result in a smaller file compared to gzip, that doesn't mean either will be smaller than the original. All H.264 files should be using CABAC after the motion, macroblock, psychovisual, DCT, etc. stages, and that pretty much means that the resulting files have as much entropy per bit as possible. At that point, nothing can compress them further.

    18. Re:Overhyped by gweihir · · Score: 0

      One order of magnitude slower??? Then this is just stupid. There are compressors in this speed class that do far better than zlib. The stated compression gains do not even justify the effort of actually looking at this thing.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    19. Re:Overhyped by n7ytd · · Score: 3, Interesting

      If I understand this correctly, the point is to be compatible with zlib decompression. Obviously, you can bet much better compression with xz/lzma, for example, but that would be out of range for most browsers.

      Odd that Google doesn't just push to extend the supported compression formats to include more of these more modern compression libraries if this is a serious concern for them. This sounds like two guys using their 20% time to figure out a way to optimize the deflate algorithm. Kudos to them, but this is not comparable to releasing a royalty-free video codec or other large Googly-type project.

      According to the article, "Zopfli is 81 times slower than the fastest measured algorithm gzip -9" Almost two orders of magnitude of time taken, in return for a compression gain of 3%-8%. It would have been informative to know how much working memory was used vs. what gzip requires. This is a small gain of network bandwidth; trivial, even. But, if you're Google and already have millions of CPUs and petabytes of RAM running at less than 100% capacity, this is the type of small gain you might implement.

    20. Re:Overhyped by Anonymous Coward · · Score: 0

      Browsers don't decompress PAQ8 by default. Most/All do decompress LZ77.

    21. Re:Overhyped by Anonymous Coward · · Score: 3, Informative

      But the decompressors for those algorithms are not available in most web browsers, making them totally unusable for the stated use case.

      But hey, why read the article when you can whine about it blindly on /.?

    22. Re:Overhyped by sunami · · Score: 1

      Likely I'll stick to using pngout for that.

    23. Re:Overhyped by Goaway · · Score: 1

      Why, if this can do better?

    24. Re:Overhyped by Anonymous Coward · · Score: 0

      seems to me browsers need to start supporting more modern compression algorithms that are faster/better. if chrome handled other compression types, and google served chrome users content in that compression format, they would be able to get even more of the browser market until other browsers decided to do the same thing. and eventually all browsers would support better compression algorithms and more and more servers would start using them. thus making everyone happier.

      Welcome to Utopia. the world of sense and logic, where logic-minded beings don't seem to exist.

    25. Re:Overhyped by pjt33 · · Score: 1

      PNGcrush and kzip are the counterexamples which spring to mind. I think some of Charles Bloom's compressors are zlib-compatible too. I wonder what Zopfli is doing: some kind of optimal parse? If so, it's hardly novel.

    26. Re:Overhyped by Pausanias · · Score: 3, Interesting

      The numbers cited are for gzip. The improvement over 7-zip is much less than 3%; it's more like 1%, at the cost of a factor of four slowdown with respect to 7-zip. Note that this is for 7-zip when restricted to deflate-compatible formats only.

      Here's the paper:
      https://code.google.com/p/zopfli/downloads/list

    27. Re:Overhyped by Anonymous Coward · · Score: 0

      I don't know why people keep mentioning Youtube, since all videos are already compressed in such a way that pretty much no external compression is going to gain anything.

      Because people here has no clue about compression and information theory. Anything that comes from Googla has to be fantastic, right?

    28. Re:Overhyped by SuricouRaven · · Score: 3, Interesting

      Wrong field. For general-purpose compression formats, rar is already far more capable than this, and 7z is better still. But neither of these are suitable for webbrowsers to transparently decompress - there, gzip and DEFLATE still reigns supreme. Zopfil is backwards-compatible: Browsers that support gzip/DEFLATE will work with it, no updates required.

      Personally I think Google should have worked on increasing the number of decompressors browsers support - bzip would be nice, at least. The Accept-Encoding negotiation is already there, very easy to extend. But this will have to do.

    29. Re:Overhyped by DragonWriter · · Score: 1

      One order of magnitude slower??? Then this is just stupid. There are compressors in this speed class that do far better than zlib.

      And still can be decompressed by anything that can decompress gzip with no modification on the decompresser?

      (Note that this is important for many use cases, because browsers typically can handle decompressing gzipped HTTP content, so if you have compatible-but-better compression, you can deploy for your server content and browsers handle it with no changes on the client side.)

    30. Re:Overhyped by SuricouRaven · · Score: 2

      It's a matter of where. The extra resources are required on the server - even if the content is dynamic, it's quite possible that power and processor time will be cheap there. The corresponding savings are achieved on the clients, which includes smartphones - where connection quality ranges from 'none' to 'crap,' and the user will begrudge every last joule you need to display the page. It's worth throwing a lot of resources away on the server if it can save even a much smaller amount on the more-constrained client.

    31. Re:Overhyped by SuricouRaven · · Score: 3, Informative

      There are tricks to that h264 encoding to squeeze a bit more. You can improve the motion estimation by just throwing power at it, though the gains are asymptotic. Or increase the frame reference limit - that does great thing on animation, if you don't mind losing profile compliance. Things like that. Changing the source is also often of great benefit - if it's a noisy image, a bit of noise-removal filtering before compression can not just improve subjective quality but also allow for much more efficient compression. Interlaced footage can be converted to progressive, bad frame rate conversions undone - progressive video just compresses better. It's something of a hobby of mine.

      I wrote a guide on the subject: http://birds-are-nice.me/publications/Optimising%20x264%20encodes.htm

      You're right about Zopfli though. Regarding h264, it changes nothing.

    32. Re:Overhyped by Anonymous Coward · · Score: 0

      I use LZMA (7z) in my game engine's vertex and texture streaming. What I wound up having to do was to encapsulate it within a virtual file system and manually page in/out memory as needed. Relying on automated paging results in a lot of undesirable paging that made the algorithm noticeably stutter. As did just using it blindly without taking measures to ensure it's not reading/writing HDD unless absolutely needed.

    33. Re:Overhyped by citizenr · · Score: 4, Insightful

      Word, when I'm downloading the latest pirated release of a 1080p movie

      "word", and intend to download zipped h.264 files leads me to believe you are retarded.

      --
      Who logs in to gdm? Not I, said the duck.
    34. Re:Overhyped by sunami · · Score: 1

      You're right, but I'm assuming that it can't, since in my experience pngout usually beats others by more than just 3%.

    35. Re:Overhyped by Anonymous Coward · · Score: 0

      Now, cue the people who are going to do some basic arithmetic to "prove" me wrong,

      "queue" the people, is how you spell it, cue is another thing entirely...

    36. Re:Overhyped by Anonymous Coward · · Score: 0

      Great. You get that settled and I'll grab your browser.

    37. Re:Overhyped by wonkey_monkey · · Score: 1

      progressive video just compresses better.

      Well, now, hold on just a second - interlacing can be annoying to deal with, but the fact of the matter is that it allows you to throw away half of your raw data for only a 30% (or less, with modern deinterlacers) perceptual loss of quality - that is excellent compression. Now, if someone came up with it today, they'd be rightly heckled, but because it was around for decades even before the digital era, every modern TV has a good, or in some cases excellent, deinterlacer built in, and - if your target is to be displayed on a TV - it's foolish not to take advantage of that. Targeting computers as display devices is a different matter - the same advantages can be found (NVIDIA at the least has some deinterlacers built into their cards), but certainly can't be relied upon in the same way a TV's deinterlacer can.

      bad frame rate conversions undone

      Here's is my adventure with same - thought it might be of some interest.

      --
      systemd is Roko's Basilisk.
    38. Re:Overhyped by Anonymous Coward · · Score: 0

      Enforced inferiority, basically.

    39. Re:Overhyped by pjt33 · · Score: 1

      Have now RTFA. Still don't know what it's doing, but I was amused by the statement

      Zopfli is written in C for portability

      There are an awful lot of variables which are typed as just int or unsigned and yet whose width appears to matter.

    40. Re:Overhyped by SuricouRaven · · Score: 2

      Interlacing is good if you need to use analog electronics. But that 'annoying' goes beyond just annoying: It over-complicates everything. The compression benefits are more than offset by the reduced efficiency of the more modern encoding, plus almost every stage in the process - every filter, as well as the encoder and decoder - need to be interlacing-aware. It's an awkward, obsolete technology and I eagerly await the day it is no longer to be found outside of historical video.

      The link looks very interesting indeed. I've done a few restorations before, but you can't see any of them other than http://birds-are-nice.me/video/restorations.shtml - all the rest are of various copyrighted videos. I did one of Steamboat Willie to test some filters that was the most popular version on youtube for a time, until Disney DMCAed it.

    41. Re:Overhyped by Taco+Cowboy · · Score: 1

      Browsers don't decompress PAQ8 by default

      Well, perhaps it's time the browsers have built-in PAQ8 decompression ability as this may enable even more elegant utilization of the net structure, with more efficient ul/dl flow

      --
      Muchas Gracias, Señor Edward Snowden !
    42. Re:Overhyped by Anonymous Coward · · Score: 0

      Nope.

    43. Re:Overhyped by Jah-Wren+Ryel · · Score: 1

      Exactly my thoughts too - it is rare for any new compression algorithm to be less cpu intensive on the decompression side than what we already have. So, while adding new algorithms to the list that clients can negotiate with servers won't hurt, chances are the most band-width constrained clients won't support them anyway.

      --
      When information is power, privacy is freedom.
    44. Re:Overhyped by Anonymous Coward · · Score: 0

      This will allow you to make smaller PNG files, too, which can be quite a significant part of your bandwidth.

      Preventing graphic artist wankers from turning 16-color (4-bit) images into 32-bit PNGs -- simply to get a gratuitous alpha transparency channel -- will be far more effective at reducing the size of PNG files.

      I'm looking at you, Wikipedia.

    45. Re:Overhyped by MikeBabcock · · Score: 1

      All the PNG icons and graphics on your website perhaps?

      --
      - Michael T. Babcock (Yes, I blog)
    46. Re:Overhyped by MikeBabcock · · Score: 1, Funny

      They presumed a thinking public perhaps?

      I know, clearly their error lol

      --
      - Michael T. Babcock (Yes, I blog)
    47. Re:Overhyped by MikeBabcock · · Score: 1

      Ironically, PNGOUT also uses a custom compressor to replace the usual algorithm.

      http://www.codinghorror.com/blog/2007/03/getting-the-most-out-of-png.html

      --
      - Michael T. Babcock (Yes, I blog)
    48. Re:Overhyped by Goaway · · Score: 1

      Pngout uses kzip, which was included in the benchmarking of Zopfli, and which it seems to beat.

    49. Re:Overhyped by nabsltd · · Score: 1

      It's something of a hobby of mine.

      I wrote a guide on the subject: http://birds-are-nice.me/publications/Optimising%20x264%20encodes.htm

      x264 is easy at this point (CRF and --preset slower FTW).

      Right now, I'm trying to figure out how to isolate indivdual hues using AviSynth so that my color correction will only target very specific problem areas. I've done a decent job getting worst of the teal and orange look from some of the worst examples (The Terminator remaster, where there was nothing white in the entire movie..it was all blue tinted), as well as getting the green out of Fellowship of the Ring, but those are global changes to get known reference colors to look right.

      After that, I want to essentially color grade the movie again to fix the problems that are still left, but do it somewhat automatically, based on the existing color.

    50. Re:Overhyped by nabsltd · · Score: 1

      bad frame rate conversions undone

      Here's is my adventure with same - thought it might be of some interest.

      First, your link is broken. I fixed it in the quoting I did.

      Second, why did you bother, when all the Dr. Who from The Next Doctor onward were available in HD free-to-air in the correct frame rate? I have them sourced from the original broadcasts. There's a logo, true, but no commercials or cuts due to time constraints.

    51. Re:Overhyped by nabsltd · · Score: 1

      I've done a few restorations before, but you can't see any of them other than http://birds-are-nice.me/video/restorations.shtml - all the rest are of various copyrighted videos.

      Did you try Fizick's DeSpot for the Chevrolet commercial? It worked wonders for me on a HDTV broadcast of a crappy print of Private Benjamin, but I had to try dozens of different combinations of parameters to get the maximum clean with no false positives. It could be tweaked even better by using ConditionalReader and/or masking to not process the frames or areas of frames that had glaring false positives, but that's for some other day.

    52. Re:Overhyped by Anonymous Coward · · Score: 0

      Your OGVs seem to completely butcher the video, i realise you're hosting them on your own server, so expecting you to embed massive high quality files is possibly unreasonable, but they're horribly blocky viewed in the page, and obviously worse when full screen, is this down to theora sucking or the quality of the original transfer you used(which is described as "already of very high quality") limiting you?

    53. Re:Overhyped by nospam007 · · Score: 1

      "There are tricks to that h264 encoding to squeeze a bit more"

      Even Zöpfli was compressed a bit more, by omitting the umlaut it has in the original word.

    54. Re:Overhyped by Anonymous Coward · · Score: 0

      yeah, but omitting the umlaut is LOSSY compression, and that's no good for compressing javascript. Zöpfli != Zopfli dagnammit.

    55. Re:Overhyped by wonkey_monkey · · Score: 1

      First, your link is broken. I fixed it in the quoting I did.

      Oops... thanks.

      Second, why did you bother, when all the Dr. Who from The Next Doctor onward were available in HD free-to-air in the correct frame rate?

      Planet of the Dead onwards, actually - The Next Doctor has only been broadcast at SD, and is upscaled on the blu-ray. Being broadcast does not make something "available" ;)

      There's a logo, true

      There's one reason - although honestly I don't remember the original broadcasts having a logo. I've also never seen them available above 720p. Thirdly, the bitrate is a lot higher on blu-ray than from a broadcast.

      --
      systemd is Roko's Basilisk.
    56. Re:Overhyped by wonkey_monkey · · Score: 1

      It's an awkward, obsolete technology

      ...that's still being broadcast daily across thousands of channels all around the world...

      --
      systemd is Roko's Basilisk.
    57. Re:Overhyped by SuricouRaven · · Score: 1

      Not for much longer. It's on the decline.

    58. Re:Overhyped by SuricouRaven · · Score: 1

      The former, really. The videos are some mixture of ogv, webm, and one mp4 there somewhere. It's long been on my to-do list to get them all available as both webm and mp4, encoded to decent quality. I've just not gotten around to it. The Chevrolet one in particular has some nasty artifacts.

    59. Re:Overhyped by maxwell+demon · · Score: 1

      You can save a lot more joules by avoiding animated Flash ads and excessive JavaScript.

      Has anyone ever calculated the advertising contribution to global warming?

      --
      The Tao of math: The numbers you can count are not the real numbers.
    60. Re:Overhyped by wonkey_monkey · · Score: 1

      [citation needed]

      You really think those SD channels are going anywhere any time soon? Even for HD, all UK satellite channels (including Sky) are 1080i, as are most others in Europe.

      --
      systemd is Roko's Basilisk.
    61. Re:Overhyped by SuricouRaven · · Score: 1

      Actually, yes. Not any time soon, but gradually, over the next decade or so. Almost all new programs are made in HD, and even many of those SD channels are just duplicates of an HD channel maintained for compatibility.

    62. Re:Overhyped by bzipitidoo · · Score: 2

      Yes, I also wonder what they did. They don't say in their article, and I didn't want to spend time just now wading through the source code to find out for sure. But I suspect it's just throwing more CPU cycles at the compression problem so it can look further ahead.

      In this pointer compression, greedy often isn't best. Here's an example text to illustrate: "resident prevent president". The greedy approach is to always make a maximum length match. It would compress the example text as follows: "resident p(re)v(ent pre)(sident)", where the bracketed text is represented with pointers plus lengths, that is, the "(re)" would actually be encoded as a pointer to the start of the text with an instruction that 2 letters should be copied from that location. But often, not trying to match to the maximum possible length leads to greater compression. A compressor that looks at more options might come up with this: "resident p(re)v(ent p)(resident)". This is, I believe, what 7-zip, kzip, and all those other decompressor compatible improvements do. If you're willing to have the computer take more time, it can exhaustively try more possibilities to see which way produces the best compression. The decompressor will not know the difference, all it does is follow instructions about how many letters to copy from various locations in text it decompressed earlier. Zopfli is simply pushing this even further than 7-zip, so of course its compression will be a little better. Hardly worth dressing the technique up with a new name, as if it really was a new idea.

      --
      Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    63. Re:Overhyped by wonkey_monkey · · Score: 1

      Not for much longer.

      Not any time soon

      Have you considered a career in politics? :)

      --
      systemd is Roko's Basilisk.
    64. Re:Overhyped by pjt33 · · Score: 2

      That would be the optimal parse approach. Of course, the well-known problem with optimal parsing is that sometimes a sub-optimal parse turns out to be better once you take into account the Huffman step. It could be that they're focussing on the feedback between those two steps.

    65. Re:Overhyped by nabsltd · · Score: 1

      There's a logo, true

      There's one reason - although honestly I don't remember the original broadcasts having a logo. I've also never seen them available above 720p. Thirdly, the bitrate is a lot higher on blu-ray than from a broadcast.

      I could have sworn that my recordings had logos, but you're right...they don't. I guess I was thinking of the Sarah Jane Adventures, which do have logos on the HD broadcasts. I also have The Next Doctor as an HD broadcast, but I think you're right that it was a lower res source, now that I look at it.

      I resize to 1280x720 for most things when I store them in my library, so I don't really care about the higher res. As for the bitrate, most of it is likely wasted anyway. Run a Blu-Ray .m2ts through Bitrate Viewer and compare it to a re-compress using "--crf 18" on x264. You'll see that the Blu-Ray has essentially a constant bitrate, while x264 will put the bits where they are needed.

      For example, The Avengers Blu-Ray only varies by 74% down and 64% up from the average, while my re-encode varied by 97% down and 438% up. And, that's actually a really wide range for a Blu-Ray.

    66. Re:Overhyped by Anonymous Coward · · Score: 0

      good point, but should have used "intent"

    67. Re:Overhyped by Anonymous Coward · · Score: 0

      Personally I think Google should have worked on increasing the number of decompressors browsers support - bzip would be nice, at least.

      No, it wouldn't. Last time I did benchmarking, xz -0 beat bzip in both time and space (for my sample corpus, which was made up of virtual machine images).

  2. Wow, gzip -9 is very competitive for most usages by Antony+T+Curtis · · Score: 4, Insightful

    Looking at the data presented in the pdf, it seems to me that gzip does a fantastic job for the amount of time it takes to do it.

    --
    No sig. Move along - nothing to see here.
  3. vs. zlib by Citizen+of+Earth · · Score: 0

    I implement server software and a very important factor to me is how fast the library performs. Does this new one faster than zlib?

    1. Re:vs. zlib by Anonymous Coward · · Score: 0

      No, as stated, at maximum compression there is a 3-8% increased compression. But it takes 2-3 orders of magnitude longer to compress.

    2. Re:vs. zlib by gewalker · · Score: 1, Troll

      So important that you could not even be bothered to even look at the article that tells you ~100x slower, 5% better compression compared to zlib.

    3. Re:vs. zlib by MikeBabcock · · Score: 1

      Might want to upgrade your reading skills, even the summary says its slower.

      --
      - Michael T. Babcock (Yes, I blog)
  4. The interesting bit is this: by mrjb · · Score: 4, Insightful

    "Zopfli is a compression-only library, meaning that existing software can decompress the data." (source: http://littlegreenfootballs.com/page/294495_Google_Compression_Algorithm_Z). As long as the compression can be done on cached pages, hey- that's another 3-8% more people served with the same amount of bandwidth, without any additional requirements on the client side.

    --
    Visit http://ringbreak.dnd.utwente.nl/~mrjb/growingbettersoftware to download your free copy of the book
    1. Re:The interesting bit is this: by Anonymous Coward · · Score: 0

      ...assuming the server is entirely bandwith-limited and either serves up the same stuff over and over or has the time to compress stuff. Well, Wikipedia's cache servers would likely benefit from this.

    2. Re:The interesting bit is this: by Trepidity · · Score: 2

      Considering how slow it is (~100x slower than zlib), I doubt anyone will be using it for on-the-fly compression of web content. It'd only really make sense for one-time compression, e.g. Google might use this to slim Android APKs down a little bit.

    3. Re:The interesting bit is this: by stewsters · · Score: 1

      Or they may not re-compress their home page image every time they send it out. The system we use to scale images only scales and optimizes them once, then stores the scaled copies for repeated use. It takes up more space, but is much faster than re-scaling every time or sending the full image.

      I'm guessing whatever google uses does this even better. (and will soon use this new compression technique)

    4. Re:The interesting bit is this: by Jah-Wren+Ryel · · Score: 1

      As long as the compression can be done on cached pages, hey- that's another 3-8% more people served with the same amount of bandwidth,

      Can anyone address their methodology of testing? They talk about test corpa - but it isn't clear to me if they feed all off the data in each corpa into a single compression run or they individually compressed each file (necessitating a restart of the dictionary search for each one). If it is the former, that may be skewing their results as well since the typical web server isn't handing out 3MB+ files that often.

      --
      When information is power, privacy is freedom.
    5. Re:The interesting bit is this: by tepples · · Score: 1

      If it takes you 5 seconds to compress that cache page, with zopfli it could take you up to 8 minutes to compress.

      For something that updates once daily, that's 8 minutes out of 1,440.

    6. Re:The interesting bit is this: by drinkypoo · · Score: 1

      Websites get cached in chunks now so that parts of them can be dynamic and other parts not, and so that you can still gain the benefits of caching while you have content which is only partially dynamic. So when the chunks get cached, you compress them if they will be alive long enough to provide sufficient benefit.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    7. Re:The interesting bit is this: by Anonymous Coward · · Score: 0

      PNGs are typically not dynamic on most sites. PNGs are compressed using the zlib format. The practical upshot is, it take four seconds to save your web images than two seconds, done once -- then they save you 3% to 8% bandwidth each time they are accessed. Can't wait for this to be used in optipng or GIMP.

      Also, CSS and JavaScript are typically compressed and sometimes cached server side before sending. CSS and JavaScript are generally dynamic. So, they, too, can be compressed once, and gains seen on each access.

      Would it make sense for everyone to compressing their (mostly) static content server side using this algo? almost definatly, but since many don't set far-futures or serve static content from cookie-less domain.... I'm not holding my breath.

      Would it make sense to serve dynamic content as compressed using this algo? No, use gizip. It's the clear "bang for the CPU buck" winner.

    8. Re:The interesting bit is this: by Anonymous Coward · · Score: 0

      If your pages are taking more than fraction of a second to gz, you have other issues.

    9. Re:The interesting bit is this: by tepples · · Score: 1

      I was thinking 5 seconds vs. 8 minutes to gzip an entire collection of (static) pages.

  5. Re:Wow, gzip -9 is very competitive for most usage by Anonymous Coward · · Score: 5, Funny

    Looking at the data presented in the pdf, it seems to me that gzip does a fantastic job for the amount of time it takes to do it.

    Pfft. Another blatant corporate shill for gzip early in the Slashdot comments. You can't trust anybody on the internet these...

    Oh, wait, the data actually does say that. Huh. That's... a really weird feeling, having someone on the internet legitimately say something's good and have data to back it up.

  6. JavaScript libraries, for one thing by DragonWriter · · Score: 4, Insightful

    I can't imagine what kind of content you're hosting that'd justify 3 orders of magnitude compression time to gain 3% compression.

    In anything that is static enough that it will be downloaded many times in its lifetime, and not time sensitive enough that it needs to be instantly available when generated, very small gains in compression efficiency are worth paying very large prices in compression.

    If you, for just one of many Google-relevant examples, host a fair number of popular JavaScript libraries (used on both your own sites -- among the most popular in the world -- and vast numbers of third party sites that use your hosted versions) and commit, once you have accept a particular stable version of a library, to hosting it indefinitely, you've got a bunch of assets that are going to be static for a very long time, and accessed very large numbers of times. One time cost to compress is going to be dwarfed by even a miniscule savings in transfer costs for those.

    1. Re:JavaScript libraries, for one thing by zachie · · Score: 1

      Popular Youtube videos. Or dropbox -- their main costs are probably in bandwidth and storage, and they can push the (de)compression tasks to clients so it's free lunch.

    2. Re:JavaScript libraries, for one thing by wonkey_monkey · · Score: 1

      Popular Youtube videos... they can push the (de)compression tasks to clients so it's free lunch.

      That is pretty much what h264 does already...

      --
      systemd is Roko's Basilisk.
  7. Re:Wow, gzip -9 is very competitive for most usage by DigitAl56K · · Score: 1

    Yes, and gzip isn't so slow that it can only be used on static content. Even if you always generate into a cached version, do you really want to spend 81x the CPU time to gain a few percent in compression, and delay the content load on the client each time that happens?

  8. Compress once, cache the resulting .gz file by tepples · · Score: 1

    It's far slower, but it could be worth the extra CPU cost for rarely-changing data served to all users, such as big blobs of CSS or JavaScript or public Atom feeds. Compress when it changes, cache the resulting .gz file, serve that.

  9. how about 7-zip? by Anonymous Coward · · Score: 0

    Never ran actual tests myself, but I've been told 7-zip's encoder already does DEFLATE better than zlib. I wonder how Zopfli looks compared to it.

    1. Re:how about 7-zip? by DragonWriter · · Score: 2

      Never ran actual tests myself, but I've been told 7-zip's encoder already does DEFLATE better than zlib. I wonder how Zopfli looks compared to it.

      The PDF linked in TFS is a paper which has detailed results of the testing, including time and size comparison with other DEFLATE implementations, including 7-zips.

  10. Understanding the use case for Zopfli by DragonWriter · · Score: 2

    "... without any additional requirements on the client side."

    Except for the 2-3 ordeers of magnitude longer to compress.

    For server-hosted content, compression is obviously done on the server side, so that's not an additional requirement on the client side.

    If it takes you 5 seconds to compress that cache page, with zopfli it could take you up to 8 minutes to compress.

    You probably wouldn't use this for time-sensitive, dynamic things like a cache page. You use it for completely static things, like, say, Google's hosted copies of stable versions of jQuery and other popular JavaScript libraries, and you do it once when you start hosting the content, not on the fly.

    1. Re:Understanding the use case for Zopfli by aztracker1 · · Score: 1

      Or for their own HTML/CSS/JS served millions of times a day (gmail, etc)

      --
      Michael J. Ryan - tracker1.info
  11. Re:Wow, gzip -9 is very competitive for most usage by DragonWriter · · Score: 4, Insightful

    Yes, and gzip isn't so slow that it can only be used on static content. Even if you always generate into a cached version, do you really want to spend 81x the CPU time to gain a few percent in compression, and delay the content load on the client each time that happens?

    Why would you recompress static content every time it is accessed? For frequently-accessed, static content (like, for one example, the widely-used JavaScript libraries that Google hosts permanently), you compress it once, and then gain the benefit on every transfer.

    For dynamic content, you probably don't want to do this, but if you're Google, you can afford to spend money getting people to research the best tool for very specific jobs.

  12. No thanks by Anonymous Coward · · Score: 0

    I'll stick with compacted wrappers for JS functions plus LZMA binaries encoded in base91 and decoded on browser end for anything needing serious compression for the web.
    So far I haven't even needed to really use that anyway, base91 and compacted code works fine.
    On top of server-browser compression as well.
    Don't forget those vector textures. Screw pixels, get with the times.

    This looks interesting though. LZMA JS Decoder
    There seems to be a bunch of different projects for this.

    1. Re:No thanks by DragonWriter · · Score: 1

      On top of server-browser compression as well.

      A key use case of this for server-browser compression, which is compatibility with gzip decompression is important.

  13. how does it compare to kzip? by xrmb · · Score: 2

    I wonder how it compares to kzip (http://advsys.net/ken/utils.htm) which is trying to do the same just better and faster. Also google is trying to save 3% on gzipped content, but they dont use optipng/pngout on their images... up to 10% gains... jpegs, never heard of jpegtran google? it saves 20% on my digicam pictures (leaving exif and all meta intact).

    1. Re:how does it compare to kzip? by Anonymous Coward · · Score: 0

      If you would have RTFA, kzip was one of the 4 they compared with

    2. Re:how does it compare to kzip? by serviscope_minor · · Score: 2

      I wonder how it compares to kzip

      RTFA. No seriously. RTFA. It's in there.

      --
      SJW n. One who posts facts.
  14. Re:Wow, gzip -9 is very competitive for most usage by n7ytd · · Score: 4, Funny

    Looking at the data presented in the pdf, it seems to me that gzip does a fantastic job for the amount of time it takes to do it.

    So the obvious conclusion is that what we need is a gzip -11 option.

  15. Redundant and not even good... by gweihir · · Score: 0, Redundant

    There is zero need for this. There are a number of free compressors available that already cover the spectrum well, for example lzop, gzip, bzip2, xz (in order of better compression and more resource consumption). The stated 3-8% better compression in relation to zlib is not even worth considering using this. Also, anything new will have bugs and unexpected problems.

    This is over-hyped and basically a complete non-event.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    1. Re:Redundant and not even good... by Anonymous Coward · · Score: 0

      And which of those are supported in IE and mobile phones?

    2. Re:Redundant and not even good... by Anonymous Coward · · Score: 0

      OK, let me know when Microsoft has implemented xz decompression in Internet Explorer then!

    3. Re:Redundant and not even good... by DragonWriter · · Score: 2

      There are a number of free compressors available that already cover the spectrum well, for example lzop, gzip, bzip2, xz (in order of better compression and more resource consumption).

      Those (except, naturally, gzip) are not compatible with gzip decompressors (of the type found in virtually every browser), so they are useless for the main use case for this, which is as for server side compression for web content that is completely invisible, compared to gzip, to web clients (requiring no changes and having similar-to-traditional-gzip decompression time), allowing reduced bandwidth (and, assuming the content is precompressed, which given the speed it better be, reduced storage space for the host) saving the host money and reducing client-side latency and bandwidth use.

    4. Re:Redundant and not even good... by Anonymous Coward · · Score: 0

      You are so wrong. But that's your loss I guess.

  16. Re:Wow, gzip -9 is very competitive for most usage by Anonymous Coward · · Score: 0

    Most systems for image optimization, content reordering, inlining, linearization, etc. already work on models where the worst-case performance is "no impact" because the heavy-lifting is done asynchronously.

    The first client doesn't get the compressed version -- it just gets whatever the origin server sent. But if caching is triggered by the first request the content queues for further out-of-band processing, and when the compressed version is ready subsequent requests get that version instead. And you can take it even further than that -- you could always compress with deflate -3 when you write to the cache, then when CPU load is low go back and re-compress the most frequently requested documents with this more expensive algorithm.

  17. Re:Wow, gzip -9 is very competitive for most usage by Anonymous Coward · · Score: 0

    Look, I'm all for discussion, but it's obvious that you never configured a web server before or that you're pretty horrible at it.

    Compress for static content is done -once- per file. That's it. If the file changes, you recompress it, and it's done for the rest of your life.

    The client hardly even feels the decompression delay, so that's pretty irrelevant.

  18. Re:I block all Google domains in my HOSTS file by Anonymous Coward · · Score: 0

    What's the name of this illness exactly? Is sounds related to schizophrenia but I can't put my finger on it. Anyway, good luck.

  19. googleborgs don't know how to format data or text by girlinatrainingbra · · Score: 1

    re Looking at the data presented in the pdf,...
    .
    One obvious truth that is appartent from look at the data presented in the pdf is that those in the googleborg don't know how to format data or text in their documents. (they've scrubbed all doc-generation info from the document before pdf'ing it, but considering that the fonts are all Arial family [Arial-BoldMT, Arial-ItalicMT, Arial-MT, fully embedded truetype fonts] it's possible to guess what word processor they used)
    :>p
    The other thing that is obvious from looking at their data (table at the bottom of page 2) is that the google team does not know how to right-align numerical integer values so as to allow easy visual comparison and what the hell is the deal with using apostrophes as comma separators for integers at thousands and millions ??? I kept trying to parse it for thirty seconds before I figured out how fucked up their data printing is. Use commas, use periods like the europeans, but why the hell use apostrophes which mean "minutes" (which are 1/60th of a degree) or "feet" (which are 1/5280th of a mile, eh, ;>) )??? Benchmark Corpus size gzip-9 7-zip kzip Zopfli
    Alexa-top-10k 693'108'837 128'498'665 125'599'259 125'163'521 123'755'118

  20. H.264 isn't open-sourced by Taco+Cowboy · · Score: 1

    Just in case you forgot, there are a lot of patents behind the H.264 standard, and a lot of patent trolls owning those patents

    --
    Muchas Gracias, Señor Edward Snowden !
    1. Re:H.264 isn't open-sourced by wonkey_monkey · · Score: 2

      I didn't forget. It's just utterly irrelevant to the current discussion.

      --
      systemd is Roko's Basilisk.
  21. Is this general purpose? by Anonymous Coward · · Score: 0

    I use advdef (7zip deflate implementation from MAME) to improve compression for both gz encoded static files and PNG images (after pngcrush / optipng). advcomp actually includes a tool called advpng that doesn't handle grayscale PNG images whereas advdef will work fine.

    Can this tool do that to an already compressed file?

    1. Re:Is this general purpose? by Ken_g6 · · Score: 1

      This is a library. The source code provided today doesn't appear to build an executable.

      Does anyone know if anyone has produced any executables with this yet, or at least source I can build an executable from? Anything to improve compression on zipfiles, like kzip? Anything to improve compression on PNGs like pngout?

      --
      (T>t && O(n)--) == sqrt(666)
    2. Re:Is this general purpose? by Anonymous Coward · · Score: 0

      This is a library. The source code provided today doesn't appear to build an executable.

      ??? Quick test...

      6136 test.html (original)
      2620 test.html.gz (gzip -9)
      2562 test-zopfli.html.gz (zopfli -i1000)
      2559 test-advdef.html.gz (advdef -z4 test.html.gz)

      One test on one tiny data set but I don't think I'll bother writing code to test on PNG. In case any Google recruiters are reading, here's my new compression program called flopzi...

      #!/bin/sh
      gzip -9 $1 && advdef -z4 "${1}.gz"

  22. Shut Up !!! by Anonymous Coward · · Score: 0

    > This team is clearly just trying to make a name for themselves ...

    Shut Up !!!

  23. Re:googleborgs don't know how to format data or te by MikeBabcock · · Score: 2

    I presume a different country of origin for the research ...

    cf. http://en.wikipedia.org/wiki/Decimal_mark#Examples_of_use

    In Brazil, Germany, Netherlands, Denmark, Italy, Portugal, Romania, Sweden, Slovenia, Greece and much of Europe: 1 234 567,89 or 1.234.567,89. In handwriting, 1234567,89 is also seen, but never in Denmark, the Netherlands, Portugal, Sweden or Slovenia. In Italy a straight apostrophe is also used in handwriting: 1'234'567,89.

    In Switzerland: There are two cases. 1'234'567.89 is used for currency values. An apostrophe as thousands separator along with a "." as decimal symbol. For other values the SI style 1 234 567,89 is used with a "," as decimal symbol. When handwriting, a straight apostrophe is often used as the thousands separator for non-currency values: 1'234'567,89.

    --
    - Michael T. Babcock (Yes, I blog)
  24. Why wasn't this code simply merged into zlib? by funky_vibes · · Score: 1

    Just add another compression level and merge the code.
    Everything and everyone reaps the benefits automatically as soon as they update.

  25. Re:googleborgs don't know how to format data or te by girlinatrainingbra · · Score: 1

    Ah, thank you very much for the extra info. My sincere apologies for not knowing about that particular formatting option. I've played with internationalization settings before, but I had never seen that one.
    .
    You might have to concede, however, that the bizarre use of flush left justification or left-alignment of integer values does not make much sense. Numbers are easier to parse and perceive the relative log-magnitude of when they are presented as decimal aligned for integers or floating point values or as right-aligned columns of text for integer values.

  26. Re:Wow, gzip -9 is very competitive for most usage by theCoder · · Score: 1

    Your corporate shill quip made me remember a passing comment I once overheard that went something like:

    ... so what this GNU company has done is license the zip technology to make the gzip format ...

    I almost cried.

    --
    "Save the whales, feed the hungry, free the mallocs" -- author unknown
  27. The word Zopfli by Anonymous Coward · · Score: 0

    Even as a native German speaker I misread the name until I saw that it was supposed to be a Swiss word.
    "Zopf" means braid and "li" is the minimization that is used (IMHO way too much) in German speaking parts of Switzerland.
    It is pronounced tsopf-lee.

  28. Re:I block all Google domains in my HOSTS file by Anonymous Coward · · Score: 0

    logorrhea

  29. Re:googleborgs don't know how to format data or te by MikeBabcock · · Score: 1

    Oh totally, in fact, right-aligned is also incorrect. Using a decimal tab-stop is the correct option.

    --
    - Michael T. Babcock (Yes, I blog)