1. A method for data compression comprising the steps of: storing a plurality of character codes of fixed bit length indicative of character symbols in a corresponding plurality of registers, said character codes having an arbitrary format and being user transparent in that said character codes are specific to a memory and independent of a user of said memory; directly addressing a memory with a first column address and first row address, said column address being at least a bit segment of a first one of said character codes stored in one of said plurality of registers, and said row address being at least a portion of a second one of said character codes stored in another one of said registers; and reading a first compressed character code of fixed bit length from a first address location within said memory corresponding to the permutation of said first and second ones of said plurality of character codes and indicative of the permutation of the corresponding character symbols; addressing said memory with a second column address and a second row address, said second row address being at least a bit segment of a third one of said character codes, said second column address being at least a bit segment of said compressed character code just read; and reading a second compressed character code of fixed bit length from a second location in said memory addressed by said second column and row address, said compressed character code indicative of a three character symbol permutation, said second column address being indexed to address a distinct portion of said memory, whereby character codes representative of groups of character symbols are generated to compress character symbol density per unit code.