A method of encoding a point cloud to generate a bitstream of compressed point cloud data, the point cloud being defined in a tree structure having a plurality of nodes (154, 156) having parent-child relationships and that represent the geometry of a volumetric space recursively split into sub-volumes and containing the points of the point cloud, wherein occupancy of sub-volumes of a volume is indicated using a bit sequence with each bit of the bit sequence indicating occupancy of a respective sub-volume in a scan order within the volume, and wherein a volume has a plurality of neighbouring volumes, a pattern of occupancy of the neighbouring volumes being a neighbour configuration, the method is characterized by: for at least one bit in the bit sequence of the volume, determining that a context reduction condition is met, the context reduction condition comprising determining that one or more previously-coded occupancy bits is associated with one or more respective sub-volumes positioned between the sub-volume associated with said at least one bit and one or more of said plurality of neighbouring volumes, and, if the context reduction condition is met, selecting a reduced context set that contains fewer contexts than the product of a count of neighbour configurations and a number of previously-coded bits in the bit sequence by removing, from an available set of contexts, contexts associated with the occupancy status of said one or more of the neighbouring volumes shielded by said one or more respective sub-volumes associated with said one or more previously-coded occupancy bits; and selecting, for coding said at least one bit, a context from the reduced context set based on an occupancy status of at least some of the neighbouring volumes and at least one previously-coded bit of the bit sequence; otherwise selecting, for coding said at least one bit, a context from the available set of contexts based on an occupancy status of at least some of the neighbouring volumes and at least one previously-coded bit of the bit sequence; entropy encoding said at least one bit based on the selected context using a binary entropy encoder to produce encoded data for the bitstream; and updating the selected context. determining that a context reduction condition is met, the context reduction condition comprising determining that one or more previously-coded occupancy bits is associated with one or more respective sub-volumes positioned between the sub-volume associated with said at least one bit and one or more of said plurality of neighbouring volumes, and, if the context reduction condition is met, selecting a reduced context set that contains fewer contexts than the product of a count of neighbour configurations and a number of previously-coded bits in the bit sequence by removing, from an available set of contexts, contexts associated with the occupancy status of said one or more of the neighbouring volumes shielded by said one or more respective sub-volumes associated with said one or more previously-coded occupancy bits; and selecting, for coding said at least one bit, a context from the reduced context set based on an occupancy status of at least some of the neighbouring volumes and at least one previously-coded bit of the bit sequence; otherwise selecting, for coding said at least one bit, a context from the available set of contexts based on an occupancy status of at least some of the neighbouring volumes and at least one previously-coded bit of the bit sequence; entropy encoding said at least one bit based on the selected context using a binary entropy encoder to produce encoded data for the bitstream; and updating the selected context.