<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: g726 over RTP in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984588#M21653</link>
    <description>Thank you so much.. I did the same just like yours but for 10ms and it now works.&lt;BR /&gt;I was able to send it to a decoder of some other g726 implementation and I get clear audio.&lt;BR /&gt;&lt;BR /&gt;Thanks again.</description>
    <pubDate>Thu, 21 Jul 2005 19:51:15 GMT</pubDate>
    <dc:creator>deepak_shenoy</dc:creator>
    <dc:date>2005-07-21T19:51:15Z</dc:date>
    <item>
      <title>g726 over RTP</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984583#M21648</link>
      <description>Does anybody know how to send the output of g726 encode function&lt;BR /&gt;ippsEncode_G726_16s8u() over RTP..? &lt;BR /&gt;Can the output of the above function be sent directly as 40 bytes (for 32kbps for e.g)?&lt;BR /&gt;&lt;BR /&gt;Thanks for help</description>
      <pubDate>Wed, 20 Jul 2005 04:45:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984583#M21648</guid>
      <dc:creator>deepak_shenoy</dc:creator>
      <dc:date>2005-07-20T04:45:10Z</dc:date>
    </item>
    <item>
      <title>Re: g726 over RTP</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984584#M21649</link>
      <description>&lt;DIV&gt;Hi,&lt;/DIV&gt;
&lt;DIV&gt;No, the output of the ippsEncode_G726_16s8u() function can't be sent directly over RTP. You should pack it. For 32 kbps bitrate codewordis 4 bits. So theRTP payload format for the G726-32 looks as follows:&lt;/DIV&gt;
&lt;DIV&gt; 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7....&lt;/DIV&gt;
&lt;DIV&gt;b1b2b3b4a1a2a3a4d1d2d3d4c1c2c3c4....&lt;/DIV&gt;
&lt;DIV&gt;Where 7 is LSB of the first byte. a4 is the LSB of the first codeword. b4 is the LSB of the second codeword. And ithasn't gotanypayload-specific header.&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;You should remember that default packet lenght is 20 ms. G726 bitsream doesn't contains any information about bitrate, so you should guees about it from the payload type. Payload type for G726-32should be defined dynamically by non-RTP means.&lt;/DIV&gt;
&lt;DIV&gt;Igor S. Belyakov&lt;/DIV&gt;</description>
      <pubDate>Wed, 20 Jul 2005 11:52:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984584#M21649</guid>
      <dc:creator>Igor_B_Intel1</dc:creator>
      <dc:date>2005-07-20T11:52:18Z</dc:date>
    </item>
    <item>
      <title>Re: g726 over RTP</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984585#M21650</link>
      <description>I am sorry..I am not sure I understand..&lt;BR /&gt;Would you have a code snippet to show this..?</description>
      <pubDate>Wed, 20 Jul 2005 23:48:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984585#M21650</guid>
      <dc:creator>deepak_shenoy</dc:creator>
      <dc:date>2005-07-20T23:48:10Z</dc:date>
    </item>
    <item>
      <title>Re: g726 over RTP</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984586#M21651</link>
      <description>Would it be like this for eg..?&lt;BR /&gt;&lt;BR /&gt;If out out of encoder looks like &lt;BR /&gt;&lt;BR /&gt;01 03 03 03 04 04 05 03 04 04 04&lt;BR /&gt;&lt;BR /&gt;After packing, it should look like&lt;BR /&gt;&lt;BR /&gt;31 33 44 35 44 ....&lt;BR /&gt;&lt;BR /&gt;40 bytes -&amp;gt; 20 bytes&lt;BR /&gt;&lt;BR /&gt;Should the remaining 20 bytes be 0 for 32kbps payload of 40 bytes</description>
      <pubDate>Thu, 21 Jul 2005 01:28:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984586#M21651</guid>
      <dc:creator>deepak_shenoy</dc:creator>
      <dc:date>2005-07-21T01:28:14Z</dc:date>
    </item>
    <item>
      <title>Re: g726 over RTP</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984587#M21652</link>
      <description>&lt;DIV&gt;Hi,&lt;/DIV&gt;
