| y4mscaler(1) | y4mtools manual | y4mscaler(1) |
نام (NAME)
y4mscaler - مقیاسبندی، برش و جابهجایی جریانهای YUV4MPEG2
خلاصه دستور (SYNOPSIS)
y4mscaler [گزینهها] < Y4Mstream > Y4Mstream
توضیحات (DESCRIPTION)
دستور 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.
مثالها (EXAMPLES)
برای ایجاد جریانی مناسب جهت استفاده در SVCD:
برای ایجاد جریانی برای VideoCD (یک قالب غیردرهمبافته)، از یک منبع DV (یک قالب درهمبافته)، با انتقال فریم ورودی به اندازهٔ ۴ پیکسل به چپ:
برای دریافت یک منبع NTSC DV عریض (widescreen)، و تبدیل آن به یک جریان لترباکس (letterboxed) با نوارهای آبی در بالا و پایین:
برای دریافت یک منبع NTSC DV عریض و تبدیل آن به یک جریان «تمامصفحه» (fullscreen) (یعنی کنارهها بریده میشوند، درست مانند تلویزیون):
برای دریافت یک منبع NTSC لترباکسشده در مرکز و تبدیل آن به جریان قالب عریض (16:9) برای DVD، همراه با حذف نوارهای سیاه:
برای برش قطعهٔ ۱۰۰x۱۰۰ پیکسلی در مرکز یک جریان NTSC DV، احاطه کردن آن با یک حاشیهٔ آبی ۲۰ پیکسلی، و بزرگنمایی آن به یک جریان تمامصفحهٔ SuperVCD:
- -v [0,1,2]
- تنظیم سطح
پرگویی (verbosity).
0 = تنها هشدارها و خطاها.
1 = افزودن پیامهای اطلاعرسانی (پیشفرض).
2 = افزودن پیامهای تفصیلی اشکالزدایی. - -V
- نمایش اطلاعات نسخه و خروج.
- -h
- نمایش پیام راهنما (خلاصه گزینهها).
گزینههای -I، -O و -S هر کدام یک آرگومان به شکل parameter=value میپذیرند که به ترتیب پارامترهای ورودی، خروجی و مقیاسبندی را مشخص میکنند. این گزینهها را میتوان بهطور مکرر برای تعیین چندین پارامتر به کار برد. نامها و مقادیر پارامترها به حروف کوچک و بزرگ حساس نیستند. تعاریف به شکل "parameter=[AAA|BBB|CCC]" به این معنا هستند که تنها یکی از کلمات کلیدی فهرستشدهی AAA، BBB یا CCC قابل انتخاب است. گزینههای بعدی بر گزینههای قبلی برتری داشته و جایگزین آنها میشوند.
- active=WxH+X+Yaa
- تعیین
ناحیه فعال
فریم منبع،
که برای
جایگیری
در ناحیه
فعال فریم
مقصد
مقیاسبندی
میشود.
حالت
پیشفرض کل
فریم است.
(میتوان از
"WxH" صرفنظر
کرد، که در
این صورت
اندازه
ناحیه به
اندازه
فریم منبع
پیشفرض
خواهد شد.) W و H
عرض و
ارتفاع
هستند. X و Y
انحراف
نقطه مهار (anchor
point) هستند. "aa"
حالت مهار
است
(پیشفرض: TL)؛
برای
جزئیات به
"نکاتی
درباره
هندسه
ناحیه (NOTES ON REGION GEOMETRY)"
مراجعه
کنید.
مثال: active=200x180+30+24cc - matte=WxH+X+Y
- تعیین یک
ناحیه مات (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
- norm=[NTSC|PAL|SECAM]
- تعیین هنجار (norm) استاندارد تلویزیونی جریان منبع. این مقدار معمولاً از سرایند جریان استنباط میشود.
- ilace=[NONE|TOP_FIRST|BOTTOM_FIRST|TOP_ONLY|BOTTOM_ONLY]
- تعیین حالت
درهمبافی
(interlacing)
بهکاررفته
در جریان
منبع.
مقادیر NONE، TOP_FIRST
و BOTTOM_FIRST با
غیردرهمبافته،
فیلد بالا
اول، و فیلد
پایین اول
مطابقت
دارند. این
مقادیر
معمولاً از
سرایند
جریان
استنباط
میشوند؛
مشخص کردن
آنها
سرایند
جریان را
بازنویسی
میکند.
مقادیر TOP_ONLY و BOTTOM_ONLY مشخص میکنند که تنها فیلد بالا یا پایین هر فریم باید استفاده شود و فیلد دیگر دور ریخته میشود. این گزینهها تنها با ورودی درهمبافته قابل استفاده هستند و باعث میشوند با جریان درهمبافته مانند یک جریان پیشرونده (progressive) با نصف ارتفاع رفتار شود. (این مورد بهویژه در ایجاد یک VCD از یک جریان ورودی درهمبافته با اندازه کامل مفید است.) این دو گزینه ویژه تنها زمانی قابل استفاده هستند که منبع یک جریان پیشرونده خالص باشد (در مقابل جریان "حالت ترکیبی" در YUV4MPEG2). - chromass=[420JPEG|420MPEG2|420PALDV|444|422|411|mono|444alpha]
- تعیین حالت زیرنمونهبرداری رنگ (chroma subsampling) بهکاررفته در جریان منبع. این پارامتر از سرایند جریان استنباط میشود، بنابراین تقریباً هرگز نباید از این کلمه کلیدی در مشخصات منبع استفاده کرد. تنها دلیل موجه برای تعیین این کلمه کلیدی، جایگزینی نوعی از 4:2:0 با نوعی دیگر است. هرگونه استفاده دیگر باعث شکست پردازش خواهد شد.
sar=N:D
sar=[NTSC|PAL|NTSC_WIDE|PAL_WIDE]
size=WxH
size=SRC
- active=WxH+X+Yaa
- تعیین
ناحیه فعال
فریم مقصد،
که ناحیه
فعال فریم
منبع به
درون آن
مقیاسبندی
میشود.
حالت
پیشفرض،
کل فریم
مقصد است.
(میتوان از
"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
- ilace=[NONE|TOP_FIRST|BOTTOM_FIRST]
- تعیین حالت
درهمبافی
بهکاررفته
در جریان
مقصد.
مقادیر NONE، TOP_FIRST
و BOTTOM_FIRST با
غیردرهمبافته،
فیلد بالا
اول، و فیلد
پایین اول
مطابقت
دارند. حالت
پیشفرض
تطابق با
جریان منبع
است.
اگر منبع و مقصد هر دو درهمبافته باشند، اما با حالتهای متفاوت (یعنی یکی bottom-first و دیگری top-first باشد)، آنگاه y4mscaler با دور انداختن اولین فیلد منبع، یک حالت را به حالت دیگر تبدیل خواهد کرد. - chromass=[420JPEG|420MPEG2|420PALDV|444|422|411|mono|444alpha]
- تعیین حالت زیرنمونهبرداری رنگ برای استفاده در جریان مقصد. حالت پیشفرض تطابق با حالت منبع است. برای اطلاعات بیشتر به "نکاتی درباره حالتهای رنگ و زیرنمونهبرداری (NOTES ON CHROMA MODES AND SUBSAMPLING)" مراجعه کنید.
sar=N:D
sar=[SRC|NTSC|PAL|NTSC_WIDE|PAL_WIDE]
scale=N/D
Xscale=N/D
Yscale=N/D
- infer=[SIMPLIFY|EXACT]
- تعیین میکند که آیا روش اکتشافی بالا از نسبتهای دقیق استفاده کند یا مجاز باشد برای سادهسازی نسبتهای مقیاسبندی، نواحی فعال را کمی تعدیل کند. کلیدواژهها مانعةالجمع هستند. مقدار پیشفرض SIMPLIFY است.
- align=[TL|TC|TR|CL|CC|CR|BL|BC|BR]
- نقطهٔ تراز میان نواحی فعال مبدأ و مقصد را تعیین میکند. کلیدواژهها مشخصکنندهٔ «بالا-چپ»، «بالا-وسط»، «بالا-راست» و غیره هستند. گوشه یا نقطهٔ مشخصشده از ناحیهٔ مبدأ به همان نقطه در ناحیهٔ مقصد نگاشت خواهد شد؛ و هرگونه برش (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]
- VCD - فرمت VideoCD با پهنای ۳۵۲، تدریجی (progressive)
- CVD - فرمت ChinaVideoDisc با پهنای ۳۵۲ (تمامارتفاع)
- SVCD - فرمت SuperVCD با پهنای ۴۸۰
- DVD - فرمت DVD با پهنای ۷۲۰
- DVD_WIDE - فرمت DVD با پهنای ۷۲۰، پیکسلهای آنامورفیک
- DV - فرمت DV با پهنای ۷۲۰ (فیلد پایینی در ابتدا، ۴:۱:۱)
- DV_WIDE - فرمت DV با پهنای ۷۲۰، پیکسلهای آنامورفیک
- SVCD_STILL_HI - تصویر ساکن SVCD با وضوح بالا
- SVCD_STILL_LO - تصویر ساکن SVCD با وضوح پایین
- VCD_STILL_HI - تصویر ساکن VCD با وضوح بالا
- VCD_STILL_LO - تصویر ساکن SVCD با وضوح پایین
- ATSC_720P - استاندارد ATSC 720p (تلویزیون پیشرونده HDTV)
- ATSC_1080I - استاندارد ATSC 1080i (تلویزیون درهمبافته HDTV)
- ATSC_1080P - استاندارد ATSC 1080p (تلویزیون HDTV)
- mode=MONO
- درخواست مقیاسبندی تکرنگ. با مبدأ به عنوان تکرنگ رفتار میشود و کانالهای کرومای آن نادیده گرفته میشوند. کانالهای کرومای جریان خروجی صفر خواهند شد تا خروجی در مقیاس خاکستری به دست آید.
- mode=LINESWITCH
- درخواست جابهجایی خطوط. در عمل، فیلدهای بالایی و پایینی در هر فریم جابهجا خواهند شد. این امر ممکن است به جریانهای دارای ساختار نادرست که ترتیب مکانی آنها بههمریخته است کمک کند. این گزینه تنها بر جریانهای درهمبافته (interlaced) مؤثر است.
- scaler=scaler-name
- استفاده از یک موتور مقیاسبندی خاص. موتورهای موجود عبارتند از:
'default' - مقیاسبند عمومی Matto (پیشفرض)
- option=scaler-option
- یک گزینه برای موتور مقیاسبندی انتخابشده مشخص میکند. برای مشاهدهٔ تمام گزینههای موجود، از «option=help» استفاده کنید.
برای موتور پیشفرض، مقادیر scaler-option موجود، هستهٔ فیلتر را تعیین میکنند:
- box - فیلتر جعبهای (box filter)
- linear - درونیابی خطی (linear interpolation)
- quadratic - درونیابی درجهدوم (quadratic interpolation)
- cubic - درونیابی مکعبی، اسپلاین Mitchell-Netravali
- cubicCR - درونیابی مکعبی، اسپلاین Catmull-Rom
- cubicB - درونیابی مکعبی، اسپلاین B-spline
- cubicK4 - مکعبی مرتبهٔ چهارم Keys
- sinc:N - تابع sinc با پنجرهٔ Lanczos، به میزان N چرخه
برای انتخاب مستقل هستهها در جهتهای مقیاسبندی x و y، از نام دو هسته که با کاما از یکدیگر جدا شدهاند استفاده کنید؛ مانند option=box,quadratic.
sinc:N بالاترین کیفیت نتایج را ارائه میدهد (کمترین دندانهدار شدن یا aliasing)، اما کندترین است. کیفیت با مقادیر بزرگتر N افزایش مییابد، و به همین نسبت زمان پردازش نیز بیشتر میشود. cubic در دنیای گرافیک عموماً به عنوان اسپلاین مکعبی مرتبهٔ سومی شناخته میشود که بهترین تعادل میان هموارسازی (smoothing) و دندانهدار شدن (aliasing) را داراست. box نتایجی با پایینترین کیفیت را تولید میکند (بیشترین aliasing)، اما سریعترین است. هستهٔ پیشفرض cubicK4 است که باند عبور مسطحتر و قطع دقیقتری نسبت به cubic دارد. (این هسته به همان میزان توان محاسباتی sinc:4 نیاز دارد، اما آثار موجیشکل [ringing artifacts] کمتری ایجاد میکند.)
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
نکاتی درباره هندسه ناحیه (NOTES ON REGION GEOMETRY)
ناحیههای فعال (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، یعنی گوشه بالا-چپ است.
نکاتی درباره تراز منبع و هدف (NOTES ON SOURCE AND TARGET ALIGNMENT)
اغلب، نواحی فعال منبع و هدف دقیقاً بر یکدیگر منطبق نیستند. این اتفاق زمانی رخ میدهد که با استفاده از نسبتهای مقیاسبندی ارائهشده یا محاسبهشده، ناحیه منبع به اندازه یا شکلی متفاوت از ناحیه هدف مقیاسبندی شود. در این حالت، نواحی منبع و هدف به طور متقابل برش (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 است.)
- PAD
- ضریبهای مقیاسبندیای را انتخاب میکند که مبدا را حاشیهگذاری میکنند، اما تضمین مینمایند که تمام محتوای تصویر مبدا در نهایت درون مقصد قرار گیرد.
- CLIP
- ضریبهای مقیاسبندیای را انتخاب میکند که مبدا را برش میدهند، اما ناحیه مقصد را تا جای ممکن پر میکنند.
- PRESERVE_X
- ضریبهای مقیاسبندیای را انتخاب میکند که تا حد امکان بیشترین بخش از محتوای افقی مبدا را حفظ کنند.
- PRESERVE_Y
- ضریبهای مقیاسبندیای را انتخاب میکند که تا حد امکان بیشترین بخش از محتوای عمودی مبدا را حفظ کنند.
این سیاست همچنین تحت تأثیر گزینشی بین دو کلمه کلیدی دیگر قرار میگیرد: SIMPLIFY یا EXACT. (پیشفرض SIMPLIFY است.)
نکاتی درباره حالتهای کروما و نمونهبرداری فرعی (NOTES ON CHROMA MODES AND SUBSAMPLING)
دستور 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 که فقط روشنایی دارد)، در این صورت کانالهای کروما در خروجی بر اساس رنگ پسزمینه تنظیم خواهند شد.
نکاتی درباره ترکیبات درهمبافی ناهنجار (NOTES ON ANOMALOUS INTERLACE MIXTURES)
قالب YUV4MPEG2 امکان استفاده از جریانهای با «درهمبافی حالت ترکیبی» را فراهم میکند، که ممکن است حاوی ترکیبی از فریمهای پیشرونده و درهمبافته باشند. هر فریم از نظر زمانی با برچسب درهمبافته یا پیشرونده مشخص میشود، و فریمهای با نمونهبرداری فرعی عمودی (قالبهای 4:2:0) همچنین از نظر مکانی نیز با برچسب درهمبافته یا غیر آن مشخص میگردند. متأسفانه، این مسئله امکان بروز فریمهای ناهنجار را فراهم میسازد؛ فریمهایی که اتفاقاً از نظر زمانی درهمبافته هستند (میدانها در زمانهای متفاوتی نمونهبرداری شدهاند) اما از نظر مکانی پیشرونده هستند (نمونهبرداری فرعی در سرتاسر کل فریم انجام شده است)، یا برعکس. تنها اقدام معقول در رابطه با چنین فریمهای ناهنجاری، بیشنمونهبرداری عمودی کروما است که اساساً باعث برطرف شدن مشکل در سریعترین زمان ممکن میشود.
ابزار y4mscaler
تنها در
صورتی چنین
فریمهایی
را پردازش
میکند که
قالب خروجی
مقصد بدون
نمونهبرداری
فرعی عمودی
باشد (مانند
4:4:4، 4:2:2 و غیره) و
هیچ پردازش
عمودی
دیگری مورد
نیاز نباشد.
در غیر این
صورت، y4mscaler
هنگام
مواجهه با
یک فریم
ناهنجار،
در میانه
جریان
پردازش را
متوقف
خواهد کرد.
اگر هرگونه
احتمالی
برای
مواجهه با
چنین خطایی
وجود داشته
باشد، y4mscaler
هنگام آغاز
پردازش
هشداری را
چاپ خواهد
کرد.
- 0
- اجرای موفقیتآمیز برنامه.
- 1
- خطا در نحوه استفاده، نحو، یا عملیات.
نویسندگان (AUTHORS)
حق نشر
(کپیرایت)
۲۰۰۵ این
صفحهٔ
راهنما
متعلق به Matthew Marjanovic
است.
میتوانید
هرگونه
پرسش،
دیدگاه،
مشکل یا
گزارش باگ
مربوط به
این ابزار
را به <dmg @ mir.com>
ارسال
کنید.
- برای اطلاعات بیشتر، وبسایت ما را ببینید:
- <http://www.mir.com/DMG>
- برای اطلاعات بیشتر درباره MJPEGtools، مراجعه کنید به:
- <http://mjpeg.sourceforge.net>
همچنین ببینید (SEE ALSO)
mjpegtools(1), yuv2lav(1), mpeg2enc(1), ppmtoy4m(1), raw2yuv(1), smil2yuv(1), yuvplay(1), yuvscaler(1)
| February 14, 2003 | y4mtools |