1. An apparatus for data compression comprising: an identifier which identifies a plurality of irredundant patterns in a data set; and an extractor which extracts at least a portion of said plurality of irredundant patterns from said data set to generate a compressed data set, wherein said identifier identifies said plurality of irredundant patterns according to an irredundant pattern discovery algorithm, and wherein said irredundant pattern discovery algorithm comprises: initializing a set of irredundant patterns in said data set; constructing said set of irredundant patterns for each solid character; constructing location lists for said set of irredundant patterns, said set of irredundant patterns being iteratively adjusted based on said location lists until no further changes occur to said set of irredundant patterns; and updating said set of irredundant patterns.