یکی از مباحثی که در درس شبکه یا محیطهای چند رسانهای مطرح میشود این است که صدای آنالوگ و پیوستهی ما انسانها چطور به صورت دیجیتال و گسسته روی کامپیوتر ذخیره میشود یا از طریق شبکه که آن هم دیجیتال است ارسال میشود؟
در این دروس و در مبحث صدا بحث میکنیم که Analogue to Digital Conversion (تبدیل آنالوگ به دیجیتال) چگونه اتفاق میافتد. این مبحث در جزوه شبکه به خوبی توضیح داده شده، اما من خیلی خلاصه این مبحث را مرور میکنم:
صدای آنالوگ شما در سه گام به دیجیتال (یعنی 0 و 1) تبدیل میشود:
۱- گام Quantization (یا تدریج یا درجهبندی)
اگر این نماد صدای شما باشد:
(همانطور که میبینید Value یا Volume یا ولوم صدای شما در زمانهای مختلف کم و زیاد میشود)
در این گام، محور Value (که به آن Volume و Amplitude هم گفته میشود) به قسمتهای مساوی تقسیم میشود. هر چه بیشتر، بهتر! دقت کنید که به تعداد تقسیمات این مرحله در اصطلاح Bit-rate یا Bit-depth یا نرخ بیتی یا عمق بیتی صدا گفته میشود. (مثلاً وقتی میگوییم یک صدا ۱۶ بیتی است یعنی در این مرحله، تعداد سطوح تدریح را ۲ به توان ۱۶ یعنی ۶۵۵۳۶ در نظر گرفته)
۲- گام Sampling (یا نمونهبرداری)
دقت کنید:
در این مرحله، محور time به تعدادی قسمت تقسیم میشود. چرا؟ چون ما در حقیقت باید همه نقاط روی آن سیگنال را جایی ذخیره کنیم که بعداً بازتولید کنیم و صدا را پخش کنیم اما چون در درس ریاضی به شما گفتهاند که روی یک پارهخط، بینهایت نقطه وجود دارد، پس نمیتوان همه نقاط را ذخیره کرد. پس «آب دریا را اگر نتوان کشید...پس به قدر تشنگی باید چشید» یعنی حالا که نمیتوان همه نقاط را ذخیره کرد، حداقل چند نقطه را به عنوان «نمونه» ذخیره کنیم، بقیه نقاط را خودمان از طریق به هم وصل کردن نقاط، به دست میآوریم... (مثلاً در سی.دیهای صوتی [Audio CD] از خوانندههای مشهور مثل سراج و ... در هر ثانیه ۴۴۱۰۰ بار نمونه گرفته میشود)
پس در این گام، اگر کل این شکل را «یک ثانیه» از صدای شما تصور کنیم، مثلاً ۱۳ نمونه در ثانیه برمیداریم. یعنی هر ثانیه از محور زمان را به ۱۳ قسمت مساوی تقسیم میکنیم. هر قسمت، سیگنال را در یک نقطه قطع میکند که آن نقطه، نمونه یا Sample است. این نمونه در یک سطح از تدریج قرار میگیرد. مثلاً در شکل بالا نقطه اول در سطح ۵ از تدریج قرار گرفته. این عدد را زیر آن نقطه یادداشت میکنیم.
۳- گام Coding (یا تبدیل به 0 و 1)
در این مرحله، مقدار نقاط نمونه را به عدد باینری (دودویی) تبدیل میکنیم:
تمام شد! مگر شما 0 و 1 نمیخواستید؟ خوب، این هم دیجیتال!
حالا این صفر و یک را جایی ذخیره میکنیم که بشود فایل صوتی یا روی کانال شبکه ارسال میکنیم که دوست شما آنطرف خط صدای شما را بشنود...
در مقصد صدا باید دوباره به آنالوگ تبدیل شود تا قابل شناسایی باشد. همین روال را برعکس انجام میدهیم تا سیگنال دوباره تولید شود... (توضیحات بیشتر مربوط به Digital to Analogue Conversion یا DAC در جزوه شبکه...)
به هر حال، بحث اصلی من در این مطلب، در تبدیل آنالوگ به دیجیتال است. وقتی به این بخش میرسیم، بعضی دانشجوهای زرنگتر میگویند: استاد، یعنی اگر الان در یک فایل صوتی حالت سکوت باشد یعنی هیچ صدایی نداشته باشیم هم باز نمونهبرداری به همان صورت انجام میشود و کلی 0 و 1 به خاطر سکوت ذخیره میشود؟ یعنی بیجهت حجم فایل اضافه میشود؟
خوب، اینجاست که بحثی مطرح میشود به نام VBR:
VBR = Variable Bit Rate یعنی چه؟
«نرخ بیتی متغیر» یعنی هنگام تبدیل صدا، هر کجا که سکوت هست (یا به هر دلیلی تعداد بیت بالایی برای هر نمونه لازم نیست) تعداد سطوح تدریج (یعنی بیتهای لازم برای نمونه) کم شود و هر کجا که صدا بیشتر است و لازم است، کیفیت بهتری داشته باشیم، تعداد سطوح تدریج افزایش یابد. یعنی در حقیقت تقسیمبندیهای محور Value در مورد هر نمونه یکسان نیست بلکه نسبت به محتوای صدا متغیر خواهد بود. (در تکنولوژی Variable Sampling Rate که ظاهراً در حد تحقیقات دانشگاهی مانده، همین موضوع در نمونهبرداری اتفاق میافتد یعنی هر کجا لازم شد بیشتر نمونه میگیریم و هر کجا لازم نبود کمتر)
مثلاً فرض کنید دارید صدای اذان را ضبط یا به فرمت MP3 تبدیل میکنید. میدانید که بین عبارات اذان، معمولاً چند ثانیه سکوت داریم. پس لزومی ندارد در این چند ثانیه مثل حالتی که یک عبارت گفته میشود تدریج انجام شود.
چگونه صدا را فشردهتر کنیم؟
با توجه به آنچه در مورد VBR گفته شد، اگر در نرمافزارهایی مثل Sony Sound Forge از فایلی که دارید یک Save as بگیرید، خواهید دید که بین حالتهای مختلف ذخیرهسازی با فرمتهای مختلف، حالتهایی وجود دارد که با VBR مشخص شده. اگر این موارد را انتخاب کنید، خواهید دید که حجم فایل (به خصوص اگر سکوت در فایل زیاد باشد) به طور قابل ملاحظهای کاهش پیدا میکند:
مثلاً یک فایل صوتی را من با حالت VBR حتی به صورت دو کاناله (Stereo) ذخیره کردم ۲۰ مگابایت شد، در حالی که در حالت یک کاناله (Mono) بدون VBR حدوداً ۲۸ مگابایت شد! (در حالی که باید به خاطر دوکاناله شدن، حجمش خیلی بیشتر میشد)
موفق باشید؛
حمید رضا نیرومند