y4mscaler(1) y4mtools manual y4mscaler(1)

y4mscaler - مقیاس‌بندی، برش و جابه‌جایی جریان‌های YUV4MPEG2

y4mscaler [گزینه‌ها] < Y4Mstream > Y4Mstream

دستور y4mscaler یک مقیاس‌بخش (scaler) ویدیویی همه‌منظوره است که روی جریان‌های YUV4MPEG2 عمل می‌کند؛ همان جریان‌هایی که توسط ابزارهای MJPEGtools مانند lav2yuv و mpeg2enc(1) تولید و مصرف می‌شوند.

برنامهٔ y4mscaler برای استفاده در خط لوله (pipeline) طراحی شده است. بنابراین، ورودی از stdin خوانده شده و خروجی به stdout ارسال می‌شود.

عملکرد اصلی y4mscaler مقیاس‌بندی یک ناحیهٔ «فعال» مشخص از جریان ورودی (منبع یا source) به یک ناحیهٔ فعال مشخص در جریان خروجی (هدف یا target) است. پیکسل‌های خارج از ناحیهٔ فعال منبع نادیده گرفته می‌شوند؛ پیکسل‌های خارج از ناحیهٔ فعال هدف با یک رنگ پس‌زمینه پر می‌شوند. همچنین می‌توان یک ماسک (matte) به منبع اعمال کرد؛ پیکسل‌های خارج از ماسک منبع به رنگ پس‌زمینه‌ای که به‌طور جداگانه مشخص شده است تنظیم می‌شوند.

دستور y4mscaler نمونه‌برداری فرعی فام (chroma subsampling) را به‌درستی مدیریت می‌کند، از این رو می‌تواند تبدیل‌های نمونه‌برداری فرعی فام را نیز انجام دهد. قالب جریان YUV4MPEG2 از سه نوع نمونه‌برداری 4:2:0، و همچنین از حالت‌های 4:1:1، 4:2:2، 4:4:4، حالت‌های 4:4:4 دارای کانال آلفا، و یک حالت تک‌رنگ فقط درخشندگی (luma-only) پشتیبانی می‌کند. (به بخش «NOTES ON CHROMA MODES AND SUBSAMPLING» مراجعه کنید.)

دستور y4mscaler می‌تواند تبدیل‌های سادهٔ درهم‌بافی (interlacing) را انجام دهد: جابه‌جایی از اولویت فیلد بالایی (top-field-first) به اولویت فیلد پایینی (bottom-field-first) و برعکس (با دور ریختن فیلد اول به‌صورت اتلافی)، و ایجاد یک جریان غیردرهم‌بافته (progressive) از جریان درهم‌بافته با دور انداختن یک‌درمیان فیلدها (که عملاً وضوح عمودی را نصف می‌کند).

منبع و هدف توسط پارامترهای بسیار زیادی تعریف می‌شوند، اما y4mscaler دارای قواعد اکتشافی (heuristics) درونی متعددی است تا آن‌ها را به‌طور خودکار و بهینه تنظیم کند. بیشتر پارامترهای منبع از هدر جریان ورودی دریافت می‌شوند. سایر پارامترهای منبع و هدف که توسط کاربر تعیین نشده‌اند، به‌گونه‌ای معقول حدس زده می‌شوند.

دستور y4mscaler شامل پیش‌تنظیم‌هایی (presets) برای چندین جریان هدف متداول است: DVD، VideoCD (VCD)، SuperVCD (SVCD)، قالب‌های تصویر ثابت مرتبط و DV.

برای ایجاد جریانی مناسب جهت استفاده در SVCD:

y4mscaler -O preset=svcd

برای ایجاد جریانی برای VideoCD (یک قالب غیردرهم‌بافته)، از یک منبع DV (یک قالب درهم‌بافته)، با انتقال فریم ورودی به اندازهٔ ۴ پیکسل به چپ:

y4mscaler -I ilace=bottom-only -I active=-4+0cc -O preset=vcd

برای دریافت یک منبع NTSC DV عریض (widescreen)، و تبدیل آن به یک جریان لترباکس (letterboxed) با نوارهای آبی در بالا و پایین:

y4mscaler -O sar=ntsc -O bg=RGB:0,0,255

برای دریافت یک منبع NTSC DV عریض و تبدیل آن به یک جریان «تمام‌صفحه» (fullscreen) (یعنی کناره‌ها بریده می‌شوند، درست مانند تلویزیون):

