As a technique of coding images for a plurality of viewpoints, disparity prediction coding in which, when coding images for a plurality of viewpoints, by predicting disparity between the images, an amount of information is reduced, and a decoding method corresponding to the coding method have been proposed. A vector that represents disparity between viewpoint images is called a disparity vector. The disparity vector is a two-dimensional vector having an element in a horizontal direction (x component) and an element in a vertical direction (y component), and is calculated for each of blocks which are regions obtained by dividing one image. For acquiring images for a plurality of viewpoints, cameras that are arranged at the respective viewpoints are generally used. In coding for the plurality of viewpoints, the viewpoint images are coded as mutually different layers in a plurality of layers. A coding method for a moving image formed of a plurality of layers is generally called scalable coding or hierarchy coding. In the scalable coding, high coding efficiency is realized by performing prediction between layers. A layer serving as a reference, for which prediction between layers is not performed, is called a base layer, and other layers are called enhancement layers. Scalable coding when layers are formed of viewpoint images is called view scalable coding. In this case, the base layer is also called a base view, and the enhancement layer is also called a non-base view. Further, in addition to the view scalable, scalable coding when layers are formed of a texture layer (image layer) and a depth layer (distance image layer) is called three-dimensional scalable coding.
Examples of the scalable coding include, in addition to the view scalable coding, spatial scalable coding (in which a picture having a low resolution is processed as a base layer and a picture having a high resolution is processed as an enhancement layer), and SNR scalable coding (in which a picture having low image quality is processed as a base layer and a picture having a high resolution is processed as an enhancement layer). In the scalable coding, for example, a picture of a base layer is used as a reference picture in coding of a picture of an enhancement layer in some cases.
In NPL 1, a technique called illumination compensation in which an illumination change in neighbor pixels of a prediction target block are used for predicting the prediction target block is known.
Moreover, in NPL 2, a technique called LM prediction in which a chroma image of a prediction target block is prediction from a corresponding luminance image is known.