<?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: How to reduce the Helix MP3 decoder decoding time for LPC4350 (M4) in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reduce-the-Helix-MP3-decoder-decoding-time-for-LPC4350-M4/m-p/555560#M14975</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by bavarian on Wed Feb 13 03:16:10 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Sreenivas,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;looks OK, with the setting you've done the code for this specific file is executed from internal RAM with no waitstates at 192MHz.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But take care that this code does not fetch data from the outside, e.g. when calling a function which is still in the outside memory.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Bernhard.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 18:39:49 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T18:39:49Z</dc:date>
    <item>
      <title>How to reduce the Helix MP3 decoder decoding time for LPC4350 (M4)</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reduce-the-Helix-MP3-decoder-decoding-time-for-LPC4350-M4/m-p/555554#M14969</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by srinu282 on Wed Feb 06 00:20:07 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi All,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Am using Hitex Board-LPC4350(M4,M0) for audio application. Referring AN11178( MP3 player solution on NXP LPC1700 series) document and took the helix MP3 decoder code from &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fdatatype.helixcommunity.org%2FMp3dec" rel="nofollow" target="_blank"&gt;https://datatype.helixcommunity.org/Mp3dec&lt;/A&gt;&lt;SPAN&gt; . In M4 using&amp;nbsp; is code to decode MP3&amp;nbsp; to PCM Conversion . &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;M4 Core SPEED : 192MHZ&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SDCARD CLK : 34MHZ.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I2S configuration : 16bit,MONO,44.1kHZ.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; MP3 files is&amp;nbsp; reading from SDCARD. For 4K data read time : 2.8ms.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; To decode one frame using Helix MP3 decoder : 110ms.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;DMA transfor : 12ms&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;For MP3, the duration of playing a single frame is fixed at ~26 ms.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; How can I reduce Helix MP3 decoder decoding time?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;As per AN11178 document helix MP3 decoder code is optimized for Fixed point decoder.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;How can i choose fixed point decoder in my application?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Tried the option like in KEIL project “target”--floating&amp;nbsp; point hardware  Not used &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;No change in timing (110ms). How can I reduce MP3 decoder decoding time to 8ms from 110ms?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:39:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reduce-the-Helix-MP3-decoder-decoding-time-for-LPC4350-M4/m-p/555554#M14969</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:39:45Z</dc:date>
    </item>
    <item>
      <title>Re: How to reduce the Helix MP3 decoder decoding time for LPC4350 (M4)</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reduce-the-Helix-MP3-decoder-decoding-time-for-LPC4350-M4/m-p/555555#M14970</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by wmues on Wed Feb 06 02:12:26 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;You may want to try MAD:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.underbit.com%2Fproducts%2Fmad%2F" rel="nofollow" target="_blank"&gt;http://www.underbit.com/products/mad/&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I got good results with an ARM9 and 66MHz Clock.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Optimisation:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;- place the Stack in internal RAM&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;- place parts of the code in internal RAM&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Good luck!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:39:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reduce-the-Helix-MP3-decoder-decoding-time-for-LPC4350-M4/m-p/555555#M14970</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:39:46Z</dc:date>
    </item>
    <item>
      <title>Re: How to reduce the Helix MP3 decoder decoding time for LPC4350 (M4)</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reduce-the-Helix-MP3-decoder-decoding-time-for-LPC4350-M4/m-p/555556#M14971</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by nxp21346 on Wed Feb 06 11:22:59 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Have you tried to enable the Keil Optimizer? You can set Level 3 Optimization and check "Optimize for Time" on the C/C++ tab in the target options dialog. This should be the fastest optimization, but you might have to experiment to be sure. If the Helix MP3 decoder is specifically written to used fixed-point operations, then it will not benefit from enabling floating point in the compiler. You might want to check if the Helix code has any compiler options (#defines) to enable floating point computation.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-Dave @ NXP&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:39:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reduce-the-Helix-MP3-decoder-decoding-time-for-LPC4350-M4/m-p/555556#M14971</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:39:47Z</dc:date>
    </item>
    <item>
      <title>Re: How to reduce the Helix MP3 decoder decoding time for LPC4350 (M4)</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reduce-the-Helix-MP3-decoder-decoding-time-for-LPC4350-M4/m-p/555557#M14972</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by srinu282 on Thu Feb 07 02:39:49 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Dave,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thanks for&amp;nbsp; your reply.i tried with Level 3 Optimization&amp;nbsp; with "Optimize for time". But there is no change in decode time.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;For this experiment&amp;nbsp; Floating point Hardware is selected as "Not Used".&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Am referring AN11178(MP3 player solution on NXP LPC1700 series) document in that &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;"The Helix MP3 decoder provides MPEG-compliant decoding of MP3 content. Both floating-point and fixed-point decoder implementations are available.The fixed-point decoder is optimized especially for ARM processors but can run on any 32-bit fixed-point processor which can perform a long multiply operation (two 32-bit inputs generating a 64-bit result) and long multiply-accumulate (long multiply with 64-bit accumulator)."&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So Is LPC4350(M4)is a 32-bit fixed-point processor?&lt;/SPAN&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;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:39:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reduce-the-Helix-MP3-decoder-decoding-time-for-LPC4350-M4/m-p/555557#M14972</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:39:48Z</dc:date>
    </item>
    <item>
      <title>Re: How to reduce the Helix MP3 decoder decoding time for LPC4350 (M4)</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reduce-the-Helix-MP3-decoder-decoding-time-for-LPC4350-M4/m-p/555558#M14973</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by bavarian on Thu Feb 07 11:17:45 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Even if the LPC4300 has a floating point unit, it mustn't be used.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The Helix with fixed point is quite OK. Don't think about floating point for this MP3 decoding job, it will not help. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Maybe it's getting even worse ;-)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think your problem is the slow execution speed from the external 16-bit flash.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This is really incredibly slow, compared to the execution speed you can achieve with internal memory.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The solution could be to put the decoder functions into internal SRAM (LPC4350 has overall 264Kb).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Alternatively you could also use the qSPI (SPIFI) for your executable code instead of the external parallel flash.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The SPIFI interface is quite fast and should do the job.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hope this helps a little bit,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Bernhard.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:39:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reduce-the-Helix-MP3-decoder-decoding-time-for-LPC4350-M4/m-p/555558#M14973</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:39:48Z</dc:date>
    </item>
    <item>
      <title>Re: How to reduce the Helix MP3 decoder decoding time for LPC4350 (M4)</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reduce-the-Helix-MP3-decoder-decoding-time-for-LPC4350-M4/m-p/555559#M14974</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by srinu282 on Fri Feb 08 04:00:28 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Bernhard,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thanks for your POST. Can you guide me how can I put the decoder functions in internal SRAM (LPC4350 has overall 264Kb). Right now am doing like this &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In “Target”&amp;nbsp; Read/write Memory Areas&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; IRAM1 : 0x10004000(start) ,oxFA0(SIZE). &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I Kept all MP3 decoder files(.c) options like&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;File name : Mp3dec.c&amp;nbsp;&amp;nbsp; right click on it and select “Options for File mp3dec.c”&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In “properties tab” - Memory Assignment &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Code/Const : IRAM1(0x10004000-0x10004F9F).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Zero Initialized Data : IRAM1(0x10004000-0x10004F9F).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Other Data : IRAM1(0x10004000-0x10004F9F).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In C/C++ Tab &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Language/Code Generation&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Optimization: Level 3(-o3).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tick for “Optimize for Time”.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Is this correct?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Please help me to get out of this problem.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Sreenivas ida&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:39:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reduce-the-Helix-MP3-decoder-decoding-time-for-LPC4350-M4/m-p/555559#M14974</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:39:49Z</dc:date>
    </item>
    <item>
      <title>Re: How to reduce the Helix MP3 decoder decoding time for LPC4350 (M4)</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reduce-the-Helix-MP3-decoder-decoding-time-for-LPC4350-M4/m-p/555560#M14975</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by bavarian on Wed Feb 13 03:16:10 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Sreenivas,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;looks OK, with the setting you've done the code for this specific file is executed from internal RAM with no waitstates at 192MHz.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But take care that this code does not fetch data from the outside, e.g. when calling a function which is still in the outside memory.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Bernhard.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:39:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reduce-the-Helix-MP3-decoder-decoding-time-for-LPC4350-M4/m-p/555560#M14975</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:39:49Z</dc:date>
    </item>
  </channel>
</rss>

