Although HTTP adaptive streaming has been well documented for the cost-effective delivery of video streaming, it is still a great challenge to play back video smoothly with high quality under the fluctuating network conditions. In this paper, we proposed a novel bitrate adaptation algorithm for HTTP adaptive streaming. Our algorithm employed two approaches for throughput estimation and bitrate selection, which was evaluated on our testbed (a fully functional HTTP Live Streaming system) over a network, emulated using DummyNet. First, the throughput estimation method, based on the prediction of the difference between the estimated and instantaneous throughputs, was observed to respond smoothly to short-term fluctuations and rapidly to large fluctuations. Second, the bitrate selection algorithm, based on piecewise functions to define the variation range of the current bitrate, was found to result in smoother changes in quality with a higher average quality. The results of our experiments demonstrated the prospects of our bitrate adaptation algorithm for HTTP adaptive streaming.