A coding method for performing variable-length coding on two-dimensional coefficients of a block which are obtained by performing frequency transformation on picture data of the block that has a predetermined size of pixels, the coding method comprising: scanning the two-dimensional coefficients of the block in a predetermined order starting from a low frequency component toward a high frequency component so as to obtain scanned coefficients; performing variable-length coding on the scanned coefficients from a high frequency component toward a low frequency component using a plurality of variable length code tables (1641a-1641g); wherein each of the plurality of variable length code tables (1641a-1641g) includes a plurality of variable length codes which correspond to the non-zero coefficients, wherein said variable-length coding on the scanned coefficients is performed on the non-zero coefficients of the scanned coefficients and said variable-length coding on the non-zero coefficients is performed by switching between a plurality of variable length code tables (1641a-1641g) each of which is assigned a table number and a threshold such that the first table is assigned the lowest threshold, and each following table (1641b-1641g) is assigned one threshold which is different to and greater than all of the previously assigned thresholds; wherein said variable-length coding on the non-zero coefficients starts using the first table and when the absolute value (|L|) of a current non-zero coefficient to be coded exceeds the threshold assigned to the table (1641a-1641g) used for coding the current non-zero coefficient, the code table (1641a-1641g) is switched to the following code table (1641b-1641g) having the greater assigned threshold, the threshold value used for checking whether the absolute values (|L|) of the non-zero coefficients exceed the threshold is changed to the threshold assigned to said switched table (1641b-1641g), and the next non-zero coefficient following the current non-zero coefficient is coded using said switched table (1641b-1641g); and wherein a rate of increase in code length, corresponding to an increase in absolute values (|L|) of coefficients, of the variable length codes included in each of the variable length code tables (1641a-1641g) becomes smaller as the table number assigned to each of the variable length code tables (1641a-1641g) becomes larger. scanning the two-dimensional coefficients of the block in a predetermined order starting from a low frequency component toward a high frequency component so as to obtain scanned coefficients; performing variable-length coding on the scanned coefficients from a high frequency component toward a low frequency component using a plurality of variable length code tables (1641a-1641g); wherein each of the plurality of variable length code tables (1641a-1641g) includes a plurality of variable length codes which correspond to the non-zero coefficients, wherein said variable-length coding on the scanned coefficients is performed on the non-zero coefficients of the scanned coefficients and said variable-length coding on the non-zero coefficients is performed by switching between a plurality of variable length code tables (1641a-1641g) each of which is assigned a table number and a threshold such that the first table is assigned the lowest threshold, and each following table (1641b-1641g) is assigned one threshold which is different to and greater than all of the previously assigned thresholds; wherein said variable-length coding on the non-zero coefficients starts using the first table and when the absolute value (|L|) of a current non-zero coefficient to be coded exceeds the threshold assigned to the table (1641a-1641g) used for coding the current non-zero coefficient, the code table (1641a-1641g) is switched to the following code table (1641b-1641g) having the greater assigned threshold, the threshold value used for checking whether the absolute values (|L|) of the non-zero coefficients exceed the threshold is changed to the threshold assigned to said switched table (1641b-1641g), and the next non-zero coefficient following the current non-zero coefficient is coded using said switched table (1641b-1641g); and wherein a rate of increase in code length, corresponding to an increase in absolute values (|L|) of coefficients, of the variable length codes included in each of the variable length code tables (1641a-1641g) becomes smaller as the table number assigned to each of the variable length code tables (1641a-1641g) becomes larger.