<div dir="ltr"><div><div><div><div><div>Hello Mark,<br><br></div>The resulting 8 bit file has a lot of squelching noise compared to the 16 bit output from OPUS decoder.<br></div>During encode I am using<br><br>popi16fmtBuffer[ui32Loop] = (opus_int16)pcRdBuf[ui32Loop];<br><br></div>And during decode since the data is in the lower 8 bit I use<br><br>pc8bitSamples[ui32Loop] = ((unsigned short)pcop16OutBuf[ui32Loop] ^ 0x80);<br><br></div>Regards<br></div>Amit<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jan 9, 2016 at 2:39 PM, Amit Ashara <span dir="ltr">&lt;<a href="mailto:ashara.amit@gmail.com" target="_blank">ashara.amit@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Hello Mark,<br><br></div><div>Thanks. Let me try the proposed configuration first to make sure that linear 8-bit PCM is retrieved.<br></div><div><br></div>Regards<span class="HOEnZb"><font color="#888888"><br></font></span></div><span class="HOEnZb"><font color="#888888">Amit<br></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jan 9, 2016 at 12:28 PM, Mark Harris <span dir="ltr">&lt;<a href="mailto:mark.hsj@gmail.com" target="_blank">mark.hsj@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">opus_decode() produces 16-bit signed linear PCM, and<br>
opus_decode_float() produces 32-bit floating point PCM that is useful<br>
when you want a higher bit depth.<br>
<br>
If you need 8-bit linear PCM then a simple solution would be to use<br>
only the top 8 bits of each 16-bit sample from opus_decode().  Note<br>
that the WAV format uses unsigned rather than signed integers for<br>
8-bit linear PCM.  (It uses signed for larger sample sizes and AIFF<br>
uses signed for all sizes.)  So if you are writing 8-bit linear PCM to<br>
WAV then you would need something like (((unsigned short)sample ^<br>
0x8000) &gt;&gt; 8) to convert from signed to unsigned and get the top 8<br>
bits of each sample.<br>
<br>
You will achieve better quality, however, if you apply dither.<br>
opusdec applies dither by default if the output is not floating point,<br>
although it does not support 8-bit output.<br>
<span><font color="#888888"><br>
 - Mark<br>
</font></span><div><div>_______________________________________________<br>
opus mailing list<br>
<a href="mailto:opus@xiph.org" target="_blank">opus@xiph.org</a><br>
<a href="http://lists.xiph.org/mailman/listinfo/opus" rel="noreferrer" target="_blank">http://lists.xiph.org/mailman/listinfo/opus</a><br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>