<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://www.pic24.ru/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://www.pic24.ru/feed.php">
        <title>PIC24 en:mp3_dspic:ref</title>
        <description></description>
        <link>http://www.pic24.ru/</link>
        <image rdf:resource="http://www.pic24.ru/lib/images/favicon.ico" />
       <dc:date>2023-02-10T23:02:50+03:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://www.pic24.ru/doku.php/en/mp3_dspic/ref/intro?rev=1216585878"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://www.pic24.ru/lib/images/favicon.ico">
        <title>PIC24</title>
        <link>http://www.pic24.ru/</link>
        <url>http://www.pic24.ru/lib/images/favicon.ico</url>
    </image>
    <item rdf:about="http://www.pic24.ru/doku.php/en/mp3_dspic/ref/intro?rev=1216585878">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-21T00:31:18+03:00</dc:date>
        <title>dsPIC MP3 Decoder</title>
        <link>http://www.pic24.ru/doku.php/en/mp3_dspic/ref/intro?rev=1216585878</link>
        <description>


&lt;p&gt;
&lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.pic24.ru/lib/exe/detail.php/b_mp3_dspic.png?id=en%3Amp3_dspic%3Aref%3Aintro&quot; class=&quot;media&quot; title=&quot;b_mp3_dspic.png&quot;&gt;&lt;img src=&quot;http://www.pic24.ru/lib/exe/fetch.php/b_mp3_dspic.png&quot; class=&quot;media&quot; title=&quot;MP3 Decoder for dsPIC&quot; alt=&quot;MP3 Decoder for dsPIC&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;



&lt;h1&gt;&lt;a name=&quot;dspic_mp3_decoder&quot; id=&quot;dspic_mp3_decoder&quot;&gt;dsPIC MP3 Decoder&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;dsPIC MP3 Decoder&quot; [61-93] --&gt;
&lt;h2&gt;&lt;a name=&quot;download&quot; id=&quot;download&quot;&gt;Download&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Download&quot; [94-115] --&gt;
&lt;h3&gt;&lt;a name=&quot;last_version&quot; id=&quot;last_version&quot;&gt;Last version&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  &lt;strong&gt;1.0.1042&lt;/strong&gt; (16 july 2008) &lt;a href=&quot;http://www.pic24.ru/lib/exe/fetch.php/mp3_dspic/ref/mp3_dspic_c30_1_0_1042.rar&quot; class=&quot;media mediafile mf_rar&quot; title=&quot;mp3_dspic:ref:mp3_dspic_c30_1_0_1042.rar&quot;&gt;download&lt;/a&gt; @ 1 МБ&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; First release on this site. Project contain source code of dsPIC MAD decoder, MPLAB project and test &lt;acronym title=&quot;Motion Picture Experts Group Layer 3&quot;&gt;MP3&lt;/acronym&gt; files. File &lt;code&gt;..\doc\test_result.txt&lt;/code&gt; contain reports of test streams decoding.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;div class=&quot;plugin_uparrow&quot;&gt;
  &lt;a href=&quot;#&quot; title=&quot;Наверх&quot;&gt;
    &lt;img src=&quot;http://www.pic24.ru/lib/plugins/uparrow/images/blue_arrow.png&quot; alt=&quot;Наверх&quot;/&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Last version&quot; [116-442] --&gt;
&lt;h2&gt;&lt;a name=&quot;description&quot; id=&quot;description&quot;&gt;Description&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

&lt;acronym title=&quot;Motion Picture Experts Group Layer 3&quot;&gt;MP3&lt;/acronym&gt; decoder library project for Microchip DSC dsPIC is based on well known fixed-point &lt;acronym title=&quot;Motion Picture Experts Group Layer 3&quot;&gt;MP3&lt;/acronym&gt; decoder &lt;a href=&quot;http://www.underbit.com/products/mad/&quot; class=&quot;urlextern&quot; title=&quot;http://www.underbit.com/products/mad/&quot;  rel=&quot;nofollow&quot;&gt;MAD&lt;/a&gt;. Generally speaking this project based on another MAD port for TI TMS320C55xx that you can find in net (author: Grigory Abuladze).
&lt;/p&gt;

&lt;p&gt;
I rewrite all assemblers routines, check alingment (TI CCS assume that char size is 16 bit), check all endian-sensitive operations (TMS320 is big-endian, while dsPIC is little-endian). I use only static data allocation in my port.
&lt;/p&gt;

