1. An apparatus comprising: a memory unit for storing data streams; and a processor coupled to said memory unit, the processor configured to perform a compression operation and a deduplication operation in a single pass, said processor being operable to use a subset of data from a data stream to generate a reference data block corresponding to said subset of data, to compare a first hash value computed for said subset of data to a second hash value computed for said reference data block, to generate a compressed and deduplicated representation of said subset of data by at least modifying header data corresponding to said subset of data responsive to a detected match between said first hash value and said second hash value in one of said separate hash tables, wherein said first hash value and said second hash value are stored in separate hash tables.