<?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 ippsResamplePolyphase in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823326#M4948</link>
    <description>&lt;P&gt;Ryan,&lt;/P&gt;&lt;P&gt;Igor provided some recommendation of the replacement. Besides, the SR domain function will continue to be supported in the IPP 6.1 product. You can use the SR functions in IPP 6.1 release. We are working on the KB articles, which will help the users. &lt;/P&gt;&lt;P&gt;Thanks,&lt;BR /&gt;Chao &lt;/P&gt;</description>
    <pubDate>Fri, 21 Jan 2011 08:20:24 GMT</pubDate>
    <dc:creator>Chao_Y_Intel</dc:creator>
    <dc:date>2011-01-21T08:20:24Z</dc:date>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823321#M4943</link>
      <description>Hi&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;ippsResamplePolyphase_16s seems to be missing from the 7.01 Linux IPP (64-bit). I have used this in the 6.1 IA32 library.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Can someone from Intel please confirm?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Thanks.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Ryan&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 18 Jan 2011 08:10:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823321#M4943</guid>
      <dc:creator>rmitchle</dc:creator>
      <dc:date>2011-01-18T08:10:00Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823322#M4944</link>
      <description>Hi Ryan,&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;The ippsResamplePolyphase_16sfunction was available in IPP Speech Recognition domain libray, which was excluded from IPP 7.0 product.&lt;BR /&gt;&lt;BR /&gt;Could you please provide more information in term of what kind of application you are working on, what other IPP functions you may use from this deprecated library, how this functionality is critical for your application needs?&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt; Vladimir</description>
      <pubDate>Tue, 18 Jan 2011 10:30:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823322#M4944</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2011-01-18T10:30:51Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823323#M4945</link>
      <description>Hi Vladimir&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I would like, firstly, to express my extreme disappointment at Intel deciding to exclude functions from a well known and utilized library. Refactoring or altering functions is one thing, but removing functionality makes professional software development challenging, to say the least.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;This is the principal function we use in the Speech Recognition library. It is used to resample audio coming over a network, where there is a fundamental clock mismatch between the data generated on one PC and the sound card performing output of this data on a different PC. The resample function allowed on-the-fly adjustment of resampling ratio (libsamplerate a.k.a. Secret Rabbit Code is equivalent GPL code).&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;Ryan&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 18 Jan 2011 11:07:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823323#M4945</guid>
      <dc:creator>rmitchle</dc:creator>
      <dc:date>2011-01-18T11:07:48Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823324#M4946</link>
      <description>Vladimir,&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Can you confirm that there are no equivalent functions in the IPP 7.0 library that will perform polyphase resampling with an arbitrary resampling ratio, alterable on the fly?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;If not, what are Intel's plans regarding re-introducing equivalent functionality?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;Ryan&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 19 Jan 2011 07:51:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823324#M4946</guid>
      <dc:creator>rmitchle</dc:creator>
      <dc:date>2011-01-19T07:51:55Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823325#M4947</link>
      <description>Ryan,&lt;BR /&gt;there is a more general function available in ippSP domain - ippsFIR. &lt;BR /&gt;Several steps are required for full substitution of SR ResamplePolyphase:&lt;BR /&gt;1) Generate filter coefficients using Mathlab or ippsFIRGen functionality. ippsFIRGen works with the next smoothing windows: ippWinBartlett,ippWinBlackman,ippWinHamming,ippWinHann,ippWinRect while ResamplePolyphase uses Kaiser window - but I think it is not of principle.&lt;BR /&gt;2) Use the next function(s) for Multi-Rate filter initialization:ippsFIRMRInitAlloc or a pair of ippsFIRMRGetSize and ippsFIRMRInit (the first one allocates memory buffers internaly, the second provides opportunity to use an external memory buffer allocated by you)&lt;BR /&gt;3) Use ippsFIR function for filtering with resampling. MR version supports any arbitrary resampling ratios and initial phases for input/output.&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Igor&lt;BR /&gt;</description>
      <pubDate>Wed, 19 Jan 2011 09:52:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823325#M4947</guid>
      <dc:creator>igorastakhov</dc:creator>
      <dc:date>2011-01-19T09:52:03Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823326#M4948</link>
      <description>&lt;P&gt;Ryan,&lt;/P&gt;&lt;P&gt;Igor provided some recommendation of the replacement. Besides, the SR domain function will continue to be supported in the IPP 6.1 product. You can use the SR functions in IPP 6.1 release. We are working on the KB articles, which will help the users. &lt;/P&gt;&lt;P&gt;Thanks,&lt;BR /&gt;Chao &lt;/P&gt;</description>
      <pubDate>Fri, 21 Jan 2011 08:20:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823326#M4948</guid>
      <dc:creator>Chao_Y_Intel</dc:creator>
      <dc:date>2011-01-21T08:20:24Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823327#M4949</link>
      <description>Hello Aaron,&lt;BR /&gt;&lt;BR /&gt;As you know, the library is quite large (&amp;gt;12,000 functions). The maintenance and testing associated with this very large number of functions is quite significant. With the introduction of the Intel AVX instruction set (Sandy Bridge microarchitecture processors) the process of moving functions forward to support these new instructions simply adds to that load.&lt;BR /&gt;&lt;BR /&gt;Paul</description>
      <pubDate>Fri, 04 Feb 2011 18:30:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823327#M4949</guid>
      <dc:creator>PaulF_IntelCorp</dc:creator>
      <dc:date>2011-02-04T18:30:58Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823328#M4950</link>
      <description>I went through the same song and dance Aaron did only to find in the 7.0 release notes where it mentions ippSR being dropped. I did read over the release notes before upgrading but not thoroughly enough apparently. This is quite frustrating though as a simple task now requires some refactoring be done. Perhaps for future releases, Intel could have those aforementioned KB articles prepared so we developers(customers) don't have to search so hard to find the new/different functions to complete a specific task.&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Justin&lt;/DIV&gt;</description>
      <pubDate>Tue, 15 Feb 2011 00:06:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823328#M4950</guid>
      <dc:creator>jmason</dc:creator>
      <dc:date>2011-02-15T00:06:28Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823329#M4951</link>
      <description>I am very mad at Intel about this. I had to re-code our audio re-sampling engine and it is still not working properly. I would like to propose to put back SR lib in 7.0.2.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 15 Feb 2011 22:36:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823329#M4951</guid>
      <dc:creator>shyaki</dc:creator>
      <dc:date>2011-02-15T22:36:33Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823330#M4952</link>
      <description>I've got back to looking at this problem.&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;ippsFIRMR does NOT support arbitrary resampling ratios; it requires *integer* up- and downsampling factors. ippsResamplePolyphase allowed any (real-valued) ratio, and it could be altered during processing (which is what we need). FIRMRInit requires the up and down ratios to be fixed upon initialisation.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Thus, ippsFIRMR is NOT a general replacement for ippsResamplePolyphase. Not even close.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;There is FREE software (libsamplerate) which allows even irrational resampling ratios, alterable on-the-fly. I would use it, but it has GPL licensing issues.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Why did we PAY for the IPP again??&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;This needs to be looked at ASAP by Intel.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 16 Feb 2011 07:56:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823330#M4952</guid>
      <dc:creator>rmitchle</dc:creator>
      <dc:date>2011-02-16T07:56:39Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823331#M4953</link>
      <description>When I replacedippsResamplePolyphase with ipsFIRMR by sampling the audio on a block-wise manner, I got clicking noise in the resampled signal. This may be due to integer sampling factors.&lt;BR /&gt;However, in theory, does ippsResamplePolyphase internallyuse some kind of muti-rate filter too?</description>
      <pubDate>Wed, 16 Feb 2011 14:52:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823331#M4953</guid>
      <dc:creator>shyaki</dc:creator>
      <dc:date>2011-02-16T14:52:05Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823332#M4954</link>
      <description>Hello,&lt;BR /&gt;&lt;BR /&gt;could you please share piece of source code where you use FIRMR functions? The noise might be caused by non optimal use of these functions.&lt;BR /&gt;&lt;BR /&gt;Yes, ippsResamplePolyphase internally use FIR filters.&lt;BR /&gt;&lt;BR /&gt;Vladimir</description>
      <pubDate>Wed, 16 Feb 2011 15:03:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823332#M4954</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2011-02-16T15:03:58Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823333#M4955</link>
      <description>&lt;P&gt;What I want to do is to resample signals between 44.1 and 48 Hz. I receiveblocks of audio samples and resample them to the target rate. When I resample the current block, I can keep previous block, but I do not have next block.&lt;/P&gt;&lt;P&gt;//compute the sampling factors&lt;/P&gt;&lt;P&gt;unsigned long ulLCM = _GetLCM(m_ulSrcRate,m_ulDstRate);&lt;/P&gt;&lt;P&gt;m_ulUpFactor = ulLCM / m_ulSrcRate;&lt;/P&gt;&lt;P&gt;m_ulDownFactor = ulLCM / m_ulDstRate;&lt;/P&gt;&lt;P&gt;////----------create the linear filter ------------&lt;/P&gt;&lt;P&gt;m_ulFilterLen = 2*m_ulUpFactor - 1 ;&lt;/P&gt;&lt;P&gt;m_pFilterTaps = (Ipp32f*)_aligned_malloc(sizeof(Ipp32f)*m_ulFilterLen,16);&lt;/P&gt;&lt;P&gt;unsigned long N = m_ulFilterLen / 2 + 1;&lt;/P&gt;&lt;P&gt;ippsVectorRamp_32f(m_pFilterTaps,N,1.0/N,1.0/N);&lt;/P&gt;&lt;P&gt;ippsVectorRamp_32f(m_pFilterTaps+N-1,N,1.0,-1.0/N);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//set up the delay line for each track;&lt;/P&gt;&lt;P&gt;m_ulDelayLen = (m_ulFilterLen + m_ulUpFactor - 1)/m_ulUpFactor; &lt;/P&gt;&lt;P&gt;for (i=0; i&lt;M_ULNBAUDIOTRACKS&gt;&lt;/M_ULNBAUDIOTRACKS&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;Ipp16s* pDelayLine = (Ipp16s*)_aligned_malloc(sizeof(Ipp16s)*m_ulDelayLen,16);&lt;/P&gt;&lt;P&gt;ZeroMemory(pDelayLine,sizeof(Ipp16s)*m_ulDelayLen);&lt;/P&gt;&lt;P&gt;m_apDelayLine&lt;I&gt; = pDelayLine;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;HRESULT CFIRMultiRateResampler::Resample16BitMonoTo16BitMono2(unsigned long in_ulNbSourceBuffer, void * in_pvSourceBuffer16Mono, unsigned long &amp;amp; out_ulNbDestinationBuffer, void * in_pvDestinationBuffer16Mono, EMvAudioResamplerMode in_eAudioResamplerMode, unsigned long in_ulAudioTrack)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;HRESULT hr = MV_NOERROR;&lt;/P&gt;&lt;P&gt;unsigned long i;&lt;/P&gt;&lt;P&gt;IppStatus st = ippStsNoErr;&lt;/P&gt;&lt;P&gt;Ipp16s *pSrc = (Ipp16s*)in_pvSourceBuffer16Mono; //pointer to the current src sample buffer&lt;/P&gt;&lt;P&gt;Ipp16s *pDst = (Ipp16s*)in_pvDestinationBuffer16Mono; //pointer to the current dst sample buffer&lt;/P&gt;&lt;P&gt;unsigned long ulDstSamples = 0; //number of dst samples we generate by resampling&lt;/P&gt;&lt;P&gt;int numIters = 1; //iter. count&lt;/P&gt;&lt;P&gt;Ipp16s *pDelayLine = m_apDelayLine[in_ulAudioTrack]; //delay line&lt;/P&gt;&lt;P&gt;double dPhase = m_dPhase[in_ulAudioTrack];&lt;/P&gt;&lt;P&gt;if (in_ulAudioTrack &amp;gt;= m_ulNbAudioTracks)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;assert(!"CFIRMultiRateResampler::Resample16BitMonoTo16BitMono - invalid audio track index!");&lt;/P&gt;&lt;P&gt;return MV_E_OUT_OF_RANGE;&lt;/P&gt;&lt;P&gt;} &lt;/P&gt;&lt;P&gt;//extend to the delay line if seek&lt;/P&gt;&lt;P&gt;if ( in_eAudioResamplerMode == keMvAudioResamplerModeSeek )&lt;/P&gt;&lt;P&gt;{ &lt;/P&gt;&lt;P&gt;ippsSet_16s( *pSrc, pDelayLine, m_ulDelayLen);&lt;/P&gt;&lt;P&gt;dPhase = m_ulFilterLen/2+1;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;//divide source to two parts&lt;/P&gt;&lt;P&gt;unsigned long ulSrcSamples = (in_ulNbSourceBuffer / m_ulDownFactor)*m_ulDownFactor; //part1&lt;/P&gt;&lt;P&gt;unsigned long ulWorkSamples = in_ulNbSourceBuffer - ulSrcSamples; //part2&lt;/P&gt;&lt;P&gt;//---------re-sample part1---------------&lt;/P&gt;&lt;P&gt;ulDstSamples = ulSrcSamples*m_ulUpFactor/m_ulDownFactor;&lt;/P&gt;&lt;P&gt;if (ulDstSamples &amp;gt; out_ulNbDestinationBuffer)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;hr = MV_E_DESTINATION_BUFFER_TOO_SMALL;&lt;/P&gt;&lt;P&gt;assert(SUCCEEDED(hr)); &lt;/P&gt;&lt;P&gt;return hr;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;numIters = ulSrcSamples / m_ulDownFactor;&lt;/P&gt;&lt;P&gt;st = ippsFIRMR32f_Direct_16s_Sfs(pSrc,pDst,numIters,m_pFilterTaps,m_ulFilterLen,m_ulUpFactor,1,m_ulDownFactor,0,pDelayLine,0);&lt;/P&gt;&lt;P&gt;assert(st == ippStsNoErr);&lt;/P&gt;&lt;P&gt;pSrc += ulSrcSamples;&lt;/P&gt;&lt;P&gt;pDst += ulDstSamples;&lt;/P&gt;&lt;P&gt;dPhase += ulSrcSamples;&lt;/P&gt;&lt;P&gt;////debug&lt;/P&gt;&lt;P&gt;//memcpy(pDst,pSrc,ulWorkSamples*sizeof(Ipp16s));&lt;/P&gt;&lt;P&gt;//ulDstSamples+=ulWorkSamples;&lt;/P&gt;&lt;P&gt;//ulWorkSamples = 0;&lt;/P&gt;&lt;P&gt;//---------re-sample part2--------------&lt;/P&gt;&lt;P&gt;if (ulWorkSamples &amp;gt; 0)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;//update the delay line&lt;/P&gt;&lt;P&gt;for (i = 0; i&lt;M_ULDELAYLEN&gt;&lt;/M_ULDELAYLEN&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;pDelayLine&lt;I&gt; = *(pSrc- i - 1);&lt;/I&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;//copy part2 to the work buffer&lt;/P&gt;&lt;P&gt;Ipp16s *pWorkBuffer = m_apWorkBuffer[in_ulAudioTrack];&lt;/P&gt;&lt;P&gt;memcpy(pWorkBuffer,pSrc,ulWorkSamples*sizeof(Ipp16s));&lt;/P&gt;&lt;P&gt;pSrc += ulWorkSamples;&lt;/P&gt;&lt;P&gt;//update the delay line&lt;/P&gt;&lt;P&gt;for (i=0; i&lt;M_ULDELAYLEN&gt;&lt;/M_ULDELAYLEN&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;pDelayLine&lt;I&gt; = *(pSrc - i + 1);&lt;/I&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;//extend to max&lt;/P&gt;&lt;P&gt;for (i=0; i&lt;M_ULWORKMAXSAMPLES-ULWORKSAMPLES&gt;&lt;/M_ULWORKMAXSAMPLES-ULWORKSAMPLES&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;pWorkBuffer[ulWorkSamples+i] = pWorkBuffer[ulWorkSamples-1];&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;//re-sample the work buffer &lt;/P&gt;&lt;P&gt;unsigned long ulResampledSamples = ulWorkSamples*m_ulUpFactor / m_ulDownFactor;&lt;/P&gt;&lt;P&gt;int numIters = m_ulWorkMaxSamples / m_ulDownFactor;&lt;/P&gt;&lt;P&gt;IppStatus st = ippStsNoErr;&lt;/P&gt;&lt;P&gt;//update the dst samples count&lt;/P&gt;&lt;P&gt;ulDstSamples += ulResampledSamples;&lt;/P&gt;&lt;P&gt;if (ulDstSamples &amp;gt; out_ulNbDestinationBuffer)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;hr = MV_E_DESTINATION_BUFFER_TOO_SMALL;&lt;/P&gt;&lt;P&gt;assert(SUCCEEDED(hr)); &lt;/P&gt;&lt;P&gt;return hr;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;st = ippsFIRMR32f_Direct_16s_Sfs(pWorkBuffer,pDst,numIters,m_pFilterTaps,m_ulFilterLen,m_ulUpFactor,1,m_ulDownFactor,0,pDelayLine,0);&lt;/P&gt;&lt;P&gt;assert(st == ippStsNoErr); &lt;/P&gt;&lt;P&gt;dPhase += ulDstSamples;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;//num. of the result samples&lt;/P&gt;&lt;P&gt;out_ulNbDestinationBuffer = ulDstSamples;&lt;/P&gt;&lt;P&gt;m_dPhase[in_ulAudioTrack] = dPhase;&lt;/P&gt;&lt;P&gt;return hr;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;</description>
      <pubDate>Wed, 16 Feb 2011 15:36:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823333#M4955</guid>
      <dc:creator>shyaki</dc:creator>
      <dc:date>2011-02-16T15:36:08Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823334#M4956</link>
      <description>Hello, Vladimir&lt;BR /&gt;&lt;BR /&gt; Could you please take a look at my code? I am not sure about the following:&lt;BR /&gt;&lt;BR /&gt; My code is based on the sample code from the IPP book. Is the linear filter not good? I divide the input buffer to two parts to try to handle the boundary. Is it correct? Should I use ippsFIRMRStreamInitAlloc to handle the transition between buffers? Many thanks in advance.</description>
      <pubDate>Wed, 16 Feb 2011 19:05:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823334#M4956</guid>
      <dc:creator>shyaki</dc:creator>
      <dc:date>2011-02-16T19:05:06Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823335#M4957</link>
      <description>&lt;DIV id="tiny_quote"&gt;
                &lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Quoting &lt;A rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=485617" class="basic" href="https://community.intel.com/en-us/profile/485617/"&gt;igorastakhov&lt;/A&gt;&lt;/DIV&gt;
                &lt;DIV style="background-color: #e5e5e5; padding: 5px; border: 1px; border-style: inset; margin-left: 2px; margin-right: 2px;"&gt;&lt;I&gt;Ryan,&lt;BR /&gt;there is a more general function available in ippSP domain - ippsFIR. &lt;BR /&gt;Several steps are required for full substitution of SR ResamplePolyphase:&lt;BR /&gt;1) Generate filter coefficients using Mathlab or ippsFIRGen functionality. ippsFIRGen works with the next smoothing windows: ippWinBartlett,ippWinBlackman,ippWinHamming,ippWinHann,ippWinRect while ResamplePolyphase uses Kaiser window - but I think it is not of principle.&lt;BR /&gt;2) Use the next function(s) for Multi-Rate filter initialization:ippsFIRMRInitAlloc or a pair of ippsFIRMRGetSize and ippsFIRMRInit (the first one allocates memory buffers internaly, the second provides opportunity to use an external memory buffer allocated by you)&lt;BR /&gt;3) Use ippsFIR function for filtering with resampling. MR version supports any arbitrary resampling ratios and initial phases for input/output.&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Igor&lt;BR /&gt;&lt;/I&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Igor, &lt;/P&gt;&lt;P&gt;Could you provide some details about generating the filter coefficients?&lt;/P&gt;&lt;P&gt;In our case, we're resampling from 44.1 kHz to 8 kHz. As I understand, this will require an upsampling factor of 80 and a downsampling factor of 441. Should we now generate the filter coefficients (using ippFIRGen) with 44.1 kHz * 80 as the sample rate? And how should one determine the filter length?&lt;/P&gt;&lt;P&gt;In this case, the normalized filter cutoff frequency (4 kHz / (44.1 kHz * 80)) is very small and it seems to be difficult to get the pass band amplitude response to be flat.&lt;/P&gt;&lt;P&gt;Also, I assume the filter coefficients need to be scaled according to the upsampling factor?&lt;/P&gt;&lt;P&gt;All in all, I also wish the original polyphase resampling function was available (or something equivalent for straightforward resampling).&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Arto&lt;/P&gt;</description>
      <pubDate>Mon, 21 Feb 2011 19:21:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823335#M4957</guid>
      <dc:creator>Arto_Lehdonm__228_ki</dc:creator>
      <dc:date>2011-02-21T19:21:56Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823336#M4958</link>
      <description>I'm also upset that this functionality was removed from IPP 7 - without warning. I always wondered why this very useful function was hidden in the Speech Coding section, rather than in the general audio coding section. At any rate, here is a simple solution to the problem: link with the old version of the static speech coding library - which seems to not conflict with the new libraries. To wit:&lt;BR /&gt;&lt;BR /&gt;// include this code before your calls to ippsResamplePolyphase...&lt;BR /&gt;// thisworks is for Visual C 10 and Ipp 5&lt;BR /&gt;&lt;BR /&gt;&lt;P&gt;#if (IPP_VERSION_MAJOR &amp;gt;= 7)&lt;/P&gt;&lt;P&gt;extern "C" {&lt;/P&gt;&lt;P&gt;// from ippsr.h&lt;/P&gt;&lt;P&gt;struct ResamplingPolyphaseFixed_16s;&lt;/P&gt;&lt;P&gt;typedef struct ResamplingPolyphaseFixed_16s IppsResamplingPolyphaseFixed_16s;&lt;/P&gt;&lt;P&gt;IppStatus __STDCALL w7_ippsResamplePolyphaseFixed_16s(const IppsResamplingPolyphaseFixed_16s *pState,&lt;/P&gt;&lt;P&gt;const Ipp16s *pSrc, int len, Ipp16s *pDst,&lt;/P&gt;&lt;P&gt;Ipp32f norm, Ipp64f *pTime, int *pOutlen);&lt;/P&gt;&lt;P&gt;IppStatus __STDCALL w7_ippsResamplePolyphaseFixedFree_16s(IppsResamplingPolyphaseFixed_16s* pSpec);&lt;/P&gt;&lt;P&gt;IppStatus __STDCALL w7_ippsResamplePolyphaseFixedInitAlloc_16s(IppsResamplingPolyphaseFixed_16s** pState, int inRate, int outRate, int len, Ipp32f rollf, Ipp32f alpha, IppHintAlgorithm hint);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#define ippsResamplePolyphaseFixed_16s w7_ippsResamplePolyphaseFixed_16s&lt;/P&gt;&lt;P&gt;#define ippsResamplePolyphaseFixedFree_16s w7_ippsResamplePolyphaseFixedFree_16s&lt;/P&gt;&lt;P&gt;#define ippsResamplePolyphaseFixedInitAlloc_16s w7_ippsResamplePolyphaseFixedInitAlloc_16s&lt;/P&gt;&lt;P&gt;// use the location of your old ippstatic libs in the following pragma&lt;BR /&gt;#pragma comment(lib, "c:/SDK/IPP/5.0/ia32/lib/ippsrmerged.lib") &lt;BR /&gt;#endif&lt;BR /&gt;&lt;BR /&gt;How to do this for other CPU types is left as an exercise to the reader.&lt;BR /&gt;Linc&lt;/P&gt;</description>
      <pubDate>Wed, 23 Feb 2011 16:19:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823336#M4958</guid>
      <dc:creator>lincbrookes</dc:creator>
      <dc:date>2011-02-23T16:19:33Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823337#M4959</link>
      <description>&lt;P&gt;Here's another vote that removal of theSR non-integer (AKA arbitrary ratio) resampling functions is a big disappointment. We use them in several key portions of our analysisSW. Recoding this functionality is a serious waste of time for us to get back to previous working v6 behavior.&lt;BR /&gt;&lt;BR /&gt;Wewere waiting for7.0.2 which contains fixes to 2 bugs we submitted, but now cannot due to this loss of functionality, until we recreate the resampling functions and test them. And as Ryan has noted, the FirMR functions do not provide the functionality needed for "true" arbitrary ratio resampling. This requires a significant amount of work to implement and verify.&lt;BR /&gt;&lt;BR /&gt;These are very basic and useful DSP functions. They certainly are not specific to SR work, as our use is proof of. Why can they not be migrated to the Filtering Functions portion of IPP?&lt;BR /&gt;&lt;BR /&gt;Tom&lt;/P&gt;</description>
      <pubDate>Tue, 01 Mar 2011 18:43:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823337#M4959</guid>
      <dc:creator>thomtek</dc:creator>
      <dc:date>2011-03-01T18:43:39Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823338#M4960</link>
      <description>I wanted to add my voice to the chorus saying that I find the removal of these functions extremely disappointing. I use them in a pro-audio application and their removal means I need to rely on hacks to get IPPv6 running alongside v7 (frankly it just feels dangerous since I don't know the internal workings) or I need to stick with IPPv6 to take the low-risk option. Until there is an absolute need for me to upgrade to IPPv7 (which I otherwise would have been happy to do) I will be sticking with IPPv6 since I don't have the resources to test against multiple architectures as would ne needed if I went with Linc's suggestion.&lt;DIV&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Having a fast and cross-platform resampler that is commercially viable for not being encumbered with the GPL was 50% of the reason for my investment in IPP (having a blazing fast FFT was the other).&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I may consider using the Speex resampler as that is released under a license similar to BSD.&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Sat, 05 Mar 2011 15:47:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823338#M4960</guid>
      <dc:creator>hill_matthew</dc:creator>
      <dc:date>2011-03-05T15:47:25Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823339#M4961</link>
      <description>Dear Customers,&lt;BR /&gt;&lt;BR /&gt;Thanks for your concern and feedback on this issue. Currently we are reviewing the alternative possible solutions to address this issue in IPP 7.0, and we will keep you posted soon.&lt;BR /&gt;&lt;BR /&gt;Ying</description>
      <pubDate>Tue, 08 Mar 2011 03:49:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823339#M4961</guid>
      <dc:creator>Ying_S_Intel</dc:creator>
      <dc:date>2011-03-08T03:49:14Z</dc:date>
    </item>
    <item>
      <title>ippsResamplePolyphase</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823340#M4962</link>
      <description>Adding my vote to restore. I produce both freeware and commerical products using IPP, it relies upon the resampling abilities. Why remove what is a basic idea only to have to replace it with a bunch of code that requires lots of work to define the propery parameters and in many cases are SLOWER.&lt;BR /&gt;&lt;BR /&gt;As Turing showed decades ago, as long as you can loop and count you can do every computation, given enough time and memory. So the logic that there is an alternative way just doesn't always provide a viaable solution.&lt;BR /&gt;&lt;BR /&gt;I use a software pattern called flyweight that makes multiple resamplers with little overhead. Now I would have to rewrite all this code to contend with the different filters created.&lt;BR /&gt;&lt;BR /&gt;As the issue with testing, that is bull.Just don't convert it for the newer systems.A tweek here or there and all the tests run. Really disapointed in this decision&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Mon, 21 Mar 2011 16:15:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsResamplePolyphase/m-p/823340#M4962</guid>
      <dc:creator>Ockham_s_Razor</dc:creator>
      <dc:date>2011-03-21T16:15:48Z</dc:date>
    </item>
  </channel>
</rss>

