A system comprising: a plurality of macropixels, wherein each macropixel of the plurality of macropixels comprises an array of single photon avalanche diodes (SPADs), wherein each SPAD is configured to provide a respective photosignal when triggered in response to detecting light from an external environment of the system; a plurality of pipelined adders, wherein each adder of the plurality of adders is communicatively coupled to a respective portion of the plurality of macropixels; and a controller comprising a memory and at least one processor, wherein the at least one processor executes instructions stored in the memory so as to carry out operations, the operations comprising: during a listening period comprising a plurality of time bins, receiving, at each adder of the plurality of adders, respective photosignals from the respective portion of the plurality of macropixels; and causing each adder of the plurality of adders to provide an output based on the respective photosignals from the respective portion of the plurality of macropixels, wherein the output comprises a series of frames, wherein each frame of the series of frames corresponds to a respective time bin of the plurality of time bins, and wherein each frame of the series of frames comprises a number of SPADs of the respective portion of the plurality of macropixels that were triggered during the corresponding time bin. a plurality of macropixels, wherein each macropixel of the plurality of macropixels comprises an array of single photon avalanche diodes (SPADs), wherein each SPAD is configured to provide a respective photosignal when triggered in response to detecting light from an external environment of the system; a plurality of pipelined adders, wherein each adder of the plurality of adders is communicatively coupled to a respective portion of the plurality of macropixels; and a controller comprising a memory and at least one processor, wherein the at least one processor executes instructions stored in the memory so as to carry out operations, the operations comprising: during a listening period comprising a plurality of time bins, receiving, at each adder of the plurality of adders, respective photosignals from the respective portion of the plurality of macropixels; and causing each adder of the plurality of adders to provide an output based on the respective photosignals from the respective portion of the plurality of macropixels, wherein the output comprises a series of frames, wherein each frame of the series of frames corresponds to a respective time bin of the plurality of time bins, and wherein each frame of the series of frames comprises a number of SPADs of the respective portion of the plurality of macropixels that were triggered during the corresponding time bin. during a listening period comprising a plurality of time bins, receiving, at each adder of the plurality of adders, respective photosignals from the respective portion of the plurality of macropixels; and causing each adder of the plurality of adders to provide an output based on the respective photosignals from the respective portion of the plurality of macropixels, wherein the output comprises a series of frames, wherein each frame of the series of frames corresponds to a respective time bin of the plurality of time bins, and wherein each frame of the series of frames comprises a number of SPADs of the respective portion of the plurality of macropixels that were triggered during the corresponding time bin.