خب بالاخره مجالی فراهم شد که کد mp3 decoder رو بزارم.
یه توضیح مختصر:کلا اول کار فرمت فایل های صوتی غیر فشرده بود که به اصطلاح میگفتن فرمت سی دی (یا همون wave) بعد که نیازمند به فشرده سازی شدن شروع شد به ابداع فرمت های مختلف.در بعضی از فشرده سازی ها شما میتونید همون دیتای قبلی رو دقیق باز سازی کنید که به این مدل میگن lossless comperssion؛بعضی هم متاسفانه دیگه نمیتونید دیتای قبلی رو بطور کامل باز سازی کنید که به این مدل میگن lossy compression. مدل mp3 از نوع lossy هست.خب علتشم اینه که اون یه ذره دیتایی رو که از دست میدیم اولا توی محدوده های فرکانس بالا هستن و شاید زیاد اصن متوجهشون نمیشیم دوم هم این که نسبت به ریت فشرده سازی بصرفه هست.تو فرمت mp3 حجم فایل نسبت به فرمت اصلی به 1/5 تا 1/20 کاهش پیدا میکنه.این یه مقاله هست که به نسبت مفصل mp3 رو توضیح داده و جالبه که ظاهرا یه ایرانی نوشتتش.از مدل فشرده سازی هم یه دید کلی بدم این که اول که یه هدر داریم که اسم و مشخصات و اینا رو توش مینویسن بعدش دیتای صوتی بصورت فریم، فریم پشت سر هم قرار داره تا ته که اونم باز هر کدوم یه هدر داره (اگه نداشتن بد بخت بودیم نمیتونستیم آهنگ هامون رو پاز کنیم) و دیتای صوتی که شامل دیتا های باند های مختلف صوتی و گین و دیتای یک یا دو چنل صوتی (مود ستریو و مونو) و .... هس که با بد بختی تمام دیکود میشن.از همه مهم تر یه لایبرری داره ماله شرکت helix هس که یه فریم رو بش میدی و دیتای دیکود صوتی رو میده ینی شما برای این که بتونی یه فایل رو دیکود کنی لازمه یه ذره کد اضافی بزنی.
این فایل کد کیلش هست(mp3 decoder keil sample code-stm32) که توش یه فایل سیگنال سینوسی رو دیکود میکنه .با تقریب خوبی میتونم بگم که کد سی کیل درست درمونی جایی نبود همه gcc بودن و اینا.یه دو تا فایل تست هم هست که هم هگزش هست هم فرمت mp3 و هم فرمت wave ش.
یه بابای چینی هم هست که جد آباد mp3 رو ریخته بیرون این کلیپشه.اینم سایت خودش که کد اون چیزی که تو کلیپ میبیید رو گذاشته.انصافا خیلی حال داشته....دمش گرم