y4mscaler -O sar=ntsc -O infer=clip

برای دریافت یک منبع NTSC لترباکس‌شده در مرکز و تبدیل آن به جریان قالب عریض (16:9) برای DVD، همراه با حذف نوارهای سیاه:

y4mscaler -O preset=dvd -O sar=ntsc_wide -O infer=clip

برای برش قطعهٔ ۱۰۰x۱۰۰ پیکسلی در مرکز یک جریان NTSC DV، احاطه کردن آن با یک حاشیهٔ آبی ۲۰ پیکسلی، و بزرگ‌نمایی آن به یک جریان تمام‌صفحهٔ SuperVCD:

y4mscaler -I active=140x140+0+0cc -I matte=100x100+0+0cc -I bg=RGB:0,0,255 -O preset=svcd سه گزینه نخست، -v، -V و -h، گزینه‌هایی ساده و سرراست هستند که یا هیچ آرگومانی نمی‌پذیرند یا تنها یک آرگومان عددی می‌گیرند.
تنظیم سطح پرگویی (verbosity).
0 = تنها هشدارها و خطاها.
1 = افزودن پیام‌های اطلاع‌رسانی (پیش‌فرض).
2 = افزودن پیام‌های تفصیلی اشکال‌زدایی.
نمایش اطلاعات نسخه و خروج.
نمایش پیام راهنما (خلاصه گزینه‌ها).

گزینه‌های -I، -O و -S هر کدام یک آرگومان به شکل parameter=value می‌پذیرند که به ترتیب پارامترهای ورودی، خروجی و مقیاس‌بندی را مشخص می‌کنند. این گزینه‌ها را می‌توان به‌طور مکرر برای تعیین چندین پارامتر به کار برد. نام‌ها و مقادیر پارامترها به حروف کوچک و بزرگ حساس نیستند. تعاریف به شکل "parameter=[AAA|BBB|CCC]" به این معنا هستند که تنها یکی از کلمات کلیدی فهرست‌شده‌ی AAA، BBB یا CCC قابل انتخاب است. گزینه‌های بعدی بر گزینه‌های قبلی برتری داشته و جایگزین آن‌ها می‌شوند.

تعیین پارامترها برای جریان منبع/ورودی. تمامی آرگومان‌های '-I' به ترتیب ارزیابی می‌شوند و آرگومان‌های بعدی در خط فرمان جایگزین گزینه‌های قبلی خواهند شد. تمامی آرگومان‌های '-I' پیش از هر آرگومان '-O' ارزیابی می‌شوند.
تعیین ناحیه فعال فریم منبع، که برای جای‌گیری در ناحیه فعال فریم مقصد مقیاس‌بندی می‌شود. حالت پیش‌فرض کل فریم است. (می‌توان از "WxH" صرف‌نظر کرد، که در این صورت اندازه ناحیه به اندازه فریم منبع پیش‌فرض خواهد شد.) W و H عرض و ارتفاع هستند. X و Y انحراف نقطه مهار (anchor point) هستند. "aa" حالت مهار است (پیش‌فرض: TL)؛ برای جزئیات به "نکاتی درباره هندسه ناحیه (NOTES ON REGION GEOMETRY)" مراجعه کنید.
مثال: active=200x180+30+24cc
تعیین یک ناحیه مات (matte) برای فریم منبع. تمامی پیکسل‌های خارج از این ناحیه روی رنگ پس‌زمینه منبع تنظیم می‌شوند. مات پیش‌فرض کل فریم است. (می‌توان از "WxH" صرف‌نظر کرد، که در این صورت اندازه ناحیه به اندازه فریم منبع پیش‌فرض خواهد شد.) W و H عرض و ارتفاع هستند. X و Y انحراف نقطه مهار هستند. "aa" حالت مهار است (پیش‌فرض: TL)؛ برای جزئیات به "نکاتی درباره هندسه ناحیه (NOTES ON REGION GEOMETRY)" مراجعه کنید.
مثال: matte=200x180+30+24cc

bg=RGB:r,g,b
bg=YCBCR:y,cb,cr
bg=RGBA:r,g,b,a
bg=YCBCRA:y,cb,cr,a