&lt;p&gt;
dsPIC33 MAD &lt;acronym title=&quot;Motion Picture Experts Group Layer 3&quot;&gt;MP3&lt;/acronym&gt; decoder is available under the terms of the &lt;a href=&quot;http://www.underbit.com/resources/license/gpl/&quot; class=&quot;urlextern&quot; title=&quot;http://www.underbit.com/resources/license/gpl/&quot;  rel=&quot;nofollow&quot;&gt;GPL&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_uparrow&quot;&gt;
  &lt;a href=&quot;#&quot; title=&quot;Наверх&quot;&gt;
    &lt;img src=&quot;http://www.pic24.ru/lib/plugins/uparrow/images/blue_arrow.png&quot; alt=&quot;Наверх&quot;/&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Description&quot; [443-1101] --&gt;
&lt;h2&gt;&lt;a name=&quot;requirements&quot; id=&quot;requirements&quot;&gt;Requirements&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;


&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; Flash&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;~29 kB of code + ~17 kB of &lt;code&gt;const&lt;/code&gt; section (totally 18% of dsPIC33FJ256GP710 flash size)&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; SRAM&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;~25 kB + ~1.5 kB for stack (totally 88% of dsPIC33FJ256GP710 SRAM)&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;
Today the only one Microchip DSC on which you can run this code is &lt;a href=&quot;http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;amp;nodeId=1335&amp;amp;dDocName=en024679&quot; class=&quot;urlextern&quot; title=&quot;http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;amp;nodeId=1335&amp;amp;dDocName=en024679&quot;  rel=&quot;nofollow&quot;&gt;dsPIC33FJ256GP710&lt;/a&gt;. 
This is only because of SRAM memory requirements - any dsPIC33 have enough MIPS for decode low-rata &lt;acronym title=&quot;Motion Picture Experts Group Layer 3&quot;&gt;MP3&lt;/acronym&gt; streams.
&lt;/p&gt;
&lt;div class=&quot;plugin_uparrow&quot;&gt;
  &lt;a href=&quot;#&quot; title=&quot;Наверх&quot;&gt;
    &lt;img src=&quot;http://www.pic24.ru/lib/plugins/uparrow/images/blue_arrow.png&quot; alt=&quot;Наверх&quot;/&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Requirements&quot; [1102-1623] --&gt;
&lt;h2&gt;&lt;a name=&quot;productivity&quot; id=&quot;productivity&quot;&gt;Productivity&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Project archive contain test &lt;acronym title=&quot;Motion Picture Experts Group Layer 3&quot;&gt;MP3&lt;/acronym&gt; streams with different bitrates. Productivity estimated as time needed for stream decode (without audio buffer &lt;code&gt;read&lt;/code&gt; and &lt;code&gt;write&lt;/code&gt; functions) on 40 MIPS.
&lt;/p&gt;

&lt;p&gt;
The test results shows that current version can decode in real time:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; all mono streams&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; stereo streams with sample rate up to 32 kHz and bitrate up to 128 kbps&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

The dsPIC MAD decoder need about 33.6 MIPS for decode stereo stream 32 kHz @ 128 kbps and 6.8 MIPS for decode stereo stream 8 kHz @ 20 kbps.
&lt;/p&gt;

&lt;p&gt;
Full test report you can find in &lt;code&gt;..\doc\test_results.txt&lt;/code&gt;.
&lt;/p&gt;
&lt;div class=&quot;plugin_uparrow&quot;&gt;
  &lt;a href=&quot;#&quot; title=&quot;Наверх&quot;&gt;
    &lt;img src=&quot;http://www.pic24.ru/lib/plugins/uparrow/images/blue_arrow.png&quot; alt=&quot;Наверх&quot;/&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Productivity&quot; [1624-2220] --&gt;
&lt;h2&gt;&lt;a name=&quot;limitations&quot; id=&quot;limitations&quot;&gt;Limitations&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

The current decoder version have the following limitations:

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MPEG1 Layer 1 and Layer 2 not supported&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 16-bit math is used&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; bug in &lt;code&gt;mad_port_stereo_intensity_lsf()&lt;/code&gt; function &lt;img src=&quot;http://www.pic24.ru/lib/images/smileys/fixme.gif&quot; class=&quot;middle&quot; alt=&quot;FIXME&quot; /&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;plugin_uparrow&quot;&gt;
  &lt;a href=&quot;#&quot; title=&quot;Наверх&quot;&gt;
    &lt;img src=&quot;http://www.pic24.ru/lib/plugins/uparrow/images/blue_arrow.png&quot; alt=&quot;Наверх&quot;/&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Limitations&quot; [2221-] --&gt;</description>
    </item>
</rdf:RDF>
