A three-dimensional data encoding method of encoding a plurality of three-dimensional points, the method comprising:
- selecting one prediction mode from among two or more prediction modes, the two or more prediction modes each being used to calculate a predicted value of an attribute information of a three-dimensional point;
- calculating, based on the one prediction mode selected, a predicted value of attribute information of a first three-dimensional point in accordance with attribute information of one or more second three-dimensional points;
- and
- generating a bitstream including an index to indicate the one prediction mode selected.