تنظیم رنگ پس‌زمینه منبع. پیکسل‌های بیرون از ناحیه ماتِ منبع، روی این رنگ تنظیم می‌شوند. می‌توان رنگ را به صورت یک سه‌تایی R'G'B' یا Y'CbCr تعیین کرد. برای نمونه، رنگ پیش‌فرض سیاه است که به صورت "bg=YCBCR:16,128,128" یا "bg=RGB:0,0,0" مشخص می‌شود. نسخه‌های دارای 'A' مقدار آلفا (شفافیت) رنگ را تعیین می‌کنند. محدوده آلفا برای RGBA برابر [0,255] و برای YCBCRA برابر [16,235] است. پیش‌فرض کاملاً کدر است (255 برای RGBA، 235 برای YCBCRA).
تعیین هنجار (norm) استاندارد تلویزیونی جریان منبع. این مقدار معمولاً از سرایند جریان استنباط می‌شود.
تعیین حالت درهم‌بافی (interlacing) به‌کاررفته در جریان منبع. مقادیر NONE، TOP_FIRST و BOTTOM_FIRST با غیردرهم‌بافته، فیلد بالا اول، و فیلد پایین اول مطابقت دارند. این مقادیر معمولاً از سرایند جریان استنباط می‌شوند؛ مشخص کردن آن‌ها سرایند جریان را بازنویسی می‌کند.
مقادیر TOP_ONLY و BOTTOM_ONLY مشخص می‌کنند که تنها فیلد بالا یا پایین هر فریم باید استفاده شود و فیلد دیگر دور ریخته می‌شود. این گزینه‌ها تنها با ورودی درهم‌بافته قابل استفاده هستند و باعث می‌شوند با جریان درهم‌بافته مانند یک جریان پیش‌رونده (progressive) با نصف ارتفاع رفتار شود. (این مورد به‌ویژه در ایجاد یک VCD از یک جریان ورودی درهم‌بافته با اندازه کامل مفید است.) این دو گزینه ویژه تنها زمانی قابل استفاده هستند که منبع یک جریان پیش‌رونده خالص باشد (در مقابل جریان "حالت ترکیبی" در YUV4MPEG2).
تعیین حالت زیرنمونه‌برداری رنگ (chroma subsampling) به‌کاررفته در جریان منبع. این پارامتر از سرایند جریان استنباط می‌شود، بنابراین تقریباً هرگز نباید از این کلمه کلیدی در مشخصات منبع استفاده کرد. تنها دلیل موجه برای تعیین این کلمه کلیدی، جایگزینی نوعی از 4:2:0 با نوعی دیگر است. هرگونه استفاده دیگر باعث شکست پردازش خواهد شد.

sar=N:D
sar=[NTSC|PAL|NTSC_WIDE|PAL_WIDE]

تعیین نسبت ابعاد نمونه (sample-aspect-ratio) جریان منبع. این مقدار می‌تواند یک نسبت عددی (مانند "10:11") یا یکی از کلمات کلیدی باشد که به ترتیب با مقادیر CCIR-601 برای نمایشگرهای 4:3 یا 16:9 مطابقت دارند. این پارامتر معمولاً از سرایند جریان استنباط می‌شود.
تعیین پارامترها برای جریان مقصد/خروجی. تمامی آرگومان‌های '-O' به ترتیب ارزیابی می‌شوند و آرگومان‌های بعدی در خط فرمان جایگزین گزینه‌های قبلی خواهند شد. تمامی آرگومان‌های '-O' پس از هر آرگومان '-I' ارزیابی می‌شوند.

size=WxH
size=SRC

تنظیم اندازه فریم خروجی/مقصد، به صورت عرض W و ارتفاع H بر حسب پیکسل. از کلمه کلیدی SRC برای مشخص کردن اینکه اندازه فریم مقصد باید با اندازه فریم منبع مطابقت داشته باشد، استفاده کنید.
تعیین ناحیه فعال فریم مقصد، که ناحیه فعال فریم منبع به درون آن مقیاس‌بندی می‌شود. حالت پیش‌فرض، کل فریم مقصد است. (می‌توان از "WxH" صرف‌نظر کرد، که در این صورت اندازه ناحیه به اندازه فریم مقصد پیش‌فرض خواهد شد.) W و H عرض و ارتفاع هستند. X و Y انحراف نقطه مهار هستند. "aa" حالت مهار است (پیش‌فرض: TL)؛ برای جزئیات به "نکاتی درباره هندسه ناحیه (NOTES ON REGION GEOMETRY)" مراجعه کنید.
مثال: active=200x180+30+24cc

bg=RGB:r,g,b
bg=YCBCR:y,cb,cr
bg=RGBA:r,g,b,a
bg=YCBCRA:y,cb,cr,a

