.TH "mpeg2enc" "1" "25 Aug 2002" "MJPEG Tools Team" "MJPEG tools manual" .SH "نام (NAME)" mpeg2enc \- کدگذار ویدیوهای MPEG-1/2 .SH "خلاصه دستور (SYNOPSIS)" .B mpeg2enc .RB [ -v | --verbose .IR num ] .RB [ -M | --multi-thread .IR num_CPU ] .RB [ -f | --format .IR mpeg_profile ] .RB [ -l | --level ] h | high | m | main .RB [ -b | --video-bitrate .IR bitrate_kbps ] .RB [ -V | --video-buffer .IR video_buf_size_kB ] .RB [ -T | --target-still-size .IR still_size_kB ] .RB [ -q | --quantisation .IR quantisation ] .RB [ -r | --motion-search-radius .IR motion_search_radius ] .RB [ -Q | --quantisation-reduction .IR \-4.0..5.0 ] .RB [ -X | --quant-reduction-max-var .IR 0.0 .. 2500.0] .RB [ -p | --3-2-pulldown ] .RB [ -I | --interlace-mode .IR 0|1|2 ] .RB [ -s | --sequence-header-every-gop ] .RB [ -g | --min-gop-size .IR min_gop_size ] .RB [ -G | --max-gop-size .IR max_gop_size ] .RB [ -P | --force-b-b-p ] .RB [ -n | --video-norm .IR n|p|s ] .RB [ -F | --frame-rate .IR frame_rate_code ] .RB [ -x | --display-hsize] .IR 32 .. 38383 ] .RB [ -y | --display-vsize] .IR 32 .. 38383 ] .RB [ -a | --aspect .IR aspect_ratio_code ] .RB [ -z | --playback-field-order .IR b|t ] .RB [ -4 | --reduction-4x4 .IR 1..4 ] .RB [ -2 | --reduction-2x2 .IR 1..4 ] .RB [ -S | --sequence-length .IR size_MB ] .RB [ -B | --nonvideo-bitrate .IR bitrate_kbps ] .RB [ -N | --reduce-hf .IR 0.0..2.0 ] .RB [ -D | --intra_dc_prec .IR 8..11 ] .RB [ -H | --keep-hf ] .RB [ -d | --no-dummy-svcd-SOF ] .RB [ -C | --correct-svcd-hds ] .RB [ --no-constraints ] .RB [ -K | --custom-quant-matrices .IR kvcd|tmpgenc|default|hi-res|file=inputfile|help ] .RB [ -E | --unit-coeff-elim .IR -40..40 ] .RB [ -R | --b-per-refframe .IR 0..2 ] .RB [ --no-altscan-mpeg2 ] .RB [ --dualprime-mpeg2 ] .RB [ -A | --ratecontroller .IR 0..1 ] .RB [ -u | --cbr ] .RB [ --chapters .IR frame,... ] .RB [ -? | --help ] .B -o|--output .I filename .SH "توضیحات (DESCRIPTION)" برنامه mpeg2enc مشتق بسیار بهبود‌یافته‌ای از کدگذار مرجع MPEG-2 متعلق به MPEG Software Simulation Group است. این برنامه جریان‌ها را در یک قالب مسطح YUV ساده موسوم به "YUV4MPEG" که توسط \fBlav2yuv\fP و فیلترهای مرتبط (مانند \fByuvscaler\fP(1)) از بسته \fBmjpegtools\fP(1) تولید می‌شود، می‌پذیرد. یک افزونه خروجی برای رمزگشای MPEG با نام \fBmpeg2dec\fP(1) در دسترس است تا امکان استفاده از آن را در برنامه‌های تبدیل کد (ترنسکد) فراهم کند. این کدگذار در حال حاضر به طور کامل از تولید جریان‌های پایه‌ای MPEG-1 و جریان‌های فریم پیش‌رونده (progressive) و درهم‌بافته (interlaced) در MPEG-2 پشتیبانی می‌کند. MPEG-2 کدگذاری‌شده بر اساس میدان (field encoded) نیز ممکن است اما در حال حاضر نگهداری یا پشتیبانی نمی‌شود. برای اکثر اهداف، این خروجی جریان پایه‌ای (elementary stream) باید با استفاده از ابزار .BR mplex (1) با یک یا چند جریان صوتی به یک جریان برنامه/سیستم هم‌تافته (multiplex) شود. توجه داشته باشید که اگرچه این صفحه راهنما قصد دارد نحوه استفاده موثر از mpeg2enc را توضیح دهد، اما به عنوان مقدمه‌ای بر ویدیوی MPEG-1/2 که خود موضوعی نسبتاً پیچیده است در نظر گرفته نشده است. قالب ویدیویی MPEG استانداردی تا حدی پیچیده با گزینه‌های بسیار متعدد است که توضیح همه آن‌ها لزوماً آسان نبوده و حتی شاید در زمینه یک کدگذار نرم‌افزاری کاربرد خاصی نداشته باشند. اطلاعات کاربردی فراوانی برای افراد تازه‌کار را می‌توان در سند mjpeg-HOWTO یافت که باید همراه با بسته \fBmjpegtools\fP(1) نصب شده باشد. اطلاعات بیشتر و نرم‌افزارهای پشتیبان کاربردی را می‌توان در وب‌گاه mjpegtools یافت: .br .IP \fBhttp://mjpeg.sourceforge.net\fP .SH "انتخاب پروفایل MPEG (SELECTING THE MPEG PROFILE)" .PP تنظیم پروفایل MPEG مورد استفاده. استانداردهای MPEG از تعداد زیادی گزینه پشتیبانی می‌کنند. در عمل، کاربردهای مختلف قالب MPEG محدودیت‌های اضافی بر شکل جریان MPEG اعمال می‌کنند. تنظیم این فلگ، نوع جریان تولیدی را انتخاب می‌کند. .PP .BR -f|--format \ 0 - MPEG-1 عمومی. .PP یک پروفایل پایه‌ای MPEG-1 که به بیشتر پارامترها امکان می‌دهد برای کاربردهای خاص با استفاده از فلگ‌های دیگر تنظیم شوند. کاربردهای رایج شامل تولید یک جریان MPEG-1 با نرخ بیت متغیر به همراه بافرهای بزرگ و نرخ داده بالا برای پخش نرم‌افزاری در رایانه است. .PP .BR -f|--format \ 1 - استاندارد VCD. .PP یک پروفایل MPEG-1 دقیقاً منطبق با مشخصات VCD2.0. تنظیمات فلگ‌هایی که منجر به ساختار جریان غیراستاندارد شوند، نادیده گرفته می‌شوند. .PP .BR -f|--format \ 2 - پروفایل VCD سفارشی کاربر. .PP مشابه پروفایل 2، اما نرخ بیت و اندازه بافر ویدیو می‌توانند روی مقادیر غیراستاندارد تنظیم شوند. اندازه فریم نیز می‌تواند غیراستاندارد باشد. مقادیر پیش‌فرض نرخ بیت و اندازه بافر مشابه مقادیر VCD استاندارد هستند. .PP .BR -f|--format \ 3 - MPEG-2 عمومی. .PP یک پروفایل پایه‌ای MPEG-2 که اجازه می‌دهد اکثر پارامترها برای کاربردهای ویژه با استفاده از فلگ‌های دیگر تنظیم شوند. کاربردهای معمول شامل تولید جریان MPEG-2 با بافرهای بزرگ و GOPهای طولانی برای پخش نرم‌افزاری در رایانه است. .PP .BR -f|--format \ 4 - استاندارد SVCD. .PP یک پروفایل MPEG-2 دقیقاً منطبق با مشخصات SVCD2.0. تنظیمات فلگ‌هایی که منجر به ساختار جریان غیراستاندارد شوند نادیده گرفته می‌شوند. .PP .BR -f|--format \ 5 - پروفایل SVCD غیراستاندارد. .PP مشابه پروفایل 4، اما نرخ بیت، اندازه بافر ویدیو، اندازه و ساختار GOP می‌توانند روی مقادیر غیراستاندارد تنظیم شوند. اندازه فریم نیز ممکن است غیراستاندارد باشد. مقادیر پیش‌فرض نرخ بیت و بافر برابر با مقادیر SVCD استاندارد هستند. .PP .BR -f|--format \ 6 - توالی تصاویر ثابت (Stills) در VCD. .PP سبک خاصی از جریان MPEG را که برای تصاویر ثابت در VCDها به کار می‌رود کدگذاری می‌کند. برای استفاده از این پروفایل، باید با استفاده از فلگ -T اندازه هدف فشرده‌سازی تصاویر را مشخص کنید. مقادیر معقول حدود ۳۵ کیلوبایت برای تصاویر ثابت با وضوح استاندارد (عرض ۳۵۲) و ۱۲۰ کیلوبایت برای تصاویر ثابت با وضوح بالا (عرض ۷۰۴) است. .PP .BR -f|--format \ 7 - توالی تصاویر ثابت (Stills) در SVCD. .PP سبک خاصی از جریان MPEG را که برای تصاویر ثابت در SVCDها به کار می‌رود کدگذاری می‌کند. هم تصاویر با وضوح استاندارد (عرض ۴۸۰) و هم وضوح بالا (عرض ۷۰۴) پشتیبانی می‌شوند. همانند تصاویر ثابت VCD، اندازه هر تصویر ثابت فشرده‌شده را با استفاده از فلگ -T تعیین می‌کنید. .PP .BR -f|--format \ 8 - پروفایل DVD MPEG-2 برای 'dvdauthor' .PP این نسخه بسته‌های ناوبری ساختگی خاصی را به جریان خروجی اضافه می‌کند که ابزار dvdauthor آن‌ها را پر کرده تا یک فایل .VOB مناسب برای تدوین DVD ایجاد نماید. نرخ بیت پیش‌فرض ۷۵۰۰ کیلوبیت بر ثانیه و اندازه‌های بافر بر روی حداکثر مقدار مجاز طبق مشخصات DVD تنظیم می‌شوند. .PP .BR -f|--format \ 9 - پروفایل DVD MPEG-2. .PP صرفاً یک پیاده‌سازی بسیار ابتدایی. مناسب برای بردهای DXR2 و سخت‌افزارهای مشابه که تنها در صورتی قادر به رمزگشایی MPEG-2 هستند که در قالبی شبیه DVD ارائه شود. نرخ بیت پیش‌فرض ۷۵۰۰ کیلوبیت بر ثانیه و اندازه‌های بافر حداکثر مجاز در استاندارد DVD هستند. .PP .BR -f|--format \ 10 - ATSC 480i .PP .BR -f|--format \ 11 - ATSC 480p .PP .BR -f|--format \ 12 - ATSC 720p .PP .BR -f|--format \ 13 - ATSC 1080i .SH "حروف عملکردی عمومی (GENERAL FUNCTION LETTERS)" .PP .BR -v|--verbose \ num .PP تنظیم سطح پرگویی به num. مقدار 0 = فقط هشدارها و خطاها، 1 = اطلاعات نیز، 2 = پرگویی کامل. .PP .BR -K|--custom-quant-matrices \fBkvcd\fP | \fBtmpgenc\fP | \fBdefault\fP | \fBhi-res\fP | \fBfile=\fPinputfile | \fBhelp\fP .PP مشخص کردن ماتریس‌های کوانتیزاسیون مورد استفاده به جای مقادیر پیش‌فرض (که می‌توان با "-K default" تعیین کرد). استفاده از "-K hi-res" معادل با استفاده از گزینه -H است. مقدار kvcd از ماتریس‌های Kvcd.Net برگرفته از http://www.kvcd.net استفاده می‌کند؛ مقدار tmpgenc ماتریس‌های TMPGEnc از http://www.tmpgenc.net/e_main.html را فراخوانی می‌کند. به طور میانگین (بسته به منبع ورودی)، جدول‌های tmpgenc نرخ بیت میانگین را حدود ۱۰٪ و جدول‌های kvcd نرخ بیت را حدود ۱۶٪ (در مقایسه با جدول‌های پیش‌فرض) کاهش می‌دهند. .PP .BR -E|--unit-coeff-elim \ -40..40 .PP مشخص کردن زمان اعمال یک الگوریتم ویژه موسوم به 'unit coefficient elimination' (حذف ضرایب یکانی) روی بلوک‌های تصویر کدگذاری‌شده. اساساً، این رویه بلوک‌هایی از نوعی را که اطلاعات زیادی ندارند اما کدگذاری آن‌ها پرهزینه است، وادار به نادیده گرفته شدن می‌کند. هرچه عدد بزرگ‌تر باشد، این صرف‌نظر کردن احتمالاً بیشتر به چشم می‌آید اما فشرده‌سازی بیشتر تقویت می‌شود. مقدار منفی بدان معناست که تمام ضرایب صفر می‌شوند، و مقدار مثبت یعنی فقط ضرایب بافت و نه ضرایب شدت پایه صفر می‌شوند. مقادیر حدود 10 یا -10 به نظر می‌رسد با منابع ویدیویی باکیفیت عملکرد خوبی دارند. برای محتوای نویزدارتر شاید امتحان کردن 20 یا -20 ارزش داشته باشد. .PP توجه: اگر فریم‌های B کدگذاری شوند، این فقط برای فریم‌های B اعمال می‌شود. .BR -R|--b-per-refframe \ 0..2 .PP مشخص کردن تعداد فریم‌های کدگذاری‌شده تفاضلی دوجهته (نوع B) بین فریم‌های مرجع (I یا P). مقدار پیش‌فرض 0 است، به جز کدگذاری VCD که طبق استاندارد به 2 فریم B نیاز دارد. کارشناسان درباره میزان بهبود فشرده‌سازی توسط فریم‌های B اختلاف نظر دارند. در عمل، مگر اینکه محتوای بسیار تمیزی داشته باشید، این فریم‌ها کم‌فایده و گاهی حتی مضر هستند. اگر هیچ فریم B کدگذاری نشود، کدگذاری به طور چشمگیری سریع‌تر بوده و حافظه کمتری مصرف می‌کند و فشرده‌سازی به ندرت افتی بیش از حد ناچیز خواهد داشت. .PP .BR -?|--help .PP نمایش خلاصه نحو دستور. .SH "حروف عملکردی تنظیم پروفایل انتخابی (FUNCTION LETTERS ADJUSTING THE SELECTED PROFILE)" توجه: اگر پروفایل انتخابی شما مقادیر مشخصی برای این پارامترها تعیین کرده باشد، این فلگ‌های تنظیمی را بازنویسی خواهد کرد. به ویژه، برای پروفایل‌های استاندارد VCD و SVCD تقریباً \fIهیچ چیز\fP قابل تنظیمی وجود ندارد. .PP .BR -b|--video-bitrate \ num .PP نرخ بیت جریان ویدیویی خروجی بر حسب کیلوبیت بر ثانیه (kBits/sec). پیش‌فرض دقیقاً نرخ بیت مورد نیاز برای جریان‌های VCD است. اگر حالت نرخ بیت متغیر (VBR) انتخاب شده باشد (گزینه -q را ببینید)، این مقدار \fIحداکثر\fR نرخ بیت جریان خواهد بود. \fBتوجه:\fP به طور پیش‌فرض جریان‌های MPEG-2 (\fB-f\fP 3، 4، 5، 8 و 9) به صورت VBR هستند. برای تولید جریان‌های CBR (نرخ بیت ثابت) از گزینه \fB--cbr\fP استفاده کنید. .PP .BR -A|--ratecontroller \ 0..1 .PP مشخص کردن الگوریتم کنترل نرخ مورد استفاده. پیش‌فرض 0 است. .PP .BR -V|--video-buffer \ num .PP حداکثر بافر ویدیویی مورد نیاز برای رمزگشایی جریان بر حسب کیلوبایت. پیش‌فرض 46 کیلوبایت (اندازه بسیار کوچک) تعیین‌شده برای VCD است. اندازه مورد استفاده برای SVCD مقدار معقول‌تر 230 کیلوبایت است. اگر برای یک رمزگشای نرم‌افزاری مناسب کدگذاری می‌کنید، افزایش این مقدار به 500 کیلوبایت یا بیشتر منطقی است. .PP .BR -T|--target-still-size \ num .PP تنظیم اندازه هدف برای تصاویر ثابت (S)VCD بر حسب کیلوبایت. .PP .BR -s|--sequence-header-every-gop .PP این فلگ کدگذار را وادار می‌کند در ابتدای هر گروه تصویر (GOP) یک "سرآیند توالی" (sequence header) تولید کند. این امر توسط برخی سخت‌افزارهای پخش‌کننده برای پشتیبانی از عملکردهای حرکت سریع به جلو/عقب/دسترسی تصادفی لازم است، اما در غیر این صورت اتلاف بیت به شمار می‌رود. .PP .BR -d|--no-dummy-svcd-SOF .PP پروفایل SVCD MPEG-2 نیازمند "افست اسکن" (Scan OFfset) ویژه‌ای است که در عمل اشاره‌گرهایی به مکان دیسک نهایی SVCD هستند که ویدیوی مربوط به 0.5 و حدود 5 تا 10 ثانیه قبل و بعد در جریان در آنجا قرار دارد. هدف از این اطلاعات پشتیبانی از عملکردهای "حرکت سریع به جلو/عقب" است. متأسفانه در زمان کدگذاری ویدیو توسط mpeg2enc، این برنامه نمی‌داند ویدیو در نهایت در کجا قرار خواهد گرفت؛ بنابراین مقادیر افست اسکن ساختگی ویژه‌ای نوشته می‌شوند که قرار است در حین ساخت تصویر نهایی SVCD پر شوند. در حال حاضر ابزار GNU vcdimager این کار را انجام می‌دهد. با این حال، در برخی شرایط این افست‌های ساختگی می‌توانند مشکلاتی ایجاد کنند. این فلگ مانع از تولید آن‌ها توسط mpeg2enc می‌شود. .PP .BR --correct-svcd-hds .PP در استانداردهای رسمی SVCD، فیلد موجود در اطلاعات هدر MPEG-2 که وضوح افقی "توصیه‌شده" توسط کدگذار را برای رمزگشایی جریان منتقل می‌کند، باید مقادیر 540 (برای توالی‌های 4:3) یا 720 (برای توالی‌های 16:9) را دریافت کند. در عمل بسیاری از دستگاه‌ها کار نمی‌کنند مگر اینکه مقدار آن 480 باشد. این فلگ mpeg2enc را وادار می‌کند از استاندارد رسمی پیروی کند. در صورتی که توالی‌های 16:9 با نسبت تصویر 4:3 پخش می‌شوند، ارزش امتحان کردن دارد. .PP .BR --no-constraints .PP این فلگ تمامی محدودیت‌های مربوط به حداکثر نرخ نمونه‌برداری ویدیو یا وضوح ویدیو را غیرفعال می‌کند. هدف آن اجازه کدگذاری وضوح‌های غیرمعمول ویدیوهای MPEG است (مانند فیلم‌های MPEG با وضوح 2200 در 576 با میدان دید ۱۶۰ درجه برای سینمای واقعیت مجازی)، اما باید با احتیاط استفاده شود: این کار ممکن است شماری از بررسی‌های امنیتی را دور بزند و تنظیمات آزمایش‌نشده می‌تواند باعث از کار افتادن mpeg2enc در این حالت شود. .PP .BR -l |--level\ h|high|m|main .PP این فلگ به سطح پیاده‌سازی MPEG-2 اجازه می‌دهد که پارامترهای کدگذاری بر اساس آن بررسی و تنظیم شوند. اگر در حال کدگذاری محتوای HDTV هستید، ممکن است لازم باشد آن را روی 'high' تنظیم کنید. .PP .BR --no-altscan-mpeg2 .PP این فلگ استفاده از الگوی اسکن ماکروبلوک 'متناوب' (alternate) را برای کدگذاری MPEG2 غیرفعال می‌کند. به طور معمول این الگو استفاده می‌شود، اما چند رمزگشای نرم‌افزاری قدیمی اشکالاتی در رابطه با این ویژگی داشتند. شما هرگز نباید نیازی به استفاده از این فلگ داشته باشید. .PP .BR --dualprime-mpeg2 .PP استاندارد MPEG-2 از یک حالت تخمین حرکت ویژه (DPME، Dual Prime Motion Estimation) فقط برای جریان‌های دارای فریم‌های I/P پشتیبانی می‌کند که تا حدودی می‌تواند فشرده‌سازی را بهبود بخشد. شماری از دستگاه‌های پخش‌کننده (هم سخت‌افزاری و هم نرم‌افزاری) از این حالت پشتیبانی نمی‌کنند. این پخش‌کننده‌ها بسته به اینکه DPME در مشخصات MPEG-2 اختیاری باشد یا خیر، ممکن است با MPEG-2 سازگار باشند یا نباشند. اگر نیاز به تولید محتوا برای چنین پخش‌کننده‌هایی دارید (مانند Ogle یا برنامه پخش DVD اپل)، نباید dualprime-mpeg2 را فعال کنید! به طور شگفت‌آوری حداقل یک پخش‌کننده سخت‌افزاری/گیرنده دیجیتال شناخته شده است که نسبت به استفاده از DPME ناسازگار است. .PP .BR -z|--playback-field-order \ b|t .PP این فلگ ترتیب فیلد مشخص‌شده در برچسب درهم‌بافی در هدر جریان ورودی را بازنویسی می‌کند. (اگر به این گزینه نیاز پیدا کردید، نشان‌دهنده مشکلی در فرآیند ضبط/کدگذاری است که در آن ترتیب زمانی دو فیلد در هر فریم به اشتباه برچسب‌گذاری شده است. نتیجه این امر یک "لرزش" عجیب هنگام پخش جریان روی تلویزیون است. برای اطلاعات بیشتر در مورد مشکلات درهم‌بافی به mjpeg-howto مراجعه کنید.) .PP .SH "حروف گزینه‌های کنترل پارامترهای ویدیو (OPTION LETTERS CONTROLLING VIDEO PARAMETERS)" .PP .BR -n|--video-norm \ n|p|s .PP اجبار جریان ورودی به اینکه به عنوان NTSC|PAL|SECAM در نظر گرفته شود، صرف‌نظر از آنچه هدر جریان پیشنهاد می‌دهد. اساساً این گزینه فقط مقادیر پیش‌فرض را برای مجموعه‌ای از گزینه‌های دیگر تنظیم می‌کند. .PP .BR -F|--frame-rate \ num .PP تنظیم نرخ فریم جریان خروجی. به طور پیش‌فرض، این مقدار از هدر ورودی استنباط می‌شود. در حال حاضر فقط نرخ‌های استاندارد MPEG پشتیبانی می‌شوند. در نهایت، نرخ‌های کم‌وبیش اختیاری امکان‌پذیر خواهند شد. .br 0 - غیرمجاز .br 1 - 24000.0/1001.0 (فیلم تبدیل‌شده با 3:2 pulldown در NTSC) .br 2 - 24.0 (فیلم اصلی - NATIVE FILM) .br 3 - 25.0 (ویدیوی PAL/SECAM / فیلم تبدیل‌شده) .br 4 - 30000.0/1001.0 (ویدیوی NTSC) .br 5 - 30.0 .br 6 - 50.0 (نرخ فیلد PAL) .br 7 - 60000.0/1001.0 (نرخ فیلد NTSC) .br 8 - 60.0 .br .PP .BR -a|--aspect \ num .PP تنظیم کد نسبت ابعاد پخش ویدیوی کدگذاری‌شده. به طور پیش‌فرض، این مقدار از هدر ورودی استنباط می‌شود. .br 1 - 1 - نمایش 1:1 .br 2 - 2 - نمایش 4:3 .br 3 - 3 - نمایش 16:9 .br 4 - 4 - نمایش 2.21:1 .IP برای MPEG-2 نسبت‌های ابعاد مشخص‌شده مستقیماً استفاده می‌شوند. برای MPEG-1، mpeg2enc کد نسبت تصویر پیکسلی MPEG-1 را از استاندارد ویدیویی مشخص‌شده و نسبت تصویر پخش مشخص‌شده استنباط می‌کند. .PP .BR -x|--display-hsize \ num .PP .BR -y|--display-vsize \ num .PP این گزینه‌ها راهنماهای اندازه افقی نمایش و اندازه عمودی نمایش را در MPEG-2 تنظیم می‌کنند. به طور پیش‌فرض، این‌ها صرفاً همان ابعاد فریم کدگذاری هستند. اما اگر روی مقادیر متفاوتی تنظیم شوند، پخش‌کننده متوجه می‌شود که نوارهای سیاه مناسب یا برش/مقیاس‌بندی باید انجام شود. کاربرد اصلی این پارامترها تنظیم display-vertical-size روی 1080 برای محتوای HDTV 1080i یا 1080p است. در اینجا، از آنجا که ارتفاع فریم باید مضربی از ۱۶ باشد، ارتفاع فریم کدگذاری‌شده به اجبار 1088 خواهد بود، هرچند استانداردهای HDTV تنها ۱۰۸۰ خط از محتوای تصویر را مشخص می‌کنند. کمیته‌های استاندارد ... واقعاً دوست‌داشتنی هستند! .BR -p|--3-2-pulldown .PP تنظیم -p فقط برای محتوای منبع فیلم ۲۴ فریم در ثانیه معنا دارد. این فلگ پرچم‌هایی را در جریان خروجی تنظیم می‌کند که به رمزگشا می‌گوید فیلم را به عنوان ویدیوی NTSC با نرخ ۶۰ فیلد در ثانیه با استفاده از "3:2 pulldown" پخش کند. این کار بسیار کارآمدتر از کدگذاری به صورت ویدیوی ۶۰ فیلد در ثانیه است. کاربرد کلاسیک آن تبدیل کد یک فیلم کدگذاری‌شده به صورت PAL (فیلم ۲۴ فریم در ثانیه که با سرعت بیش از حد در ۲۵ فریم در ثانیه پخش می‌شود!) به NTSC است (فلگ -f را ببینید). .SH "حروف گزینه‌ها برای کنترل فشرده‌سازی و سرعت (OPTION LETTERS FOR CONTROLLING COMPRESSION AND SPEED)" .PP .BR -M|--multi-thread \ num_CPU .PP کدگذاری MPEG کاری است که می‌تواند به طور کاملاً کارآمد بین تعداد کمی پردازنده (CPU) تقسیم شود. برنامه mpeg2enc می‌تواند از نظر داخلی طوری تنظیم شود که وظایف اصلی پردازش را بین چند رشته اجرایی (thread) همزمان تقسیم کند. این فلگ چندرشتگی را برای استفاده بهینه از تعداد پردازنده‌های مشخص‌شده تنظیم می‌کند. .PP لازم به ذکر است که حتی با وجود ۱ پردازنده نیز \fIتا حدودی\fR چندرشتگی انجام می‌شود: ورودی فریم‌ها به موازات کدگذاری صورت می‌گیرد. مقدار پیش‌فرض -M برابر با 1 است. این امر دستیابی به عملکرد خوبی را ممکن می‌سازد، به ویژه هنگامی که یک ماشین جداگانه برای پیش‌پردازش (رمزگشایی از MJPEG، تغییر مقیاس، نویززدایی و غیره) با اتصال لوله‌ای نتیجه نهایی به mpeg2enc (مثلاً با rsh یا ssh) استفاده می‌شود. .PP تنظیم -M 0 تمام چندرشتگی را غیرفعال می‌کند. این کار گاهی برای اشکال‌زدایی یا دستیابی به حداکثر بازدهی CPU در یک سیستم اشتراکی مفید است. تنظیم -M 3 در یک ماشین دوپردازنده‌ای نتایجی اندکی سریع‌تر از -M 2 به بهای راندمان کمی پایین‌تر CPU تولید می‌کند. اگر کار دیگری روی ماشین کدگذاری نیاز نیست انجام شود، این گزینه کاربردی است. در عمل تنظیم -M بیشتر از 4 به دلیل موازی‌سازی نسبتاً درشت‌دانه، حتی اگر CPUها در دسترس باشند، فایده چندانی ندارد. در واقع یک محدودیت ثابت ۴ رشته کارگر (worker threads) در برنامه وجود دارد. .PP مقدار پیش‌فرض به 0 به جای 1 تغییر یافته است تا از خرابی (crash) در انتهای کدگذاری جلوگیری شود: .nf INFO: [mpeg2enc] Signaling last frame = 499 mpeg2enc: seqencoder.cc:433: void SeqEncoder::EncodeStream(): Assertion `pass1coded.size() == 0' failed. Abort .fi .PP .BR -q|--quantisation \ 1 .. 31 .PP حداقل کوانتیزاسیون جریان خروجی. کوانتیزاسیون دقتی را که اطلاعات تصویر با آن کدگذاری می‌شوند کنترل می‌کند. هرچه عدد کمتر باشد کیفیت بالاتر است اما نرخ داده مورد نیاز بیشتر خواهد بود. \fBتوجه:\fP در سیستم‌های IA32 ممکن است به دلیل سرریز/کوتاه‌سازی محاسباتی در روتین‌های DCT/iDCT، تنظیم مقدار خیلی کم (۳ یا کمتر) موجب ایجاد اعوجاج و مصنوعات تصویری شود. اگر این گزینه تنظیم شود، یک جریان با \fIنرخ بیت متغیر\fR (VBR) تولید می‌شود. این روش کارآمدتر است اما MPEG-1 با نرخ بیت متغیر توسط برخی از رمزگشاهای سخت‌افزاری قابل پخش نیست و توسط برخی بسته‌های ساخت DVD رد می‌شود. اگر قصد دارید از رمزگشای نرم‌افزاری استفاده کنید، حتماً نرخ بیت متغیر را ترجیح خواهید داد. .sp اگر این گزینه بدون تعیین حداکثر نرخ بیت تنظیم شود، کوانتیزاسیون روی مقدار مشخص‌شده ثابت می‌ماند. لازم به ذکر است که تعیین نکردن نرخ بیت احتمالاً یک خطا بوده و ممکن است نتایج غیرمنتظره‌ای ایجاد کند. .sp برای جریان‌های MPEG-2 در صورتی که \fB-q\fP به طور صریح داده نشود از پیش‌فرض 8 استفاده می‌شود. برای تحمیل جریان‌های نرخ بیت ثابت از \fB--cbr\fP و \fB-b استفاده کنید، نه -q\fP! .PP .BR -I|--interlace-mode \ 0|1|2 .PP تنظیم ساختار تصویر توالی و نوع کدگذاری بلوک برای جریان‌های MPEG-2. به طور پیش‌فرض، این مقدار از برچسب درهم‌بافی در جریان ورودی استنباط می‌شود. تنظیم روی 0 به صورت فریم‌به‌فریم با خاموش کردن پشتیبانی از ویدیوی درهم‌بافته کدگذاری می‌کند و مشخص می‌سازد که از زیرنمونه‌برداری رنگ پیش‌رونده (progressive) استفاده شده است. تنظیم روی 1 به صورت فریم‌به‌فریم با جبران حرکت و کدگذاری بلوک سازگار با درهم‌بافی کدگذاری می‌کند و مشخص می‌سازد که از زیرنمونه‌برداری رنگ درهم‌بافته استفاده شده است. تنظیم روی 2 محتوای درهم‌بافته را فیلد‌به‌فیلد کدگذاری می‌کند، که برای محتوای درهم‌بافته با بافت بسیار بالا و حرکت زیاد نتایج دقیق‌تری تولید می‌کند، به بهای کاهش کلی کارایی. .IP این تنظیم باید با ماهیت درهم‌بافی جریان ورودی مطابقت داشته باشد، در غیر این صورت ممکن است هنگام پخش جریان MPEG اعوجاج رنگی ایجاد شود. .PP .BR -g|--min-gop-size \ num .PP .BR -G|--max-gop-size \ num .PP این فلگ‌ها حداقل و حداکثر اندازه گروه تصویر (GOP) را برای جریان MPEG خروجی تعیین می‌کنند. مقادیر پیش‌فرض به قالب خروجی بستگی دارند. .sp برای MPEG-1 (مثلاً VCD) پیش‌فرض اندازه ثابت GOP برابر با 12 است (-g و -G هر دو روی 12 تنظیم شده‌اند). .sp برای MPEG-2 مقدار پیش‌فرض -G (حداکثر) با توجه به سیستم ویدیو تنظیم می‌شود: -G 15 برای ۶۲۵ خط (PAL) و 18 برای ۵۲۵ خط (NTSC). اگر -g (حداقل) مشخص نشده باشد، حداقل اندازه GOP روی نصف حداکثر (-G) تنظیم می‌شود. .sp برای تحمیل اندازه ثابت GOP، هر دو -g و -G را با یک مقدار تعیین کنید. .sp اگر حداقل و حداکثر اندازه GOP یکسان \fBنباشند\fP، در صورتی که بیش از ۶۰٪ از ماکروبلوک‌ها در یک فریم P یا B به صورت درون‌تصویری (Intra) کدگذاری شوند، mpeg2enc یک GOP \fBجدید\fP را آغاز خواهد کرد. این امر تضمین می‌کند که تغییرات بزرگ تصویر با یک فریم I کاملاً کدگذاری‌شده از طریق شروع یک GOP جدید همزمان شود. این می‌تواند به جلوگیری از "شطرنجی شدن" (blockiness) گذرا کمک کند. .sp اندازه‌های معقول حداقل GOP برابر با 6 یا 9 هستند. اگر مقداری برای حداقل مشخص نشود اما حداکثر تعیین شده باشد، حداقل روی نصف حداکثر تنظیم می‌شود. اندازه بزرگ‌تر GOP می‌تواند به کاهش نرخ بیت مورد نیاز برای یک کیفیت معین کمک کند. با این حال، این واقعاً فقط برای محتوای منبع \fBبا کیفیت بالا\fP و دارای \fBنویز اندک\fP (مانند ویدیوی دیجیتال) صادق است. برای محتوای پخش تلویزیونی تعیین اندازه GOP بسیار فراتر از 21 یا 24 فایده چندانی ندارد. حتی با منبع خوب نیز بازدهی نزولی بسیار سریع ظاهر می‌شود. همچنین باید توجه داشت که قالب‌های خاص MPEG-2 (مانند DVD) در حداکثر اندازه مجاز GOP دارای محدودیت هستند. .sp توجه: در حال حاضر mpeg2enc طوری برنامه‌ریزی شده است که 2 فریم B را بین هر فریم I/P تولید کند، مگر اینکه اندازه GOP تعداد کمتری را تحمیل کند. این امر برای نرخ‌های بیت متوسط تا بالا (>= 1Mbps) منطقی است اما احتمالاً برای کدگذاری در نرخ بیت پایین کمتر بهینه است. .PP .BR -c|--closed-GOPs .PP تنظیم این فلگ باعث می‌شود کدگذار تنها GOPهای "بسته" (Closed Groups of Pictures) تولید کند که بدون ارجاع به فریم‌های پیش از خود قابل رمزگشایی هستند. این برای جریان‌هایی که قرار است در DVDهای چندزاویه‌ای استفاده شوند و کاربردهایی که در آن‌ها MPEG با قابلیت ویرایش آسان‌تر مورد نیاز است مفید است. .PP .BR -P|--force-b-b-p .PP این فلگ انتخاب اندازه GOP را وادار می‌کند تا اندازه‌هایی را برگزیند که تضمین می‌کنند ۲ فریم B بین فریم‌های مجاور I/P ظاهر شوند. چندین رمزگشای رایج MPEG-1 نمی‌توانند جریان‌هایی را که در آن‌ها کمتر از ۲ فریم B بین فریم‌های I/P وجود دارد پردازش کنند. .PP .BR -Q|--quantisation-reduction \ -4.0..5.0 .PP این فلگ میزان کاهش کوانتیزاسیون را برای بلوک‌هایی که حاوی مقادیر زیادی جزئیات تیز تصویر هستند مشخص می‌کند. مقادیر بزرگ استفاده کارآمدی از بیت‌ها ایجاد می‌کنند اما ممکن است باعث ایجاد اعوجاج‌های بصری در اطراف بخش‌های پرجزئیات شوند. با محتوای منبع نویزدار، این گزینه ممکن است اثر "مواج شدن" (swimming) روی پس‌زمینه‌های بافت‌دار ایجاد کند چرا که نویز باعث افزایش تصادفی کوانتیزاسیون بلوک‌ها می‌شود. پیش‌فرض 0.0 (خاموش) است. گزینه \-X را نیز ببینید. .PP .BR -X|--quant-reduction-max-var \ 0.0..2500.0 .PP واریانس روشنایی (luma) که تقویت کوانتیزاسیون (-Q) در زیر آن فعال می‌شود. .PP .BR -r|--motion-search-radius \ num .PP این فلگ شعاع جستجوی تخمین حرکت را تنظیم می‌کند. برای بیشتر اهداف، مقدار پیش‌فرض (16) کاملاً مناسب است. برای MPEG-2 با وضوح بالا و صحنه‌های پرتحرک، شاید افزایش آن ارزش داشته باشد. با این حال، این کار کدگذاری را به طور چشمگیری کندتر می‌کند. کاهش شعاع فایده چندانی ندارد؛ افزایش سرعت چشمگیر نخواهد بود و اثر منفی بر کیفیت می‌تواند ملموس باشد. .PP .BR -4|--reduction-4x4 \ 1..4 .PP .BR -2|--reduction-2x2 \ 1..4 .PP این گزینه‌ها کنترل می‌کنند که کدگذار تا چه اندازه در دور انداختن تخمین‌های به ظاهر نامناسب در حین تخمین حرکت رادیکال عمل کند. تنظیم روی 1 بدان معناست که بلوک‌های بسیار کمی در مراحل اولیه دور ریخته می‌شوند که منجر به کدگذاری کند اما بالاترین کیفیت ممکن می‌شود. تنظیم روی 4 کدگذاری را سریع می‌کند اما می‌تواند بر کیفیت تأثیر منفی بگذارد. فلگ -4 دور ریختن را در مرحله جستجوی اولیه زیرنمونه‌برداری‌شده 4*4 کنترل می‌کند، و فلگ -2 دور ریختن را در مرحله ثانویه زیرنمونه‌برداری‌شده 2*2 مدیریت می‌نماید. .IP این فلگ‌ها مفید هستند زیرا مصالحه بین سرعت و کیفیت بسته به نوع CPU به طور محسوسی متفاوت است. در ماشین‌های مدرن تأثیر بر سرعت حدود ۲ برابر و در ماشین‌های قدیمی‌تر حدود ۳ برابر است. تأثیر بر کیفیت حدود ۱۰٪ کوانتیزاسیون است (۰.۲ از یک بیت دقت در کدگذاری بافت‌ها). برای اکثر کاربردها تنظیمات پیش‌فرض مناسب خواهند بود. با این حال در P-III Katmai و موارد مشابه، -4 2 -2 1 یک تنظیم کیفیت نزدیک به بهینه با سرعت معقول فراهم می‌کند. .PP .BR -N|--reduce-hf \ num .PP تنظیم این فلگ نحوه کوانتیزاسیون جزئیات بافت را تغییر می‌دهد تا دقت کدگذاری اطلاعات با فرکانس بالا کاهش یابد. این ویژگی برای منابعی با نویز \fIاندک\fR بسیار مفید است. اگر محتوایی با نویز شدید دارید، ابزارهای فیلترسازی موجود در mjpegtools انتخاب بسیار بهتری هستند. عدد تعیین‌شده باید در بازه 0.0 تا 2.0 باشد که حداکثر افزایش کوانتیزاسیون را ارائه می‌دهد. یک عدد مناسب برای استفاده 1.5 یا 1.0 است. .PP .BR -H|--keep-hf .PP تنظیم این فلگ باعث می‌شود کدگذار تا حد امکان اطلاعات با فرکانس بالا را کدگذاری کند. این تنظیمی مناسب برای به حداکثر رساندن کیفیت در وضوح VCD با محتوای منبع باکیفیت و کم‌نویز است. همچنین در صورت داشتن پهنای باند و نرخ بیت کافی، می‌تواند به جلوگیری از "مواج شدن" تصویر کمک کند! .PP .BR -D| --intra_dc_prec \ num .PP تعیین دقت مؤلفه DC. مقدار پیش‌فرض 9 است. بیشتر DVDهای تجاری از 10 استفاده می‌کنند. استفاده از 9 به جای آن موجب صرفه‌جویی در چند بیت می‌شود. استفاده از 10 ممکن است از شطرنجی دیده شدن نواحی بزرگ با رنگ تقریباً یکسان جلوگیری کند. مقدار 11 تنها در پروفایل/سطح بعدی MPEG-2 معتبر است، بنابراین در حال حاضر مقدار معناداری برای استفاده نیست. .SH "حروف گزینه‌ها برای تکه‌بندی جریان خروجی (OPTION LETTERS FOR CHUNKING THE OUTPUT STREAM)" .PP .BR -S|--sequence-length \ num .PP این فلگ اجازه می‌دهد تا اندازه هدف توالی‌های جداگانه در جریان هم‌تافته نهایی بر حسب مگابایت تعیین شود. در صورت تنظیم، mpeg2enc حجم جریان نهایی را زیر نظر می‌گیرد و هر بار که به حد تعیین‌شده می‌رسد، یک تفکیک توالی (در واقع: پایان توالی / شروع توالی) در جریان خروجی وارد می‌کند. هم‌تاف‌کننده \fBmplex\fP(1) می‌تواند این تفکیک‌ها را شناسایی کرده و با رسیدن به هر یک، یک فایل خروجی هم‌تافته جدید را آغاز کند. به این ترتیب به راحتی می‌توان اطمینان حاصل کرد که هر فایل توالی تشکیل‌دهنده می‌تواند روی یک دیسک CD-R رایت شده و همچنان به عنوان یک توالی مستقل MPEG قابل پخش باشد. برای پروفایل‌های SVCD و VCD طول توالی هدف پیش‌فرض 700 مگابایت است. برای سایر پروفایل‌ها پیش‌فرض این است که طول توالی نامحدود باشد. .PP .BR -B|--nonvideo-bitrate \ num .PP از آنجا که mpeg2enc توانایی ذهن‌خوانی ندارد، نمی‌تواند از قبل بداند چه محتوای دیگری با جریان ویدیویی خروجی هم‌تافته خواهد شد؛ بنابراین برای اینکه محاسبات آن در مورد محل درج نقاط تقسیم درست باشد، باید مجموع نرخ داده سایر محتوایی که در نهایت قرار است با ویدیو هم‌تافته شوند به آن اعلام گردد. این فلگ امکان تعیین این نرخ را بر حسب کیلوبیت بر ثانیه فراهم می‌کند. یک قاعده سرانگشتی خوب این است که مجموع نرخ تمام جریان‌های دیگر به علاوه ۱٪ از کل نرخ (شامل ویدیو) استفاده شود. .PP .BR -u|--cbr .PP اجبار به استفاده از کدگذاری نرخ بیت ثابت (Constant Bit Rate). این حالت کمتر از حد بهینه است (و تقریباً در همه موارد ناکارآمد)، اما برخی افراد بر آن اصرار دارند. \fBتوجه:\fP این گزینه استفاده از گزینه \fB-q\fP را \fBغیرفعال\fP می‌کند (بر آن تقدم دارد)! .sp استفاده از این گزینه بدون تعیین نرخ بیت با استفاده از \fB-b\fP خطا محسوب می‌شود، چرا که نرخ بیت ثابت 0 معنایی ندارد. .PP .BR --chapters \ frame,... .PP این فلگ به شما اجازه می‌دهد تا نقاط فصل (chapter points) را درون جریان mpeg تعریف کنید. این ویژگی هنگام تولید ویدیوی DVD بسیار مفید است. هر نقطه فصل با شماره فریم مشخص می‌شود، که فریم نخست با شماره 0 است. هر نقطه فصل تعریف‌شده در ابتدای یک GOP بسته به عنوان یک فریم I قرار خواهد گرفت. .SH "دستورالعمل‌های SSE ،3D-Now! و MMX (SSE, 3D-Now!, MMX)" برنامه mpeg2enc استفاده گسترده‌ای از این الحاقات مجموعه دستورات SIMD در پردازنده‌های خانواده x86 می‌کند. روتین‌های مورد استفاده در زمان اجرا به طور پویا تعیین می‌شوند. لازم به ذکر است که استفاده از SSE نیازمند پشتیبانی سیستم‌عامل است. هسته‌های قدیمی لینوکس 2.2.x (مگر موارد وصله‌شده مانند ردهت) از این ویژگی برخوردار نیستند و بنابراین SSE، هرچند از نظر فیزیکی وجود دارد، فعال نخواهد شد. .SH "اشکالات (BUGS)" باید گزینه‌ای برای تحمیل اندازه‌های GOP وجود داشته باشد که اجازه حضور ۲ فریم B را بین فریم‌های I/P بدهد. برخی از رمزگشاها (حتی نرم‌افزاری) توانایی مدیریت حالتی را ندارند که فریم‌های I/P پشت سر هم یا تنها با ۱ فریم B بین آن‌ها بیایند. نیاز به امکانی برای نوشتن فیلدهای داده کاربری ساختگی وجود دارد تا ابزار multiplexer/imager بتواند اشاره‌گرهای جلو/عقب را هنگام ترکیب یا ساخت تصویر SVCD وارد کند. .SH "نویسنده (AUTHOR)" این صفحه راهنما توسط Andrew Stevens نوشته شده است. اگر سؤال، نظر، مشکلی دارید یا صرفاً می‌خواهید با توسعه‌دهندگان تماس بگیرید، فهرست پستی اصلی ابزارهای MJPEG به شرح زیر است: \fImjpeg\-users@lists.sourceforge.net\fP برای اطلاعات بیشتر، از وب‌گاه ما دیدن کنید: \fIhttp://mjpeg.sourceforge.net .SH "همچنین ببینید (SEE ALSO)" .BR mplex "(1), " mp2enc "(1), " lavrec "(1), " lavplay "(1), " .BR lav2yuv "(1), " lav2wav "(1), " yuvscaler "(1), " yuvdenoise "(1), " y4mdenoise "(1), " mjpegtools "(1)"