Variable-length encoder 16 feeds a CBP as an input symbol H1 to
variable-length code output part 30. Coded symbol memory 31 supplies CBPs
in neighboring blocks as coding map table reference information H2 to
coding map table provider 32. Coding map table provider 32 determines a
coding map table used in coding of the CBP, based on these CBPs in the
neighboring blocks, and provides a coding map table H4 to variable-length
code output part 30. Variable-length coding table provider 33 feeds a
variable-length coding table H5 to variable-length code output part 30.
Then the coding target CBP is subjected to variable-length coding, and
the resultant is outputted as coded data D9. This allows information
source coding of coding symbols to be performed efficiently according to
the coding condition and the property of image.