private static T4_T6_Tables.Entry lowerBound(final T4_T6_Tables.Entry[] entries, final int value) {
        int first = 0;
        int last = entries.length - 1;
        do {
            final int middle = first + last >>> 1;
            if (entries[middle].value <= value && (middle + 1 >= entries.length || value < entries[middle + 1].value)) {
                return entries[middle];
            }
            if (entries[middle].value > value) {
                last = middle - 1;
            } else {
                first = middle + 1;
            }
        } while (first < last);

        return entries[first];
    }
Decompress T.6 encoded data. No EOLs, except for 2 consecutive ones at the end (the EOFB, end of fax block). No RTC. No fill bits anywhere. All data is
2D encoded.

@param compressed compressed byte data
@param width      image width
@param height     image height
@return the decompressed data
@throws ImagingException if it fails to read the compressed data
src/main/java/org/apache/commons/imaging/formats/tiff/itu_t4/T4AndT6Compression.java