تنظیم رنگ پس‌زمینه مقصد. پیکسل‌های بیرون از ناحیه فعالِ مقصد، روی این رنگ تنظیم می‌شوند. می‌توان رنگ را به صورت یک سه‌تایی R'G'B' یا Y'CbCr تعیین کرد. برای نمونه، رنگ پیش‌فرض سیاه است که به صورت "bg=YCBCR:16,128,128" یا "bg=RGB:0,0,0" مشخص می‌شود. نسخه‌های دارای 'A' مقدار آلفا (شفافیت) رنگ را تعیین می‌کنند. محدوده آلفا برای RGBA برابر [0,255] و برای YCBCRA برابر [16,235] است. پیش‌فرض کاملاً کدر است (255 برای RGBA، 235 برای YCBCRA).
تعیین حالت درهم‌بافی به‌کاررفته در جریان مقصد. مقادیر NONE، TOP_FIRST و BOTTOM_FIRST با غیردرهم‌بافته، فیلد بالا اول، و فیلد پایین اول مطابقت دارند. حالت پیش‌فرض تطابق با جریان منبع است.
اگر منبع و مقصد هر دو درهم‌بافته باشند، اما با حالت‌های متفاوت (یعنی یکی bottom-first و دیگری top-first باشد)، آنگاه y4mscaler با دور انداختن اولین فیلد منبع، یک حالت را به حالت دیگر تبدیل خواهد کرد.
تعیین حالت زیرنمونه‌برداری رنگ برای استفاده در جریان مقصد. حالت پیش‌فرض تطابق با حالت منبع است. برای اطلاعات بیشتر به "نکاتی درباره حالت‌های رنگ و زیرنمونه‌برداری (NOTES ON CHROMA MODES AND SUBSAMPLING)" مراجعه کنید.

sar=N:D
sar=[SRC|NTSC|PAL|NTSC_WIDE|PAL_WIDE]

تعیین نسبت ابعاد نمونه (sample-aspect-ratio) جریان منبع. این مقدار می‌تواند یک نسبت عددی (مانند "10:11") یا یکی از کلمات کلیدی باشد که به ترتیب با مقادیر CCIR-601 برای نمایشگرهای 4:3 یا 16:9 مطابقت دارند. کلمه کلیدی SRC مشخص می‌کند که SAR مقصد باید با منبع مطابقت داشته باشد.

scale=N/D
Xscale=N/D
Yscale=N/D

تنظیم نسبت‌های مقیاس‌بندی، به صورت یک کسر؛ برای نمونه، scale=1/2. پارامتر "scale=" ضریب‌های X و Y را هم‌زمان تنظیم می‌کند. "Xscale=" و "Yscale=" را می‌توان برای تنظیم جداگانه آن‌ها به کار برد. infer=[PAD|CLIP|PRESERVE_X|PRESERVE_Y] حالت مورد استفاده برای استنتاج نسبت‌های مقیاس‌بندی از نواحی فعال و SARها را تعیین می‌کند. کلیدواژه‌ها مانعة‌الجمع هستند. مقدار پیش‌فرض PAD است.
تعیین می‌کند که آیا روش اکتشافی بالا از نسبت‌های دقیق استفاده کند یا مجاز باشد برای ساده‌سازی نسبت‌های مقیاس‌بندی، نواحی فعال را کمی تعدیل کند. کلیدواژه‌ها مانعة‌الجمع هستند. مقدار پیش‌فرض SIMPLIFY است.
نقطهٔ تراز میان نواحی فعال مبدأ و مقصد را تعیین می‌کند. کلیدواژه‌ها مشخص‌کنندهٔ «بالا-چپ»، «بالا-وسط»، «بالا-راست» و غیره هستند. گوشه یا نقطهٔ مشخص‌شده از ناحیهٔ مبدأ به همان نقطه در ناحیهٔ مقصد نگاشت خواهد شد؛ و هرگونه برش (cropping) یا لایه‌گذاری (padding) که روی نواحی فعال اعمال شود، این نگاشت را حفظ خواهد کرد. مقدار پیش‌فرض CC مخفف «center-center» است؛ یعنی نواحی مبدأ و مقصد نسبت به یکدیگر هم‌مرکز می‌شوند. کلیدواژه‌ها مانعة‌الجمع هستند. مقدار پیش‌فرض CC است. برای جزئیات بیشتر به «NOTES ON SOURCE AND TARGET ALIGNMENT» مراجعه کنید.

