code: @Override
  	public byte[] binaryDiff(final RevisionCodecData codecData, final Diff diff)
  		throws UnsupportedEncodingException, EncodingException
  	{
  
  		byte[] bData = encode(codecData, diff);
  		if (MODE_ZIP_COMPRESSION) {
  
  			Deflater compresser = new Deflater();
  			compresser.setInput(bData);
  			compresser.finish();
  
  			byte[] output = new byte[1000];
  			ByteArrayOutputStream stream = new ByteArrayOutputStream();
  
  			int cLength;
  			do {
  				cLength = compresser.deflate(output);
  				stream.write(output, 0, cLength);
  			}
  			while (cLength == 1000);
  
  			output = stream.toByteArray();
  			if (bData.length + 1 < output.length) {
  				return bData;
  			}
  			else {
  
  				stream = new ByteArrayOutputStream();
  				stream.write(new byte[] { -128 }, 0, 1);
  				stream.write(output, 0, output.length);
  
  				return stream.toByteArray();
  			}
  		}
  
  		return bData;
  	}
docs: /*
  (non-Javadoc)
  
  @see
  de.tud.ukp.kulessa.delta.data.codec.RevisionEncoderInterface#binaryDiff
  (de.tud.ukp.kulessa.delta.data.codec.RevisionCodecData,
  de.tud.ukp.kulessa.delta.data.tasks.content.Diff)