QUOTE(amigo @ Sep 30 2006, 22:54)

I am looking for an open source library or algorithm to upsampling pcm file from 8k to 16k(or 32k is better).
Since system limitation, integer (fixed point) is better than floating-point. And, speed is more important than quality.
libsamplerate is a starting point. It does need floating point though. If it's all about performance, then coding a simple zeroeth order hold or linear interpolation SRC program with fixed point would be trivial. I can describe the algorithms required if you need them.
QUOTE(amigo @ Sep 30 2006, 22:54)

Additionally, how to convert 8 bitspersample data to 16 bitspersample?
The fastest way would be simple sign extension. It's likely that your hardware (it sounds like you are targetting an embedded system) will have an instruction to provide sign extension from 8 to 16 (ARMv5, x86 and others have such instructions). If you are writing in C, then a good compiler should generate these instructions from an explicit or implicit cast.