preset=[VCD|CVD|SVCD|DVD|DVD_WIDE|DV|DV_WIDE|
SVCD_STILL_HI|SVCD_STILL_LO|VCD_STILL_HI|VCD_STILL_LO|
ATSC_720P|ATSC_1080I|ATSC_1080P]

استفاده از پارامترهای پیش‌تنظیم مقصد برای چندین قالب خروجی متداول. پارامترهای جداگانه را می‌توان با افزودن گزینه‌های «-O» بعدی بازنویسی (override) کرد. این کلیدواژه‌ها مانعة‌الجمع هستند. برای جزئیات مربوط به تنظیماتی که این کلیدواژه‌های پیش‌تنظیم اعمال می‌کنند، به «NOTES ON TARGET PRESETS» مراجعه کنید.
پارامترهای موتور مقیاس‌بندی را مشخص می‌کند. تمام آرگومان‌های «-S» به ترتیب ارزیابی می‌شوند و آرگومان‌های بعدی در خط فرمان، موارد قبلی را لغو (override) خواهند کرد.
درخواست مقیاس‌بندی تک‌رنگ. با مبدأ به عنوان تک‌رنگ رفتار می‌شود و کانال‌های کرومای آن نادیده گرفته می‌شوند. کانال‌های کرومای جریان خروجی صفر خواهند شد تا خروجی در مقیاس خاکستری به دست آید.
درخواست جابه‌جایی خطوط. در عمل، فیلدهای بالایی و پایینی در هر فریم جابه‌جا خواهند شد. این امر ممکن است به جریان‌های دارای ساختار نادرست که ترتیب مکانی آن‌ها به‌هم‌ریخته است کمک کند. این گزینه تنها بر جریان‌های درهم‌بافته (interlaced) مؤثر است.
استفاده از یک موتور مقیاس‌بندی خاص. موتورهای موجود عبارتند از:

'default' - مقیاس‌بند عمومی Matto (پیش‌فرض)
یک گزینه برای موتور مقیاس‌بندی انتخاب‌شده مشخص می‌کند. برای مشاهدهٔ تمام گزینه‌های موجود، از «option=help» استفاده کنید.

برای موتور پیش‌فرض، مقادیر scaler-option موجود، هستهٔ فیلتر را تعیین می‌کنند:

برای انتخاب مستقل هسته‌ها در جهت‌های مقیاس‌بندی x و y، از نام دو هسته که با کاما از یکدیگر جدا شده‌اند استفاده کنید؛ مانند option=box,quadratic.

sinc:N بالاترین کیفیت نتایج را ارائه می‌دهد (کمترین دندانه‌دار شدن یا aliasing)، اما کندترین است. کیفیت با مقادیر بزرگ‌تر N افزایش می‌یابد، و به همین نسبت زمان پردازش نیز بیشتر می‌شود. cubic در دنیای گرافیک عموماً به عنوان اسپلاین مکعبی مرتبهٔ سومی شناخته می‌شود که بهترین تعادل میان هموارسازی (smoothing) و دندانه‌دار شدن (aliasing) را داراست. box نتایجی با پایین‌ترین کیفیت را تولید می‌کند (بیشترین aliasing)، اما سریع‌ترین است. هستهٔ پیش‌فرض cubicK4 است که باند عبور مسطح‌تر و قطع دقیق‌تری نسبت به cubic دارد. (این هسته به همان میزان توان محاسباتی sinc:4 نیاز دارد، اما آثار موجی‌شکل [ringing artifacts] کمتری ایجاد می‌کند.)

جدول زیر جزئیات تنظیمات ارائه‌شده توسط کلیدواژه‌های گوناگون «preset=» هدف را شرح می‌دهد. هنگامی که دو مقدار ذکر شده است، مقدار اول برای جریان‌های NTSC و مقدار درون {آکولاد} برای جریان‌های PAL است. اگر مقدار درهم‌بافی (interlace) مشخص نشده باشد، از منبع به ارث برده می‌شود؛ در غیر این صورت، درهم‌بافی مشخص‌شده برای هدف الزامی است.
 Preset         Frame Size    Interlace     SAR            Subsampling
