A method of encoding a point cloud to generate a bitstream of compressed point cloud data representing a three-dimensional location of a physical object, the point cloud being located within a volumetric space recursively split into sub-volumes and containing points of the point cloud, each of the points having a geometric location within the volumetric space, wherein an occupancy bit associated with each respective sub-volume indicates whether that respective sub-volume contains at least one of the points, the method comprising: determining an occupancy score for each child sub-volume of a parent sub-volume, where the occupancy score for each child sub-volume is dependent on the occupancy status of a plurality of neighbouring sub-volumes neighbouring the parent sub-volume, wherein the occupancy status of a neighbouring sub-volume indicates whether the neighbouring sub-volume is occupied or not, and a respective weight assigned to each of the neighbouring sub-volumes vis-à-vis that child sub-volume, wherein the respective weight reflects a strength of correlation between occupancy of that neighbouring sub-volume and occupancy of that child sub-volume; for each child sub-volume of the parent sub-volume, context-adaptively entropy encoding occupancy data for the child sub-volume based, at least in part, on its occupancy score to generate a bitstream; wherein context-adaptively entropy encoding occupancy data for the child sub-volume includes: selecting a context, based on the occupancy score for that child sub-volume, for coding the occupancy bit associated with that child sub-volume, and context-adaptively entropy coding that occupancy bit based on the selected context to generate the bitstream; and outputting the bitstream of compressed point cloud data. determining an occupancy score for each child sub-volume of a parent sub-volume, where the occupancy score for each child sub-volume is dependent on the occupancy status of a plurality of neighbouring sub-volumes neighbouring the parent sub-volume, wherein the occupancy status of a neighbouring sub-volume indicates whether the neighbouring sub-volume is occupied or not, and a respective weight assigned to each of the neighbouring sub-volumes vis-à-vis that child sub-volume, wherein the respective weight reflects a strength of correlation between occupancy of that neighbouring sub-volume and occupancy of that child sub-volume; the occupancy status of a plurality of neighbouring sub-volumes neighbouring the parent sub-volume, wherein the occupancy status of a neighbouring sub-volume indicates whether the neighbouring sub-volume is occupied or not, and a respective weight assigned to each of the neighbouring sub-volumes vis-à-vis that child sub-volume, wherein the respective weight reflects a strength of correlation between occupancy of that neighbouring sub-volume and occupancy of that child sub-volume; for each child sub-volume of the parent sub-volume, context-adaptively entropy encoding occupancy data for the child sub-volume based, at least in part, on its occupancy score to generate a bitstream; wherein context-adaptively entropy encoding occupancy data for the child sub-volume includes: selecting a context, based on the occupancy score for that child sub-volume, for coding the occupancy bit associated with that child sub-volume, and context-adaptively entropy coding that occupancy bit based on the selected context to generate the bitstream; and selecting a context, based on the occupancy score for that child sub-volume, for coding the occupancy bit associated with that child sub-volume, and context-adaptively entropy coding that occupancy bit based on the selected context to generate the bitstream; and outputting the bitstream of compressed point cloud data.