فشرده سازی صوت
کوانتیزه کردن
• خطی
– فواصل ثابت
– مستقل از دامنه
• غیر خطی
– فواصل متغیر
– افزایش فواصل در دامنه های بالا
– نگاشت لگاریتمی
مدولاسیون داده
• به جای کد کردن دامنه واقعی فقط افزایش یا کاهش را به کمک یک بیت کد کنیم
PCM Differential
• Differential PCM = DPCM
• تفاضل دامنه فعلی با دامنه قبلی توسط بیت های کمتر
• ADPCM
• Adaptive Differential PCM
– بخش های ساکت بیت کمتر
– بخش های شلوغ بیت بیشتر
فشرده سازی به روش Psycho-Acoustic
• حذف بخش های غیر قابل شنود
• تاثیرات ماسکها
– یک سیگنال با دامنه زیاد سیگنالهای کم دامنه مجاور خود را ماسک میکند
MPEG AUDIO
• فشرده سازی:
– 32 ، 64 ، 96 ، 128 یا 192 کیلو بیت درثانیه
• کانالها:
– تک باند (mono )
– دو باند مستقل
– استریو مشترک Joint Stereo
MPEG AUDIO
• نرخ نمونه برداری :
– 32Khz
– 44.1 Khz
– 48 Khz
• هر نمونه به صورت 16 بیتی
• حداکثر تاخیر در گدگذاری و کدگشایی : 80 میلی ثانیه
• استفاده از Psycho –acoustic در کوانتیزه کردن
کدگذار و کدگشای MPEG
تاریخچه MP3
• Fraunhofer Institut
– موسسه تحقیقاتی ( کشور آلمان )
– بکارگیری خواص شنوایی انسان برای فشرده سازی صوت
• استاندارد –ISO
• حداکثر ضریب فشرده سازی برابر با 12
• ISO کلیات را بیان کرده
• جزئیات وابسته به نحوه پیاده سازی
لایه های صوت در MPEG
• Frame ها
• شامل 384 نمونه
• این نمونه های مربوط به 32 Sub-Band هستند
• برای هر sub-band 12 مقدار ذخیره میشود
برای هر sub-band 12 مقدار ذخیره میشود لایه های صوت در MPEG لایه 1: ماسک کردن فرکانس استفاده از فیلتر DCT بررسی فقط یک فریم لایه 2 : ماسک موقتی سه فریم ( قبلی ، فعلی ، بعدی ) شبیه سازی شنوایی انسان لایه های صوت در MPEG لایه 3 : ماسک غیرخطی : فرکانس ها به باندهایی باپهنای متفاوت تقسیم میشوند کانالهای استریو به صورت تفاضلی کدگذاری میشوند فشرده سازی ضرایب به روش هافمن لایه 1 تاثیرات Psycho- Acoustic حساسیت گوش انسان لایه 1 تاثیرات ماسک فرکانس یک سیگنال با فرکانس 1KHz (فرکانس ماسک ) تولید میکنیم سپس سیگنالی با فرکانس نزدیک به آن مثلا 1.1KHz و با شدت کم تولید میکنیم دامنه این فرکانس را به تدریج افزایش میدهیم تا شنیده شود لایه 1 فشرده سازی سیگنال اصلی به 32 باند اصلی تقسیم میشود Critical Band برای هر باند رویه ماسک تعریف میشود که نشان میدهد کدام سطح از سیگنال می تواند توسط باندهای مجاور ماسک شود .
لایه 1 الگوریتم : محاسبه انرژی در هر باند اگر انرژی آن کمتر از انرژی باند مجاور است آن را کدگذاری نکن درغیراینصورت باند را کدگذاری کن ضرایب را کوانتیزه کن فاکتور کوانتیزه را به گونه ای انتخاب کن که خطای آن کمتراز فاکتور ماسک باشد ( هر بیت کوانتیزه معادل 6db است) مثال سطوح مربوط به 16 باند ازبین 32 باند اول لایه 2 – فشرده سازی تاثیرات Psycho-Acoustic Temporal Masking : یک صدای قوی که ناگهان قطع میشود آزمایش :یک سیگنال قوی مثلا 60db با فرکانس 1kHz پخش میشود همراه با آن یک سیگنال ضعیف 40db با فرکانس 1.1KHz پخش میکنیم ( این سیگنال ماسک میشود) با قطع سیگنال تست برای مدت زمان مشخضی سیگنال ضعیف نیز شنیده نمیشود لایه 2 – فشرده سازی آزمایش بالا را با فرکانسهای مختلف تکرار میکنیم لایه2- فشرده سازی مشابه با لایه 1 از این امکان برای ماسک فریم های مجاور استفاده میکنیم برای سادگی کار فرش میکنیم که این ماسک فقط میتواند بردی به اندازه یک فریم داشته باشد لایه 3 – تاثیرات psycho- Acoustic دقت تشخیص شنوایی انسان با افزایش فرکانس کاهش می یابد در لایه 1و 2 طیف فرکانسی به 32 فریم با اندازه های یکسان تقسیم شد در لایه سوم فرکانس ها به روش غیرخطی تقسیم میشوند به گونه ای که میزان خطای شنوایی در همه باند ها یکسان باشد لایه 3 Bark برگرفته از نام Barkhausen یک Bark برایر با عرض یک باند حیاتی Critical Band است لایه 3 – آستانده های موجود در باندهای حیاتی لایه 3 این لایه به سیستم شنوایی انسان نزدیکتراست چراکه از Bark ها برای تقسیم بندی فرکانس استفاده میکند علاوه بر ماسکهای پوششی و موقتی در لایه های 1 و 2 در لایه سوم از کدگذاری تفاضلی برای ضرایب و نیز کدگذاری هافمن جهت فشرده سازی آنها استفاده میشود کدگذاری گفتار روش های تخصص یافته حجم کم فرکانسهای گفتار 300 تا 3400 هرتز کدگذاری پیشگوی خطی LPC Linear Predictive Coding شبیه سازی آناتومی انسان اتصال لوله هایی با ضخامت های متفاوت Linear Predictive Coding امواج صوتی توسط تارهای صوتی تولید میشوند این اموا ج در لوله هایی با ضخامت های مختلف حرکت می کنند در هر تغییر قطر بخشی از موج بازگردانده میشود میزان این انعکاس توسط ضرایبی تعیین شده است بنابراین تولید گفتار وابسته به گوینده فقط با تعیین این ضرایب امکانپذیر است LPC Encoder سیگنال صوتی به بخش های کوچکی به اندازه 20 تا 30 میلی ثانیه تقسیم میشود برای هر فریم s[i] ، تعداد P وزن تعیین میکنیم lpc[0],lpc[1],…..lpc[p-1] که s[i] تقریبا برابر خواهد بود با : Lpc[0]*s[i-1]+lpc[1]*s[i-2]+….+lpc[p-1]*s[i-p] معمولا p بین 8 تا 14 انتخاب میشود LPC Encoder سیگنال اولیه با سیگنال بازسازی شده مقایسه میشود اختلاف موجود بین دو سیگنال محاسبه شده ضرایب اصلاح می شوند