me.lemire.integercompression
Class OptPFD
java.lang.Object
me.lemire.integercompression.OptPFD
- All Implemented Interfaces:
- IntegerCODEC
public final class OptPFD
- extends Object
- implements IntegerCODEC
OptPFD: fast patching scheme by Yan et al.
Follows:
H. Yan, S. Ding, T. Suel, Inverted index compression and query processing
with optimized document ordering, in: WWW �09, 2009, pp. 401�410.
using Simple16 as the secondary coder.
It encodes integers in blocks of 128 integers. For arrays containing
an arbitrary number of integers, you should use it in conjunction
with another CODEC:
IntegerCODEC ic = new Composition(new OptPFD(), new VariableByte()).
Note that this does not use differential coding: if you are working on sorted
lists, you must compute the deltas separately. (Yes, this is true even though
the "D" at the end of the name probably stands for delta.)
For multi-threaded applications, each thread should use its own OptPFD
object.
- Author:
- Daniel Lemire
Field Summary |
protected static int[] |
bits
|
protected static int[] |
invbits
|
Constructor Summary |
OptPFD()
Constructor for the OptPFD CODEC. |
bits
protected static final int[] bits
invbits
protected static final int[] invbits
OptPFD
public OptPFD()
- Constructor for the OptPFD CODEC.
compress
public void compress(int[] in,
IntWrapper inpos,
int inlength,
int[] out,
IntWrapper outpos)
- Description copied from interface:
IntegerCODEC
- Compress data from an array to another array.
Both inpos and outpos are modified to represent how much data was
read and written to if 12 ints (inlength = 12) are compressed to 3
ints, then inpos will be incremented by 12 while outpos will be
incremented by 3 we use IntWrapper to pass the values by reference.
- Specified by:
compress
in interface IntegerCODEC
- Parameters:
in
- input arrayinpos
- location in the input arrayinlength
- how many integers to compressout
- output arrayoutpos
- where to write in the output array
uncompress
public void uncompress(int[] in,
IntWrapper inpos,
int inlength,
int[] out,
IntWrapper outpos)
- Description copied from interface:
IntegerCODEC
- Uncompress data from an array to another array.
Both inpos and outpos parameters are modified to indicate new
positions after read/write.
- Specified by:
uncompress
in interface IntegerCODEC
- Parameters:
in
- array containing data in compressed forminpos
- where to start reading in the arrayinlength
- length of the compressed data (ignored by some
schemes)out
- array where to write the compressed outputoutpos
- where to write the compressed output in out
toString
public String toString()
- Overrides:
toString
in class Object
Copyright © 2014. All Rights Reserved.