-----------------------------------------------------------------------
  VCD           352x240{288}  none          10:11{59:54}   4:2:0-JPEG
  CVD           352x480{576}  ---           20:11{59:27}   4:2:0-MPEG2
 SVCD           480x480{576}  ---           15:11{59:36}   4:2:0-MPEG2
  DVD           720x480{576}  ---           10:11{59:54}   4:2:0-MPEG2
  DVD_WIDE      720x480{576}  ---           40:33{118:81}  4:2:0-MPEG2
  DV            720x480{576}  bottom-first  10:11{59:54}   4:1:1
  DV_WIDE       720x480{576}  bottom-first  40:33{118:81}  4:1:1
 SVCD_STILL_HI  704x480{576}  none          10:11{59:54}   4:2:0-MPEG2
 SVCD_STILL_LO  480x480{576}  none          15:11{59:36}   4:2:0-MPEG2
  VCD_STILL_HI  704x480{576}  none          10:11{59:54}   4:2:0-JPEG
  VCD_STILL_LO  352x240{288}  none          10:11{59:54}   4:2:0-JPEG
 ATSC_720p         1280x720   none          1:1            4:2:0-MPEG2
 ATSC_1080i        1920x1080  (required)    1:1            4:2:0-MPEG2
 ATSC_1080p        1920x1080  none          1:1            4:2:0-MPEG2

ناحیه‌های فعال (active) و پوششی (matte) با استفاده از یک رشته هندسه به فرم «WxH+X+Yaa» مشخص می‌شوند. بخش «WxH» اندازه ناحیه را به صورت عرض (Width) و ارتفاع (Height) بر حسب پیکسل مشخص می‌کند (در برخی موارد، ممکن است «WxH» حذف شود و اندازه ناحیه به طور پیش‌فرض برابر با اندازه کامل فریم در نظر گرفته شود). بخش «+X+Y» موقعیت ناحیه را به صورت یک آفست نسبت به نقطه مهارِ مشخص‌شده توسط «aa» تعیین می‌کند.

کد «aa» می‌تواند یکی از موارد TL، TC، TR، CL، CC، CR، BL، BC یا BR باشد. این کدها به ترتیب نمایانگر «top-left» (بالا-چپ)، «top-center» (بالا-وسط)، ...، «bottom-center» (پایین-وسط) و «bottom-right» (پایین-راست) هستند. این کدها به حروف بزرگ و کوچک حساس نیستند.

بخش «+X+Y» آفستِ نقطه مهار ناحیه را نسبت به نقطه مهار فریم مشخص می‌کند. برای مثال، «+20+30TL» به این معنی است که گوشه بالا-چپ ناحیه، ۲۰ پیکسل به سمت راست و ۳۰ پیکسل به سمت پایین نسبت به گوشه بالا-چپ فریم آفست (فاصله) خواهد داشت.

مقادیر آفست می‌توانند منفی نیز باشند. برای مثال، «-4+0CC» به این معنی است که مرکز ناحیه (عمودی و افقی)، ۴ پیکسل به سمت چپِ مرکز فریم آفست دارد.

نقطه مهار پیش‌فرض برای رشته‌های هندسه TL، یعنی گوشه بالا-چپ است.

اغلب، نواحی فعال منبع و هدف دقیقاً بر یکدیگر منطبق نیستند. این اتفاق زمانی رخ می‌دهد که با استفاده از نسبت‌های مقیاس‌بندی ارائه‌شده یا محاسبه‌شده، ناحیه منبع به اندازه یا شکلی متفاوت از ناحیه هدف مقیاس‌بندی شود. در این حالت، نواحی منبع و هدف به طور متقابل برش (clip) می‌خورند، به طوری که تنها آن بخشی از منبع که جا می‌شود، در هدف مقیاس‌بندی خواهد شد.

پیش از هرگونه برش یا فاصله‌گذاری (padding)، نواحی منبع و هدف به گونه‌ای تراز می‌شوند که نقاط مشخص‌شده از طریق پارامتر «align=aa» بر هم منطبق شوند. کد «aa» نقطه مهاری را همان‌طور که در بالا توضیح داده شد مشخص می‌کند.

برای مثال، «align=BC» مشخص می‌کند که پایین-وسط ناحیه منبع باید بر پایین-وسط ناحیه هدف نگاشت شود. به عبارت دیگر، ناحیه منبع پیش از برش، به صورت افقی در مرکز قرار می‌گیرد و به صورت عمودی با پایین ناحیه هدف تراز می‌شود:

   ----------------  source
   |abcdefghijklmn|
