Details for motion compensation

I would like to know details of how to apply motion compensation for the point clouds from lidar.
The lidar points from one sweep exactly form a circle, even though the ego-vehicle moves quite fast and the lidar rotates with the frequency of 20Hz. I think there should be some corrections applied on the pointclouds. Could you please provide some specific details and references on the motion compensation ?

@junge_zhang there is ego motion compensation over the course of the sweep (the point clouds which are stored in nuScenes have already undergone the compensation). The compensation algorithm uses signals from the odometry and IMU. However, the ego motion compensation is internal to the lidar sensor, and is thus a black box to us. Consequently, we do not know of the specifics / details.