&lt;DIV&gt;Output of the &lt;FONT size="2"&gt;ippsEncode_G726_16s8u doesn't contain packet bitstream. It contains codewords in separate bytes, so for 32 kbps only 4 LSB bits of each byte are used.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;This function packs bitstream for20 ms for 32 kbps:&lt;/DIV&gt;
&lt;DIV&gt;//////////////////////&lt;/DIV&gt;
&lt;DIV&gt;void PackG726_32_20ms(const char *pEncoderOut, char *pBitsream)&lt;/DIV&gt;
&lt;DIV&gt;{&lt;/DIV&gt;
&lt;DIV&gt; int i;&lt;/DIV&gt;
&lt;DIV&gt; for(i=0;i&amp;lt;80;i+=8) { /*Loop for 1 ms*/&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt; pBitsream[0] = (pEncoderOut[0] &amp;amp; 0xf) | ((pEncoderOut[1] &amp;amp; 0xf)&amp;lt;&amp;lt;4);&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt; pBitsream[1] = (pEncoderOut[2] &amp;amp; 0xf) | ((pEncoderOut[3] &amp;amp; 0xf)&amp;lt;&amp;lt;4);&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt; pBitsream[2] = (pEncoderOut[4] &amp;amp; 0xf) | ((pEncoderOut[5] &amp;amp; 0xf)&amp;lt;&amp;lt;4);&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt; pBitsream[3] = (pEncoderOut[6] &amp;amp; 0xf) | ((pEncoderOut[7] &amp;amp; 0xf)&amp;lt;&amp;lt;4);&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt; pBitsream += 4;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;pEncoderOut += 8;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt; }&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;return;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;}&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;How to use:&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;char pInputPCM[160];/*Input PCM data*/&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;char pUnPckDst[80];/*Encoder output*/&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;char pPackDst[40];/*Packed bitstream*/&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;IppsEncoderState_G726_16s *&lt;FONT size="2"&gt;pEncObj;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;int sizeObj;/*Size of pEncObj*/&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;ippsEncodeGetStateSize_G726_16s8u(&amp;amp;sizeObj);/*Get size of the pEncObj*/&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;pEncObj = (IppsEncoderState_G726_16s *)malloc(sizeObj);&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;P&gt;ippsEncodeInit_G726_16s8u(pEncObj,&lt;FONT size="2"&gt;IPP_SPCHBR_32000&lt;/FONT&gt;);/*Init Encoder*/&lt;/P&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;/*encode*/&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;if(ippsEncode_G726_16s8u(pEncObj, pInputPCM, pUnPckDst, 80) != ippStsNoErr){&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt; return -1;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;/*Pack encoder output*/&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;PackG726_32_20ms(pUnPckDst, pPackDst);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;free(pEncObj);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;///////////////////&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;So the size of the bitstream for 20 ms packet will be 40 bytes.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;Igor S. Belyakov&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 21 Jul 2005 12:52:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984587#M21652</guid>
      <dc:creator>Igor_B_Intel1</dc:creator>
      <dc:date>2005-07-21T12:52:25Z</dc:date>
    </item>
    <item>
      <title>Re: g726 over RTP</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984588#M21653</link>
      <description>Thank you so much.. I did the same just like yours but for 10ms and it now works.&lt;BR /&gt;I was able to send it to a decoder of some other g726 implementation and I get clear audio.&lt;BR /&gt;&lt;BR /&gt;Thanks again.</description>
      <pubDate>Thu, 21 Jul 2005 19:51:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984588#M21653</guid>
      <dc:creator>deepak_shenoy</dc:creator>
      <dc:date>2005-07-21T19:51:15Z</dc:date>
    </item>
    <item>
      <title>Re: g726 over RTP</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984589#M21654</link>
      <description>&lt;DIV&gt;&lt;/DIV&gt;
&lt;P&gt;Strange thing happend on G729 RTP bitorder(at use of Intel IPP 4.x).&lt;/P&gt;
&lt;P&gt;I deocode G726, but the bitorder is&lt;/P&gt;
&lt;P&gt;a0 is the most significantbit of "Sample a" and also the most significant bit of the byte.&lt;/P&gt;
&lt;P&gt;a0 a1 a2 a4 b0 b1 b2 b3&lt;/P&gt;
&lt;P&gt;instead ofb0 b1 b2 b3 a0 a1 a2 a4 (according to rfc 3551)&lt;/P&gt;
&lt;P&gt;also on other Bitrates&lt;/P&gt;
&lt;P&gt;a0 a1 a2 b0 b1 b2 c0 c1&lt;/P&gt;
&lt;P&gt;instead of c0 c1 b0 b1 b2 a0 a1 a3 (according torfc 3551)&lt;/P&gt;
&lt;P&gt;where 0 is the most significant bit.&lt;/P&gt;
&lt;P&gt;It works only with the first bit order, but this is different to descrition of rfc.&lt;/P&gt;
&lt;P&gt;It cant be AAL2-Format because SIP says eg. G726-32 (and not G726-32-AAL2).&lt;/P&gt;
&lt;P&gt;It works with all formats, but only with the wrong bitorder.&lt;BR /&gt;I like to understand why it works with the wrong bitorder format and not with the one descirbed in rfc 3551. Whats happend?&lt;/P&gt;
&lt;P&gt;Hints are welcome.&lt;/P&gt;
&lt;P&gt;Regards&lt;/P&gt;
&lt;P&gt;telefonie&lt;/P&gt;</description>
      <pubDate>Tue, 08 Nov 2005 20:41:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984589#M21654</guid>
      <dc:creator>telefonie</dc:creator>
      <dc:date>2005-11-08T20:41:20Z</dc:date>
    </item>
    <item>
      <title>Re: g726 over RTP</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984590#M21655</link>
      <description>&lt;P&gt;Yes, you areright.In IPP 4.x was AAL2 format for G726. In IPP 5.0 it is rewrited according to the rfc3551. It is affected only on bitordering.&lt;/P&gt;
&lt;P&gt;You can use my previouse code examlpe with direct call to the ippsXXX functions or do simple converter (AAL2 &amp;lt;&amp;gt; RFC 3551) if you will use IPP 4.x with USC interface.&lt;/P&gt;
&lt;P&gt;Igor S. Belyakov&lt;/P&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 08 Nov 2005 21:02:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984590#M21655</guid>
      <dc:creator>Igor_B_Intel1</dc:creator>
      <dc:date>2005-11-08T21:02:31Z</dc:date>
    </item>
    <item>
      <title>Re: g726 over RTP</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984591#M21656</link>
      <description>&lt;P&gt;Also posted in &lt;A href="https://community.intel.com/en-us/forums/showthread.php?t=50063#32404"&gt;http://softwareforums.intel.com/en-us/forums/showthread.php?t=50063#32404&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I had gone back thru recent IPPv5.1 sample code and compared to RTP bit-packing defined in RFC-3551--everything in the sample code looked to follow the spec. &lt;/P&gt;
&lt;P&gt;I recently saw a note regarding the G726 bit-packing in the Asterisk web site (&lt;A href="http://www.asterisk.org/doxygen/Config_sip.html"&gt;&lt;FONT color="#0860a8"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;A href="http://www.asterisk.org/doxygen/Config_sip.html" target="_blank"&gt;http://www.asterisk.org/doxygen/Config_sip.html&lt;/A&gt;). In the Asterisk config it says that some phones use the AAL2 packing instead of the RTP packing. I'm not sure if there is a good catalog of which phones do which flavor of G726 bit-packing. It may be a good idea to provide both in the sample code, please. :)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Jul 2006 11:32:52 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984591#M21656</guid>
      <dc:creator>rporter</dc:creator>
      <dc:date>2006-07-19T11:32:52Z</dc:date>
    </item>
    <item>
      <title>Re: g726 over RTP</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984592#M21657</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I'm not sure if itbe in sample code. If you extrimelly need AAL2 packing I can help you.&lt;/P&gt;
&lt;P&gt;Igor S. Belyakov&lt;/P&gt;</description>
      <pubDate>Fri, 21 Jul 2006 19:37:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984592#M21657</guid>
      <dc:creator>Igor_B_Intel1</dc:creator>
      <dc:date>2006-07-21T19:37:15Z</dc:date>
    </item>
    <item>
      <title>Re: g726 over RTP</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984593#M21658</link>
      <description>&lt;P&gt;Hi Igor, &lt;/P&gt;
&lt;P&gt;I would appreciate some help. I tried just a "nibble-flip" of the encoded/packed bytes, and that did not seem to work with live traffic.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Rick&lt;/P&gt;</description>
      <pubDate>Tue, 26 Sep 2006 19:28:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984593#M21658</guid>
      <dc:creator>rporter</dc:creator>
      <dc:date>2006-09-26T19:28:30Z</dc:date>
    </item>
    <item>
      <title>Re: g726 over RTP</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984594#M21659</link>
      <description>&lt;P&gt;Hi!&lt;/P&gt;
&lt;P&gt;Is the following true(and if it is true how can I do it efficiently)? If I would like to decode a G.726 stream which stores1 sample on 2 bit and 4 sample in 1 byte then I have to convert it to store 1 sample on 1 byte before I can decode it.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Bendeguy&lt;/P&gt;</description>
      <pubDate>Tue, 26 Sep 2006 20:30:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984594#M21659</guid>
      <dc:creator>bendeguy</dc:creator>
      <dc:date>2006-09-26T20:30:12Z</dc:date>
    </item>
    <item>
      <title>Re: g726 over RTP</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984595#M21660</link>
      <description>&lt;P&gt;Hi Rick,&lt;/P&gt;
&lt;P&gt;Coudl you provide some portion of your "live traffic" (which encoded and audible :))? I try to find right solution.&lt;/P&gt;
&lt;P&gt;Igor&lt;/P&gt;</description>
      <pubDate>Tue, 26 Sep 2006 22:13:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984595#M21660</guid>
      <dc:creator>Igor_B_Intel1</dc:creator>
      <dc:date>2006-09-26T22:13:34Z</dc:date>
    </item>
    <item>
      <title>Re: g726 over RTP</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984596#M21661</link>
      <description>&lt;P&gt;Hi, Bendeguy.&lt;/P&gt;
&lt;P&gt;Youare rigth if you do the direct calls to ippsXXX functions and don't use USC.&lt;/P&gt;
&lt;P&gt;Igor S. Belyakov&lt;/P&gt;</description>
      <pubDate>Tue, 26 Sep 2006 22:26:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984596#M21661</guid>
      <dc:creator>Igor_B_Intel1</dc:creator>
      <dc:date>2006-09-26T22:26:43Z</dc:date>
    </item>
    <item>
      <title>Re: g726 over RTP</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984597#M21662</link>
      <description>&lt;P&gt;I would be happy to send along an Ethereal capture of live G726 traffic, but I don't see how to attach a file (and don't have access to an http/ftp server)... Please send me e-mail (&lt;A href="mailto:rporter@covergence.com"&gt;rporter@covergence.com&lt;/A&gt;), and I will include the Ethereal captures in my response.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;BR /&gt;Rick&lt;/P&gt;</description>
      <pubDate>Tue, 26 Sep 2006 23:01:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/g726-over-RTP/m-p/984597#M21662</guid>
      <dc:creator>rporter</dc:creator>
      <dc:date>2006-09-26T23:01:31Z</dc:date>
    </item>
  </channel>
</rss>

