<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://wiki.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://wiki.pic24.ru/feed.php">
        <title>PIC24 mp3_dspic:ref</title>
        <description></description>
        <link>http://wiki.pic24.ru/</link>
        <image rdf:resource="http://wiki.pic24.ru/lib/images/favicon.ico" />
       <dc:date>2023-02-11T10:11:11+03:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://wiki.pic24.ru/doku.php/mp3_dspic/ref/intro?rev=1216276886"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://wiki.pic24.ru/lib/images/favicon.ico">
        <title>PIC24</title>
        <link>http://wiki.pic24.ru/</link>
        <url>http://wiki.pic24.ru/lib/images/favicon.ico</url>
    </image>
    <item rdf:about="http://wiki.pic24.ru/doku.php/mp3_dspic/ref/intro?rev=1216276886">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-17T10:41:26+03:00</dc:date>
        <title>Программный MP3 декодер для dsPIC</title>
        <link>http://wiki.pic24.ru/doku.php/mp3_dspic/ref/intro?rev=1216276886</link>
        <description>


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

&lt;p&gt;
&lt;a href=&quot;http://wiki.pic24.ru/lib/exe/detail.php/b_mp3_dspic.png?id=mp3_dspic%3Aref%3Aintro&quot; class=&quot;media&quot; title=&quot;b_mp3_dspic.png&quot;&gt;&lt;img src=&quot;http://wiki.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;программный_mp3_декодер_для_dspic&quot; id=&quot;программный_mp3_декодер_для_dspic&quot;&gt;Программный MP3 декодер для dsPIC&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Программный MP3 декодер для dsPIC&quot; [61-130] --&gt;
&lt;h2&gt;&lt;a name=&quot;скачать&quot; id=&quot;скачать&quot;&gt;Скачать&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Скачать&quot; [131-158] --&gt;
&lt;h3&gt;&lt;a name=&quot;актуальная_версия&quot; id=&quot;актуальная_версия&quot;&gt;Актуальная версия&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 июля 2008) &lt;a href=&quot;http://wiki.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;скачать&lt;/a&gt; @ 1 МБ&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Первая версия на этом сайте. Архив содержит исходные коды декодера, проект для MPLAB и тестовые mp3 файлы. Файл &lt;code&gt;..\doc\test_result.txt&lt;/code&gt; содержит отчеты о декодировании тестовых файлов.&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://wiki.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;Актуальная версия&quot; [159-643] --&gt;
&lt;h2&gt;&lt;a name=&quot;описание&quot; id=&quot;описание&quot;&gt;Описание&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; декодер для контроллеров Microchip DSC dsPIC основан на хорошо известном fixed-point &lt;acronym title=&quot;Motion Picture Experts Group Layer 3&quot;&gt;MP3&lt;/acronym&gt; декодере &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;. Вообше говоря, проект основан на порте MAD для TI TMS320C55xx, который можно найти в сети (автор: Grigory Abuladze).
&lt;/p&gt;

&lt;p&gt;
Мной были переписаны все асмовые функции, проверено выравнивание (компилятор CCS подразумевает что char = 16 бит), проверены все операции, критичные к порядку байт в слове (TMS320 - big-endian, а dsPIC - little-endian), все массивы выделяются статически на этапе компиляции.
&lt;/p&gt;

&lt;p&gt;
dsPIC33 MAD &lt;acronym title=&quot;Motion Picture Experts Group Layer 3&quot;&gt;MP3&lt;/acronym&gt; декодер распространяется на условиях &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://wiki.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;Описание&quot; [644-1662] --&gt;
&lt;h2&gt;&lt;a name=&quot;требования&quot; id=&quot;требования&quot;&gt;Требования&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;


&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; Объем программной памяти&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;~29 кБ исполняемого кода + ~17 кБ константы (18% от объема флэш-памяти dsPIC33FJ256GP710)&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; Объем ОЗУ&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;~25 кБ + ~1.5 кБ стек (88% от объема SRAM dsPIC33FJ256GP710)&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;
Исходя из требований, понятно, что на сегодняшний день единственный контроллер,на котором можно запустить этот проект - это &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;. Это связано только с требованиями к ОЗУ, производительности 16-битных DSC от Microchip достаточно, чтобы реализовать декодер потоков с низким значением kbps на любом контроллере dsPIC30.
&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://wiki.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;Требования&quot; [1663-2666] --&gt;
&lt;h2&gt;&lt;a name=&quot;производительность&quot; id=&quot;производительность&quot;&gt;Производительность&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Архив с исходными кодами содержит тестовые музыкальные фрагменты с различными битрейтами. Производительность оценивалась как время необходимое на декодирование фрагмента, при этом в оценку не входят функции считывания исходного файла в буфер потока и вывода результирующего raw потока в файл. Частота тактирования контроллера устанавливалась равной 80 МГц (40 MIPS).
&lt;/p&gt;

&lt;p&gt;
Результаты тестирования говорят о том, что текущая версия декодера способна декодировать в реальном времени (на 40 MIPS):

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; моно потоки с любым битрейтом&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; стерео потоки с частотой выборок до 32 кГц и битрейтом до 128 кбит/с&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

При этом для декодирования стерео-потока 32 кГц @ 128 кбит/с необходимо 33.6 MIPS производительности, а для декодирования стерео-потока 8 кГц @ 20 кбит/с требуется 6.8 MIPS производительности.
&lt;/p&gt;

&lt;p&gt;
Полный отчет о тестировании приведен в файле &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://wiki.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;Производительность&quot; [2667-4237] --&gt;
&lt;h2&gt;&lt;a name=&quot;ограничения&quot; id=&quot;ограничения&quot;&gt;Ограничения&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Текущая версия декодера имеет следующие ограничения:

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MPEG1 Layer 1 и Layer 2 не поддерживаются&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Используется 16-битная арифметика&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ошибка в функции &lt;code&gt;mad_port_stereo_intensity_lsf()&lt;/code&gt; &lt;img src=&quot;http://wiki.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://wiki.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;Ограничения&quot; [4238-] --&gt;</description>
    </item>
</rdf:RDF>
