title: Difference: LZ77 vs. LZ4 vs. LZ4HC (compression algorithms)?
body: <p>I understand the LZ77 and LZ78 algorithms. 
  I read about LZ4 <a href="http://www.brutaldeluxe.fr/products/crossdevtools/lz4/index.html" rel="noreferrer">here</a> and <a href="http://fastcompression.blogspot.co.uk/2011/05/lz4-explained.html" rel="noreferrer">here</a> and found <a href="http://code.google.com/p/lz4/source/browse/trunk/lz4hc.h?r=113" rel="noreferrer">code for it</a>.</p>
  
  <p>Those links described the LZ4 block format. But it would be great if someone could explain (or direct me to some resource explaining):</p>
  
  <ul>
  <li>How LZ4 is different from LZ77?</li>
  <li>How is LZ4HC different from LZ4? </li>
  <li>What idea makes the LZ4HC algorithm so fast? </li>
  </ul>