As more and more human motion data are becoming widely used to animate computer graphics figures in many applications, the growing need for compact storage and fast transmission makes it imperative to compress motion data. We propose a data-driven method for efficient compression of human motion sequences by exploiting both spatial and temporal coherences of the data. We first segment a motion sequence into subsequences such that the poses within a subsequence lie near a low dimensional linear space. We then compress each segment using principal component analysis. Our method achieves further compression by storing only the key frames' projections to the principal component space and interpolating the other frames in-between via spline functions. The experimental results show that our method can achieve significant compression rate with low reconstruction errors.