public void encodePredictedValue(final int value, final int predictor) {
        int p = predictor < 0 ? -predictor : predictor;
        int noisybits = 0;

        while (p > 2) {
            noisybits++;
            p >>= 1;
        }
        encodeNoisyDiff(value - predictor, noisybits);
    }
encode a signed integer with the typical range and median taken from the
predicted value

@see #decodePredictedValue
main/src/main/java/cgeo/geocaching/brouter/codec/StatCoderContext.java