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

Mashal al-shboul shboul8989 at yahoo.com
Wed Mar 14 08:13:40 PDT 2012

```Thanks for replying.
actually 2^15 in decimal is the same as 0x8000 in hex.
the idea is clear for me that i should scale down each unsigned sample by 0x8000 for becoming signed. I hope that will work correctly as input raw samples to Speex codec. do you think so ?

Regards,
Mash'al

________________________________
From: Steve Checkoway <s at pahtak.org>
To: Mashal al-shboul <shboul8989 at yahoo.com>
Cc: Arthurc <arthurc99 at yahoo.com>; "speex-dev at xiph.org" <speex-dev at xiph.org>
Sent: Wednesday, March 14, 2012 9:01 AM
Subject: Re: [Speex-dev] converting unsigned short sample to signed short sample

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:

>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?.
>>
>>
>>
>>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/2190a660/attachment.htm
```