A data compression and decompression apparatus, the apparatus comprising: a compressor for calculating costs between domain blocks in a search range and a range block through forward searching, for selecting the domain block having the lowest cost to the range block as a reference domain block through backward searching, for generating distance information based on a distance between the reference domain block and the range block and difference information based on a difference between the reference domain block and the range block, and for encoding the distance information and difference information into compressed data of the range block, wherein the costs comprise a number of bits of the compressed data; a decompressor for finding the reference domain block on the basis of the distance information and for decoding the compressed data into original data of the range block with reference to the difference information; wherein the compressed data comprises the distance information including a distance value indicating a number of blocks between the range block and the reference domain block and the difference information including a difference value indicating difference between the range block and the reference domain block; characterized by a global table for storing difference values between the domain blocks and range blocks; and a local table for storing difference values that do not exist in the global table but occurs during a compression process; wherein the compressor is adapted to determine whether the difference value between the range block and the reference domain block is registered to at least one of the global and local table as an index, and (i) if the difference value is registered as an index, to read out the index as the difference value of the difference information, and register the difference value which does not exist in the global and local tables to the local table, (ii) when an index of the global or local table fails to be created, generate an exception flag and to encode the exception flag and the data of the range block into the compressed data of the range block; and wherein the decompressor is adapted to (i) receive the global table and the local table, to read out the difference value matched with the index of the global table or the local table, and recover the data of the range block by performing an exclusive or operation on the difference value and the data of the reference domain block, and (ii) decode, when detecting the exception flag in the difference information, the data contained in the difference information into the data of the range block. a compressor for calculating costs between domain blocks in a search range and a range block through forward searching, for selecting the domain block having the lowest cost to the range block as a reference domain block through backward searching, for generating distance information based on a distance between the reference domain block and the range block and difference information based on a difference between the reference domain block and the range block, and for encoding the distance information and difference information into compressed data of the range block, wherein the costs comprise a number of bits of the compressed data; a decompressor for finding the reference domain block on the basis of the distance information and for decoding the compressed data into original data of the range block with reference to the difference information; wherein the compressed data comprises the distance information including a distance value indicating a number of blocks between the range block and the reference domain block and the difference information including a difference value indicating difference between the range block and the reference domain block; characterized by a global table for storing difference values between the domain blocks and range blocks; and a local table for storing difference values that do not exist in the global table but occurs during a compression process; wherein the compressor is adapted to determine whether the difference value between the range block and the reference domain block is registered to at least one of the global and local table as an index, and (i) if the difference value is registered as an index, to read out the index as the difference value of the difference information, and register the difference value which does not exist in the global and local tables to the local table, (ii) when an index of the global or local table fails to be created, generate an exception flag and to encode the exception flag and the data of the range block into the compressed data of the range block; and wherein the decompressor is adapted to (i) receive the global table and the local table, to read out the difference value matched with the index of the global table or the local table, and recover the data of the range block by performing an exclusive or operation on the difference value and the data of the reference domain block, and (ii) decode, when detecting the exception flag in the difference information, the data contained in the difference information into the data of the range block.