func Compress4X(in []byte, s *Scratch) (out []byte, reUsed bool, err error) {
	s, err = s.prepare(in)
	if err != nil {
		return nil, false, err
	}
	if false {
		const parallelThreshold = 8 << 10
		if len(in) < parallelThreshold || runtime.GOMAXPROCS(0) == 1 {
			return compress(in, s, s.compress4X)
		}
		return compress(in, s, s.compress4Xp)
	}
	return compress(in, s, s.compress4X)
}
Compress4X will compress the input. The input is split into 4 independent blocks
and compressed similar to Compress1X.
The output can be decoded using Decompress4X.
Supply a Scratch object. The scratch object contains state about re-use,
So when sharing across independent encodes, be sure to set the re-use policy.
package huff0
import (
	"fmt"
	"runtime"
	"sync"
)
func Compress1X(in []byte, s *Scratch) (out []byte, reUsed bool, err error) {
	s, err = s.prepare(in)
	if err != nil {
		return nil, false, err
	}
	return compress(in, s, s.compress1X)
}