To improve the coding efficiency of image data.
Input image symbols are compared with image symbols registered in dictionary arrays 21-27 at comparison processing sections 41-47. An index denoting a notching location is given from a binary encoder 6 to a variable length coder 8, in which the index is variable-length-coded. When they do not match, just after the code denoting the mismatch, an input image symbol is added as it is. On the other hand, an adaptive movement processing section 7 calculates an error between the input image symbol and the coded image symbol in the vicinity and a moving destination index is given to a control circuit section 5 and a moving distance is decided with the dictionary index and switches 31-37 are adaptively controlled to move the image symbol in the dictionary arrays 21-27.