1. A data compression system, comprising: a vectorizer configured to convert data into a series of data vectors; a predictor configured to make a prediction of a current data vector based on at least one previous data vector, the predictor being coupled to the vectorizer for receiving the data vectors; a hierarchical lookup table configured to map residuals to a set of codes so that one of the codes is generated in response to each of the data vectors, each of the residuals representing a difference between the current data vector and the prediction, the lookup table being coupled to the predictor for receiving the data vectors; and wherein the hierarchical lookup table comprises at least a first stage lookup table designed using a codebook design procedure incorporating block transforms and a final stage lookup table designed using a tree structured codebook design procedure such that the residuals are mapped to the set of codes by successive utilization of the first stage and final stage lookup tables.