---|opqrstuvwxyz01|---  target      ----------------  
|  |234567890ABCDE|  |              |234567890ABCDE|  
|  |FGHIJKLMNOPQRS|  |              |FGHIJKLMNOPQRS|  
|  |TUVWXYZabcdefg|  |              |TUVWXYZabcdefg|  
----------------------              ----------------
       Before                       Mutually Clipped

اگر در عوض «align=TR» تعیین می‌شد، منبع در نقطه متفاوتی برش می‌خورد و در ناحیه دیگری از فریم هدف مقیاس‌بندی می‌شد:

   ----------------------                 ----------------
   |     |abcdefghijklmn|                 |abcdefghijklmn|
   |     |opqrstuvwxyz01|                 |opqrstuvwxyz01|  
   |     |234567890ABCDE|                 |234567890ABCDE|   
   ------|FGHIJKLMNOPQRS|                 ----------------   
target   |TUVWXYZabcdefg| source          
         ----------------                 
          Before                       Mutually Clipped

حالت تراز پیش‌فرض «CC» است، به این معنی که منبع و هدف به طور متقابل نسبت به یکدیگر مرکزچین می‌شوند..SH "نکاتی درباره استنتاج ضریب مقیاس (NOTES ON SCALE FACTOR INFERENCE)" اگر ضریب‌های مقیاس‌بندی X و Y به‌صورت صریح مشخص نشده باشند، y4mscaler این ضریب‌ها را از نواحی فعال مبدا و مقصد و نسبت ابعاد نمونه (SARها) استنتاج خواهد کرد.

اگر نواحی فعال از نظر هندسی (با توجه به SARها) سازگار نباشند، نواحی مبدا و مقصد طبق یکی از چهار سیاست برش خورده یا حاشیه‌گذاری می‌شوند. این سیاست با استفاده از پارامتر "infer=" و یکی از کلمات کلیدی PAD، CLIP، PRESERVE_X یا PRESERVE_Y انتخاب می‌شود. (پیش‌فرض PAD است.)

ضریب‌های مقیاس‌بندی‌ای را انتخاب می‌کند که مبدا را حاشیه‌گذاری می‌کنند، اما تضمین می‌نمایند که تمام محتوای تصویر مبدا در نهایت درون مقصد قرار گیرد.
ضریب‌های مقیاس‌بندی‌ای را انتخاب می‌کند که مبدا را برش می‌دهند، اما ناحیه مقصد را تا جای ممکن پر می‌کنند.
ضریب‌های مقیاس‌بندی‌ای را انتخاب می‌کند که تا حد امکان بیشترین بخش از محتوای افقی مبدا را حفظ کنند.
ضریب‌های مقیاس‌بندی‌ای را انتخاب می‌کند که تا حد امکان بیشترین بخش از محتوای عمودی مبدا را حفظ کنند.

این سیاست همچنین تحت تأثیر گزینشی بین دو کلمه کلیدی دیگر قرار می‌گیرد: SIMPLIFY یا EXACT. (پیش‌فرض SIMPLIFY است.)

محاسبه ضریب‌های دقیق مقیاس‌بندی.
تنظیم نواحی فعال و ضریب‌های مقیاس‌بندی (در محدوده حدوداً ۱۰٪)، برای ساده‌سازی نسبت‌ها تا حد ممکن. (به عنوان مثال، برش دادن یا حاشیه‌گذاری جزئی برای دستیابی به نسبت 2/1 به‌جای 45/22.)

دستور y4mscaler می‌تواند جریان‌ها را از یک حالت نمونه‌برداری فرعی کروما به حالتی دیگر تبدیل کند. چنین تبدیل‌هایی همواره عملیاتی با اتلاف هستند، حتی اگر کل فریم تحت مقیاس‌بندی 1/1 قرار گیرد.

ابزار y4mscaler حالت نمونه‌برداری فرعی مبدا را از برچسب‌های موجود در سرایند جریان ورودی استنتاج می‌کند. پیش‌تنظیم‌های مقصد ("preset=XXX") تلاش خواهند کرد حالت نمونه‌برداری فرعی مقصد را به‌درستی تنظیم کنند. در غیر این صورت، به‌طور پیش‌فرض حالت نمونه‌برداری فرعی مقصد با مبدا مطابقت خواهد داشت. می‌توان حالت نمونه‌برداری فرعی را برای مبدا و/یا مقصد به‌صورت صریح با استفاده از پارامتر "chromass=" تعیین کرد.

