In one aspect, the disclosed technique detects common leading byte patterns
in the integers so that these patterns need only be stored once in the
encoded byte stream. Those integers that share a common leading byte
pattern are stored in truncated form, without their common leading bytes.
These truncated integers may themselves be further examined to determine
if any of them share additional common leading bytes beyond those already
detected. Thus, the technique lends itself naturally to description using
the language of trees. Integers with a common leading byte pattern are
stored as child nodes, their parent being the node containing the common
byte pattern. Child nodes consist only of those bytes remaining after the
initial byte pattern has been extracted; the greater the number of
children, the greater are the efficiency gains. All the children of a
given tree or subtree are similarly examined for common leading byte
patterns, ignoring those bytes that are already accounted for in their
ancestor nodes. In a second aspect, the disclosed technique makes use of
"clustering", a second type of locality that is not reached by the
interval concept. A cluster is a sequence of singleton integers that are
very close together but do not form a contiguous interval. The technique
recognizes that such a cluster can be compactly stored as a bitmap, in
which each active bit ("1-bit") represents a member of the cluster. The
choice of bitmap size (e.g., 1 byte, 2 bytes, etc.) can be calibrated to
suit the clustering characteristics of the input data set.
In una funzione, la tecnica rilevata rileva i modelli principali comuni di byte nei numeri interi in modo che questi modelli debbano soltanto essere immagazzinati una volta nel flusso messo di byte. Quei numeri interi che ripartiscono un modello principale comune di byte sono immagazzinati nella forma troncata, senza loro byte principali comuni. Questi numeri interi troncati possono essi stessi più ulteriormente essere esaminati per determinare se c'è ne di loro i byte principali comuni supplementari della parte oltre quelli già rilevassero. Quindi, la tecnica si presta naturalmente alla descrizione usando la lingua degli alberi. I numeri interi con un modello principale comune di byte sono immagazzinati come nodi del bambino, il loro genitore che è il nodo che contiene il modello comune di byte. I nodi del bambino sono costituiti soltanto da quei byte restanti dopo che il modello iniziale di byte sia stato estratto; più grande il numero di bambini, più grandi è i guadagni di efficienza. Tutti i bambini di dato albero o sotto-albero sono esaminati similmente per i modelli principali comuni di byte, ignorando quei byte che già sono rappresentati nei loro nodi dell'antenato. In una seconda funzione, la tecnica rilevata usa "ragruppare", un secondo tipo di località che non è raggiunta dal concetto di intervallo. Una serie di ingranaggi è una sequenza dei numeri interi del singleton che sono insieme molto vicini ma non forma un intervallo attiguo. La tecnica riconosce che una tal serie di ingranaggi può in modo compatto essere immagazzinata come indirizzamento a bit, in cui ogni punta attiva ("1-bit") rappresenta un membro della serie di ingranaggi. La scelta del formato a memoria d'immagine (per esempio, 1 byte, 2 byte, ecc.) può essere calibrato per soddisfare le caratteristiche ragruppare dell'insieme di dati di input.