| lame(1) | فشردهساز صوتی LAME | lame(1) |
نام (NAME)
lame - انکودر و فشردهساز صوتی MP3 با کیفیت بالا
خلاصه دستور (SYNOPSIS)
lame [گزینهها] <فایل_ورودی> <فایل_خروجی>
توضیحات (DESCRIPTION)
برنامه LAME ابزاری قدرتمند برای ساخت فایلهای صوتی فشرده MP3 است (عبارت LAME مخفف بازگشتی Lame Ain't an MP3 Encoder است). فایلهای صوتی تولیدشده را میتوان با پخشکنندههای محبوب MP3 مانند mpg123 یا madplay پخش کرد. برای خواندن داده از ورودی استاندارد (stdin)، از "-" به جای <infile> استفاده کنید. برای نوشتن داده در خروجی استاندارد (stdout)، از "-" به جای <outfile> استفاده کنید.
گزینهها (OPTIONS)
گزینههای ورودی:
- -r
- فرض میکند
فایل ورودی
به صورت
داده خام PCM
(بدون هدر)
است. نرخ
نمونهبرداری
(Sampling rate) و حالت
مونو/استریو/استریوی
مشترک (jstereo)
باید در خط
فرمان مشخص
شوند. برای
هر نمونه
استریو، LAME
انتظار
دارد
دادههای
ورودی
ابتدا برای
کانال چپ و
سپس برای
کانال راست
مرتب شده
باشند. به
طور
پیشفرض، LAME
آنها را به
عنوان
اعداد صحیح
علامتدار
۱۶ بیتی با
فرمت little-endian در
نظر
میگیرد.
بدون گزینه
-r, برنامه LAME
چند
فراخوانی
fseek() روی فایل
ورودی
انجام
میدهد تا
هدرهای WAV و AIFF
را بیابد.
ممکن است در نسخه توزیع شما در دسترس نباشد. - -x
- جابهجایی
بایتها (Byte swap)
در فایل
ورودی (یا
فایل خروجی
هنگام
استفاده از
--decode).
برای برطرف کردن مشکلات مربوط به تفاوت اندیان (little-endian / big-endian). اگر فایلهای انکود شده شما شبیه به نویز یا خشخش شنیده میشوند، ابتدا این گزینه را امتحان کنید.
بدون استفاده از -x, برنامه LAME با فایل ورودی بر اساس ترتیب بایت محلی (native endian) رفتار خواهد کرد. - -s sfreq
- sfreq = 8/11.025/12/16/22.05/24/32/44.1/48
فرکانس نمونهبرداری ورودی بر حسب کیلوهرتز (kHz).تنها برای فایلهای ورودی خام PCM الزامی است. در غیر این صورت از هدر فایل ورودی تشخیص داده میشود.
برنامه LAME در صورت نیاز فایل ورودی را به طور خودکار به یکی از نرخهای نمونهبرداری پشتیبانیشده در MP3 بازنمونهبرداری (Resample) میکند.
- --bitwidth n
- عرض بیت
ورودی برای
هر نمونه (Bit width).
n = 8, 16, 24, 32 (پیشفرض 16)تنها برای فایلهای ورودی خام PCM الزامی است. در غیر این صورت از هدر فایل ورودی تشخیص داده میشود.
- --signed
- به LAME اعلام
میکند
نمونههای
ورودی
علامتدار
(Signed) هستند
(حالت
پیشفرض
برای
دادههای
خام PCM با ۱۶،
۲۴ و ۳۲ بیت).
تنها برای فایلهای ورودی خام PCM الزامی است.
- --unsigned
- به LAME اعلام
میکند
نمونههای
ورودی بدون
علامت (Unsigned)
هستند (حالت
پیشفرض
برای
دادههای
خام PCM با ۸
بیت، که در
آن 0x80 معادل
صفر است).
تنها برای فایلهای ورودی خام PCM الزامی است و فقط برای عرض بیت ۸ در دسترس است.
- --little-endian
- به LAME اعلام
میکند
نمونههای
ورودی
دارای فرمت
little-endian هستند.
تنها برای فایلهای ورودی خام PCM الزامی است.
- --big-endian
- به LAME اعلام
میکند
نمونههای
ورودی
دارای فرمت
big-endian هستند.
تنها برای فایلهای ورودی خام PCM الزامی است.
- --mp1input
- فرض میکند
فایل ورودی
یک فایل
صوتی MPEG Layer I (یا
همان MP1) است.
اگر پسوند نام فایل ".mp1" باشد، LAME خودکار آن را به عنوان فایل MPEG Layer I در نظر میگیرد. برای ورودی استاندارد (stdin) یا فایلهای Layer I که پسوند mp1. ندارند، باید از این سوییچ استفاده کنید. - --mp2input
- فرض میکند
فایل ورودی
یک فایل
صوتی MPEG Layer II (یا
همان MP2) است.
اگر پسوند نام فایل ".mp2" باشد، LAME خودکار آن را به عنوان فایل MPEG Layer II در نظر میگیرد. برای ورودی استاندارد (stdin) یا فایلهای Layer II که پسوند mp2. ندارند، باید از این سوییچ استفاده کنید. - --mp3input
- فرض میکند
فایل ورودی
یک فایل MP3
است.
برای کاهش نرخ نمونهبرداری یا کاهش کیفیت از یک mp3 به mp3 دیگر (downsampling) کاربرد دارد. به عنوان مثال، برای ارسال جریان صوتی از طریق سرور IceCast مفید است.
اگر پسوند نام فایل ".mp3" باشد، LAME خودکار آن را به عنوان MP3 در نظر میگیرد. برای ورودی استاندارد (stdin) یا فایلهای MP3 که پسوند mp3. ندارند، باید از این سوییچ استفاده کنید. - --nogap file1 file2 ...
- انکود بدون وقفه (Gapless) برای مجموعهای از فایلهای صوتی متوالی و پشتسرهم.
- --nogapout dir
- پوشه خروجی برای انکود بدون وقفه (باید قبل از --nogap قرار گیرد).
- --out-dir dir
- اگر فایل خروجی به صورت صریح مشخص نشده باشد، فایل در مسیر دادهشده نوشته میشود. هنگام استفاده از ورودی پایپ یا استریم نادیده گرفته میشود.
گزینههای عملیاتی:
- -m mode
- mode = s, j, f, d, m, l, r
حالت استریوی مشترک (Joint-stereo) حالت پیشفرض برای فایلهای استریو است.
استریوی ساده (s)imple stereo (اجبار LR)
در این حالت، انکودر از همبستگیهای احتمالی میان دو کانال ورودی استفاده نمیکند. با این حال میتواند تقاضای بیت میان هر دو کانال را تنظیم کند؛ به این معنی که اگر یکی از کانالها سکوت باشد یا پیچیدگی کمتری داشته باشد، بیتهای بیشتری به کانال دیگر اختصاص دهد.استریوی مشترک (j)oint stereo
در این حالت، انکودر میتواند (فریم به فریم) از استریوی L/R یا استریوی mid/side استفاده کند. در استریوی mid/side، کانالهای میانی (L+R) و کناری (L-R) انکود میشوند و بیتهای بیشتری به کانال میانی نسبت به کانال کناری اختصاص مییابد. زمانی که جداسازی استریو چندان زیاد نباشد، این کار عملاً پهنای باند را افزایش داده و با همان مقدار بیت، کیفیت بالاتری ارائه میدهد.استفاده نامناسب از استریوی mid/side میتواند منجر به ناهنجاریهای فشردهسازی شنیداری شود. سوییچ بیش از حد میان mid/side و استریوی معمولی نیز ممکن است کیفیت صدا را خراب کند. برای تعیین زمان سوییچ به استریوی mid/side، برنامه LAME از الگوریتمی بسیار پیشرفتهتر از الگوریتم توصیفشده در مستندات ISO استفاده میکند.
استریوی اجباری (f)orced MS stereo
تمامی فریمها را مجبور به انکود با استریوی mid/side میکند. تنها در صورتی باید استفاده شود که مطمئن باشید تمام فریمهای فایل ورودی جداسازی استریوی بسیار کمی دارند.کانال دوگانه (d)ual channel
در این حالت، دو کانال به طور کاملاً مستقل از یکدیگر انکود میشوند. هر کانال دقیقاً نیمی از نرخ بیت را دریافت میکند. این حالت برای کاربردهایی مانند انکود دو زبان مختلف طراحی شده است (برای مثال: زبان انگلیسی در یک کانال و فرانسوی در کانال دیگر). استفاده از این حالت برای فایلهای استریوی معمولی موجب افت کیفیت انکود خواهد شد.تککاناله (m)ono
ورودی به صورت سیگنال مونو انکود میشود. اگر ورودی استریو باشد، به مونو کاهش مییابد (downsampled). ترکیب کانالها به صورت مجموع کانال چپ و راست با تضعیف ۶ دسیبل محاسبه میشود. همچنین توجه داشته باشید اگر از جریان داده خام PCM استریو استفاده میکنید، باید پارامتر -a را به کار ببرید.فقط کانال چپ (l)eft channel only
ورودی به صورت سیگنال مونو انکود میشود. اگر ورودی استریو باشد، تنها کانال چپ انکود خواهد شد.فقط کانال راست (r)ight channel only
ورودی به صورت سیگنال مونو انکود میشود. اگر ورودی استریو باشد، تنها کانال راست انکود خواهد شد. - -a
- فایل ورودی
استریو را
با هم ترکیب
(میکس) کرده
و به صورت
مونو انکود
میکند.
ترکیب کانالها به صورت مجموع کانال چپ و راست با تضعیف ۶ دسیبل محاسبه میشود.این گزینه فقط هنگام استفاده از ورودی خام PCM استریو مورد نیاز است (زیرا LAME نمیتواند تعداد کانالها را از فایل ورودی خام تشخیص دهد). برای انکود یک فایل ورودی خام PCM استریو به صورت مونو، از دستور زیر استفاده کنید: lame -a -m m
برای فایلهای ورودی WAV و AIFF، استفاده از -m m همواره یک فایل mp3. مونو از ورودیهای مونو و استریو تولید خواهد کرد.
- --freeformat
- یک جریان
بیتی با
فرمت آزاد (free
format bitstream) تولید
میکند. با
این گزینه
میتوانید
از -b با هر
نرخ بیت
بالاتر از ۸
کیلوبیت بر
ثانیه
استفاده
کنید.
با این حال، حتی اگر دکودر MP3 موظف باشد نرخ بیتهای آزاد را حداقل تا ۳۲۰ کیلوبیت بر ثانیه پشتیبانی کند، بسیاری از پخشکنندهها قادر به مدیریت آن نیستند.
آزمایشها نشان دادهاند که دکودرهای زیر از فرمت آزاد پشتیبانی میکنند:
in_mpg123 تا ۵۶۰ کیلوبیت بر ثانیه
l3dec تا ۳۱۰ کیلوبیت بر ثانیه
LAME تا ۶۴۰ کیلوبیت بر ثانیه
MAD تا ۶۴۰ کیلوبیت بر ثانیه - --decode
- استفاده از
LAME برای دکود
و تبدیل
فایل به
فرمت wav. فایل
ورودی
میتواند
هر یک از
فرمتهای
ورودی
پشتیبانیشده
برای انکود
باشد، از
جمله
فایلهای layer II.
برنامه LAME
برای دکود
از نسخهای
از mpglib موسوم
به HIP
استفاده
میکند.
اگر از گزینه -t استفاده شود (غیرفعال کردن هدر wav)، برنامه LAME دادههای خام pcm را با فرمت اندیان محلی (native endian) تولید میکند. میتوانید از -x برای جابهجایی ترتیب بایتها استفاده کنید.
اگر دکودر MP3 در زمان کامپایل LAME به صورت صریح غیرفعال شده باشد، این گزینه قابل استفاده نخواهد بود.
- -t
- غیرفعال
کردن نوشتن
برچسب INFO
هنگام
انکود.
این برچسب در فریم ۰ فایل MP3 جاسازی میشود. شامل اطلاعاتی درباره گزینههای انکود فایل است و در حالت VBR به پخشکنندههای سازگار با VBR اجازه میدهد به درستی در فایل جستجو کرده (seek) و مدت زمان پخش فایلهای VBR را محاسبه نمایند.هنگامی که --decode مشخص شده باشد (دکود به WAV)، این فلگ نوشتن هدر WAV را غیرفعال میکند. خروجی داده خام pcm با فرمت اندیان محلی خواهد بود. از -x برای جابهجایی بایتها استفاده کنید.
- --comp arg
- به جای انتخاب نرخ بیت، با استفاده از این گزینه کاربر میتواند نسبت فشردهسازی هدف را انتخاب کند.
- --scale n
- --scale-l n
- --scale-r n
- مقیاسبندی
ورودی (همه
کانالها،
فقط کانال
چپ یا فقط
کانال راست)
با ضریب n.
این عمل
دادههای PCM
را (پس از
تبدیل به
ممیز شناور)
در n ضرب
میکند.
n > 1: افزایش حجم صدا
n = 1: بدون تغییر
n < 1: کاهش حجم صدابا احتیاط استفاده شود، زیرا اکثر دکودرهای MP3 مقادیری را که پس از دکود بیشتر از ۳۲۷۶۸ شوند، برش میدهند (truncate).
- --replaygain-fast
- محاسبه
سریع اما با
دقت اندکی
کمتر ReplayGain.
این گزینه مقدار ReplayGain رادیویی ("Radio" ReplayGain) را روی جریان داده ورودی پس از اعمال مقیاس صدا یا بازنمونهبرداری تعیینشده توسط کاربر محاسبه میکند.
تحلیل ReplayGain روی محتوای دادههای فشردهشده تاثیری ندارد و تنها مقداری است که در هدر فایل صوتی ذخیره میشود. اطلاعات مربوط به هدف ReplayGain و الگوریتمهای استفادهشده در نشانی http://www.replaygain.org در دسترس است.
تنها مقدار "RadioGain" محاسبه شده و در برچسب LAME ذخیره میشود. تحلیل با حجم مرجع ۸۹ دسیبل انجام میگیرد. توجه: حجم مرجع در انتقال از نسخه ۳.۹۵ به ۳.۹۵.۱ از ۸۳ دسیبل تغییر یافته است.
این سوییچ به طور پیشفرض فعال است.
همچنین ببینید: --replaygain-accurate, --noreplaygain
- --replaygain-accurate
- محاسبه
دقیقتر ReplayGain
و یافتن
نمونه اوج (Peak
sample).
این گزینه مقدار ReplayGain رادیویی را روی جریان داده دکودشده محاسبه میکند، با دکود درجا (on the fly) دادههای انکودشده نمونه اوج را مییابد و آن را در فایل ذخیره میکند.
تحلیل ReplayGain روی محتوای دادههای فشردهشده تاثیری ندارد و تنها مقداری است که در هدر فایل صوتی ذخیره میشود. اطلاعات مربوط به هدف ReplayGain و الگوریتمهای استفادهشده در نشانی http://www.replaygain.org در دسترس است.
به طور پیشفرض، LAME تحلیل ReplayGain را روی دادههای ورودی انجام میدهد (پس از مقیاسبندی حجم صدای تعیینشده توسط کاربر). این رفتار ممکن است نتایج اندکی نادقیق ایجاد کند زیرا دادههای خروجی یک توالی فشردهسازی/وافشردهسازی اتلافی (lossy) با دادههای اولیه ورودی تفاوت دارند. هنگامی که --replaygain-accurate مشخص شود، استریم mp3 درجا دکود شده و تحلیل روی جریان دادههای دکودشده انجام میگیرد. اگرچه از نظر تئوری این روش نتایج دقیقتری میدهد، اما معایبی نیز دارد:
- آزمایشها نشان دادهاند که تفاوت مقادیر ReplayGain محاسبهشده روی دادههای ورودی و دادههای دکودشده معمولاً بیشتر از ۰.۵ دسیبل نیست، در حالی که حداقل اختلاف حجم صدایی که گوش انسان میتواند تشخیص دهد حدود ۱.۰ دسیبل است.
- دکود درجا فرآیند انکود را به میزان قابل توجهی کند میکند.
مزیت آشکار این روش:
- *
- با گزینه --replaygain-accurate نمونه اوج واقعی تعیین شده و در فایل ذخیره میشود. دانستن نمونه اوج برای دکودرها (پخشکنندهها) بسیار مفید است تا از بروز پدیده نامطلوب «بریدگی سیگنال» (Clipping) که موجب اعوجاج صدا میشود جلوگیری کنند.
تنها مقدار "RadioGain" محاسبه شده و در برچسب LAME ذخیره میشود. تحلیل با حجم مرجع ۸۹ دسیبل انجام میگیرد. توجه: حجم مرجع در انتقال از نسخه ۳.۹۵ به ۳.۹۵.۱ از ۸۳ دسیبل تغییر یافته است.
اگر دکودر MP3 در زمان ساخت و کامپایل LAME به صورت صریح غیرفعال شده باشد، این گزینه قابل استفاده نخواهد بود (توجه: اگر LAME بدون دکودر MP3 کامپایل شده باشد، تحلیل ReplayGain روی دادههای ورودی پس از مقیاسبندی صدای کاربر انجام میگیرد).
همچنین ببینید: --replaygain-fast, --noreplaygain, --clipdetect
- --noreplaygain
- غیرفعال
کردن تحلیل
ReplayGain.
به طور پیشفرض تحلیل ReplayGain فعال است. این سوییچ آن را غیرفعال میکند.
همچنین ببینید: --replaygain-fast, --replaygain-accurate
- --clipdetect
- تشخیص
بریدگی
سیگنال (Clipping).
گزینه --replaygain-accurate را فعال میکند و پیامی نمایش میدهد مبنی بر اینکه آیا بریدگی رخ داده است یا خیر و شکل موج صوتی چند دسیبل از حد بیشینه (Full scale) فاصله دارد.
اگر دکودر MP3 در زمان کامپایل LAME به صورت صریح غیرفعال شده باشد، این گزینه قابل استفاده نخواهد بود.
همچنین ببینید: --replaygain-accurate
- --preset type | [cbr] kbps
- استفاده از
یکی از
پریستها و
تنظیمات
پیشساخته
داخلی.
بخش «پریستها و تنظیمات پیشساخته (PRESETS)» در ادامه را مشاهده کنید.
دستور --preset help اطلاعات بیشتری درباره گزینههای استفادهشده در این پریستها ارائه میدهد.
- --noasm type
- غیرفعال کردن بهینهسازیهای خاص زبان اسمبلی ( mmx / 3dnow / sse ). کیفیت افزایش نخواهد یافت و تنها سرعت پردازش کاهش مییابد. اگر در اجرای LAME روی پردازندههای Cyrix/Via با مشکل روبرو هستید، غیرفعال کردن بهینهسازیهای mmx ممکن است مشکل را برطرف کند.
میزان پرگویی:
- --disptime n
- تنظیم تاخیر بر حسب ثانیه میان دو بهروزرسانی صفحه نمایش.
- --nohist
- به طور
پیشفرض، LAME
هنگام
تولید
فایلهای VBR
یک
هیستوگرام
از توزیع
نرخ بیت
نمایش
میدهد. این
گزینه
نمایش
هیستوگرام
را غیرفعال
میکند.
ممکن است نمایش هیستوگرام در نسخه توزیع شما فعال نباشد. - -S
- --silent
- --quiet
- حالت بیصدا؛ هیچ متنی روی صفحه نمایش چاپ نمیشود.
- --verbose
- حالت پرگو؛ چاپ اطلاعات تفصیلی و کامل روی صفحه نمایش.
- --help
- نمایش فهرست گزینههای موجود و راهنما.
الگوریتمهای شکلدهی نوفه و روانشناختی صوت (Noise shaping & psycho acoustics):
- -q qual
- 0 <= qual <= 9
نرخ بیت بیشترین تاثیر را بر کیفیت دارد. هر چه نرخ بیت بالاتر باشد، کیفیت بیشتر خواهد بود. اما برای یک نرخ بیت مشخص، ما مجموعهای از الگوریتمها را در اختیار داریم تا بهترین ضرایب مقیاس (scalefactors) و کدگذاری هافمن (Huffman encoding یا شکلدهی نوفه) را تعیین کنند.
برای حالتهای CBR و ABR جدول زیر اعمال میشود:
-q 0:
استفاده از بهترین الگوریتمها (بهترین جستجوی کدگذاری هافمن، حلقه بیرونی کامل، و بیشترین دقت پارامترها).-q 1 تا -q 4:
مشابه -q 0 بدون حلقه بیرونی کامل و با کاهش تدریجی دقت پارامترها با دور شدن از q0. مقدار -q 3 حالت پیشفرض است.-q 5 و -q 6:
مشابه -q 7، اما شکلدهی نوفه را فعال کرده و بهره زیربلوک (subblock gain) را افزایش میدهد.-q 7 تا -q 9:
مشابه -f. بسیار سریع با کیفیت قابل قبول. مدل روانشناختی صوت برای پیشپژواک (pre-echo) و استریوی mid/side به کار میرود، اما شکلدهی نوفه انجام نمیشود.برای حالت پیشفرض VBR از نسخه LAME 3.98 به بعد، جدول زیر اعمال میشود:
-q 0 تا -q 4:
شامل تمام ویژگیهای حالتهای دیگر و علاوه بر آن استفاده از بهترین جستجو هنگام اعمال کدگذاری هافمن.-q 5 و -q 6:
شامل تمام ویژگیهای -q 7، محاسبه و در نظر گرفتن نوفه واقعی کوانتیزاسیون، و فعالسازی بهره زیربلوک.-q 7 تا -q 9
این سطح از مدل روانشنوایی (psymodel) استفاده میکند اما نوفه کوانتیزاسیون را حین انکود محاسبه نمیکند؛ بلکه تخمینی سریع میزند. - -h
- نام مستعار برای -q 2
- -f
- نام مستعار برای -q 7
گزینههای CBR (نرخ بیت ثابت، پیشفرض):
- -b n
- برای MPEG-1
(فرکانسهای
نمونهبرداری
۳۲، ۴۴.۱ و
۴۸
کیلوهرتز):
n = 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320برای MPEG-2 (فرکانسهای نمونهبرداری ۱۶، ۲۲.۰۵ و ۲۴ کیلوهرتز):
n = 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160برای MPEG-2.5 (فرکانسهای نمونهبرداری ۸، ۱۱.۰۲۵ و ۱۲ کیلوهرتز):
n = 8, 16, 24, 32, 40, 48, 56, 64مقدار پیشفرض برای MPEG1 برابر ۱۲۸، برای MPEG2 برابر ۶۴ و برای MPEG2.5 برابر ۳۲ است (در حالت مونو به ترتیب ۶۴، ۳۲ و ۱۶).
- --cbr
- اجبار به استفاده از نرخ بیت ثابت. برای غیرفعال کردن انکود VBR یا ABR حتی در صورت فعال بودن تنظیمات آنها کاربرد دارد.
گزینههای ABR (نرخ بیت میانگین):
- --abr n
- انکود را با
نرخ بیت
میانگین
هدف n
کیلوبیت بر
ثانیه فعال
میکند و
اجازه
میدهد
فریمهایی
با
اندازههای
مختلف
استفاده
شوند.
محدوده
مجاز برای n
بین ۸ تا
۳۱۰ است و
میتوانید
از هر مقدار
عددی صحیح
در این بازه
استفاده
کنید.
میتوان آن را با سوییچهای -b و -B ترکیب کرد، مانند: lame --abr 123 -b 64 -B 192 a.wav a.mp3 که اندازه فریمهای مجاز را بین ۶۴ تا ۱۹۲ کیلوبیت محدود میکند.
استفاده از گزینه -B توصیه نمیشود. یک جریان بیتی CBR با نرخ ۱۲۸ کیلوبیت، به دلیل مخزن بیت (bit reservoir)، میتواند فریمهایی داشته باشد که به اندازه فریمهای ۳۲۰ کیلوبیت بیت مصرف کنند. حالتهای VBR استفاده از مخزن بیت را به حداقل میرسانند و بنابراین برای دستیابی به انعطافپذیری مشابه با جریانهای CBR، نیاز دارند فریمهای ۳۲۰ کیلوبیت را مجاز بدانند.
گزینههای VBR (نرخ بیت متغیر):
- -v
- استفاده از نرخ بیت متغیر (--vbr-new)
- --vbr-old
- قدیمیترین و آزمایششدهترین الگوریتم VBR را فراخوانی میکند. فایلهایی با کیفیت بسیار خوب تولید میکند، هرچند چندان سریع نیست. این الگوریتم تا نسخه ۳.۸۹ الگوریتم اصلی و پیشفرض VBR به شمار میرفت.
- --vbr-new
- جدیدترین الگوریتم VBR را فراخوانی میکند. در طول توسعه نسخه ۳.۹۰، بهینهسازیهای چشمگیری روی این الگوریتم انجام شد و اکنون کیفیتی همتراز با نسخه اصلی --vbr-old دارد. این الگوریتم مزیت سرعت بسیار بالا (بیش از دو برابر سریعتر از --vbr-old ) را نیز دارد. از نسخه ۳.۹۸ به عنوان حالت پیشفرض تعیین شده است.
- -V n
- 0 <= n <= 9.999
حالت VBR (نرخ بیت متغیر) را فعال کرده و سطح کیفیت VBR را مشخص میکند (پیشفرض = 4). مقادیر اعشاری نیز قابل تنظیم هستند، مانند 4.51.
0 = بالاترین کیفیت.
گزینههای مشترک ABR و VBR:
- -b bitrate
- برای MPEG-1
(فرکانسهای
نمونهبرداری
۳۲، ۴۴.۱ و
۴۸
کیلوهرتز):
n = 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320برای MPEG-2 (فرکانسهای نمونهبرداری ۱۶، ۲۲.۰۵ و ۲۴ کیلوهرتز):
n = 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160برای MPEG-2.5 (فرکانسهای نمونهبرداری ۸، ۱۱.۰۲۵ و ۱۲ کیلوهرتز):
n = 8, 16, 24, 32, 40, 48, 56, 64حداقل نرخ بیت مجاز را مشخص میکند. با این حال، برای جلوگیری از هدررفت فضا، در زمان سکوت از کوچکترین اندازه فریم ممکن استفاده خواهد شد.
- -B bitrate
- برای MPEG-1
(فرکانسهای
نمونهبرداری
۳۲، ۴۴.۱ و
۴۸
کیلوهرتز):
n = 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320برای MPEG-2 (فرکانسهای نمونهبرداری ۱۶، ۲۲.۰۵ و ۲۴ کیلوهرتز):
n = 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160برای MPEG-2.5 (فرکانسهای نمونهبرداری ۸، ۱۱.۰۲۵ و ۱۲ کیلوهرتز):
n = 8, 16, 24, 32, 40, 48, 56, 64حداکثر نرخ بیت مجاز را مشخص میکند.
نکته: اگر یک دستگاه پخش سختافزاری MP3 مجهز به تراشه MAS 3503 دارید، باید حداکثر نرخ بیت را حداکثر روی ۲۲۴ کیلوبیت بر ثانیه تنظیم کنید.
- -F
- اجبار اکید
به رعایت
گزینه -b.
این گزینه عمدتاً برای استفاده در دستگاههای پخش سختافزاری است که از نرخ بیتهای بسیار پایین MP3 پشتیبانی نمیکنند.بدون این گزینه، حداقل نرخ بیت برای بخشهای سکوت آنالوگ نادیده گرفته میشود؛ یعنی زمانی که سطح موسیقی پایینتر از آستانه مطلق شنوایی انسان (ATH) باشد.
گزینههای آزمایشی:
- -X n
- 0 <= n <= 7
هنگامی که LAME به دنبال کوانتیزاسیون «مناسب» میگردد، باید حالت فعلی را با بهترین حالت یافتهشده تا آن لحظه مقایسه کند. این مقایسه مشخص میکند کدام یک بهتر است: بهترین حالت قبلی یا حالت فعلی. پارامتر -X رویکردهای مختلف برای این تصمیمگیری را انتخاب میکند و حالت -X0 پیشفرض است:
-X0
معیارها (به ترتیب اهمیت):
* باندهای ضریب مقیاس با اعوجاج کمتر
* مجموع نوفه فراتر از آستانهها کمتر باشد
* مجموع کل نوفه کمتر باشد-X1
حالت فعلی بهتر است اگر حداکثر نوفه در تمام باندهای ضریب مقیاس کمتر از بهترین حالت قبلی باشد.-X2
حالت فعلی بهتر است اگر مجموع کل نوفه کمتر از بهترین حالت قبلی باشد.-X3
حالت فعلی بهتر است اگر مجموع کل نوفه کمتر از بهترین حالت قبلی باشد و حداکثر نوفه در تمام باندهای ضریب مقیاس کمتر از بهترین حالت قبلی به علاوه ۲ دسیبل باشد.-X4
هنوز مستند نشده است.-X5
معیارها (به ترتیب اهمیت):
* مجموع نوفه فراتر از آستانهها کمتر باشد
* مجموع کل نوفه کمتر باشد-X6
معیارها (به ترتیب اهمیت):
* مجموع نوفه فراتر از آستانهها کمتر باشد
* حداکثر نوفه در تمام باندهای ضریب مقیاس کمتر باشد
* مجموع کل نوفه کمتر باشد-X7
معیارها:
* باندهای ضریب مقیاس با اعوجاج کمتر
یا
* مجموع نوفه فراتر از آستانهها کمتر باشد - -Y
- به LAME اجازه میدهد نوفه در sfb21 را همانند حالت CBR نادیده بگیرد.
گزینههای هدر/جریان MP3:
- -e emp
- emp = n, 5, c
n = بدون تاکید (none، پیشفرض)
5 = 0/15 میکروثانیه
c = citt j.17این گزینه تنها یک فلگ در جریان بیتی تنظیم میکند. اگر فایل ورودی PCM دارید که یکی از انواع تاکید (منسوخشده) بالا روی آن اعمال شده است، میتوانید این فلگ را در LAME تنظیم کنید تا دکودر MP3 هنگام پخش، فرآیند de-emphasis را انجام دهد؛ هرچند اکثر دکودرها این فلگ را نادیده میگیرند.
راهکار بهتر این است که قبل از انکود با ابزاری مستقل de-emphasis را اعمال کنید و سپس بدون گزینه -e انکود نمایید.
- -c
- علامتگذاری فایل انکودشده به عنوان دارای حق کپیرایت (Copyrighted).
- -o
- علامتگذاری فایل انکودشده به عنوان نسخه کپی (Copy).
- -p
- فعالسازی
حفاظت از
خطای CRC.
این گزینه یک کد بررسی افزونگی چرخهای (CRC) به هر فریم اضافه میکند تا خطاهای انتقال در جریان MP3 قابل شناسایی باشند. با این حال، ۱۶ بیت در هر فریم را که میتوانست برای انکود صدا استفاده شود مصرف میکند و در نتیجه کیفیت صدا را اندکی کاهش میدهد. - --nores
- غیرفعال کردن مخزن بیت (Bit reservoir). در این حالت هر فریم مستقل از فریمهای قبلی خواهد بود، اما کیفیت صدا کاهش مییابد.
- --strictly-enforce-ISO
- با این
گزینه،
برنامه LAME
محدودیت
۷۶۸۰ بیت
برای کل
اندازه
فریم را
اعمال
میکند.
این کار باعث هدر رفتن بیتهای زیادی در انکود با نرخ بیت بالا میشود اما سازگاری دقیق با استاندارد ISO را تضمین میکند. این سازگاری ممکن است برای برخی دستگاههای پخش سختافزاری حیاتی باشد.
گزینههای فیلتر:
- --lowpass freq
- تنظیم فرکانس فیلتر پایینگذر (Lowpass) بر حسب کیلوهرتز (kHz). فرکانسهای بالاتر از مقدار مشخصشده قطع خواهند شد.
- --lowpass-width freq
- تنظیم پهنای فیلتر پایینگذر. مقدار پیشفرض ۱۵٪ فرکانس فیلتر پایینگذر است.
- --highpass freq
- تنظیم فرکانس فیلتر بالاگذر (Highpass) بر حسب کیلوهرتز (kHz). فرکانسهای پایینتر از مقدار مشخصشده قطع خواهند شد.
- --highpass-width freq
- تنظیم پهنای فیلتر بالاگذر بر حسب کیلوهرتز. مقدار پیشفرض ۱۵٪ فرکانس فیلتر بالاگذر است.
- --resample sfreq
- sfreq = 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, 48
انتخاب فرکانس نمونهبرداری خروجی (تنها برای انکود پشتیبانی میشود).
در صورت عدم تعیین، LAME هنگام استفاده از نسبتهای فشردهسازی بالا، ورودی را به طور خودکار بازنمونهبرداری میکند.
گزینههای برچسب ID3:
- --tt title
- عنوان قطعه صوتی/آهنگ (حداکثر ۳۰ کاراکتر برای برچسب نسخه ۱).
- --ta artist
- نام هنرمند/خواننده (حداکثر ۳۰ کاراکتر برای برچسب نسخه ۱).
- --tl album
- نام آلبوم (حداکثر ۳۰ کاراکتر برای برچسب نسخه ۱).
- --ty year
- سال انتشار (۱ تا ۹۹۹۹).
- --tc comment
- متن توضیحات تعریفشده توسط کاربر (حداکثر ۳۰ کاراکتر برای v1 و ۲۸ کاراکتر برای v1.1).
- --tn track[/total]
- شماره ترک قطعه صوتی و (اختیاری) تعداد کل ترکهای ضبط اصلی. (هر یک از مقادیر ترک و کل بین ۱ تا ۲۵۵. تعیین شماره ترک به تنهایی برچسب v1.1 میسازد و تعیین تعداد کل، برچسب v2.0 ایجاد میکند).
- --tg genre
- سبک موسیقی (نام سبک یا شماره آن در فهرست سبکها).
- --tv id=value
- فریم متنی یا نشانی وب مشخصشده با شناسه و مقدار (برچسب v2.3). فریم سفارشی کاربر. نحو: --tv "TXXX=description=content"
- --add-id3v2
- اجبار به افزودن برچسب نسخه ۲.
- --id3v1-only
- افزودن تنها برچسب نسخه ۱.
- --id3v2-only
- افزودن تنها برچسب نسخه ۲.
- --id3v2-latin1
- افزودن گزینههای بعدی با انکودینگ متنی ISO-8859-1.
- --id3v2-utf8
- افزودن گزینههای بعدی با انکودینگ متنی یونیکد UTF-8 (ID3v2.4).
- --id3v2-utf16
- افزودن گزینههای بعدی با انکودینگ متنی یونیکد UCS-2 (ID3v2.3).
- --space-id3v1
- پر کردن فضای خالی برچسب نسخه ۱ با فاصله (Space) به جای بایتهای تهی (Null).
- --pad-id3v2
- مشابه با --pad-id3v2-size 128.
- --pad-id3v2-size num
- افزودن برچسب نسخه ۲ همراه با "num" بایت اضافه برای پدینگ.
- --genre-list
- چاپ فهرست مرتبشده الفبایی سبکهای ID3 و خروج.
- --ignore-tag-errors
- نادیده گرفتن خطاهای مقادیر ارائهشده برای برچسبها و استفاده از مقادیر پیشفرض در صورت بروز خطا.
گزینههای تحلیل:
- -g
- اجرای تحلیل گرافیکی روی <infile>. فایل ورودی میتواند فایل mp3. نیز باشد. (این قابلیت یک گزینه زمان کامپایل است و ممکن است باینری شما به دلایل سرعت بدون این ویژگی کامپایل شده باشد).
برچسبهای ID3 (ID3 TAGS)
برنامه LAME قادر است برچسبهای ID3 نسخه v1، v1.1 یا v2 را درون فایل MP3 انکودشده جاسازی کند. این قابلیت اجازه میدهد اطلاعات مفیدی درباره قطعه موسیقی درون فایل گنجانده شود. این دادهها توسط اکثر پخشکنندههای MP3 قابل خواندن هستند.
برنامه LAME به صورت هوشمند برچسب مناسب را انتخاب میکند. تنها در صورتی برچسب ID3 v2 افزوده میشود که توضیحات ورودی در برچسبهای v1 یا v1.1 جا نشوند (یعنی بیشتر از ۳۰ کاراکتر باشند). در این حالت، هر دو برچسب v1 و v2 افزوده میشوند تا اطمینان حاصل شود پخشکنندههایی که توانایی خواندن ID3 v2 را ندارند نیز بتوانند اطلاعات را بخوانند.
حالتهای انکود (ENCODING MODES)
برنامه LAME میتواند موسیقی شما را با استفاده از یکی از ۳ حالت انکود فشرده کند: نرخ بیت ثابت (CBR)، نرخ بیت میانگین (ABR) و نرخ بیت متغیر (VBR).
- نرخ بیت ثابت (CBR)
- این حالت انکود پیشفرض و پایهایترین حالت است. در این حالت، نرخ بیت در سراسر فایل یکسان خواهد بود؛ به این معنی که هر بخش از فایل mp3 از تعداد بیتهای یکسانی استفاده میکند. چه قطعه موسیقی پیچیده و دشوار باشد و چه ساده، انکودر از همان نرخ بیت ثابت استفاده خواهد کرد و در نتیجه کیفیت فایل mp3 متغیر خواهد بود؛ بخشهای پیچیده نسبت به بخشهای سادهتر کیفیت کمتری خواهند داشت. مزیت اصلی این حالت این است که حجم نهایی فایل تغییر نمیکند و کاملاً قابل پیشبینی است.
- نرخ بیت میانگین (ABR)
- در این حالت، انکودر یک نرخ بیت میانگین را حفظ میکند در حالی که برای بخشهای پیچیدهتر موسیقی که به بیت بیشتری نیاز دارند از نرخ بیت بالاتری استفاده میکند. نتیجه این حالت کیفیت بالاتری نسبت به انکود CBR خواهد داشت در حالی که میانگین حجم فایل همچنان قابل پیشبینی باقی میماند؛ بنابراین این حالت به شدت نسبت به CBR توصیه میشود. این حالت انکود شبیه به قابلیتی است که در AAC یا Liquid Audio با نام vbr شناخته میشود.
- نرخ بیت متغیر (VBR)
- در این حالت، شما کیفیت مطلوب را در مقیاسی از ۹ (پایینترین کیفیت/بیشترین اعوجاج) تا ۰ (بالاترین کیفیت/کمترین اعوجاج) انتخاب میکنید. سپس انکودر تلاش میکند با اختصاص بهینه تعداد بیتها برای هر بخش از موسیقی، کیفیت تعیینشده را در کل فایل حفظ کند. مزیت اصلی این است که میتوانید سطح کیفیت مورد نظر خود را دقیقاً مشخص کنید، اما عیب آن این است که حجم نهایی فایل کاملاً غیرقابل پیشبینی خواهد بود.
پریستها و تنظیمات پیشساخته (PRESETS)
سوییچهای --preset نامهای مستعاری برای مجموعهای از تنظیمات بهینهسازیشده LAME هستند.
برای فعالسازی این پریستها:
برای حالتهای VBR (معمولاً بالاترین کیفیت):
- --preset medium
- این پریست برای اکثر افراد و در بیشتر سبکهای موسیقی شفافیت صدایی نزدیک به نسخه اصلی ارائه میدهد.
- --preset standard
- این پریست معمولاً برای بیشتر افراد و در بیشتر قطعات موسیقی شفاف و تفکیکناپذیر از نسخه اصلی است و کیفیت بسیار بالایی دارد.
- --preset extreme
- اگر شنوایی بسیار دقیق و تجهیزات صوتی حرفهای دارید، این پریست معمولاً کیفیتی اندکی بالاتر از حالت standard ارائه میدهد.
برای حالت CBR 320kbps (بالاترین کیفیت ممکن از سوییچهای --preset ):
- --preset insane
- این پریست برای اغلب افراد و شرایط بیش از حد نیاز (Overkill) است، اما اگر بالاترین کیفیت مطلق را بدون در نظر گرفتن حجم فایل میخواهید، بهترین گزینه است.
برای حالتهای ABR (کیفیت بالا به ازای نرخ بیت مشخص، اما نه به اندازه VBR):
- --preset kbps
- استفاده از این پریست معمولاً در نرخ بیت تعیینشده کیفیت مناسبی ارائه میدهد. بسته به نرخ بیت واردشده، این پریست بهینهترین تنظیمات را برای آن شرایط تعیین میکند. اگرچه این روش کارآمد است، اما به اندازه VBR انعطافپذیر نیست و معمولاً در نرخ بیتهای بالا به سطح کیفیت VBR نمیرسد.
- cbr
- اگر از حالت ABR با نرخ بیت مشخصی مانند 80، 96، 112، 128، 160، 192، 224، 256 یا 320 استفاده میکنید، میتوانید از گزینه --preset cbr kbps برای اجبار به حالت انکود CBR به جای حالت استاندارد ABR استفاده کنید. حالت ABR کیفیت بالاتری فراهم میکند اما CBR ممکن است در شرایطی مانند پخش زنده استریم MP3 در بستر اینترنت کاربرد داشته باشد.
مثالها (EXAMPLES)
انکود استریوی مشترک با نرخ بیت ثابت ۱۲۸ کیلوبیت بر ثانیه:
- lame -b 128 sample.wav sample.mp3
انکود استریوی مشترک با نرخ بیت ثابت ۱۲۸ کیلوبیت بر ثانیه با بالاترین کیفیت:
- lame -q 0 -b 128 sample.wav sample.mp3
غیرفعال کردن انکود استریوی مشترک (اندکی سریعتر اما کیفیت پایینتر در نرخ بیتهای <= ۱۲۸ کیلوبیت بر ثانیه):
- lame -m s sample.wav sample.mp3
نرخ بیت متغیر (استفاده از -V n برای تنظیم کیفیت و حجم فایل):
- lame -V 2 sample.wav sample.mp3
استریم تککاناله (مونو) داده خام PCM با ۲۲.۰۵ کیلوهرتز و خروجی ۲۴ کیلوبیت بر ثانیه:
- cat inputfile | lame -r -m m -b 24 -s 22.05 - - > output
استریم تککاناله (مونو) داده خام PCM با ۴۴.۱ کیلوهرتز و کاهش نمونهبرداری به ۲۲.۰۵ کیلوهرتز:
- cat inputfile | lame -r -m m -b 24 --resample 22.05 - - > output
انکود با پریست standard:
- lame --preset standard sample.wav sample.mp3
اشکالات (BUGS)
احتمالاً اشکالاتی وجود دارد.
همچنین ببینید (SEE ALSO)
نویسندگان (AUTHORS)
برنامه LAME در ابتدا توسط Mike Cheng توسعه یافت و اکنون توسط Mark Taylor و تیم LAME نگهداری و پشتیبانی میشود. مدل روانشنوایی GPSYCHO توسط Mark Taylor پیادهسازی شده است (نشانی https://lame.sourceforge.io را ببینید). کتابخانه mpglib توسط Michael Hipp توسعه یافته است. صفحه راهنما توسط William Schelter، Nils Faerber، Alexander Leidinger و Rogério Brito نگارش شده است.
| 8 دسامبر 2013 | LAME 3.99 |