ابزار y4mscaler قادر به خواندن و نوشتن جریان‌ها در حالت‌های نمونه‌برداری فرعی 4:4:4، 4:2:2، 4:1:1 و 4:2:0 (هر سه نوع) است. با این حال، سه مورد اول افزوده‌های نسبتاً جدیدی به استاندارد YUV4MPEG2 هستند و بسیاری از ابزارهای MJPEGtools در پردازش صحیح آن‌ها با مشکل مواجه می‌شوند، یا اصلاً قادر به پردازش آن‌ها نیستند. دستورهای smil2yuv و raw2yuv می‌توانند جریان‌های بومی 4:1:1 را از ویدیوهای NTSC DV تولید کنند، که سپس می‌توان آن‌ها را قبل از پردازش بیشتر توسط سایر ابزارها، با استفاده از y4mscaler به 4:2:0 تبدیل کرد.

اگر مبدا دارای کانال آلفا باشد (مانند حالت 444ALPHA) و مقصد فاقد آن باشد، کانال آلفا به‌سادگی دور ریخته می‌شود. از سوی دیگر، اگر مقصد دارای کانال آلفا باشد اما مبدا فاقد آن باشد، یک کانال آلفای ثابت با استفاده از مقدار آلفای رنگ پس‌زمینه مقصد (همان‌طور که با "-O bg="; تنظیم شده) ایجاد خواهد شد. مقدار پیش‌فرض کاملاً کدر است.

به همین ترتیب، اگر مقصد دارای کانال‌های کروما باشد اما مبدا فاقد آن باشد (مانند جریان MONO که فقط روشنایی دارد)، در این صورت کانال‌های کروما در خروجی بر اساس رنگ پس‌زمینه تنظیم خواهند شد.

قالب YUV4MPEG2 امکان استفاده از جریان‌های با «درهم‌بافی حالت ترکیبی» را فراهم می‌کند، که ممکن است حاوی ترکیبی از فریم‌های پیش‌رونده و درهم‌بافته باشند. هر فریم از نظر زمانی با برچسب درهم‌بافته یا پیش‌رونده مشخص می‌شود، و فریم‌های با نمونه‌برداری فرعی عمودی (قالب‌های 4:2:0) همچنین از نظر مکانی نیز با برچسب درهم‌بافته یا غیر آن مشخص می‌گردند. متأسفانه، این مسئله امکان بروز فریم‌های ناهنجار را فراهم می‌سازد؛ فریم‌هایی که اتفاقاً از نظر زمانی درهم‌بافته هستند (میدان‌ها در زمان‌های متفاوتی نمونه‌برداری شده‌اند) اما از نظر مکانی پیش‌رونده هستند (نمونه‌برداری فرعی در سرتاسر کل فریم انجام شده است)، یا برعکس. تنها اقدام معقول در رابطه با چنین فریم‌های ناهنجاری، بیش‌نمونه‌برداری عمودی کروما است که اساساً باعث برطرف شدن مشکل در سریع‌ترین زمان ممکن می‌شود.

ابزار y4mscaler تنها در صورتی چنین فریم‌هایی را پردازش می‌کند که قالب خروجی مقصد بدون نمونه‌برداری فرعی عمودی باشد (مانند 4:4:4، 4:2:2 و غیره) و هیچ پردازش عمودی دیگری مورد نیاز نباشد. در غیر این صورت، y4mscaler هنگام مواجهه با یک فریم ناهنجار، در میانه جریان پردازش را متوقف خواهد کرد. اگر هرگونه احتمالی برای مواجهه با چنین خطایی وجود داشته باشد، y4mscaler هنگام آغاز پردازش هشداری را چاپ خواهد کرد.

0
اجرای موفقیت‌آمیز برنامه.
1
خطا در نحوه استفاده، نحو، یا عملیات.

حق نشر (کپی‌رایت) ۲۰۰۵ این صفحهٔ راهنما متعلق به Matthew Marjanovic است.
می‌توانید هرگونه پرسش، دیدگاه، مشکل یا گزارش باگ مربوط به این ابزار را به <dmg @ mir.com> ارسال کنید.

برای اطلاعات بیشتر، وب‌سایت ما را ببینید:
<http://www.mir.com/DMG>
برای اطلاعات بیشتر درباره MJPEGtools، مراجعه کنید به:
<http://mjpeg.sourceforge.net>

mjpegtools(1), yuv2lav(1), mpeg2enc(1), ppmtoy4m(1), raw2yuv(1), smil2yuv(1), yuvplay(1), yuvscaler(1)

February 14, 2003 y4mtools