[Speex-dev] converting unsigned short sample to signed short sample

Steve Checkoway s at pahtak.org
Wed Mar 14 00:01:56 PDT 2012


I don't understand why you're subtracting 2^15 - 1.  Assuming you really do have unsigned samples (which is very odd) that have 0x8000 as the mid point of the range, then you need to subtract 0x8000, as I believe I pointed out already.

By mid point, I mean if you have a pure tone (i.e., a sine wave) that has unsigned range 0 to 0xffff, then the mid point is 0x8000. The mid point should be translated to zero. 

If your samples are represented some other way, you have to tell us.


-- 
Stephen Checkoway



On Mar 13, 2012, at 23:28, Mashal al-shboul <shboul8989 at yahoo.com> wrote:

> Thanks a lot for replying,
> The question now is , after subtracting 32767 from each unsigned sample, will the new signed samples represent the same original voice ? 
>      For explanation, assume "Hi" is said in 8000 unsigned sample ,if i subtract 32767 from each sample and play the resulting 8000 sample as signed PCM samples,will they be "Hi" ?!
> 
> Forgive me about my questions , but it's important for me and i am new to the stuff
> Best Regards,
> Mash'al
> 
> From: Arthurc <arthurc99 at yahoo.com>
> To: Mashal al-shboul <shboul8989 at yahoo.com> 
> Sent: Wednesday, March 14, 2012 5:58 AM
> Subject: Re: [Speex-dev] converting unsigned short sample to signed short sample
> 
> I assumed that you have unsigned input from your sound card / codec, etc.
> Actually, it is unlikely in today's hardware platform for audio application.
> 
> If that is really the case, you can just do..
> 
> short output = ((long) input) - 32767
> 
> Well, maybe it is possible to do some bit manipulation to achieve the same thing.
> 
> Regards
> Arthur 
> 
> On 2012年3月14日, at 上午11:21, Mashal al-shboul <shboul8989 at yahoo.com> wrote:
> 
>>     Hi All,
>> I would like to get your help in my problem,
>> 
>> we know that Speex codec takes samples of type short (signed), range:-2^15 to2^15 -1 , my problem is that i have samples of type 
>> unsigned short ,range: 0 to 2^16 -1. so, what should i do in order to apply speex on my unsigned samples ?.
>>      There is  a proposed solution to subtract 2^15-1 from each unsigned short to get it signed short, my question: is this method safe in keeping the samples meaningful for speex's processing algorithms?. 
>> i hope i receive help from you. Thanks in advance
>> 
>> Regards,
>> Mash'al
>> _______________________________________________
>> Speex-dev mailing list
>> Speex-dev at xiph.org
>> http://lists.xiph.org/mailman/listinfo/speex-dev
> 
> 
> _______________________________________________
> Speex-dev mailing list
> Speex-dev at xiph.org
> http://lists.xiph.org/mailman/listinfo/speex-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20120314/b6f807ac/attachment-0001.htm 


More information about the Speex-dev mailing list