Игровые автоматы - топовые казино клубы

Рейтинг казино от ocokin.ru

КАЗИНО
ИГРОКОВ
АКЦИИ
РЕЙТИНГ
САЙТ
1
555622
БЕЗДЕПОЗИТНЫЙ БОНУС 25$
4.7
2
277811
БЕЗДЕПОЗИТНЫЙ БОНУС 20$
4.4
3
185207
БЕЗДЕПОЗИТНЫЙ БОНУС 20$
4.5
4
138905
+100% к ДЕПОЗИТУ!
4.5
5
111124
+100% к ДЕПОЗИТУ!
4.3

как убрать шум при записи видео

как убрать шум при записи видео Îñíîâû èñïîëüçîâàíèÿ óòèëèòû AviSynth ïðè îáðàáîòêå âèäåî 1. ×òî òàêîå AviSynth AviSynth (AVI-Ñèíòåçàòîð) — ýòî î÷åíü ïîëåçíàÿ ïðîãðàììíàÿ óòèëèòà, îñíîâàííàÿ íà ÿçûêå ñêðèïòîâ è âêëþ÷àþùàÿ ôèëüòðû äëÿ ïðîñòûõ (è íå î÷åíü ïðîñòûõ) çàäà÷ íåëèíåéíîé îáðàáîòêè âèäåî. Îíà ñîçäàíà äëÿ äåòàëüíîãî äîñòóïà ê âèäåîêàäðàì êëèïîâ ñ âîçìîæíîñòüþ ïðîèçâîäñòâà íàä íèìè ðÿäà õèòðûõ ìàíèïóëÿöèé (ïî íåêîòîðîìó ñöåíàðèþ), íåäîñòèæèìûõ â òðàäèöèîííûõ ìîíòàæíûõ ïðîãðàììàõ (òèïà VirtualDub èëè Adobe Premier). ×òî äåëàåò AviSynth óíèêàëüíûì ïî èíòåðôåéñó, òàê ýòî ôàêò, ÷òî îí íå ÿâëÿåòñÿ ñàìîñòîÿòåëüíîé ïðîãðàììîé, èìåþùåé ãðàôè÷åñêèé èíòåðôåéñ è ïðîèçâîäÿùåé âûõîäíûå ôàéëû. Âìåñòî òîãî, AviSynth äåéñòâóåò êàê «ïîñðåäíèê» ìåæäó âèäåîôàéëàìè è ïðîãðàììàìè îáðàáîòêè âèäåî, òî åñòü êàê ôðåéì-ñåðâåð (êàäð-ñåðâåð, ïîäàò÷èê êàäðîâ). Ðàáîòà ïðîèñõîäèò ñëåäóþùèì îáðàçîì. Âî-ïåðâûõ, âû ñîçäàåòå ïðîñòîé òåêñòîâûé äîêóìåíò, òàê íàçûâàåìûé ñêðèïò (ôàéë ñ ðàñøèðåíèåì *.AVS), ñî ñïåöèàëüíûìè êîìàíäàìè. Ýòè êîìàíäû ññûëàþòñÿ íà îäíî èëè áîëåå âõîäíîå âèäåî è íà ôèëüòðû, êîòîðûå âû õîòèòå ê íèì ïðèìåíèòü. Çàòåì âû çàïóñêàåòå âèäåîïðèëîæåíèå (ïðîãðàììó), íàïðèìåð, VirtualDub, è îòêðûâàåòå â íåì ôàéë ñêðèïòà. Òóò íà÷èíàåò äåéñòâîâàòü AviSynth. Îí îòêðûâàåò âèäåîèñòî÷íèêè, íà êîòîðûå âû ññûëàëèñü â ñêðèïòå, ïðèìåíÿåò óêàçàííûå ôèëüòðû, è ïîñûëàåò ðåçóëüòàò âèäåîïðèëîæåíèþ. Ïðèëîæåíèå, îäíàêî, íå çíàåò, ÷òî ýòî AviSynth ðàáîòàåò â ôîíå. Âìåñòî ýòîãî ïðèëîæåíèå äóìàåò, ÷òî îíî íàïðÿìóþ îòêðûâàåò íåêèé îòôèëüòðîâàííûé AVI-ôàéë, êîòîðûé ðàñïîëàãàåòñÿ íà âàøåì æåñòêîì äèñêå. Îáû÷íî âûäåëÿþò ïÿòü ãëàâíûõ ïðè÷èí, ïî êîòîðûì ïîëüçîâàòåëü ïðèõîäèò ê AviSynth: AviSynth ïîçâîëÿåò âàì îáúåäèíèòü âìåñòå ëþáîå ÷èñëî âèäåîôàéëîâ. Âû ìîæåòå äàæå âûáîðî÷íî îáúåäèíÿòü îïðåäåëåííûå ÷àñòè âèäåî èëè çàìåíÿòü çâóêîâûå äîðîæêè. Ìíîãèå î÷åíü êà÷åñòâåííûå ôèëüòðû âèäåîîáðàáîòêè âñòðîåíû â AviSynth (èëè â ïîäêëþ÷àåìûå ìîäóëè-ïëàãèíû). Íàïðèìåð, ôèëüòðû äëÿ èçìåíåíèÿ ðàçìåðà, îáðåçêè, ïîäàâëåíèÿ øóìà, ïîâûøåíèÿ ðåçêîñòè, äåèíòåðëåéñà. AviSynth ìîæåò îòêðûòü ïî÷òè ëþáîé òèï âèäåî, âêëþ÷àÿ ðàçíûå MPEG è Quicktime MOV. Îäíàêî êîãäà AviSynth ïîñòàâëÿåò ïðîãðàììå âèäåî, äëÿ íåå ýòî âûãëÿäèò ïîäîáíî ñòàíäàðòíîìó (íåñæàòîìó) AVI. Ýòî ïîçâîëÿåò âàì îòêðûòü íåêîòîðûå ôîðìàòû âèäåî â ïðîãðàììàõ, êîòîðûå èõ íå ïîääåðæèâàþò. AviSynth ãåíåðèðóåò âèäåî, êîòîðîå îí ïîñûëàåò ïðîãðàììå, ïîðöèÿìè, íà ëåòó (â ïàìÿòè). Ñëåäîâàòåëüíî, âðåìåííûõ èëè ïðîìåæóòî÷íûõ âèäåîôàéëîâ íà äèñêå íå ñîçäàåòñÿ (ðàíüøå òåìà ñîõðàíåíèÿ äèñêîâîãî ïðîñòðàíñòâà áûëà áîëåå àêòóàëüíîé). Âû ìîæåòå èñïîëüçîâàòü AviSynth, ÷òîáû îòêðûâàòü ôàéëû, áîëüøèå, ÷åì 2 ÃÁ â íåêîòîðûõ ñòàðûõ ïðîãðàììàõ, êîòîðûå ñàìè íå ïîääåðæèâàþò ôàéëû òàêîãî ðàçìåðà. Ïî îáùåìó ìíåíèþ, âàæíåéøèìè äîñòîèíñòâàìè Avisynth ÿâëÿþòñÿ: âîçìîæíîñòü ðàáîòû â òîì öâåòîâîì ôîðìàòå, êîòîðûé íàèáîëåå ïîäõîäèò äëÿ âõîäíîãî èëè âûõîäíîãî âèäåî, áåç ëèøíèõ ïðåîáðàçîâàíèé è ñ âûñîêîé ñêîðîñòüþ. ïðîèçâîëüíûé äîñòóï ê ëþáîìó êàäðó è ïîëþ (ïîëîâèíå êàäðà â ÷åðåññòðî÷íîì âèäåî), ñ âîçìîæíîñòüþ èõ ðàçäåëåíèÿ, ïðîðåæèâàíèÿ, êîìáèíèðîâàíèÿ, ôèëüòðàöèè, îáúåäèíåíèÿ, èçìåíåíèÿ ÷àñòîòû è ò.ï. AviSynth âêëþ÷àåò âñå íåîáõîäèìûå áàçîâûå èíñòðóìåíòû äëÿ îáðàáîòêè âèäåî, âêëþ÷àÿ ôóíêöèè-èñòî÷íèêè äëÿ ñîçäàíèÿ (÷òåíèÿ) êëèïîâ, ôèëüòðû äëÿ îáðàáîòêè èçîáðàæåíèÿ, ôèëüòðû äëÿ ðåäàêòèðîâàíèÿ, ôèëüòðû äëÿ ðàáîòû ñ ÷åðåññòðî÷íûì âèäåî, çâóêîâûå ôèëüòðû, ñïåöèàëüíûå è ýêçîòè÷åñêèå ôèëüòðû, îòëàäî÷íûå ôèëüòðû. Ýòî íåêîììåð÷åñêàÿ ïðîãðàììà ñ îòêðûòûì èñõîäíûì êîäîì, íà÷àëî ðàçðàáîòêè êîòîðîé ïîëîæèë Áåí Ðóäèàê-Ãîóëä (Ben Rudiak-Gould), ðàçðàáîòêà êîòîðîé ïðîäîëæàåòñÿ ãðóïïîé ýíòóçèàñòîâ â òåñíîì êîíòàêòå ñ ïîëüçîâàòåëÿìè. Ïðè ýòîì â äîïîëíåíèå ê ïîñòîÿííî óëó÷øàåìûì è øëèôóåìûì áàçîâûì ôóíêöèÿì, ìíîãèìè íåçàâèñèìûìè ïðîãðàììèñòàìè ðàçðàáîòàíî îãðîìíîå ÷èñëî (äî 200) äîïîëíèòåëüíûõ ïîäêëþ÷àåìûõ ìîäóëåé (ïëàãèíîâ). Ýòè ïëàãèíû ðåàëèçóþò ðàçíîîáðàçíûå ôóíêöèè, â òîì ÷èñëå âåñüìà ñëîæíûå ìåòîäû îáðàáîòêè äëÿ óëó÷øåíèÿ èçîáðàæåíèÿ (ïîäàâëåíèÿ øóìà è äðóãèõ äåôåêòîâ), ðàáîòû ñ ïîëÿìè ÷åðåññòðî÷íîãî âèäåî è äð. Ïðèíÿòî äåëåíèå íà ïëàãèíû, ðåàëèçóþùèå äåèíòåðëåéñ è óñòðàíåíèå Pulldown, ïðîñòðàíñòâåííî-âðåìåííîå ñãëàæèâàíèå, ïðîñòðàíñòâåííîå ñãëàæèâàíèå, âðåìåííîå ñãëàæèâàíèå, ïîâûøåíèå/ñìÿã÷åíèå ðåçêîñòè, èçìåíåíèå ðàçìåðîâ, ñóáòèòðû, MPEG äåêîäåð, àóäèî äåêîäåð, ñðàâíåíèå êà÷åñòâà âèäåî, òåëåâèçèîííîå âåùàíèå, ðàçíîîáðàçíûå äðóãèå. Ïóòåì êîìáèíàöèè ðàçëè÷íûõ ôèëüòðîâ â êîìàíäíîì ôàéëå (ñêðèïòå), â òîì ÷èñëå ñ ôóíêöèÿìè ìàñî÷íûõ îïåðàöèé è óñëîâíûìè ôèëüòðàìè, ìîãóò áûòü äîñòèãíóòû íàèáîëåå ýôôåêòèâíûå ìåòîäû îáðàáîòêè. Áîëüøàÿ ÷àñòü ðàçðàáîò÷èêîâ, ðàíåå ïèñàâøèõ ïëàãèíû äëÿ ðåäàêòîðà VirtualDub, êàê è áîëüøèíñòâî íîâûõ àâòîðîâ, òåïåðü ïèøóò ïëàãèíû òîëüêî äëÿ AviSynth, òàê êàê ýòî ïðîùå è áûñòðåå äëÿ ðàçðàáîòêè (ó÷òèòå áåñïëàòíîñòü ïðîãðàìì) è ýôôåêòèâíåå ïî ðåçóëüòàòàì. Ïîýòîìó ïîëüçîâàòåëÿì, ñòðåìÿùèìñÿ ïîëó÷èòü íàèëó÷øèé ðåçóëüòàò, ïðèäåòñÿ îò÷àñòè îòõîäèòü îò âèçóàëüíîãî èíòåðôåéñà è îñâàèâàòü ÿçûê AviSynth. Ìíîãèå õîòü è íàñëûøàíû î ñóùåñòâîâàíèè íåêîåãî "÷óäîäåéñòâåííîãî Àâèñèíòà", íî íå ðåøàþòñÿ íà îñâîåíèå, êîãäà èì ñîâåòóþò ñ åãî ïîìîùüþ ðåøèòü íåêóþ çàäà÷ó ("à ìîæåò, ýòî â Äóáå ñäåëàòü ìîæíî?"). Ïðè÷èí (ïðîáëåì) òðè, è îíè òåñíî ñâÿçàíû. Âî-ïåðâûõ, îòïóãèâàåò îòñóòñòâèå "êíîïîê", ìåòîä "òûêà" ïî ìåíþ íå ðàáîòàåò, íóæíî ïèñàòü êîìàíäû âðó÷íóþ. Ýòî õîòü è íåíàñòîÿùåå, íî âñå-òàêè ïðîãðàììèðîâàíèå è íåîáõîäèìîñòü äóìàòü. Âî-âòîðûõ, âûðàæåíèÿ êîìàíä õîòü è âïîëíå âðàçóìèòåëüíû, íî íà àíãëèéñêîì ÿçûêå, êàê è âñÿ äîêóìåíòàöèÿ (âåñüìà êà÷åñòâåííàÿ, êñòàòè). Ýòó ïðîáëåìó óäàëîñü ðåøèòü â 2005 ãîäó, ñîáðàâ êîìàíäó è ñäåëàâ îôèöèàëüíûé ðóññêèé ïåðåâîä ê âåðñèè 2.5.6. Îäíàêî äàííûé ïåðåâîä ïðåäñòàâëÿåò ñîáîé áîëüøå ñïðàâî÷íèê ïî êîìàíäàì, à íå ðóêîâîäñòâî ïî èñïîëüçîâàíèþ — êîãäà, êàê, è êàêèå ñêðèïòû è ôèëüòðû ïðèìåíÿòü. Èìåþùèåñÿ îòðûâî÷íûå ñâåäåíèÿ â ðóêîâîäñòâàõ ïî "ðèïàíèþ" DVD î÷åíü ôðàãìåíòàðíû, îñîáåííî íà ðóññêîì ÿçûêå (äà è íà àíãëèéñêîì òîæå). Ýòî è ÿâëÿåòñÿ òðåòüåé ïðîáëåìîé, êàê áû îáîðîòíîé ñòîðîíîé áîãàòñòâà âîçìîæíîñòåé è ðàçíîîáðàçèÿ ôóíêöèé AviSynth è ïëàãèíîâ. Äåéñòâèòåëüíî, áîãàòåéøèé îïûò ëþäåé, îòðàæåííûõ â îáñóæäåíèÿõ íà ôîðóìàõ, íå òàê-òî ïðîñòî èñïîëüçîâàòü áåç íåêîåãî îáîáùåíèÿ. Íàñòîÿùàÿ ñòàòüÿ ÿâëÿåòñÿ ïîïûòêîé ïîìî÷ü íà÷èíàþùèì ñäåëàòü ïåðâûå øàãè è ïðèîáðåñòè íàâûêè ñîñòàâëåíèÿ ñêðèïòîâ íà ïðèìåðàõ ðåøåíèÿ íåêîòîðûõ êîíêðåòíûõ çàäà÷. Íî íå ñëåäóåò ïîëàãàòü, ÷òî âñåãäà âûðó÷èò ñëåïîå êîïèðîâàíèå ïðèâåäåííûõ ñêðèïòîâ áåç íåêîåãî îñìûñëåíèÿ. Ïðèâåäåííûå ñêðèïòû íåñêîëüêî óïðîùåíû. Ðàâíî íå ñëåäóåò îæèäàòü, ÷òî êòî-òî íà ôîðóìå òóò ñîñòàâèò îïòèìàëüíûé ñêðèïò çà Âàñ, è íàñòðîèò âñå ïàðàìåòðû, ïîäõîäÿùèå äëÿ êîíêðåòíîãî âèäåî. Ñàì ñåáå íå õî÷åøü ïîìî÷ü — íèêòî íå ïîìîæåò. Ïîïðîáóéòå, è òâîð÷åñêèé ïðîöåññ âàì ïîíðàâèòñÿ! (Àâòîðà çàíåñëî íåñêîëüêî äàëüøå, è ïîñëå íåñêîëüêèõ ëåò îæèäàíèÿ ìîìåíòà, êîãäà êòî-òî â ìèðå íàïèøåò ïðîãðàììó èëè ôèëüòð äëÿ ðåøåíèÿ íåîáõîäèìîé çàäà÷è, îí ñàì âçÿëñÿ çà ýòî äåëî. Ñåé÷àñ îí, ïîæàëóé, íå ñêðèïòî-ïèñàòåëü, à ïëàãèíî-ïèñàòåëü, ïîýòîìó â ñòàòüå ìîãóò áûòü íåêîòîðûå ïåðåêîñû). Íàäååìñÿ, îïûòíûì ïîëüçîâàòåëÿì òîæå êîå-÷òî èç äàííîãî ìàòåðèàëà ïðèãîäèòñÿ (âåäü êàæäûé — îò÷àñòè íà÷èíàþùèé). Îäíàêî ñòàòüÿ íå ïðåäñòàâëÿåò ñîáîé îáçîðà âñåõ âîçìîæíîñòåé AviSynth — íàïèøèòå ïðîäîëæåíèå î òîì, â ÷åì ðàçáèðàåòåñü! 2. Óñòàíîâêà Avisynth Äëÿ èñïîëüçîâàíèÿ Avisynth, åãî, êàê è äðóãóþ ïðîãðàììó, íàäî ñíà÷àëà óñòàíîâèòü â ñèñòåìó (ïîääåðæèâàþòñÿ Windows95 è âûøå). Çàãðóçèâ äèñòðèáóòèâ ïîñëåäíåé ñòàáèëüíîé âåðñèè (2.5.6a íà ìîìåíò íàïèñàíèÿ ñòàòüè), çàïóñòèòå óñòàíîâêó, íå çàáûâ îòìåòèòü ôëàæêîì îïöèè óñòàíîâêè àíãëèéñêîé è ðóññêîé äîêóìåíòàöèè, êàê íà ðèñóíêå. Ïîñëå óñòàíîâêè â ñèñòåìå áóäåò â çàðåãèñòðèðîâàí òèï ôàéëîâ *.AVS è êàòàëîã àâòîçàãðóçêè ïëàãèíîâ òèïà "C:\Program Files\Avisynth 2.5\plugins". Äîêóìåíòàöèÿ áóäåò äîñòóïíà â ìåíþ Ïóñê>Ïðîãðàììû>Avisynth 2.5>Russian Avisynth Documentation (íå çàáóäüòå íà äîñóãå ïî÷èòàòü ðàçäåë «î ðóññêîì ïåðåâîäå»). 3. ×åì ñîñòàâëÿòü êîìàíäíûå AVS ôàéëû-ñêðèïòû Íàèáîëåå åñòåñòâåííûì ìåòîäîì ðàáîòû ñ Avisynth ÿâëÿåòñÿ ïðÿìîå ñîñòàâëåíèå êîìàíäíûõ ôàéëîâ-ñöåíàðèåâ òèïà AVS, íàçûâàåìûõ ñêðèïòàìè, ñ ïîìîùüþ ëþáîãî òåêñòîâîãî ðåäàêòîðà (Áëîêíîò, UltraEdit, ðåäàêòîðû îáîëî÷åê Total Commander, Far manager, è ò.ï.). Óäîáíî ïîëüçîâàòüñÿ, â ÷àñòíîñòè, ïîäñâåòêîé êëþ÷åâûõ ñëîâ (íàïðèìåð, ñ ïëàãèíîì Colorer äëÿ Far, ôàéë ñèíòàêñèñà avsColorer3 áåðèòå íà ìîåì ñàéòå). Îäíàêî èìåííî íåîáõîäèìîñòü ðó÷íîãî íàïèñàíèÿ ñêðèïòîâ îòïóãèâàåò íîâè÷êîâ, õîòÿ ñîçäàíèå ïðîñòîãî òåêñòîâîãî ôàéëà íå ïðåäñòàâëÿåò ñîáîé êàêîé-òî ñëîæíîñòè. Äîñòàòî÷íî ñîçäàòü òåêñòîâûé ôàéë (ñ âåðñèè 2.5.7 ïîÿâèëàñü êîìàíäà Ñîçäàòü>AviSynth script â ìåíþ Windows Explorer), íàïèñàòü â íåì ñòðîêó òèïà Avisource("d:\file.avi") è ñîõðàíèòü ôàéë êàê Test.avs (åñëè âû ïîëüçóåòåñü ïðîâîäíèêîì Windows, òî â íàñòðîéêàõ ñâîéñòâ ïàïêè ñíèìèòå ôëàæîê ñ ïàðàìåòðà "Ñêðûâàòü ðàñøèðåíèÿ äëÿ çàðåãèñòðèðîâàííûõ òèïîâ ôàéëîâ"). Ñóùåñòâóåò ðÿä ïðîãðàìì, â êîòîðûõ ñäåëàíû ïîïûòêè àâòîìàòèçèðîâàòü íàïèñàíèå ñêðèïòîâ AVS äëÿ ðåøåíèÿ ÷àñòíûõ çàäà÷. Ýòî ïàêåòû äëÿ ìîäíîãî íåñêîëüêî ëåò íàçàä ïåðåêîäèðîâàíèÿ (ðèïà) DVD, òàêèå, êàê AutoGordianKnot, GordianKnot, DVD2AVI, DVDRebuilder (AviSynth âî ìíîãîì ðàçâèëñÿ äëÿ âûïîëíåíèÿ ýòèõ çàäà÷), MeGui. Ðàçðàáàòûâàëèñü òàêæå íåñêîëüêî ðåäàêòîðîâ AVS ñêðèïòîâ: AvisynthEditor, AvsGenie, AviSynthesizer, SwiftAvs, DVX, AVSEdit, SyntEditor. Îíè èìåþò âîçìîæíîñòü ãåíåðàöèè ñòðîê AVS ñêðèïòà ïóòåì âûáîðà ôèëüòðîâ èç ìåíþ, â òîì ÷èñëå ñ íàñòðàèâàåìûìè ïàðàìåòðàìè. Îäíàêî âñå ýòè ðåäàêòîðû íå î÷åíü øèðîêî èñïîëüçóþòñÿ. Ïðè÷èíàìè ýòîãî, ñêîðåå âñåãî, ÿâëÿþòñÿ, âî-ïåðâûõ, èõ íåêîòîðàÿ íåäîäåëàííîñòü, à âî-âòîðûõ, çàòîðìîæåííîñòü (èç-çà èñïîëüçîâàíèÿ ìåäëåííûõ ïëàòôîðì òèïà VBasic, NET), è, â-òðåòüèõ, ôèêñèðîâàííîñòü íàáîðà îïèñàíèé èçâåñòíûõ ïðîãðàììå ôèëüòðîâ (íåñìîòðÿ íà âîçìîæíîñòü ïîïîëíåíèÿ ôàéëîâ îïèñàíèé â ôîðìàòå XML, ïðàêòè÷åñêè ýòî íå äåëàåòñÿ, òàê êàê òðåáóåò íåïðåðûâíîé êðîïîòëèâîé ðàáîòû ââèäó ïîñòîÿííîãî îáíîâëåíèÿ ñóùåñòâóþùèõ ôèëüòðîâ è ïîÿâëåíèÿ íîâûõ). Ïîñëåäíþþ ïðîáëåìó ìîæåò ðåøèòü ïîÿâèâøàÿñÿ â ïîñëåäíèõ âåðñèÿõ AviSynth âîçìîæíîñòü àâòîìàòè÷åñêîãî îïðîñà èìåí âñåõ èìåþùèõñÿ ôóíêöèé è ñïèñêà èõ ïàðàìåòðîâ, ÷òî ðåàëèçîâàíî â áåòà-âåðñèè ðåäàêòîðà avsFilmCutter. ×àñòè÷íî ýòî ðåàëèçîâàíî è â øèðîêî èñïîëüçóåìîì è ðåêîìåíäóåìîì (íàðÿäó ñ Áëîêíîòîì) ðåäàêòîðå VirtualDubMod, êîòîðûé ïðåäñòàâëÿåò ñîáîé ðàñøèðåííûé âàðèàíò èçâåñòíîãî âèäåîðåäàêòîðà VirtualDub (õîòÿ è íåñêîëüêî óñòàðåâàþùèé, ââèäó çàìîðàæèâàíèÿ ðàçðàáîòêè — ìîæåò, êòî èç ðîññèéñêèõ ïðîãðàììèñòîâ ïîäõâàòèò?). Äëÿ íîâè÷êîâ, âîçìîæíî, áóäåò óäîáåí VirtualDubMod ñ ðóñèôèöèðîâàííûì èíòåðôåéñîì, îäíàêî èìåþùèéñÿ ïåðåâîä íåîôèöèàëüíûé è íå âïîëíå òî÷íûé, ïîýòîìó â ñòàòüå îïèñàí àíãëîÿçû÷íûé âàðèàíò. Ïåðâîé ïîëåçíîé ôóíêöèåé VirtualDubMod ÿâëÿåòñÿ âîçìîæíîñòü àâòîìàòè÷åñêîãî ñîçäàíèÿ ñêðèïòà AviSynth ïðè îòêðûòèè ôàéëà ïî øàáëîíó ôèëüòðîâ-èñòî÷íèêîâ AviSource, DirectShowSource, Mpeg2Source (äëÿ ôàéëîâ d2v). Åñòåñòâåííî, âîçìîæíî îòêðûòèå ñóùåñòâóþùèõ ôàéëîâ AVS-ñêðèïòîâ. Êàñàòåëüíî AviSynth, íàèáîëåå èíòåðåñíîé âîçìîæíîñòüþ VirtualDubMod ÿâëÿåòñÿ âñòðîåííûé â íåãî ðåäàêòîð AVS ñêðèïòîâ. Îí âûçûâàåòñÿ èç ìåíþ Tools->Script Editor. Òèïè÷íîé çàäà÷åé ïðè ìîíòàæå ÿâëÿåòñÿ âûáèðàíèå íóæíûõ ÷àñòåé âèäåîêëèïà è âûðåçàíèå íåíóæíûõ.  AviSynth âûðåçàíèå ïðîèçâîäèòñÿ êîìàíäîé TRIM(íà÷àëî, êîíåö). Åñòåñòâåííî, äëÿ ýòîãî íóæåí âèçóàëüíûé êîíòðîëü. Óäîáíà ñëåäóþùàÿ ìåòîäèêà: ùåë÷êîì íà ìàðêèðîâî÷íûå ñòðåëêè âûäåëÿåì íóæíóþ ÷àñòü êëèïà â îêíå ïðîñìîòðà VirtualDubMod (êàê îïèñàíî â ìíîãî÷èñëåííûõ ðóêîâîäñòâàõ ïî VitrualDub), à çàòåì â îêíå ðåäàêòîðà ñêðèïòîâ èñïîëüçóåì êîìàíäó ìåíþ Edit-->Import Trim With Range äëÿ âñòàâêè âûäåëåííîãî èíòåðâàëà â âèäå êîìàíä TRIM â òî ìåñòî ñòðîêè, ãäå ñòîèò êóðñîð (ýòî óäîáíî, åñëè íóæíî îòðåçàòü êðàÿ). Ëèáî, íàîáîðîò, â îêíå ïðîñìîòðà VirtualDubMod âûäåëÿåì è óäàëÿåì âñå íåíóæíûå îòðåçêè (êëàâèøåé DEL), è çàòåì â îêíå ðåäàêòîðà ñêðèïòîâ èñïîëüçóåì êîìàíäó ìåíþ Import Frameset as Trims äëÿ âñòàâêè íàáîðà íóæíûõ êàäðîâ áåç óäàëåííûõ îòðåçêîâ (ýòî óäîáíî åñëè èõ ìíîãî). Òàêæå ðåäàêòîð ñêðèïòîâ ïîçâîëÿåò çàêîììåíòèðîâàòü (ïðåâðàòèòü â íåèñïîëíÿåìûå) îïðåäåëåííûå ñòðîêè, ÷òî óäîáíî ïðè îòëàäêå è ïîäáîðå íàáîðà ôèëüòðîâ. Åñòåñòâåííî, ýòó òðèâèàëüíóþ îïåðàöèþ (äîáàâëåíèå ñèìâîëà ðåøåòêè # ñëåâà îò êîìàíäû â ëþáîé ñòðîêå) ìîæíî ñäåëàòü è ðóêàìè. Âñå ñèìâîëû â ñòðîêå ïîñëå ðåøåòêè ñ÷èòàþòñÿ êîììåíòàðèåì. Íåîáõîäèìûì äëÿ îòëàäêè ñêðèïòà ÿâëÿåòñÿ ïðîñìîòð ðåçóëüòàòà ïðèìåíåíèÿ AviSynth ôèëüòðîâ. Íàæàòèåì êëàâèøè F5 äîñòèãàåòñÿ ñîõðàíåíèå ñêðèïòà, åãî ïðèìåíåíèå è îáíîâëåíèå ðåçóëüòàòà ïðîñìîòðà òîãî êàäðà â îêíå VirtualDubMod. Áîëåå ãëóáîêîå îáíîâëåíèå (îòêðûòèå ñêðèïòà çàíîâî) äîñòèãàåòñÿ êëàâèøåé F7 (ýòî íåîáõîäèìî ïðè èçìåíåíèè ÷èñëà êàäðîâ). Åùå îäíîé àâòîìàòè÷åñêè ôîðìèðóåìîé êîìàíäîé ÿâëÿåòñÿ îáðåçêà êàäðà Crop, çíà÷åíèÿ ôîðìèðóþòñÿ â çàâèñèìîñòè îò ïðèìåíåííîé Âàìè îáðåçêè ( Cropping) âûõîäíîãî âèäåî â îêíå VirtualDubMod. Äðóãèå êîìàíäû â îêíå ðåäàêòîðà ïðèäåòñÿ âñå æå ïèñàòü ðóêàìè, ïîãëÿäûâàÿ â äîêóìåíòàöèþ ïî Avisynth. (Äîïîëíåíèå: "Eudg" ïîäñêàçàë íåäîêóìåíòèðîâàíûé ñïîñîá àâòîçàâåðøåíèÿ ïðè ââîäå ôóíêöèé ÷åðåç Ctrl-ïðîáåë). Äîñòóïíûå ôóíêöèè óñòàíîâëåííûõ âíåøíèõ ïëàãèíîâ ìîæíî ïîñìîòðåòü â ìåíþ Help>Avisynth Information. Ïðåëåñòíîé îñîáåííîñòüþ ðåäàêòîðà ñêðèïòîâ ÿâëÿåòñÿ ïîäêðàøèâàíèå êëþ÷åâûõ ñëîâ. Áàçîâûå ôóíêöèè AviSynth ïîäêðàøèâàþòñÿ çåëåíûì, ôóíêöèè ïëàãèíî⠗ ñèðåíåâûì, ñëåãêà íåâåðíûé ñèíòàêñèñ ïîäêðàøèâàåòñÿ êðàñíûì, öâåò ìåíÿåòñÿ ïî ìåðå íàáîðà ñèìâîëîâ. Íàçâàíèÿ ïàðàìåòðîâ è èõ çíà÷åíèÿ ðåäàêòîðîì íå ïðîâåðÿþòñÿ, ïîýòîìó âîçìîæíû îøèáêè, î êîòîðûõ ñîîáùàåò AviSynth ïðè îáíîâëåíèè ïî F5. Ïðèìåð îêíà ðåäàêòîðà è ñîîáùåíèÿ îá îøèáêå («íåò ôóíêöèè Trimmm, ñòðîêà 5 ñêðèïòà») ïðèâåäåíû íà ðèñóíêå. Èñïðàâüòå îøèáêó è îáíîâèòå âèä. Ñîîáùåíèå îá îøèáêå ìîæíî ñêîïèðîâàòü â áóôåð, íàæàâ Ctrl-C (è âñòàâèòü åãî â ñâîå ñîîáùåíèå íà ôîðóìå). Ðåêîìåíäóåòñÿ ê èñïîëüçîâàíèþ ðàçðàáîòàííûé íåäàâíî (íàïèñàííûé íà ÿçûêå Python è òàêæå ñâîáîäíî ðàñïðîñòðàíÿåìûé ïî ëèöåíçèè GNU GPL) ðåäàêòîð ñêðèïòîâ AvsP (àâòîð Peter Jang "qwerpoi") ñ àâòîçàâåðøåíèåì, ïîäñâåòêîé, ïîäñêàçêîé ñïèñêà ïàðàìåòðîâ, ñïðàâêè, ïîëçóíêàìè íàñòðîéêè çíà÷åíèé, âñòðîåííûì îêíîì ïðîñìîòðà, àâòîìàòè÷åñêîé ãåíåðàöèåé ñòðîêè èñòî÷íèêîâ ïðè ïåðåòàñêèâàíèè ìûøêîé, âêëàäêàìè äëÿ íåñêîëüêèõ ñêðèïòîâ, çàêëàäêàìè íà êàäðàõ è ìíîãèìè äðóãèìè óäîáñòâàìè, åñòü è ðóñèôèêàöèÿ. 4. Îñíîâû ÿçûêà ñêðèïòîâ Òàê êàê ñëîâàðü AviSynth ñîñòîèò èç áîëåå ÷åì ñòà ñëîâ-ôóíêöèé, êàæäàÿ èç êîòîðûõ ìîæåò èìååò íåñêîëüêî ïàðàìåòðîâ, îïèñàòü èõ âñå, è òåì áîëåå èõ âîçìîæíûå êîìáèíàöèè â ñêðèïòàõ, â íàñòîÿùåé ñòàòüå íåâîçìîæíî (îáðàùàéòåñü ê äîêóìåíòàöèè). À âåäü åñòü åùå è ïëàãèíû, ñðåäè íèõ áûâàåò íåñêîëüêî (îò ðàçíûõ àâòîðîâ), ðåàëèçóþùèõ ïîäîáíóþ ôóíêöèþ, íî îòëè÷àþùèõñÿ â äåòàëÿõ. Îñîáåííî ìíîãî âñåâîçìîæíûõ äåíîéçåðîâ (ïîäàâèòåëåé øóìà). Ïî÷òè êàæäûé ïëàãèíî-ïèñàòåëü, âèäèìî, ñ÷èòàåò ñåáÿ íå ðåàëèçîâàâøèìñÿ, ïîêà íå íàïèøåò íåñêîëüêî ñâîèõ ïëàãèíîâ (àâòîð ñòàòüè íå èñêëþ÷åíèå). Åñòåñòâåííî, ýòî îáúÿñíÿåòñÿ è ðàçíîîáðàçíûìè âèäàìè øóìà. Òåì íå ìåíåå, êà÷åñòâî è ñòåïåíü äîâîäêè ïëàãèíîâ ðàçíûå. Íåêîòîðûå íàïèñàíû "íà êîëåíêå" íåäîó÷èâøèìñÿ øêîëüíèêîì çà ÷àñ (êàêèå-òî èç íèõ — íàñòîÿùèå æåì÷óæèíû), à íåêîòîðûå îáíîâëÿþòñÿ è ñîâåðøåíñòâóþòñÿ ïîñëåäîâàòåëüíî íåñêîëüêèìè ëþäüìè â òå÷åíèå ëåò. Îïèñàíèÿ íàèáîëåå ïîëåçíûõ è ïðîâåðåííûõ ïëàãèíîâ âêëþ÷åíû â äîêóìåíòàöèþ ïî AviSynth. Íî, ïîñêîëüêó ïðèñòðàñòèÿ âèäåî-ñîîáùåñòâà ñî âðåìåíåì ìåíÿþòñÿ, íàèáîëåå ñâåæóþ èíôîðìàöèþ âñåãäà ìîæíî íàéòè íà ôîðóìàõ. Òàì ìîæíî íàéòè è ðàçíîîáðàçíûå ñêðèïòû, íàïèñàííûå ëþáèòåëÿìè âèäåî â ïîïûòêàõ ðåøåíèÿ ñâîèõ çàäà÷. Ñèíòàêñèñ ñêðèïòîâ AviSynth (ïîäðîáíî îïèñàííûé â äîêóìåíòàöèè) äîïóñêàåò íåñêîëüêî ñïîñîáîâ íàïèñàíèÿ, êàê ïðÿìîå ïðèñâîåíèå ïåðåìåííûõ, òàê è îáúåêòíî-îðèåíòèðîâàííóþ çàïèñü ôóíêöèé (ñ òî÷êîé), â òîì ÷èñëå ñ âîçìîæíîñòüþ íåóêàçàíèÿ ïîäðàçóìåâàåìûõ ïåðåìåííûõ.  ñêðèïòàõ AviSynth îñíîâíîé åäèíèöåé îáðàáîòêè ÿâëÿåòñÿ âèäåîêëèï. Âèäåîêëèï ÿâëÿåòñÿ îñíîâíûì (ïåðâûì, îáû÷íî íåèìåíîâàííûì) àðãóìåíòîì ôóíêöèè. Ðåçóëüòàòîì âûïîëíåíèÿ ôóíêöèè òàêæå ÿâëÿåòñÿ âèäåîêëèï, êîòîðûé ïðèñâàèâàåòñÿ ïåðåìåííîé ñ ÿâíî óêàçàííûì èìåíåì èëè ïîäðàçóìåâàåìîé ïåðåìåííîé LAST (ïîñëåäíèé), êîòîðàÿ ìîæåò áûòü íå óêàçàíà, è ÿâëÿåòñÿ ïîäðàçóìåâàåìûì àðãóìåíòîì ñëåäóþùåé ôóíêöèè. Áîëüøèíñòâî ôèëüòðîâ èìåþò äîïîëíèòåëüíûå ïàðàìåòðû, ïîçâîëÿþùèå íàñòðîèòü îïòèìàëüíûé ðåæèì îáðàáîòêè äëÿ êîíêðåòíîãî âèäåîêëèïà, îáû÷íî âñå ïàðàìåòðû èìåþò íåêîòîðûå çíà÷åíèÿ ïî óìîë÷àíèþ, òàê ÷òî ìîæíî óêàçûâàòü ÿâíî òîëüêî òå ïàðàìåòðû, çíà÷åíèÿ êîòîðûõ íåîáõîäèìî ïîäñòðîèòü. Âî èçáåæàíèå íåäîðàçóìåíèé îòìåòèì, ÷òî Âàø ôàéë íà æåñòêîì äèñêå íå ìåíÿåòñÿ ïðè îáðàáîòêå, âñå êàäðû êëèïîâ ñîçäàþòñÿ â îïåðàòèâíîé ïàìÿòè. Äëÿ ïîäêëþ÷åíèÿ â AviSynth äîïîëíèòåëüíûõ ìîäóëåé (ïëàãèíîâ), íóæíî ñíà÷àëà èõ îòêóäà-òî ñêà÷àòü, çàòåì èçâëå÷ü èç ñêà÷åííîãî àðõèâà (îáû÷íî òèïà ZIP) ôàéë òèïà DLL è äîáàâèòü åãî â ñïåöèàëüíûé ïîäêàòàëîã òèïà "C:\Program Files\Avisynth 2.5\Plugins" äëÿ àâòîìàòè÷åñêîé çàãðóçêè, ëèáî ÿâíî óêàçûâàòü â êàæäîì ôàéëå ñêðèïòà êîìàíäó çàãðóçêè êàæäîãî íóæíîãî ïëàãèíà âèäà LoadPlugin ("PluginFileName.DLL"). Ðåêîìåíäóåì àâòîçàãðóçêó, íî íèæå âî âñåõ ïðèìåðàõ ñêðèïòîâ äëÿ èíôîðìàöèè î íåîáõîäèìûõ ïëàãèíàõ óêàçàíû êîìàíäû ÿâíîé çàãðóçêè (èõ ìîæíî óáðàòü, çàêîììåíòèðîâàâ). ×àñòî èìÿ ôóíêöèè ñîâïàäàåò ñ èìåíåì ïëàãèíà, íî íå âñåãäà, ïëàãèí ìîæåò ñîäåðæàòü è íåñêîëüêî ôóíêöèé.  àðõèâå ðàñïðîñòðàíÿåìûõ ïëàãèíîâ îáû÷íî òàêæå åñòü íàïèñàííûå àâòîðîì ôàéëû äîêóìåíòàöèè (òèïà TXT èëè HTML), à òàêæå èñõîäíûå òåêñòû ïðîãðàììû äëÿ âîçìîæíîñòè óñîâåðøåíñòâîâàíèÿ ïëàãèíà äðóãèìè ïðîãðàììèñòàìè. 5. Îòêðûòèå ôàéëîâ-èñòî÷íèêîâ âèäåî Ïðàêòè÷åñêè ëþáîé ñêðèïò âêëþ÷àåò îòêðûòèå ôàéëîâ-èñòî÷íèêîâ âèäåî (è àóäèî).  áàçîâûé íàáîð AviSynth âõîäÿò ôèëüòðû-èñòî÷íèêè äëÿ îòêðûòèÿ AVI-âèäåîôàéëîâ AVISource (ðåêîìåíäóåòñÿ äëÿ êëàññè÷åñêèõ AVI òèïà DivX è ò.ï. ÷åðåç èíòåðôåéñ VfW), DirectShowSource (÷åðåç èíòåðôåéñ DirectShow, ââèäó îñîáåííîñòåé ðåêîìåíäóåòñÿ ïðèìåíÿòü, åñëè íå ðàáîòàåò AVISource èëè ñïåöèàëèçèðîâàííûé ïëàãèí òðåáóåìîãî ôîðìàòà), çâóêîâûõ ôàéëîâ WavSource, à òàêæå ôàéëîâ èçîáðàæåíèé ImageSource. Äëÿ ÷òåíèÿ ðÿäà äðóãèõ ôîðìàòîâ ôàéëîâ ðàçðàáîòàíû (è ïðîäîëæàþò ðàçðàáàòûâàòüñÿ) îòäåëüíûå ïëàãèíû, â òîì ÷èñëå: RawSource (ðàçðàáîò÷èê Ernst Peche "WarpEnterprises") äëÿ "ñûðûõ", íåñæàòûõ âèäåîäàííûõ; QTSource (ðàçðàáîò÷èê Josh Harris "tateu") äëÿ ôàéëîâ QuickTime; FFMpegSource (ðàçðàáîò÷èê "Myrsloik") äëÿ ìíîæåñòâà ôîðìàòîâ, îòêðûâàåìûõ MPlayer; ðàçðàáàòûâàåòñÿ ïëàãèí DGAVCDec (ðàçðàáîò÷èê Donald Graft íà îñíîâå libavcodec.dll) äëÿ ÷òåíèÿ AVC/H.264 (c ïîçèöèîíèðîâàíèåì) è äð. Äëÿ ôàéëîâ MPEG1 è MPEG2 â íàñòîÿùåå âðåìÿ íàèáîëåå îòðàáîòàííûì ÿâëÿåòñÿ èñïîëüçîâàíèå ôóíêöèè Mpeg2Source ïëàãèíà DGDecode (ïàêåò DGMPGDec, ðàçðàáîò÷èê ïîñëåäíèõ âåðñèé Donald Graft "neuron2"). Äëÿ ýòîãî ïðåäâàðèòåëüíî íåîáõîäèìî âîñïîëüçîâàòüñÿ ïðîãðàììîé DGIndex èç ïàêåòà DGMPGDec, â êîòîðîé îòêðûòü ôàéë MPEG2 è ñîõðàíèòü âñïîìîãàòåëüíûé èíäåêñíûé ôàéë àíàëèçà òèïà D2V (îáåñïå÷èâàþùèé òî÷íîå ïîçèöèîíèðîâàíèå ïðè íàâèãàöèè è ïðîêðóòêå), êîòîðûé è äîëæåí áûòü óêàçàí â êà÷åñòâå àðãóìåíòà ôóíêöèè Mpeg2Source  (îäíîâðåìåííî âûäåëåííûé çâóê äîëæåí áûòü çàãðóæåí îòäåëüíîé êîìàíäîé, ñì. ðàçäåë ïî îáðàáîòêå çâóêà.) # Ïðèìåð ñêðèïòà 5.1 MPEG2Source(d2v="mydvd.d2v") # òî îí ïðèñâàèâàåòñÿ â ïåðåìåííóþ LAST Ðåçóëüòàòîì âûïîëíåíèÿ ñêðèïòà, ïåðåäàâàåìûì â âûçûâàþùóþ ïðîãðàììó, ÿâëÿåòñÿ ëèáî ïîñëåäíåå çíà÷åíèå ïåðåìåííîé LAST (òî åñòü ïîñëåäíèé íåèìåíîâàííûé ðåçóëüòàò), êàê â ïðèìåðå 5.1, ëèáî ÿâíî óêàçàííûé äëÿ âîçâðàòà êëèï (âèäà Return LAST, èëè Return A), êàê â ïðèìåðå 5.2. #Ïðèìåð ñêðèïòà 5.2 # ïåðåìåííàÿ A (àíãëèéñêàÿ) — êëèï èç ôàéëà film1.avi A = AviSource("D:\video\film1.avi") # âûäåëèì èç êëèïà A íóæíûå êàäðû ñ 100 ïî 999 # è ïðèñâîèì ýòîò îòðåçîê ïåðåìåííîé A1 A1 = Trim(A, 100, 999) # âûäåëèì èç êëèïà A íóæíûå êàäðû ñ 3000 ïî 4000 # è ïðèñâîèì åãî ïåðåìåííîé A2. A2 = Trim(A, 3000, 4000) # ïåðåìåííàÿ B — êëèï èç ôàéëà film2.avi B = AviSource("D:\video\film2.avi") # Âûäåëèì èç êëèïà B ïåðâûå 501 êàäð (ïðèìåð îáúåêòíîé çàïèñè) B = B.Trim(0, 500) A1 ++ A2 ++ B # Ïðåîáðàçóåì âèäåî â ÷åðíî-áåëîå (ïðîñòî êàê ïðèìåð ôèëüòðà) GreyScale() # òî ôóíêöèÿ ïðèìåíÿåòñÿ ê èìåþùåìóñÿ çíà÷åíèþ LAST # Òàê êàê ðåçóëüòàò ôóíêöèè òîæå íè÷åìó íå ïðèñâàèâàåòñÿ ÿâíî, # òî îí ïåðåäàåòñÿ â ïåðåìåííóþ LAST return LAST # âîçâðàùàåì LAST Åñëè íóæíî îáúåäèíèòü âèäåî èç íåñêîëüêèõ âõîäíûõ ôàéëîâ, òî íàäî â ñêðèïòå äëÿ êàæäîãî ôàéëà íàïèñàòü êîìàíäó îòêðûòèÿ, ñ ïðèñâîåíèåì â ðàçíûå ïåðåìåííûå. Çàòåì ìîæíî êàæäûé êëèï ïîñëåäîâàòåëüíî ïîäðåçàòü (ïðè íåîáõîäèìîñòè îòðåçàòü ðåêëàìó, íàïðèìåð), è ðåçóëüòàòû îáúåäèíèòü. Óäîáíî îòêðûòü ïåðâûé êëèï, âûïîëíèòü îáðåçêó (ïðè íåîáõîäèìîñòè), çàêîììåíòèðîâàòü ýòè ñòðîêè, çàòåì îòêðûòü ñëåäóþùèé êëèï, âûïîëíèòü îáðåçêó, çàêîììåíòèðîâàòü, è ò.ä. Çàòåì óáðàòü êîììåíòàðèè, äîáàâèòü êîìàíäû îáúåäèíåíèÿ (ïëþñû) è ïîëó÷èòü èòîãîâûé îáúåäèíåííûé êëèï. #Ïðèìåð ñêðèïòà 5.3 # ïåðåìåííàÿ A (àíãëèéñêàÿ) — êëèï èç ôàéëà film1.avi A = AviSource("D:\video\film1.avi") A # Ïîìåùàåì êëèï A â LAST A=Trim(100, 999) ++ Trim(3000, 4000) # íàáîð êàäðîâ (Frameset) # ïåðåìåííàÿ B — êëèï èç ôàéëà film2.avi B = AviSource("D:\video\film2.avi") B # Ïîìåùàåì êëèï B â LAST # Âûäåëèì èç êëèïà B ïåðâûå 501 êàäð (ïðèìåð îáúåêòíîé çàïèñè) B = Trim(0, 500) A ++ B # ðåçóëüòàò íè÷åìó íå ïðèñâàèâàåòñÿ ÿâíî, ïîäðàçóìåâàåòñÿ LAST Èíîãäà ñïðàøèâàþò, êàê îáðàòèòü âèäåî (îáðàòèòü õîä âðåìåíè) â êà÷åñòâå ýôôåêòà. Ñ ïîìîùüþ AviSynth ýòî äåëàåòñÿ î÷åíü ïðîñòî, ôóíêöèåé Reverse (ïîêà íå êàñàåìñÿ âîïðîñîâ çâóêà). #Ïðèìåð ñêðèïòà 5.4 A = Trim(0, 100) # Îòðåçîê äî ýôôåêòà B = Trim(100, 999) # Âûäåëèì íåêîòîðûé îòðåçîê äëÿ ñöåíû ýôôåêòà C = Trim(1000, 0) # îñòàòîê âõîäíîãî êëèïà A ++ B ++ Reverse(B) ++ B ++ C # Îáúåäèíèëè îòðåçêè â ðåçóëüòèðóþùèé êëèï èç 5 ÷àñòåé ( ïðèìåð): # 1. ×àñòü âèäåî äî ñöåíû ýôôåêòà, # 2. ñöåíà ýôôåêòà ñ íîðìàëüíûì õîäîì âðåìåíè, # 3. ñöåíà ýôôåêòà ñ îáðàòíûì õîäîì âðåìåíè, # 4. ïîâòîð ñöåíû ýôôåêòà ñ íîðìàëüíûì õîäîì âðåìåíè, # 5. îñòàòîê âèäåî äî êîíöà 6. Ðàáîòà ñ ÷åðåññòðî÷íûì âèäåî  êèíî â êàæäûé ìîìåíò âðåìåíè ñíèìàåòñÿ êàäð öåëèêîì.  òðàäèöèîííîì (÷åðåññòðî÷íîì) òåëåâèäåíèè è âèäåî (çà èñêëþ÷åíèåì íåäàâíî ïîÿâèâøèõñÿ ïðîãðåññèâíûõ ñòàíäàðòîâ) êàæäûé êàäð ñîñòîèò èç ñòðîê, îáðàçóþùèõ äâà ïîëÿ, ñíÿòûõ â ðàçíûå ìîìåíòû âðåìåíè.  îäèí ìîìåíò ñíèìàþòñÿ ÷åòíûå ñòðîêè (ïåðâîå, âåðõíåå ïîëå), â ñëåäóþùèé ìîìåíò — íå÷åòíûå (âòîðîå, íèæíåå ïîëå), è òàê äàëåå. Îäíàêî êèíî ÷àñòî ïîêàçûâàþò ïî òåëåâèäåíèþ (è çàïèñûâàþò íà DVD),   â ñòðàíàõ ñ ðàçíîé ñèñòåìîé òåëåâèäåíèÿ è, ñîîòâåòñòâåííî, ñ ðàçíûìè ÷àñòîòàìè êàäðîâ, íå ñîâïàäàþùèìè ñ ÷àñòîòîé êàäðîâ êèíîôèëüìà.  ýòîì ñëó÷àå ñòóäèè ïðîèçâîäÿò ëèáî óñêîðåíèå âèäåî (ñ 24 äî 25 Ãö äëÿ PAL) ëèáî ïîâòîð íåêîòîðûõ ïîëåé ïî îïðåäåëåííîìó àëãîðèòìó (Pulldown) èëè (÷òî õóæå) ñìåøåíèå (blend). Îáðàáîòêó âèäåî (íàïðèìåð, ôèëüòðàöèþ) æåëàòåëüíî âåñòè â òîì âèäå, â êîòîðîì îíî ñóùåñòâîâàëî èçíà÷àëüíî. Íà÷íåì ñ ðàññìîòðåíèÿ ïðîñòîãî ñëó÷àÿ èñòèííîãî ÷åðåññòðî÷íîãî âèäåî, ñíÿòîãî âèäåîêàìåðîé. Íàèáîëåå åñòåñòâåííûì (äëÿ ñîõðàíåíèÿ ïëàâíîñòè äâèæåíèé) ÿâëÿåòñÿ ñîõðàíåíèå ÷åðåññòðî÷íîñòè ïðè îáðàáîòêå, êîäèðîâàíèè è çàïèñè DVD. Îáðàáîòêó âèäåî öåëåñîîáðàçíî âåñòè, ðàçäåëèâ åãî íà ïîëÿ, èëè èñïîëüçîâàòü ôóíêöèè-ôèëüòðû, èìåþùèå îïöèþ îáðàáîòêè âèäåî êàê ÷åðåññòðî÷íîãî. Avisynth èìååò ôóíêöèþ Weave äëÿ èõ îáðàòíîãî ñöåïëåíèÿ â êàäðû. #Ïðèìåð ñêðèïòà 6.1. LoadPlugin("C:\Plugins\VagueDenoiser.dll") # çàãðóæàåì ïëàãèí AviSource("d:\video\film.avi") # îòêðûâàåì âèäåîôàéë SeparateFields() # ðàçäåëÿåì âèäåî íà ïîëÿ VagueDenoiser(threshold=2) Weave() # ñîåäèíÿåì ïîëÿ â êàäðû  äàííîì ïðèìåðå 6.1 ìû èñïîëüçîâàëè äëÿ ñíèæåíèÿ øóìà îäèí èç ëó÷øèõ ïðîñòðàíñòâåííûõ ôèëüòðîâ (ôóíêöèÿ VagueDenoiser), êîòîðûé èñïîëíåí êàê ïëàãèí (ôàéë VagueDenoiser.dll, ðàçðàáîò÷èêè "Lefungus", "Kurosu", "Fizick"), è ïîýòîìó ñíà÷àëà äîëæåí áûòü çàãðóæåí (àâòîìàòè÷åñêè èëè ÿâíî, íàãëÿäíåé â íà÷àëå ñêðèïòà). Ñèëà (ïîðîã) ôèëüòðàöèè çàäàí ïàðàìåòðîì threshold=2, îñòàëüíûå ïàðàìåòðû ñî çíà÷åíèÿìè ïî óìîë÷àíèþ. Åùå îáðàòèòå âíèìàíèå íà òàêóþ ìåëî÷ü, ÷òî â ôóíêöèÿõ áåç àðãóìåíòîâ ìû ïèøåì ïóñòûå ñêîáêè (ðàáîòàòü ôèëüòð áóäåò è áåç íèõ, íî áåç êýøèðîâàíèÿ, ìåäëåííåå — ýòî áóäåò èñïðàâëåíî ñ âåðñèè AviSynth 2.5.7). #Ïðèìåð ñêðèïòà 6.2 # èìåþùåãî îïöèþ ðàáîòû ÷åðåññòðî÷íî (interlaced) LoadPlugin("C:\Plugins\VagueDenoiser.dll") # çàãðóæàåì ïëàãèí AviSource("d:\video\film.avi") # îòêðûâàåì âèäåîôàéë # ôèëüòðóåì êàæäîå ïîëå ïðîñòðàíñòâåííûì ôèëüòðîì, # âêëþ÷èâ îïöèþ ÷åðåññòðî÷íîñòè VagueDenoiser(threshold=2, interlaced=true) Áîëåå ñèëüíóþ ôèëüòðàöèþ îáåñïå÷èâàþò âðåìåííûå ôèëüòðû, ó÷èòûâàþùèå èíôîðìàöèþ è î ñîîòâåòñòâóþùèõ òî÷êàõ â ñîñåäíèõ êàäðàõ, èëè ïðîñòðàíñòâåííî-âðåìåííûå, ðàññìàòðèâàþùèå ñîñåäíèå òî÷êè â ïðîñòðàíñòâå è âî âðåìåíè. Òàê êàê ñòðîêè ñîäåðæàò èíôîðìàöèþ î ñäâèíóòûõ ïî âåðòèêàëè íà îäíó ñòðîêó òî÷êàõ, òî ïîñëå ðàçäåëåíèè íà ïîëÿ èíôîðìàöèÿ â ñîîòâåòñòâóþùèõ ñòðîêàõ íå îòíîñèòñÿ ê òîìó æå ìåñòó ïðîñòðàíñòâà, è íå äîëæíà áûòü ñìåøåíà. Ïîýòîìó èç ïîòîêà ïîëåé âûäåëÿþò ïîòîê ÷åòíûõ ïîëåé è ïîòîê íå÷åòíûõ ïîëåé, â êàæäîì èç êîòîðûõ èíôîðìàöèÿ îòíîñèòñÿ ê ñîîòâåòñòâóþùèì (íåñìåùåííûì) òî÷êàì. #Ïðèìåð ñêðèïòà 6.3 LoadPlugin("C:\Plugins\DeGrainMedian.dll") # çàãðóæàåì ïëàãèí AviSource("d:\video\film.avi") # îòêðûâàåì âèäåîôàéë SeparateFields() # ðàçäåëÿåì âèäåîêàäðû íà ïîëÿ # Âûäåëÿåì ÷åòíûå (0,2,4…) ïîëÿ â ïåðåìåííóþ Even Even = SelectEven() Even = DeGrainMedian(Even) Odd = SelectOdd() Odd = DeGrainMedian(Odd) # ñîáèðàÿ èñõîäíóþ ïîñëåäîâàòåëüíîñòü (0,1,2,3,4,5…) Weave() # ñîåäèíÿåì ïîëÿ â êàäðû Íåêîòîðûå ôèëüòðû, â òîì ÷èñëå èñïîëüçóåìûé òóò DeGrainMedian, èìåþò îïöèþ îáðàáîòêè ÷åðåññòðî÷íîãî âèäåî, ïðè ýòîì îíè ðåàëèçóþò ýòîò æå àëãîðèòì ðàñêëàäêè íà ïîëÿ âíóòðåííå, â ýòîì ñëó÷àå ñêðèïò óïðîùàåòñÿ. #Ïðèìåð ñêðèïòà 6.4 # ôèëüòðà, LoadPlugin("C:\Plugins\DeGrainMedian.dll") # çàãðóæàåì ïëàãèí AviSource("d:\video\film.avi") # îòêðûâàåì âèäåîôàéë DeGrainMedian(interlaced=true) # ôèëüòðóåì ÷åðåññòðî÷íî 7. Ôèëüòðû äåèíòåðëåéñà Äåèíòåðëåéñ ïðèìåíÿþò äëÿ óäàëåíèÿ ýôôåêòîâ «ãðåáåíêè» ÷åðåññòðî÷íîãî âèäåî äëÿ êîìôîðòíîãî ïðîñìîòðà íà ìîíèòîðå êîìïüþòåðà (íà òåëåâèçîðå ýòà ãðåáåíêà áóäåò íå âèäíà). Ìîæíî âûäåëèòü ñëó÷àé, êîãäà âèäåî èçíà÷àëüíî áûëî ïðîãðåññèâíûì (ôèëüìîì), äëÿ ïðåîáðàçîâàíèÿ â âèäåî áûëî ïðèìåíåíî íåêîå ÷åðåäîâàíèå ïîëåé (telecine, pulldown), è íàì íåîáõîäèìî âûäåëèòü èç âèäåî ïîñëåäîâàòåëüíîñòü îðèãèíàëüíûõ êàäðîâ. Ïðè ýòîì èìååòñÿ â âèäó, ÷òî ñìåøåíèÿ ïîëåé íåò, è âñÿ òðóäíîñòü ïðîñòî â íàõîæäåíèè íóæíûõ.  ïðîñòîì ñëó÷àå ôèëüìà â NTSC ìîæíî âîñïîëüçîâàòüñÿ áàçîâîé ôóíêöèåé Pulldown. Ìîæíî èñïîëüçîâàòü è äåòàëüíî èñïîëüçîâàòü áîãàòûå âîçìîæíîñòè AviSynth ïî ðàçëîæåíèþ íà ïîëÿ, èõ ðó÷íîì àíàëèçå, è ñîñòàâëåíèåì íåêîòîðîãî ñêðèïòà äëÿ èõ êîìáèíàöèè.  áîëåå ñëîæíûõ ðåàëüíûõ ñëó÷àÿõ äëÿ àâòîìàòèçàöèè ïðîöåññà öåëåñîîáðàçíî ïðèìåíÿòü ïëàãèíû DeComb (ðàçðàáîò÷èê Donald Graft) èëè TIVTC (ðàçðàáîò÷èê "Tritical"), ðåàëèçóþùèå ìåòîäû ïîäáîðà ïîëåé (field matching) èç íåñêîëüêèõ ñîñåäíèõ êàäðîâ äëÿ âîññòàíîâëåíèÿ ïðîãðåññèâíûõ êàäðîâ, â îñíîâíîì äëÿ ôîðìàòà NTSC, â òîì ÷èñëå èç ãèáðèäíîãî âèäåî è äð. Îáà ïëàãèíà ñîñòîÿò èç äâóõ ãëàâíûõ ôóíêöèé, íà ïåðâîì ýòàïå îñóùåñòâëÿþùèõ ïîäáîð ïîäõîäÿùèõ ïîëåé è ôîðìèðîâàíèå êàäðîâ, à íà âòîðîì ýòàïå — îòáðàñûâàíèå íåíóæíûõ äóáëèêàòîâ (äåöèìàöèþ). Ìåæäó ñîáîé îíè ìîãóò îáùàòüñÿ ñ ïîìîùüþ ïîäñêàçîê, ñïðÿòàííûõ â êàäðå. Ïëàãèí TIVTC àêòèâíî ðàçðàáàòûâàåòñÿ â íàñòîÿùåå âðåìÿ è èìååò íåñêîëüêî áîëüøå âîçìîæíîñòåé. Îñíîâíûìè (áàçîâûìè) ïàðàìåòðàìè åãî ôóíêöèè TFM ÿâëÿþòñÿ: "order" — ïîðÿäîê ïîëåé (0 — BFF, 1 — TFF, -1 = èç AviSynth, ïî óìîë÷àíèþ); "mode" — ðåæèì îò 0 äî 6, ãðóáî ÷åì áîëüøå, òåì áîëüøå ñîñåäíèõ ïîëåé ïðîáóåòñÿ, è åùå ñïåöèàëüíûé ðåæèì 7, ïî óìîë÷àíèþ =1 (äâà ñîñåäíèõ ïîëÿ è îäíî ñëåäóþùåå ïðè íåóäà÷å); "PP" — ïîñò-îáðàáîòêà, îò 0 äî 7, ÷òî äåëàòü ñ ïëîõèìè êàäðàìè (ñ ãðåáåíêîé) ïðè íåóñïåõå ïîäáîðà ïîëåé, èìååòñÿ â âèäó âîçìîæíîñòü ïîïèêñåëüíîãî äåèíòåðëåéñà (0 — áåç îáðàáîòêè, 1 — èñêàòü ïëîõèå, âûâîäèòü ïîäñêàçêó, íî íå îáðàáàòûâàòü, 2 — ïðîñòîé äåèíòåðëåéñ ñìåøåíèåì, 3 — ïðîñòîé äåèíòåðëåéñ êóáè÷åñêîé èíòåðïîëÿöèåé, 4 — ïðîñòîé äåèíòåðëåéñ ñ óëó÷øåííûìè êðàÿìè (ELA), 5 — àäàïòèâíûé ê äâèæåíèþ äåèíòåðëåéñ ñìåøåíèåì, 6 — àäàïòèâíûé ê äâèæåíèþ äåèíòåðëåéñ êóáè÷åñêîé èíòåðïîëÿöèåé, 7 — àäàïòèâíûé ê äâèæåíèþ äåèíòåðëåéñ ñ óëó÷øåííûìè êðàÿìè (ELA), ïî óìîë÷àíèþ = 6).  ðàçðàáîòêàõ "Tritical" TIVTC è TDeint ìû âèäèì ñáëèæåíèå ìåòîäîâ äåèíòåðëåéñà ïî ïîëÿì è ïî òî÷êàì. #Ïðèìåð ñêðèïòà 7.1 LoadPlugin("C:\Plugins\DGdecode.dll") # äëÿ MPEG2 LoadPlugin("C:\Plugins\tivtc.dll") # äëÿ TFM MPEG2Source("d:\video\film.avi") # ôàéë âèäåî TFM(mode=1, PP=6) # äåëàåì äåèíòåðëåéñ ïîäáîðîì ïîëåé è ïîñò-îáðàáîòêîé Äëÿ ìóëüòôèëüìîâ ðåêîìåíäóþò ðåæèì PP=7 ñî ñãëàæåííûìè íàêëîííûìè êðàÿìè. Äëÿ NTSC íåîáõîäèìà åùå è ôóíêöèÿ äåöèìàöèè TDecimate ñðàçó çà TFM. Ôóíêöèè èìåþò ìíîãî÷èñëåííûå íàñòðîå÷íûå ïàðàìåòðû, â òîì ÷èñëå äëÿ ïðÿìîãî çàäàíèÿ ïîëüçîâàòåëåì òèïà äåèíòåðëåéñà äëÿ êîíêðåòíûõ êàäðîâ. Ðàçðàáîòàí ïëàãèí RestoreFps, à òàêæå ñëîæíûå AVS ñêðèïòû äëÿ òðóäíûõ ñëó÷àåâ âîññòàíîâëåíèÿ ïðîãðåññèâíûõ êàäðîâ èç ïîòîêà ïîñëå òåëåêèíî-ïðåîáðàçîâàíèÿ, â òîì ÷èñëå è ÷àñòè÷íî ñìåøåííûõ (blended) ïîëåé, òàêèå êàê Restore24 (ñîñòàâèòåëè "scharfis_brain", "Didee"), CDeblend, MRestore, CRestore (ñîñòàâèòåëü "MOmonster"). Àâòîð íå ÿâëÿåòñÿ â ýòîì âîïðîñå îïûòíûì, îäíàêî ðàññìîòðåòü èõ öåëåñîîáðàçíî. Îãðàíè÷èìñÿ êðàòêèì îïèñàíèåì ïîñëåäíåé, íå ïðèâîäÿ ñàìó ôóíêöèþ ñêðèïòà (íàéäåòå åå â àðõèâå avs.zip).  íåé ñíà÷àëà ïðîèçâîäèòñÿ âû÷èñëåíèå ìàñîê ñðàâíåíèÿ, à çàòåì ïîêàäðîâûå âû÷èñëåíèÿ è íàõîæäåíèå íàèáîëåå ïîõîäÿùèõ ïîëåé ñ èñïîëüçîâàíèåì êîìàíä óñëîâíîé îáðàáîòêè ScriptClip è FrameEvaluate. Ïàðàìåòðàìè ôóíêöèè Crestore ÿâëÿþòñÿ: mode: ðåæèì äåòåêòèðîâàíèÿ ñìåøåííûõ ïîëåé, îò -1 äî 10, ïî óìîë÷àíèþ 0. ìåíüøå 0 — áûñòðûå ðåæèìû, áîëüøå 0 — âûñîêîêà÷åñòâåííûå. ×åì áîëüøå ìîäóëü, òåì âûøå âëèÿíèå äâèæåíèÿ, 0 — áåç âëèÿíèÿ äâèæåíèÿ. Äëÿ ïðèðîäû õîðîøî îò 0 äî 2, äëÿ ìóëüòôèëüìîâ äî 4-5 rate: âûõîäíàÿ ÷àñòîòà êàäðîâ, îáû÷íî 23,976 (ïî óìîë÷àíèþ) èëè 25 fps, ïðîðåæèâàíèÿ íå ïðîèçâîäèòñÿ bthresh: ïîðîã äåòåêòèðîâàíèÿ ñìåøåíèÿ. Îò 0 äî 99 — ïðîñòîå èñïîëüçîâàíèå ïîðîãà Âûøå 99 — ñïåöèàëüíàÿ îáðàáîòêà. Åñëè òåêóùèé êàäð èìååò áîëüøóþ âåðîÿòíîñòü ñìåøåíèÿ, ÷åì ñîñåäíèå, è ôàêòîð âûøå bthesh/100-1, òî ýòî — ñìåøåíèå (blend). Ïî óìîë÷àíèþ 120 dl: ïðåäåë äåòåêòèðîâàíèÿ äëÿ mode >= 0. Íå ó÷èòûâàþòñÿ ïèêñåëè ñ ìåíüøåé ðàçíèöåé. Îò 0 äëÿ õîðîøèõ èñòî÷íèêîâ äî 2-4 äëÿ ìóëüòôèëüìîâ, ïî óìîë÷àíèþ 1 clip2: íåîáÿçàòåëüíûé âñïîìîãàòåëüíûé (î÷èùåííûé) êëèï (bobbed) äëÿ áîëåå íàäåæíîãî äåòåêòèðîâàíèÿ nomo: òî÷êà îòñóòñòâèÿ äâèæåíèÿ. Ðàçíîñòè ñìåøåííûõ ïèêñåëåé âû÷èòàþòñÿ èç íåå, ÷èñòûõ ïèêñåëåé ïðèáàâëÿþòñÿ. Õîðîøèå âåëè÷èíû 255, 128. Äëÿ bthresh mthresh: äëÿ ïðîñòîãî ïîðîãà äâèæåíèÿ. Ïðè ðàçíîñòè êàäðîâ ìåíüøå mthresh, ñìåøåíèå íå áóäåò äåòåêòèðîâàíî. Ïî óìîë÷àíèþ 0.16 Ôóíêöèÿ Crestore (â ïîñëåäíåì âàðèàíòå 1.0) èñïîëüçóåò ôóíêöèè ïëàãèíà MaskTools íîâîé âåðñèè 2.0 (ðàçðàáîò÷èê "Manao") , íà åå âõîäå äîëæíî áûòü âèäåî ïîñëå Áîá-äåèíòåðëåéñà (êàäðû óäâîåííîé ÷àñòîòû è ïîëíîé âûñîòû, èç êàæäîãî ïîëÿ, ñì. íèæå). Ôóíêöèþ ìîæíî, íàïðèìåð, èìïîðòèðîâàòü èç ôàéëà. #Ïðèìåð ñêðèïòà 7.2 LoadPlugin("C:\Plugins\mt_masktools.dll") # äëÿ ìàñîê LoadPlugin("C:\Plugins\DGdecode.dll") # äëÿ MPEG2 LoadPlugin("C:\Plugins\TDeint.dll") # äëÿ Áîá-äåèíòåðëåéñà Import("crestore.avs") # èìïîðòèðóåì ôàéëà ñêðèïòà ñ ôóíêöèåé Mpeg2Source("d:\video\film.d2v") # îòêðûâàåì ôàéë âèäåî # ïîäðàçóìåâàåì, ÷òî èç MPEG2 ïîëó÷åí ïðàâèëüíûé ïîðÿäîê ïîëåé TDeint(mode=1) # äåëàåì Áîá-äåèíòåðëåéñ # È âûçûâàåì ôóíêöèþ äëÿ âîññòàíîâëåíèÿ ïðîãðåññèâà Crestore(mode=0, rate=25, bthesh=120) # ïîïðîáóéòå ïîäîáðàòü íåêîòîðûå ïàðàìåòðû Äðóãîé ñëó÷àé — ïðèìåíåíèå äåèíòåðëåéñà ñ âîññòàíîâëåíèåì ñìåæíîãî ïîëÿ íåêîòîðîé èíòåðïîëÿöèåé òî÷åê èçîáðàæåíèÿ, îáû÷íî ñ íåêîòîðîé àäàïòàöèåé ê äâèæåíèþ (ïî-ðàçíîìó â ñòàòè÷íûõ è äâèæóùèõñÿ îáëàñòÿõ). Äëÿ èçíà÷àëüíî ÷åðåññòðî÷íîãî âèäåî äåèíòåðëåéñ âðåäåí, òàê êàê óìåíüøàåòñÿ ïëàâíîñòü äâèæåíèé, íî èíîãäà îí íóæåí ïðè îáðàáîòêå ôèëüìîâ. Èìåþòñÿ êëàññè÷åñêèé ïëàãèí KernelDeint (ðàçðàáîò÷èê Donald Graft) è åãî îïòèìèçèðîâàííàÿ âåðñèÿ LeakKernelDeint (ðàçðàáîò÷èê "Leak"), âåëèêîëåïíûé áûñòðûé TomsMoComp (ðàçðàáîò÷èê Tom Barry) ñ íåáîëüøîé êîìïåíñàöèåé äâèæåíèÿ, è ðàçâèâàþùèéñÿ â íàñòîÿùåå âðåìÿ ïðîäâèíóòûé TDeint (ðàçðàáîò÷èê "Tritical") ñ ïîíèæåííîé ñòóïåí÷àòîñòüþ êðàåâ îáúåêòîâ, àíàëèçîì ïåðåêðûâàþùèõñÿ îáëàñòåé è äðóãèìè ðåæèìàìè. #Ïðèìåð ñêðèïòà 7.3 LoadPlugin("C:\Plugins\DeGrainMedian.dll") # çàãðóæàåì ïëàãèí AviSource("d:\video\film.avi") # àíàëîãîâîå âèäåî AssumeTFF() # ñîîáùèì ïîðÿäîê ïîëåé — âåðõíåå ïîëå ïåðâîå #Info() # Óáåðèòå çíàê êîììåíòàðèÿ äëÿ ïðîñìîòðà ñâîéñòâ TomsMoComp(-1, 5, 0) # äåëàåì äåèíòåðëåéñ DeGrainMedian(interlaced=false) # ôèëüòðóåì ïðîãðåññèâíî  äàííîì ïðèìåðå ìû èñïîëüçóåì âûçîâ ôóíêöèè TomsMoComp ñ ïåðâûì ïàðàìåòðîì -1, ÷òî îçíà÷àåò (ñîãëàñíî äîêóìåíòàöèè) ñ÷èòàòü ïîðÿäîê ïîëåé òåì, êàêèì åãî ñ÷èòàåò AviSynth. Ýòî äîâîëüíî òîíêèé âîïðîñ.  çàïèñàííîì âèäåîôàéëå AVI íå õðàíèòñÿ èíôîðìàöèÿ î ÷åðåññòðî÷íîñòè, è îòñóòñòâóåò èíôîðìàöèÿ, êàêîå ïîëå â êàäðå ïåðâîå âî âðåìåíè. Èçâåñòíî, îäíàêî, ÷òî äëÿ AVI-ôàéëîâ ôîðìàòà DV (ñ öèôðîâûõ âèäåîêàìåð) ïåðâîå ïîëå — âñåãäà íèæíåå. Èìåííî ýòî çíà÷åíèå ñ÷èòàåò AviSynth ïî óìîë÷àíèþ äëÿ ëþáîãî âèäåî, åñëè íåò ÿâíîãî çàäàíèÿ ïîðÿäêà ïîëåé. Îòìåòèì, ÷òî â áîëüøèíñòâå ïëàò çàõâàòà àíàëîãîâîãî âèäåî (â òîì ÷èñëå íà ÷èïàõ Philips) — âåðõíåå ïîëå ÿâëÿåòñÿ ïåðâûì.  ðàññìîòðåííîì ïðèìåðå ìû ÿâíî óêàçàëè, ÷òî âåðõíåå ÿâëÿåòñÿ ïåðâûì (Top Field First). Ïðè íåâåðíî óêàçàííîì ïîðÿäêå ïîëåé ðÿä ôóíêöèé áóäåò ðàáîòàòü íåïðàâèëüíî.  ôàéëàõ MPEG2 òàêàÿ èíôîðìàöèÿ èìååòñÿ, è îíà ïåðåäàåòñÿ â AviSynth ïðè èñïîëüçîâàíèè MPEG2Sourñe ïàêåòà DGDecode.  ýòîì ñëó÷àå, êàê è âî ìíîãèõ äðóãèõ, ïîëåçíî èñïîëüçîâàòü îòëàäî÷íûé ôèëüòð Info(), êîòîðûé ïå÷àòàåò ïîâåðõ êàäðà íåêîòîðóþ èíôîðìàöèþ î ñâîéñòâàõ íåêîòîðîãî êëèïà (ïî óìîë÷àíèþ — LAST) â äàííîì ìåñòå ñêðèïòà. Âûáîð ëó÷øåãî ôèëüòðà äåèíòåðëåéñà íåîäíîçíà÷åí. Ïðè îáðàáîòêå ôèëüìîâ PAL ðåêîìåíäóþ ïîïðîáîâàòü TDeint, êîòîðûé èìååò áîëüøîå ÷èñëî íàñòðîå÷íûõ ïàðàìåòðîâ, â òîì ÷èñëå è ðåæèì àíàëèçà ïåðåêðûâàþùèõñÿ îáëàñòåé, àäàïòèâíîãî ïåðåõîäà ê àâòîìàòè÷åñêîìó ïîäáîðó íàèáîëåå ïîäõîäÿùèõ ñîñåäíèõ ïîëåé (ïàðàìåòð tryWeave), åñòü â íåì è ðåæèì ñãëàæèâàíèÿ ñòóïåíåê (ïàðàìåòð mode=3). Íî íà÷àòü ìîæíî ñ íàñòðîåê ïî óìîë÷àíèþ. Ïðåèìóùåñòâîì TomsMoComp ÿâëÿåòñÿ êîìïåíñàöèÿ äâèæåíèÿ (õîòü è â ïðåäåëàõ 1-2 ïèêñåëåé). Õîðîøèå ðåçóëüòàòû ïðè âûñîêîé ñêîðîñòè îáðàáîòêè äàåò íîâûé ïëàãèí äåèíòåðëåéñà Yadif, ïåðåíåñåííûé ìíîé â AviSynth èç MPlayer (ðàçðàáîò÷èê Michael Niedermayer). Åùå îäíèì ñïåöèàëüíûì âèäîì äåèíòåðëåéñà ÿâëÿåòñÿ òàê íàçûâàåìîé Áîá (àíãëèéñêîå Bob, ïîêà÷èâàíèå) — ïðåîáðàçîâàíèå êàæäîãî ïîëÿ â ïîëíîôîðìàòíûé êàäð, ñ ñîïóòñòâóþùèì óâåëè÷åíèåì ÷àñòîòû êàäðîâ âäâîå, èç 25 â 50 Ãö (êàæäîå ïîëå, à òåïåðü êàäð, ñîîòâåòñòâóåò ñâîåìó ìîìåíòó âðåìåíè). Ýòî ñîçäàåò âèäåî, î÷åíü ïëàâíî ìåíÿþùååñÿ âî âðåìåíè, ÷òî èñïîëüçóåòñÿ â ðÿäå ïðîãðàìì ïðîñìîòðà MPEG è òåëåâèäåíèÿ. Âî âñòðîåííîì ôèëüòðå Bob ïðîìåæóòî÷íûå ñòðîêè ñòðîÿòñÿ ïóòåì áèêóáè÷åñêîé èíòåðïîëÿöèè ñîñåäíèõ ñòðîê (ñ íåêîòîðûì ñìåùåíèåì).  áîëåå ðàçóìíûõ (Smart) áîááåðàõ ÷àñòè÷íî àäàïòèâíî èñïîëüçóåòñÿ èíôîðìàöèÿ èç ñîñåäíèõ ïîëåé. Ïðàêòè÷åñêè êàæäûé ôèëüòð äåèíòåðëåéñà èìååò è ýòîò ðåæèì: KernelBob, LeakKernelBob, TDeint. Áîá-äåèíòåðëåéñ ÷àñòî èñïîëüçóþò ïðè ïîñò-îáðàáîòêå äëÿ ïðîñìîòðà âèäåî íà ìîíèòîðå â ðåàëüíîì âðåìåíè, íî è â Avisynth îí òîæå íàõîäèò ïðèìåíåíèå. Åãî èñïîëüçóþò ïðè ïðåîáðàçîâàíèè òåëåâèçèîííûõ ôîðìàòîâ ñ ðàçíîé ÷àñòîòîé êàäðîâ è ïðîãðåññèâíîñòüþ (PAL-NTSC). Åñòü ó íåãî íåêîòîðûå ïðåèìóùåñòâà è ïðè ôèëüòðàöèè øóìîâ. Òàê êàê èìååì ôàêòè÷åñêè ïðîãðåññèâíûé âûõîä ñ óäâîåííîé ÷àñòîòîé, òî âðåìåííîé èíòåðâàë ìåíüøå â äâà ðàçà, ÷åì ïðè îáðàáîòêå âðåìåííûì ôèëüòðîì èíòåðëåéñíîãî êëèïà ñ ðàçëîæåíèåì íà ÷åòíûå è íå÷åòíûå ñòðîêè. Íåäîñòàòêîì ÿâëÿåòñÿ ìåíüøàÿ ñêîðîñòü ðàáîòû è íåêîòîðîå âåðòèêàëüíîå ïîêà÷èâàíèå (bobbing) ñòàòè÷íûõ îáúåêòîâ äàæå äëÿ ðàçóìíûõ áîááåðîâ. #Ïðèìåð ñêðèïòà 7.4 i.doubleweave().selectodd().tomsmocomp(-1, 0, 0)) assumeframebased() } Äëÿ èñïîëüçîâàíèÿ ýòîé ôóíêöèè â ïðèâåäåííîì âûøå ïðèìåðå ñêðèïòà 7.4, çàïèøèòå åå îïðåäåëåíèå â ñêðèïò (ïåðåä îñíîâíûì òåêñòîì), è èñïîëüçóéòå âûçîâ Tomsbob() âìåñòî ñòðîêè 8. Ïðåîáðàçîâàíèå öâåòîâûõ ôîðìàòîâ  îòëè÷èå îò áîëüøèíñòâà ïðîãðàìì, âåäóùèõ îáðàáîòêó â òðåõ öâåòîâûõ êàíàëàõ RGB (êðàñíûé, çåëåíûé, ñèíèé), AviSynth ìîæåò îáðàáàòûâàòü âèäåî â öâåòîâîì ïðîñòðàíñòâå YUV (ÿðêîñòü Y è äâå öâåòîðàçíîñòè, öâåòíîñòè U è V), â êîòîðûõ îáû÷íî âåäåòñÿ âåùàíèå è õðàíèòñÿ ñæàòîå âèäåî. Ýòè ôîðìàòû õðàíåíèÿ âèäåî îáû÷íî ñîêðàùåííûå (ïðîðåæåííûå) äëÿ öâåòíîñòè.  ôîðìàòå YUY2 öâåòíîñòü ïðîðåæåíà â äâà ðàçà ïî ãîðèçîíòàëè, à â ôîðìàòå YV12 (èñïîëüçóåìîì â DVD) — è ïî âåðòèêàëè. Æåëàòåëüíî îáõîäèòüñÿ áåç ïðåîáðàçîâàíèÿ öâåòîâîãî ôîðìàòà, íî èíîãäà ýòî íåâîçìîæíî èç-çà íåñîâïàäåíèÿ òðåáóåìîãî âûõîäíîãî ôîðìàòà ñ âõîäíûì, èëè îãðàíè÷åíèé íåêîòîðîãî êîíêðåòíîãî ôèëüòðà, â êîòîðîì àâòîðîì íå ðåàëèçîâàíà ïîääåðæêà êàêîãî-òî ôîðìàòà. Ïðè ïîäà÷å âûõîäíûõ êàäðîâ äëÿ êîäèðîâêè â TMPGenc íåîáõîäèì ôîðìàò RGB, êàê è ïðè ïîäêëþ÷åíèè â Avisynth ïëàãèíîâ îò VirtualDub (òàêàÿ âîçìîæíîñòü èìååòñÿ), à â Canopus Procoder ëó÷øå ïîäàâàòü YUY2.  AviSynth âñòðîåíû âñå íåîáõîäèìûå ôóíêöèè äëÿ ïðåîáðàçîâàíèÿ (êîíâåðòàöèè), ñ èìåíàìè òèïà ConvertToXXX, ãäå XXX — ýòî òðåáóåìûé ôîðìàò (RGB, YUY2, YV12). Îáðàáîòêà ïðîèçâîäèòñÿ áûñòðåå â ñîêðàùåííûõ ôîðìàòàõ (ìåíüøå îáúåì äàííûõ), îñîáåííî äëÿ YV12, â êîòîðîì äàííûå ïî êàæäîé öâåòîâîé ïëîñêîñòè õðàíèòñÿ â îòäåëüíîì ìàññèâå ïàìÿòè (ïëàíàðíî). Ðàññìîòðèì ïðèìåð, êîãäà íåêîòîðûé ôèëüòð ðàáîòàåò òîëüêî â YV12 (ýòî òèïè÷íî äëÿ íîâûõ ïëàãèíîâ), à èñòî÷íèê òèïà YUY2. #Ïðèìåð ñêðèïòà 8.1 AviSource("d:\video\film.avi") # àíàëîãîâîå âèäåî YUY2 AssumeTFF() # ñîîáùèì ïîðÿäîê ïîëåé — âåðõíåå ïîëå ïåðâîå # Ïðåîáðàçóåì êëèï â öâåòîâîé ôîðìàò YV12 ConvertToYV12(interlaced=true) # îïöèÿ äëÿ ÷åðåññòðî÷íîãî SeparateFields() # ðàçäåëÿåì íà ïîëÿ Weave() # ñîáèðàåì ïîëÿ  äàííîì ïðèìåðå ìû èñïîëüçîâàëè äëÿ èëëþñòðàöèè ïëàãèí RemoveGrain (ðàçðàáîò÷èê Rainer Wittmann "Kassandro") — óäàëèòåëü çåðíà (ïðîñòðàíñòâåííûé øóìîïîäàâèòåëü) â îäíîì èç åãî ìíîãî÷èñëåííûõ ðåæèìîâ.  ñêðèïòå ñëåäóåò îáðàòèòü âíèìàíèå íà òî, ÷òî êîìàíäà ïðåîáðàçîâàíèÿ ôîðìàòà ConvertToYV12 èñïîëüçîâàíà ñ ïàðàìåòðîì interlaced=true, ýòî íåîáõîäèìî äëÿ ïðàâèëüíîãî ïðåîáðàçîâàíèÿ, åñëè âèäåî — ÷åðåññòðî÷íîå. Åùå ñëåäóåò îáðàòèòü âíèìàíèå, ÷òî ïðåîáðàçîâàíèå öâåòîâîãî ôîðìàòà â ñêðèïòå ïðîèçâîäèòñÿ ñ ïîëíîêàäðîâûì âèäåî, äî ðàçäåëåíèÿ âèäåî íà ïîëÿ, òî åñòü íå ðåêîìåíäóåòñÿ ïðåîáðàçîâûâàòü öâåòîâîé ôîðìàò ðàçäåëåííîãî íà ïîëÿ âèäåî, èíà÷å ðåçóëüòàò áóäåò íåâåðåí (íåìíîãî èñêàæåíû öâåòà). Åùå ñëåäóåò èìåòü â âèäó, ÷òî AviSynth ïðè ïðåîáðàçîâàíèè èç RGB â YUV ïî óìîë÷àíèþ ñæèìàåò äèàïàçîí ÿðêîñòåé (à ïðè îáðàòíîì — ðàñøèðÿåò). Ïîçâîëþ íàïîìíèòü, ÷òî õîòü äèàïàçîí, õðàíèìûé â áàéòå, ìîæåò áûòü îò 0 äî 255, è ýòî íîðìàëüíûé äèàïàçîí äëÿ ôîðìàòà RGB, òî äëÿ ôîðìàòà YUV ñèòóàöèÿ äðóãàÿ.  òåëåâèäåíèè äîïóñòèìûìè (ðåêîìåíäóåìûìè) çíà÷åíèÿìè ÿâëÿþòñÿ îò 16 äî 235 äëÿ ÿðêîñòè è îò 16 äî 240 äëÿ öâåòíîñòè. Ïîýòîìó, ñòðîãî ãîâîðÿ, ÿðêîñòü íå äîëæíà âûõîäèòü çà ýòè áåçîïàñíûå ïðåäåëû (íèæå "óðîâíÿ ÷åðíîãî" è âûøå "óðîâíÿ áåëîãî"), îíè äîëæíû áûòü îáðåçàíû (ïàðàìåòð coring íåêîòîðûõ ôèëüòðîâ). Îäíàêî â êîìïüþòåðàõ òàêèå çíà÷åíèÿ ÷àñòî ðåàëèçóþòñÿ è íîðìàëüíî îòîáðàæàþòñÿ, êàê è â òåëåâèäåíèè âûñîêîãî ðàçðåøåíèÿ HDTV. Ïðè íåîáõîäèìîñòè ìîæíî ïðîèçâåñòè êîððåêöèþ, è èñïîëüçîâàòü ïàðàìåòð matrix äëÿ âûáîðà ìàòðèöû è äèàïàçîíà ïðåîáðàçîâàíèÿ. 9. Êîððåêöèÿ ÿðêîñòè è öâåòà  AviSynth åñòü íåñêîëüêî ñïîñîáîâ êîððåêöèè öâåòà (âñòðîåííûå ôèëüòðû Levels, Tweak, ColorYUV è íåêîòîðûå äðóãèå). Íàèáîëåå ìîùíûì ÿâëÿåòñÿ ColorYUV (ïîæàëóé, îí ïåðåãðóæåí ÷èñëîì ðåæèìîâ). Óñèëåíèå, ñìåùåíèå, ãàììà è êîíòðàñò ìîãóò áûòü óñòàíîâëåíà äëÿ êàæäîãî ÿðêîñòíîãî èëè öâåòîâîãî êàíàëà Y,U,V. Ïðîñòî ìåíÿéòå çíà÷åíèÿ ñîîòâåòñòâóþùèõ ïàðàìåòðîâ, îáíîâëÿéòå èçîáðàæåíèå ( F5 â VirtualDubMod) è íàáëþäàéòå ðåçóëüòàò. Îäíàêî ÷àñòî âèçóàëüíîãî êîíòðîëÿ íåäîñòàòî÷íî.  ôóíêöèè ColorYUV èìååòñÿ î÷åíü ïîëåçíûé ðåæèì Analyze=true äëÿ àíàëèçà ìàêñèìóìà è ìèíèìóìà êàíàëîâ è âûâîäà ÷èñåë íà êàäð. #Ïðèìåð ñêðèïòà 9 AviSource("film.avi") ColorYUV(analyze=true) # àíàëèç ðåçóëüòàòà Åñòåñòâåííî, ïîñëå íàñòðîéêè ÿðêîñòè ñòðî÷êó ñ àíàëèçîì íàäî óáðàòü èëè çàêîììåíòèðîâàòü. Åñëè äèàïàçîí YUV òàê øèðîê, à íóæåí áåçîïàñíûé äëÿ òåëåâèäåíèÿ, åãî ìîæíî ñóçèòü ñïåöèàëüíîé êîìàíäîé ColorYUV(levels="PC->TV"), à åñëè ïðåâûøåíèÿ íåáîëüøèå, ëó÷øå ïîäðåãóëèðîâàòü óñèëåíèå, ñìåùåíèå, ãàììó, èëè êîíòðàñò ïåðåä îáðåçêîé (îãðàíè÷åíèåì). Îáðàòèòå âíèìàíèå, ÷òî àíàëèç âûäàåò íå òîëüêî àáñîëþòíûå ìàêñèìóì è ìèíèìóì, íî è íåñòðîãèé ( loose) ìàêñèìóì è ìèíèìóì, çà çíà÷åíèÿ êîòîðûõ âûõîäèò î÷åíü íåáîëüøîå ÷èñëî òî÷åê (÷àñòî ñëó÷àéíûõ, êðàåâûõ). ×àñòî ìîæíî èìè ïîæåðòâîâàòü è îãðàíè÷èòü, íå êîððåêòèðóÿ îñòàëüíóþ êàðòèíêó. Âî ìíîãèõ DVD è HDTV èñòî÷íèêàõ èñïîëüçóåòñÿ íàáîð êîýôôèöèåíòîâ ïðåîáðàçîâàíèÿ â RGB, ñëåãêà îòëè÷íûé îò èñïîëüçóåìîãî â AviSynth è DivX, è äëÿ êîððåêöèè ýòîãî ñóùåñòâóåò ïëàãèí ColorMatrix (ðàçðàáîò÷èêè Wilbert Dijkhof è äð.) ñ îäíîèìåííîé ôóíêöèåé (êîòîðàÿ ìîæåò ðàáîòàòü àâòîìàòè÷åñêè, ïîëó÷àÿ ïîäñêàçêè î öâåòîâîé ìàòðèöå îò MPEG2Source ÷åðåç ïàðàìåòð hints). Êîððåêöèþ öâåòà ëó÷øå äåëàòü â íà÷àëå ñêðèïòà, íî íåêîòîðûå ôèëüòðû (ñìåíà ðàçìåðîâ, ïîâûøåíèå ðåçêîñòè) ìîãóò ðàñøèðèòü èíòåðâàë, ïîýòîìó ïðè íåîáõîäèìîñòè â êîíåö ìîæíî äîáàâèòü êîìàíäó Limiter(). Äëÿ "çàïóùåííûõ" ñëó÷àåâ ñóùåñòâóåò ïëàãèí àâòîìàòè÷åñêîãî ëîêàëüíîãî óñèëåíèÿ ÿðêîñòè â òåíÿõ HDRAGC (ðàçðàáîò÷èê "pavico"). 10. Èçìåíåíèå ðàçìåðîâ, îáðåçêà, áîðäþðû  íà÷àëå âåêà áûëî ïîïóëÿðíî ïåðåêîäèðîâàíèå DVD â ôîðìàò MPEG4 (DivX è ò.ï.) è çàïèñü íà CD. Ïðè ýòîì óìåíüøàëè ðàçìåð êàäðà, ÷òîáû óìåíüøèòü îáúåì èíôîðìàöèè, è ÷òîáû ïðîãðàììíûé ïðîèãðûâàòåëü ñïðàâèëñÿ ñ âîñïðîèçâåäåíèåì. Ñåé÷àñ íàñòàëî âðåìÿ, êîãäà íà÷àëè óâåëè÷èâàòü ðàçìåð êàäðà ñ DVD äëÿ âîñïðîèçâåäåíèÿ íà òåëåâèçîðàõ âûñîêîãî ðàçðåøåíèÿ. Íî èíîãäà íåîáõîäèìî èçìåíèòü ðàçìåð êàäðà âèäåîêëèïà è ïî äðóãèì ïðè÷èíàì.  Avisynth âñòðîåíû íåñêîëüêî êà÷åñòâåííûõ è áûñòðûõ ôóíêöèé èçìåíåíèé ðàçìåðîâ êàäðà ïóòåì èíòåðïîëÿöèè, îòëè÷àþùèåñÿ ÷èñëîì îïîðíûõ òî÷åê (ïîðÿäêîì) èíòåðïîëÿöèè. Îáû÷íî äëÿ óâåëè÷åíèÿ ðàçìåðîâ ðåêîìåíäóþò èñïîëüçîâàòü áèêóáè÷åñêóþ èëè Ëàíêçîñ-èíòåðïîëÿöèþ, à äëÿ óìåíüøåíèÿ ðàçìåðî⠗ Ëàíêçîñ äëÿ ðåçêîé èëè áèëèíåéíóþ äëÿ ìÿãêîé (èíîãäà äðóãèå). Èçìåíåíèå ðàçìåðîâ â ñêðèïòå äåëàåòñÿ ÷àùå ïîñëå îñíîâíîé îáðàáîòêè (ïîäàâëåíèå øóìà, è ò.ï.). Îòìåòèì, ÷òî êðîìå òî÷å÷íîé è áèëèíåéíîé, äðóãèå òèïû ìîãóò óâåëè÷èòü ðåçêîñòü, è íåñêîëüêî ðàñøèðèòü äèàïàçîí èíòåíñèâíîñòåé (ìîæåò ïîíàäîáèòüñÿ îãðàíè÷åíèå òèïà Limiter). Ïðè îáðàáîòêå ÷åðåññòðî÷íîãî âèäåî, èçìåíåíèå âåðòèêàëüíîãî ðàçìåðà íåîáõîäèìî ïðîèçâîäèòü ïîñëå äåèíòåðëåéñà (èëè ïîñëå ðàçëîæåíèÿ âèäåî íà ïîëÿ). Èíîãäà ïîÿâëÿåòñÿ çàäà÷à çàïèñàòü íà DVD âèäåîðîëèê, ñíÿòûé öèôðîâûì ôîòîàïïàðàòîì ñ ðàçðåøåíèåì íå âûøå 640õ480. Ìîæíî åãî çàïèñàòü â ôîðìàòå NTSC, äðóãèì ðåøåíèåì áóäåò ïðèâåñòè åãî ê ôîðìàòó DVD PAL-Video (ïîêà îáîéäåì âîïðîñ äðóãîé ÷àñòîòû êàäðîâ). #Ïðèìåð ñêðèïòà 10.1 DirectShowSource("d:\video\photo.mov") LanczosResize(720,576) # íîâûå ðàçìåðû Ìîæíî ïðèìåíèòü è åùå áîëåå ïðîäâèíóòûå ìåòîäû óâåëè÷åíèÿ ðàçìåðîâ, â ÷àñòíîñòè ïëàãèíû EDIUpsizer, EEDI2, NNEDI (ðàçðàáîò÷èê — "Tritical"), èëè áîëåå ñòàðûé Sangnom (ðàçðàáîò÷èê — "MarFD"), ïîäàâëÿþùèå ñòóïåíüêè íà äèàãîíàëüíûõ ëèíèÿõ. Îíè ìîãóò êà÷åñòâåííî óâåëè÷èòü êàäð ïî âåðòèêàëè â äâà ðàçà, ïîñëå ýòîãî äî íóæíîãî ðàçìåðà åãî íàäî äîâåñòè áàçîâûìè ôóíêöèÿìè (LanczosResize).  Avisynth åñòü áûñòðàÿ ôóíêöèÿ Reduceby2 ñîêðàùåíèÿ âäâîå, íî îíà äàåò ñäâèíóòóþ íà ïîëïèêñåëà êàðòèíêó. Åùå ñòîèò îòìåòèòü ïîëåçíîñòü ôóíêöèè PointResize òî÷å÷íîãî óâåëè÷åíèÿ (äóáëèðîâàíèÿ ïèêñåëåé áåç èíòåðïîëÿöèè), îíà î÷åíü ïîëåçíà äëÿ 2-4 êðàòíîãî óâåëè÷åíèÿ êàäðà (îáëàñòè) äëÿ åãî òîíêîãî ðàçãëÿäûâàíèÿ. Äðóãèì ñïîñîáîì èçìåíåíèÿ ðàçìåðîâ êàäðà ÿâëÿåòñÿ îáðåçêà èëè äîáàâëåíèå áîðäþðîâ. Òàê, íàïðèìåð, ìîæíî îáðåçàòü ìóñîð ïðè çàõâàòå VHS; åñòåñòâåííî, ïðè êîäèðîâàíèè DVD ÷èñëî ñòðîê ìåíÿòü íåëüçÿ, è íà ìåñòî îáðåçàííûõ ñòðîê íóæíî äîáàâèòü áîðäþðû. Ýòî ìîæíî ñäåëàòü è îäíîé ôóíêöèåé Letterbox. Ïîñêîëüêó ñîâðåìåííûå ÷èïû àíàëîãîâîãî çàõâàòà âíóòðè ðàáîòàþò ñ ðàçðåøåíèåì 704 ïèêñåëÿ â ñòðîêå, öåëåñîîáðàçíî âåñòè çàõâàò â äàííîì ðàçðåøåíèè, à ïîòîì äëÿ ïðàâèëüíîãî àñïåêòà äîáàâèòü áîðäþðû äî 720. #Ïðèìåð ñêðèïòà 10.2 AddBorders(8,0,8,0) # Äîáàâèì ñïðàâà è ñëåâà ïî 8 ÷åðíîãî Crop(0,0,0,-16) # Îáðåæåì ñíèçó, íàïðèìåð, 16 ìóñîðà Addborders(0,0,0,16) # È äîáàâèì ñíèçó 16 ÷åðíîãî Àíàëîãè÷íûì îáðàçîì ìîæíî ñäâèíóòü èçîáðàæåíèå íà öåëîå ÷èñëî òî÷åê, à äëÿ áîëåå òî÷íîãî ñìåùåíèÿ ìîæíî èñïîëüçîâàòü ëþáûå ôóíêöèè èçìåíåíèÿ ðàçìåðîâ XXXResize ñ äîïîëíèòåëüíûìè ïàðàìåòðàìè òèïà src_left.) Íåêîòîðûå ïðåäïî÷èòàþò çàëèâàòü íå ñòðîãî ÷åðíûì ñ ðåçêîé ãðàíèöåé (êîòîðóþ æåëàòåëüíî äåëàòü êðàòíîé 8 èëè 16), à ñ ïëàâíîé, äëÿ ýòîãî åñòü ñõîæèå ïëàãèíû BorderControl (ðàçðàáîò÷èê Simon Walters) è FillMargins (ðàçðàáîò÷èê Tom Barry). 11. Ïîäàâëåíèå øóìà Ïîä øóìîì âèäåî ìû ïîíèìàåì ñëó÷àéíûå, íå ñâÿçàííûå ìåæäó ñîáîé âî âðåìåíè è ïðîñòðàíñòâå ïðîöåññû, íåçàâèñèìî â êàæäîì ïèêñåëå. Ïîìåõè — ýòî äðóãîå, îíè ïðåäñòàâëÿþò íåñêîëüêî óïîðÿäî÷åííûå óçîðû, íàïðèìåð, çåðíà (êëàñòåðû) èç íåñêîëüêèõ òî÷åê, ïîëîñû è ò.ï. Ïðèìå÷àíèå . Ïîäàâëåíèå øóìà — ïîæàëóé, îäíà èç ñàìûõ ðàñïðîñòðàíåííûõ ôóíêöèé. Ïîäàâèòü åãî ñòðåìÿòñÿ ïî äâóì ïðè÷èíàì. Âî-ïåðâûõ, ÷òîáû óëó÷øèòü âèçóàëüíîå êà÷åñòâî, à âî-âòîðûõ, ÷òîáû óëó÷øèòü ñæèìàåìîñòü ïðè êîäèðîâàíèè â MPEG. Îäíàêî, óäàëåíèå øóìà — ýòî âñåãäà êîìïðîìèññ, ôèëüòð íåèçáåæíî âìåñòå ñ íèì óäàëèò è ÷àñòü äåòàëåé îáúåêòà. Ìîå ìíåíèå òàêîâî — åñëè øóìà íåìíîãî, òî ìîæåò ëó÷øå åãî íå òðîãàòü? Ïðîñòî äîáàâüòå áèòðåéò, åñëè ýòî âîçìîæíî. À åñëè øóìà ìíîãî, óäàëèòü åãî áåçáîëåçíåííî òåì áîëåå íå ïîëó÷èòñÿ. Ëó÷øå íåäî÷èñòèòü, ÷åì ïåðå÷èñòèòü è íàáëþäàòü ïëàñòèëèíîâûå ôèãóðû è êâàíòîâàííûå (ñòóïåí÷àòûå) ïåðåõîäû. Çà âðåìÿ ñóùåñòâîâàíèÿ AviSynth (ñ 2001 ã.) ðàçðàáîòàíî áîëüøîå ÷èñëî ðàçëè÷íûõ ôèëüòðîâ, ðåàëèçóþùèõ ðàçëè÷íûå àëãîðèòìû, è ðàçíûìè ëþäüìè çà âðåìÿ ñóùåñòâîâàíèÿ ñîñòàâëåíî íåìàëîå êîëè÷åñòâî ïðîñòûõ è ñëîæíûõ êîìáèíèðîâàííûõ ñêðèïòîâ, â öåëÿõ äîáèòüñÿ èäåàëà (îïòèìóìà äëÿ êîíêðåòíîãî èñòî÷íèêà è âèäà øóìà). Åñòåñòâåííî, ñëîæíûå àëãîðèòìû äàþò ìàëóþ ñêîðîñòü îáðàáîòêè, ÷òî ìîæåò îêàçàòüñÿ íåïðèåìëåìî ïðè áîëüøîì îáúåìå ðàáîòû. Èç íå ïîòåðÿâøèõ àêòóàëüíîñòü ôèëüòðîâ îòìå÷ó ïðîñòðàíñòâåííûå Undot (óäàëÿåò îòäåëüíûå âûïàäàþùèå ïèêñåëè, ðàçðàáîò÷èê Tom Barry), WNR (äëÿ ñòàðîãî AviSynth 2.0, ðàçðàáîò÷èê "Thejam"), VagueDenoiser (ðàçðàáîò÷èêè "Lefungus", "Kurosu", "Fizick"), îáà îñíîâàíû íà âåéâëåòàõ (êîðîòêèõ âîëíàõ), èç âðåìåííûõ ôèëüòðî⠗ CNR2 (äëÿ öâåòíîñòè, ðàçðàáîò÷èêè "MarcFD", "Tritical"), PeachSmoother (ðàçðàáîò÷èê "Lindsey Dubb"), îáà ñ ðåêóðñèâíîé îáðàáîòêîé äëèííûõ ïîñëåäîâàòåëüíîñòåé êàäðîâ), à èç ïðîñòðàíñòâåííî-âðåìåííûõ ôèëüòðîâ, ó÷èòûâàþùèõ ñîñåäíèå ïèêñåëè èç òåêóùåãî è íåñêîëüêèõ ñìåæíûõ êàäðî⠗ FluxSmooth (ïðîñòîé è ýôôåêòèâíûé äëÿ ñëàáîãî øóìà, ðàçðàáîò÷èê Ross Thomas), Deen (3D-êîíâîëþöèÿ, òî åñòü ñâåðòêà, ðàçðàáîò÷èê "MarcFD"), Dust (ñ êîìïåíñàöèåé äâèæåíèÿ, äëÿ ñòàðîãî AviSynth 2.0, ðàçðàáîò÷èê "Steady"). Èç íîâûõ ôèëüòðîâ îòìå÷ó RemoveGrain (âûñîêî îïòèìèçèðîâàííûé ïî ñêîðîñòè ïàêåò èç íåñêîëüêèõ ôèëüòðîâ ñ ìíîæåñòâîì ðåæèìîâ, ðàçðàáîò÷èê "Kassandro", ó êîòîðîãî åñòü äðóãèå ôèëüòðû è ôîðóì), ñîáñòâåííî ôóíêöèÿ RemoveGrain — ïðîñòðàíñòâåííûé ôèëüòð, ëþáîïûòåí ôèëüòð FrFun (èñïîëüçóåò ôðàêòàëè, ðàçðàáîò÷èê "prunedtree"), óïîìÿíåì è "ñëàäêóþ ïàðî÷êó" àâòîðà: DeGrainMedian (áûñòðûé) è FFT3DFilter (ìåäëåííûé), îáà îíè ïðîñòðàíñòâåííî-âðåìåííûå (íî ïîñëåäíèé — ÷àñòîòíûé). Ïîäîáåí ïîñëåäíåìó è ôèëüòð dfttest (ðàçðàáîò÷èê "tritical"). Êàêîé âàì èñïîëüçîâàòü? Òðóäíî áûòü îáúåêòèâíûì, è óæ, ïîñêîëüêó êàæäûé àâòîð ñ÷èòàåò ñâîè äåòèùà ëó÷øèìè, ðåêîìåíäóþ ïîïðîáîâàòü ìîè. Îäíàêî è ñ äðóãèìè ôèëüòðàìè è ñêðèïòàìè ìîæíî ïîëó÷èòü õîðîøèå ðåçóëüòàòû, â ëþáîì ñëó÷àå ýòî òîëüêî èíñòðóìåíòû, êîòîðûìè íàäî îâëàäåòü è ïðèìåíÿòü óìåþ÷è. Áîëüøèíñòâî ôèëüòðîâ èìåþò íàñòðîå÷íûå ïàðàìåòðû, êîòîðûìè, â ÷àñòíîñòè, çàäàåòñÿ ïîðîã âåëè÷èíû âàðèàöèè ñèãíàëà, íèæå êîòîðîé îí ñ÷èòàåòñÿ øóìîì, è ðÿä äðóãèõ òîíêîñòåé êîíêðåòíîãî àëãîðèòìà. Âèäåîñèãíàë ÷àñòî èìååò ðàçíîå êà÷åñòâî è âåëè÷èíó øóìà äëÿ êàíàëîâ ÿðêîñòè è öâåòíîñòè, íàïðèìåð, âûñîêèé öâåòîâîé øóì DV êàìåð íà òåìíûõ ñöåíàõ, öâåòíûå ïîìåõè è íèçêîå öâåòîâîå ðàçðåøåíèå VHS çàïèñåé, ïðè ýòîì íåîáõîäèìî èñïîëüçîâàòü áîëåå âûñîêèå çíà÷åíèÿ ïàðàìåòðîâ ôèëüòðàöèè äëÿ öâåòîâûõ êàíàëîâ U,V, ÷åì äëÿ ÿðêîñòíîãî êàíàëà Y. Ïðîñòûå ñêðèïòû äëÿ ïîäàâëåíèÿ øóìà ïðèâåäåíû â ïðèìåðàõ 6.1-6.4. Ôèëüòð DeGrainMedian ïðîñò è áûñòð, îí îãðàíè÷èâàåò âûïàäàþùèå ïèêñåëè íà îñíîâå ïîõîæåñòè 13 äèàìåòðàëüíûõ ïàð ñîñåäíèõ òî÷åê (â òåêóùåì, ïðåäûäóùåì è ïîñëåäóþùåì êàäðàõ), êîìïåíñèðóÿ íåáîëüøèå ñìåùåíèÿ (íà îäèí ïèêñåëü) è àäàïòèâíî ïåðåêëþ÷àÿñü íà ïðîñòðàíñòâåííóþ ôèëüòðàöèþ ïðè áîëüøîì èçìåíåíèè èíòåíñèâíîñòè.  îòëè÷èå îò áîëüøèíñòâà äðóãèõ ôèëüòðîâ, êîòîðûå íå èçìåíÿþò ïèêñåëü, åñëè îí îòëè÷àåòñÿ îò ñîñåäåé áîëüøå ÷åì íà ïîðîã, DeGrainMedian èçìåíÿåò òàêîé ïèêñåëü, íî íà îãðàíè÷åííóþ âåëè÷èíó. Ïîýòîìó îí ìîæåò óìåíüøèòü âåñüìà ñèëüíûé øóì ñ âûïàäàþùèìè ïèêñåëÿìè. Ðåæèì ðàáîòû (ñòåïåíü âëèÿíèÿ öåíòðàëüíîãî îðèãèíàëüíîãî ïèêñåëÿ) ðåãóëèðóåòñÿ ïàðàìåòðîì "mode", à ïðåäåë èçìåíåíèÿ — ïàðàìåòðîì "limitY" äëÿ ÿðêîñòè (Y) è "limitUV" äëÿ öâåòíîñòè (U,V). Ïðè çàõâàòå àíàëîãîâîãî âèäåî ÷àñòî íàáëþäàåòñÿ íåêîòîðàÿ ïîëîñàòîñòü (ïîìåõè â âèäå ãîðèçîíòàëüíûõ ëèíèé). Ïðåäóñìîòðåí ñïåöèàëüíûé ðåæèì ðàáîòû DeGrainMedian, àêòèâèçèðóþùèéñÿ ïàðàìåòðîì #Ïðèìåð ñêðèïòà 11.1 LoadPlugin("C:\Plugins\DeGrainMedian.dll") # çàãðóæàåì ïëàãèí AviSource("d:\video\film.avi") # îòêðûâàåì âèäåîôàéë DeGrainMedian(mode=1, interlaced=true, norow=true, limitY=3, limitUV=5) # âêëþ÷åí ðåæèì ïîäàâëåíèÿ ãîðèçîíòàëüíûõ ïîëîñ # è áîëüøèé ïðåäåë äëÿ öâåòíîñòè Ïðè íåäîñòàòî÷íîé ñòåïåíè ñíèæåíèÿ øóìà ìîæíî óâåëè÷èòü ïðåäåëû, íî èíîãäà áîëåå ýôôåêòèâíûì îêàçûâàåòñÿ êàñêàäíîå ïðèìåíåíèå ìåäèàííîãî ôèëüòðà (ïîâòîð òîé ñòðîêè ñ DeGrainMedian, âîçìîæíî ñ ìåíüøèìè ïðåäåëàìè), òàê êàê îí î÷åíü áûñòð. #Ïðèìåð ñêðèïòà 11.2 LoadPlugin("C:\Plugins\DeGrainMedian.dll") # çàãðóæàåì ïëàãèí AviSource("d:\video\film.avi") # îòêðûâàåì âèäåîôàéë DeGrainMedian(mode=1,interlaced=true,norow=true,limitY=2,limitUV=4) # êàñêàäíîå (ïîâòîðíîå) ïðèìåíåíèå DeGrainMedian(mode=1,interlaced=true,norow=true,limitY=2,limitUV=4) Îäíàêî ýòî, ñêîðåå, èñêëþ÷åíèå.  ñðåäå ïðîôåññèîíàëîâ îáû÷íî ðàñïðîñòðàíåíî íåãàòèâíîå îòíîøåíèå ê ñêðèïòàì âåðñòêè îòäåëüíûõ ëþáèòåëåé, â êîòîðûõ íàãðîìîæäåíî íåñêîëüêî ôèëüòðîâ ïîäàâëåíèÿ øóìà. Îáû÷íî ýòî ïðèâîäèò ê èçëèøíåìó çàìûëèâàíèþ êàðòèíêè è íàêîïëåíèþ àðòåôàêòîâ. Ðàíåå ÷àñòî èñïîëüçîâàëèñü ïîñëåäîâàòåëüíîñòè èç îòäåëüíîãî ïðîñòðàíñòâåííîãî è îòäåëüíîãî âðåìåííîãî ôèëüòðà, íî ñ ïîÿâëåíèåì áîëåå ýôôåêòèâíûõ ïðîñòðàíñòâåííî-âðåìåííûõ (íà÷èíàÿ ñ ëåãåíäàðíîãî Convolution3D ðàçðàáîòêè Sebastien Lucas "Vlad59"), ýòî, ïîæàëóé, óñòàðåëî. Ïî ìíåíèþ ìíîãèõ, íàèáîëåå ýôôåêòèâíûì ôèëüòðîì ïîäàâëåíèÿ øóìà â íàñòîÿùåå âðåìÿ ÿâëÿåòñÿ FFT3DFilter.  îòëè÷èå îò áîëüøèíñòâà äðóãèõ ôèëüòðîâ, îí ðàáîòàåò íå ñ îòäåëüíûìè íåñêîëüêèìè ñîñåäíèìè òî÷êàìè, à ñ áîëüøèìè îáëàñòÿìè (áëîêàìè) â ñìåæíûõ êàäðàõ, àíàëèçèðóÿ ñïåêòð èõ ÷àñòîò è ïîäàâëÿÿ ñëàáûå. Îí íå ïðîñòî ïîäàâëÿåò øóì, íî è óëó÷øàåò èçîáðàæåíèå, íàïðèìåð, ìîæåò ñäåëàòü ëèíèè áîëåå ðîâíûìè (ïðè ñèëüíûõ íàñòðîéêàõ ìîæåò ÷òî-òî è óõóäøèòü èç-çà âîëíîâûõ ýôôåêòîâ, ringing). #Ïðèìåð ñêðèïòà 11.3 LoadPlugin("C:\Plugins\fft3dfilter.dll") # çàãðóæàåì ïëàãèí AviSource("d:\video\film.avi") # îòêðûâàåì âèäåîôàéë FFT3DFilter(sigma=1.5, plane=4, interlaced=true) #ôèëüòðóåì âñå Ïàðàìåòð "plane" îïðåäåëÿåò, êàêèå öâåòîâûå ïëîñêîñòè ôèëüòðîâàòü (0 — òîëüêî ÿðêîñòü; 1 — òîëüêî U; 2 — òîëüêî V; 3 — òîëüêî îáå öâåòíîñòè U,V; 4 — âñå). Èõ ìîæíî ôèëüòðîâàòü ñ ðàçíîé ñèëîé, îïðåäåëÿåìîé ïàðàìåòðîì "sigma". LoadPlugin("C:\Plugins\fft3dfilter.dll") # çàãðóæàåì ïëàãèí AviSource("d:\video\film.avi") # îòêðûâàåì âèäåîôàéë fft3dfilter(sigma=3, plane=3) # ôèëüòðóåì öâåòíîñòü fft3dfilter(sigma=2, plane=0) # ôèëüòðóåì ÿðêîñòü ñ ìåíüøåé ñèëîé Ïîñëåäîâàòåëüíîå ïðèìåíåíèå äâóõ âðåìåííûõ ôèëüòðîâ óâåëè÷èâàåò âðåìåííîé ðàäèóñ äåéñòâèÿ, ÷òî ìîæåò áûòü ñóùåñòâåííî â ñëó÷àå êîìïåíñàöèè äâèæåíèÿ (ñìîòðè íèæå ðàçäåë 16). Ðåøåíèåì â íàøåì ñëó÷àå ìîæåò áûòü ðàçäåëåíèå öâåòîâûå êîìïîíåíò, èõ íåçàâèñèìàÿ ôèëüòðàöèÿ ñ ðàçíîé ñèëîé, à çàòåì îáúåäèíåíèå, íàïðèìåð, ñ ïîìîùüþ õèòðîãî ìåòîäà (àâòîð — "AI"). #Ïðèìåð ñêðèïòà 11.5 LoadPlugin("C:\Plugins\fft3dfilter.dll") # çàãðóæàåì ïëàãèí AviSource("d:\video\film.avi") # îòêðûâàåì âèäåîôàéë YToUV(fft3dfilter(sigma=2.5, plane=1, interlaced=true).UToY(),\ fft3dfilter(sigma=3, plane=2, interlaced=true).VToY(),\ fft3dfilter(sigma=2, plane=0, interlaced=true)) Ïîïóòíî âû âèäèòå, êàê â ñêðèïòå ìîæíî çàïèñàòü äëèííûå ñòðîêè ñ ïîìîùüþ ñèìâîëà ïðîäîëæåíèÿ ñòðîêè «\». Åñëè îáå öâåòîâûõ êîìïîíåíòû ôèëüòðóþòñÿ îäèíàêîâî, ìîæíî èñïîëüçîâàòü è áîëåå ïðîñòîé âàðèàíò äëÿ ðàçäåëüíîé ôèëüòðàöèè ÿðêîñòè è öâåòíîñòè è èõ îáúåäèíåíèÿ ñ èñïîëüçîâàíèåì ôóíêöèé MergeChroma èëè MergeLuma. #Ïðèìåð ñêðèïòà 11.6 LoadPlugin("C:\Plugins\fft3dfilter.dll") # çàãðóæàåì ïëàãèí AviSource("d:\video\film.avi") # îòêðûâàåì âèäåîôàéë MergeChroma(fft3dfilter(sigma=2, plane=0, interlaced=true), \ fft3dfilter(sigma=3, plane=3, interlaced=true)) Ïðè âûñîêîì óðîâíå èìïóëüñíîãî øóìà ïîëåçíà ïðåäâàðèòåëüíàÿ ôèëüòðàöèÿ ñ ïîìîùüþ ìåäèàííîãî ôèëüòðà. #Ïðèìåð ñêðèïòà 11.7 LoadPlugin("C:\Plugins\DeGrainMedian.dll") # çàãðóæàåì ïëàãèí LoadPlugin("C:\Plugins\fft3dfilter.dll") # çàãðóæàåì ïëàãèí AviSource("d:\video\film.avi") # îòêðûâàåì âèäåîôàéë # ôèëüòðóåì ãðóáî, ãîðÿ÷èå ïèêñåëû DeGrainMedian(mode=1, interlaced=true, limitY=3, limitUV=5) # ôèëüòðóåì òîíêî, òîëüêî ÿðêîñòü Ôèëüòð FFT3DFilter î÷åíü ìåäëåííûé ââèäó áîëüøîãî îáúåìà âû÷èñëåíèé, â ïîñëåäíåì ñêðèïòå öâåòíîñòü èì íå ôèëüòðóåòñÿ, ÷òî íåñêîëüêî óñêîðÿåò îáðàáîòêó.  êà÷åñòâå êîìïðîìèññà äëÿ ôèëüòðàöèè öâåòíîñòè âîçìîæíî ïðèìåíåíèå è äðóãèõ ôèëüòðîâ, íàïðèìåð, CNR2. Âîçìîæíîñòüþ ïîâûñèòü ñêîðîñòü îáðàáîòêè ÿâëÿåòñÿ ïðèìåíåíèå ïëàãèíà FFT3DGPU (ðàçðàáîò÷èê "tsp"), èñïîëüçóþùåãî ïðîöåññîð ñîâðåìåííîé âèäåîêàðòû (DirectX9) âìåñòî öåíòðàëüíîãî ïðîöåññîðà. Îí ðàçðàáîòàí íà îñíîâå FFT3DFilter è â âåðñèè 6.2 ïîääåðæèâàë ïî÷òè âñå, êðîìå ÷åðåññòðî÷íîñòè è YUY2 (à â áîëåå íîâûõ âåðñèÿõ ýòî ïîääåðæèâàåòñÿ òîæå). Èíòåðåñíîé âîçìîæíîñòüþ ÿâëÿåòñÿ èõ êîìáèíàöèÿ äëÿ îáðàáîòêè ðàçíûõ öâåòîâûõ ïëîñêîñòåé,   îáðàáîòêà ìîæåò ïðîèçâîäèòüñÿ ïàðàëëåëüíî (äëÿ ïîâûøåíèÿ ýôôåêòèâíîñòè ðàñïàðàëëåëèâàíèÿ, ìåäëåííûå ôèëüòðû æåëàòåëüíî ñòàâèòü äî FFF3DGPU). LoadPlugin("C:\Plugins\fft3dfilter.dll") # çàãðóæàåì ïëàãèí LoadPlugin("C:\Plugins\fft3dGPU.dll") # çàãðóæàåì ïëàãèí AviSource("d:\video\film.avi") # îòêðûâàåì âèäåîôàéë ConvertToYV12(interlaced=true) # ïðåîáðàçóåì öâåò äëÿ FFT3DGU AssumeBFF() # ïåðâîå ïîëå — íèæíåå äëÿ DV SeparateFields() # âûäåëèì ÷åòíûå è íå÷åòíûå ïîëÿ è îáðàáîòàåì èõ ðàçäåëüíî Even=SelectEven().FFT3DFilter(sigma=3, plane=3)\ .FFT3DGPU(sigma=2, plane=0) Odd =SelectOdd().FFT3DFilter(sigma=3, plane=3) .FFT3DGPU(sigma=2, plane=0) Interleave(Even, Odd) # ÷åðåäóåì ÷åòíûå è íå÷åòíûå Weave() # ñîåäèíèì ïîëÿ â êàäðû ßðêîñòü ìû ôèëüòðóåì ñ ïîìîùüþ FFT3DGPU, à öâåòíîñòü — FFT3DFilter (ìîæíî è íàîáîðîò, èëè âñå ôèëüòðîâàòü â GPU). Äëÿ êðàòêîñòè èñïîëüçîâàíà îáúåêòíî-îðèåíòèðîâàííàÿ çàïèñü (ñ òî÷êîé), â êîòîðîé ïåðâûì àðãóìåíòîì ïðàâîé ôóíêöèè ÿâëÿåòñÿ ðåçóëüòàò (âûõîäíîé êëèï) áîëåå ëåâîé.  âûøåïðèâåäåííîì ñêðèïòå ìû ïðåîáðàçîâàëè öâåòîâîé ôîðìàò â YV12, òàê êàê FFT3DGPU âåðñèè 6.2 ðàáîòàë òîëüêî â íåì.  ïðèíöèïå, ìîæíî íàïèñàòü ñêðèïò, â êîòîðîì ôèëüòðàöèÿ öâåòà áóäåò è â YUY2. #Ïðèìåð ñêðèïòà 11.9 LoadPlugin("C:\Plugins\fft3dfilter.dll") # çàãðóæàåì ïëàãèí LoadPlugin("C:\Plugins\fft3dGPU.dll") # çàãðóæàåì ïëàãèí AviSource("d:\video\film.avi") # îòêðûâàåì âèäåîôàéë ConvertToYUY2 (interlaced=true) # åñëè îí åùå íå YUY2 AssumeTFF() # ïåðâîå ïîëå — âåðõíåå äëÿ àíàëîãà SeparateFields() # âûäåëèì ÷åòíûå è íå÷åòíûå ïîëÿ è îáðàáîòàåì èõ ðàçäåëüíî Even=SelectEven().FFT3DFilter(sigma=3, plane=3) Even=Even.ConvertToYV12().FFT3DGPU(sigma=2, plane=0)\ .ConvertToYUY2().MergeChroma(Even) Odd =SelectOdd().FFT3DFilter(sigma=3, plane=3) Odd=Odd.ConvertToYV12().FFT3DGPU(sigma=2, plane=0)\ .ConvertToYUY2().MergeChroma(Odd) Interleave(Even, Odd) # ÷åðåäóåì ÷åòíûå è íå÷åòíûå Weave() # ñîåäèíèì ïîëÿ â êàäðû Âåðñèÿ 8.2 FTT3DGPU ïîääåðæèâàåò öâåòîâîé ôîðìàò YUY2 è ÷åðåññòðî÷íîñòü, òàê ÷òî ñêðèïò çíà÷èòåëüíî óïðîùàåòñÿ. #Ïðèìåð ñêðèïòà 11.9à # ñîâìåñòíî ñ ïðîöåññîðîì âèäåîêàðòû, FFT3DGPU âåðñèÿ 8.2 LoadPlugin("C:\Plugins\fft3dfilter.dll") # çàãðóæàåì ïëàãèí LoadPlugin("C:\Plugins\fft3dGPU.dll") # çàãðóæàåì ïëàãèí AviSource("d:\video\film.avi") # îòêðûâàåì âèäåîôàéë FFT3DFilter(sigma=3, plane=3, interlaced=true) # ôèëüòðóåì öâåòíîñòü FFT3DGPU(sigma=2, plane=0, interlaced=true) # ôèëüòðóåì ÿðêîñòü  ðÿäå ñëó÷àåâ ëó÷øå èñïîëüçîâàòü äðóãèå ôèëüòðû, îòâå÷àþùèå òèïó èñòî÷íèêó è âèäó ïîìåõ.  ÷àñòíîñòè, ïðè ôèëüòðàöèè ìóëüòôèëüìîâ ïîëåçíî ó÷åñòü íàëè÷èå ñòðîãî ïîâòîðÿþùèõñÿ äóáëåé êàäðîâ (îáû÷íî ÷èñëî ðàçíûõ ðèñóíêîâ ìåíüøå ÷àñòîòû êàäðîâ). Ñóùåñòâóåò ïëàãèí Dup (ðàçðàáîò÷èê Donald Graft ñ ïîñëåäîâàòåëÿìè), êîòîðûé àíàëèçèðóåò ïîòîê, è, íàõîäÿ öåïî÷êó ïîñëåäîâàòåëüíûõ äóáëåé, ìîæåò èõ ïîëíîñòüþ ñìåøèâàòü (óñðåäíÿòü), è âñþ öåïî÷êó çàìåíèòü íà òî÷íûå ïîâòîðåíèÿ, ÷òî ýôôåêòèâíî ïîäàâëÿåò øóì ïðàêòè÷åñêè áåç âëèÿíèÿ íà äåòàëè, áåç ïðèçðàêîâ îò ñîñåäíèõ êàäðîâ, è îáëåã÷àåò çàäà÷ó ñæàòèÿ. #Ïðèìåð ñêðèïòà 11.10 LoadPlugin("C:\Plugins\fft3dfilter.dll") # çàãðóæàåì ïëàãèí LoadPlugin("C:\Plugins\Dup.dll") # çàãðóæàåì ïëàãèí AviSource("d:\video\film.avi") # îòêðûâàåì âèäåîôàéë # ïîäðàçóìåâàåì, ÷òî ÷åðåññòðî÷íîñòè íåò Dup(threshold=3, blend=true) # ôèëüòðóåì äóáëè ñìåøåíèåì Íóæíî ïîäîáðàòü çíà÷åíèÿ ïîðîãà threshold, â çàâèñèìîñòè îò óðîâíÿ øóìà, ÷òîáû èñêëþ÷èòü êàê ëîæíûå ïðîïóñêè äóáëåé, òàê è íåíóæíóþ ôèëüòðàöèþ â äåéñòâèòåëüíîñòè ðàçíûõ (íî ïîõîæèõ) êàäðîâ. Ôèëüòð èìååò äîïîëíèòåëüíûå ïàðàìåòðû äëÿ îòëàäêè. Ïðè íåîáõîäèìîñòè åìó äîëæåí ïðåäøåñòâîâàòü äåèíòåðëåéñ (ïîäáîð ïîëåé). Ïðè íåäîñòàòî÷íîñòè îáåñïå÷èâàåìîé ôèëüòðàöèè (îñîáåííî íå äóáëèðîâàííûõ êàäðîâ ñ áûñòðûì äâèæåíèåì) ìîæíî ïîïðîáîâàòü ïðèìåíèòü è äîïîëíèòåëüíûå ôèëüòðû. 12. Ñðàâíåíèå äåéñòâèÿ ôèëüòðîâ Ïðàêòè÷åñêè âñåãäà çàäàþòñÿ âîïðîñû, êàêîé ôèëüòð (íàïðèìåð, øóìîïîäàâèòåëü) ïðèìåíèòü, è ñ êàêèìè íàñòðîéêàìè. Ìîæíî ïîñëåäîâàòü ñîâåòàì è ðåêîìåíäàöèÿì, íî öåëåñîîáðàçíî ïîâåðèòü âñå ñâîèì ãëàçàì. Íåîáõîäèì äåòàëüíûé àíàëèç äåéñòâèÿ ïðèëîæåííûõ ôèëüòðîâ íà èñõîäíîå âèäåî. Ñ ïîìîùüþ ñïåöèàëüíûõ êîìàíä AviSynth ìîæíî ïîäãîòîâèòü âèäåî äëÿ ïðîñìîòðà è îòëàäêè. Ïåðâîé âîçìîæíîñòüþ ÿâëÿåòñÿ ôîðìèðîâàíèå êàäðà èç ðàñïîëîæåííûõ ðÿäîì èñõîäíîãî è îòôèëüòðîâàííîãî âèäåî, è ïðîñìîòð â VirtualDub èëè êàêîì-ëèáî ïëååðå. AviSynth èìååò êîìàíäó StackHorizontal äëÿ ðàñïîëîæåíèÿ äâóõ èëè áîëåå êëèïîâ ïî ãîðèçîíòàëè, è StackVertical äëÿ ðàñïîëîæåíèÿ èõ ïî âåðòèêàëè. Ïðè áîëüøîì ðàçìåðå êàäðà ðåçóëüòàò íå ïîìåùàåòñÿ íà ìîíèòîðå, òîãäà ìîæíî èñïîëüçîâàòü ïðåäâàðèòåëüíóþ îáðåçêó. #Ïðèìåð ñêðèïòà 12.1 Avisource("h:\test.avi") d=DeGrainMedian(mode=1,limitY=4) StackHorizontal(last,d) limitY, è îáíîâëÿÿ ýêðàí ïî íàæàòèþ F5, íàáëþäàòü èçìåíåíèÿ. Ñêàæåì, ïðè íàñòðîéêå ïîäàâèòåëåé øóìà ñëåäèì, ÷òîáû ïðè óìåíüøåíèè øóìà íå óäàëÿëèñü ñóùåñòâåííûå äåòàëè, è íå ðàçìûâàëèñü êîíòóðû. ×àñòî èçìåíåíèÿ ìàëîçàìåòíû, â ýòîì ñëó÷àå ïîëåçíî ïîìåñòèòü ðÿäîì åùå è ðàçíèöó ìåæäó èñõîäíûì è ôèëüòðîâàííûì êëèïîì (êîìàíäîé Subtract),   åùå ëó÷øå óñèëåííóþ (íàïðèìåð, êîìàíäîé Levels, ïàðàìåòðû êîòîðîé òîæå ìîæíî ïîäñòðîèòü). #Ïðèìåð ñêðèïòà 12.2 Avisource("h:\test.avi") d=DeGrainMedian(mode=1,limitY=4,limitUV=0,interlaced=true) ds=Subtract(last,d).Levels(117,1,139,0,255) # Óñèëåííàÿ ðàçíèöà ôèëüòðîâàííîãî ñ èñõîäíûì StackHorizontal(last, d, ds)  ïðèìåðå ñêðèïòà ìû ôèëüòðîâàëè òîëüêî ÿðêîñòü Y, íî ìîæíî ôèëüòðîâàòü è àíàëèçèðîâàòü òàêæå è (èëè) öâåòíîñòü. Ìîæíî è ñðàçó ñðàâíèòü äåéñòâèå äâóõ øóìîïîäàâèòåëåé, äîáàâèâ åùå îêîøêî, èëè òðè, ðàçìåùåííûõ ñíèçó. #Ïðèìåð ñêðèïòà 12.3 LoadPlugin(" FluxSmooth.dll) d=DeGrainMedian(mode=1,limitY=3,limitUV=3,interlaced=false) ds=subtract(last,d).Levels(117,1,139,0,255) # Óñèëåííàÿ ðàçíèöà fs=Subtract(last,f).Levels(117,1,139,0,255) # Óñèëåííàÿ ðàçíèöà äðóãîãî StackHorizontal(last, f, fs)) Îäèí èç ïîëó÷èâøèõñÿ êàäðîâ ðåçóëüòàòà ïðèâåäåí íà ðèñóíêå. Ôèëüòðû ðàáîòàþò ïî-ðàçíîìó, õîòÿ îáà îíè ïðîñòðàíñòâåííî-âðåìåííûå. Ââåðõó — DeGrainMedian, âíèçó — FluxSmoothST (ôóíêöèÿ ïëàãèíà FluxSmooth). Ñïðàâà, íà êàðòèíàõ ðàçíîñòè, òî åñòü óäàëÿåìîãî øóìà, âèäíî, ÷òî íèæå è âûøå äâèæóùåéñÿ ââåðõ Íàñòèíîé ðóêè FluxSmoothST îñòàâèë åå ñëåäû (ïðèçðàêè) îò ñîñåäíèõ êàäðîâ. Ñðåäíÿÿ ÷àñòü ðóêè íà ãðàíèöå ñâåòà è òåíè íå ôèëüòðóåòñÿ (ðàâíîìåðíî ñåðàÿ îáëàñòü íà êàðòèíå ðàçíîñòè). DeGrainMedian (êàðòèíêà ââåðõó) ñèëüíåå ôèëüòðóåò ëèöî è ñêëàäêè îäåæäû íà ïëå÷å, ñìÿã÷àÿ äåòàëè. Îáùèé øóì îáà ôèëüòðà ôèëüòðóþò íåïëîõî, íî DeGrainMedian óäàëÿåò áîëåå íåîäíîðîäíûé øóì. Äðóãèì ñïîñîáîì âèçóàëüíîé îöåíêè ÿâëÿåòñÿ ïîî÷åðåäíûé ïîêàç êàäðîâ ïî-ðàçíîìó îòôèëüòðîâàííîãî êëèïà. Òàê êàê ïðè ýòîì ïîëîæåíèå îáúåêòîâ íå ìåíÿåòñÿ, ëåãêî ñëåäèòü çà êàêîé-ëèáî äåòàëüþ áåç ïåðåâîäà âçãëÿäà. Èñïîëüçóåòñÿ ôóíêöèÿ Interleave. ×òîáû íå çàïóòàòüñÿ, ìîæíî íàíåñòè íà îòôèëüòðîâàííûå êëèïû íàäïèñè ôóíêöèåé Subtitle. .Subtitle("DeGrainMedian mode=1) # ôèëüòðàöèÿ d1s=subtract(last,d1).Levels(117,1,139,0,255) # Ïîëó÷èëè óñèëåííóþ ðàçíèöó .Subtitle("DeGrainMedian mode=2) # ôèëüòðàöèÿ d2s=Subtract(last,d2).Levels(117,1,139,0,255) # Óñèëåííàÿ ðàçíèöà Interleave(last, d1, d2, d1s, d2s) # ÷åðåäóåì Ìîæíî ïåðåêëþ÷àòü äâà ñêðèïòà, íàïðèìåð, âî âêëàäêàõ ïðîãðàììû AvsP. Âû÷èòàíèå êëèïîâ âìåñòî öåïî÷êè Subtract.Levels ìîæíî ñäåëàòü è äðóãèìè ñðåäñòâàìè, íàïðèìåð, ôóíêöèåé YV12LUTxy ïëàãèíà MaskTools (ðàçðàáîò÷èêè "Kurosu", "Manao") (äëÿ äàííîãî öâåòîâîãî ôîðìàòà). Îòìåòèì, ÷òî ñóùåñòâóþò è ñïåöèàëüíûå ïðîãðàììû äëÿ îöåíêè è ñðàâíåíèÿ âèäåî ( CompareAVS è äðóãèå). Âîçìîæíà îðãàíèçàöèÿ äðóãèõ ñðàâíåíèé, íàïðèìåð, ÷èñòîãî, èñêóññòâåííî çàøóìëåííîãî ïëàãèíîì AddGrain (ðàçðàáîò÷èê Tom Barry) è î÷èùåííîãî êëèïîâ, ëèáî àíàëèç ýôôåêòîâ ïîâûøåíèÿ ðåçêîñòè è ò.ï. 13. Ïîâûøåíèå ðåçêîñòè Ïîâûøåíèå ðåçêîñòè ïðåñëåäóåò öåëü ïîä÷åðêíóòü êðàÿ îáúåêòîâ è ïîâûñèòü ðàçëè÷èìîñòü äåòàëåé, êîòîðàÿ áûëà óòðà÷åíà ïðè òðàíñëÿöèè, çàïèñè, ôèëüòðàöèè è ò.ä. Ïîâûøåíèå ðåçêîñòè — ýòî îáû÷íî ëîêàëüíîå ïîâûøåíèå êîíòðàñòà. Ñëåäóåò îòìåòèòü, ÷òî ïîâûøåíèå ðåçêîñòè óõóäøàåò ñæèìàåìîñòü êëèïà, ïîýòîìó äåëàòü ýòî íàäî îñòîðîæíî. Òàêæå ïðè ýòîì îáû÷íî óñèëèâàåòñÿ è øóì, ïîýòîìó ïðàâèëîì ÿâëÿåòñÿ ïðèìåíåíèå ôèëüòðîâ ïîâûøåíèÿ ðåçêîñòè ïîñëå ôèëüòðîâ ïîäàâëåíèÿ øóìà. ×àùå âñåãî çàòðàãèâàþò òîëüêî êàíàë ÿðêîñòè, à êàíàëû öâåòíîñòè íå èçìåíÿþò. Íåêîòîðûå èñïîëüçóþò ïîâûøåíèå ðåçêîñòè íå ïðè êîäèðîâàíèè, à ïðè äåêîäèðîâàíèè (ïðîñìîòðå), â òîì ÷èñëå è ñ èñïîëüçîâàíèåì ôèëüòðîâ AviSynth. Åñòü íåñêîëüêî ìåòîäîâ ïîâûøåíèÿ ðåçêîñòè.  AviSynth âñòðîåí ôèëüòð Sharpen, ðåàëèçóþùèé ïðîñòîé ìåòîä. Åñòü òàêæå ïëàãèíû ASharp (ðàçðàáîò÷èê "MarkFD"), TUnsharp (ðàçðàáîò÷èê "Tritical"), ðåàëèçóþùèå èçâåñòíûé ìåòîä èñïîëüçîâàíèÿ ìàñêè íåðåçêîñòè. Íåäîñòàòêîì êëàññè÷åñêèõ (ëèíåéíûõ) ìåòîäîâ ÿâëÿåòñÿ ñîïóòñòâóþùåå ïîâûøåíèÿ óðîâíÿ øóìà, à òàêæå îáðàçîâàíèå îðåîëîâ ðÿäîì ñ ëèíèÿìè. Åñòü è íåëèíåéíûå ìåòîäû. Èìååòñÿ ôèëüòð MSharpen (ðàçðàáîò÷èê Donald Graft), êîòîðûé ñíà÷àëà íàõîäèò êðàÿ îáúåêòîâ, è ïîâûøàåò êîíòðàñò òîëüêî âáëèçè íèõ, íå ïîâûøàÿ øóì íà ðîâíûõ ïîâåðõíîñòÿõ. Ðàçðàáîòàíû òàêæå ïëàãèíû aWarpSharp (ðàçðàáîò÷èê "MarkFD"), WarpSharp (íàáîð ôóíêöèé, ðàçðàáîò÷èê — àíîíèìíûé ÿïîíåö) è WarpSharp (ðàçðàáîò÷èê "Sh0dan") è ðåàëèçóþùèå äðóãîé ìåòîä — ïîâûøåíèå ðåçêîñòè äåôîðìàöèåé èçîáðàæåíèÿ (ñòÿãèâàíèåì), ÷òî íàèáîëåå ïðèìåíèìî äëÿ ìóëüòôèëüìîâ (àíèìå). Èìååòñÿ äâà (èëè òðè) ïëàãèíà ñ ôóíêöèåé XSharpen, â êîòîðîé ïîâûøåíèå îãðàíè÷åíî çíà÷åíèåì ñîñåäíèõ ïèêñåëåé. Îäíàêî âñå ýòè ìåòîäû íåñîâåðøåííû è ïîðòÿò êàðòèíêó. Ëèíåéíûå ìåòîäû îáðàçóþò îðåîëû, íåëèíåéíûå ïðîèçâîäÿò ñòóïåí÷àòûå êðàÿ ó íàêëîííûõ ëèíèé. Íåò îäíîçíà÷íîãî îòâåòà íà âîïðîñ, ÷òî äåëàòü ñ (ïðîðåæåííîé) öâåòíîñòüþ (ìåíÿòü èëè íåò), ÷òîáû îíà ïðîñòðàíñòâåííî ñîîòâåòñòâîâàëà ÿðêîñòè. Èçâåñòíûì (ýêñòðåìàëüíûì) ñïîñîáîì äîñòèæåíèÿ íàèëó÷øèõ ðåçóëüòàòîâ ÿâëÿåòñÿ óâåëè÷åíèå èçîáðàæåíèÿ (ñâåðõðàçðåøåíèå — supersampling), âïëîòü äî ÷åòûðåõ ðàç (!), ïðèìåíåíèå ôóíêöèè ïîâûøåíèÿ ðåçêîñòè, è çàòåì óìåíüøåíèå ðàçìåðîâ äî ïåðâîíà÷àëüíûõ. #Ïðèìåð ñêðèïòà 13.1 LoadPlugin("C:\Plugins\Warpsharp.dll") # çàãðóæàåì ïëàãèí LoadPlugin("C:\Plugins\DeGrainMedian.dll") # çàãðóæàåì ïëàãèí AviSource("d:\video\film.avi") # îòêðûâàåì âèäåîôàéë DeGrainMedian() # ïîäàâëÿåì øóì íåêîòîðûì ôèëüòðîì ss=4 # ââîäèì ïåðåìåííóþ - êðàòíîñòü óâåëè÷åíèÿ ðàçìåðà êàäðà LanczosResize(width*ss, height*ss) # óâåëè÷èâàåì ðàçìåð êàäðîâ XSharpen(strength=255,threshold=20) # ïîâûøàåì ðåçêîñòü LanczosResize(width/ ss, height/ ss) # âîññòàíàâëèâàåì ðàçìåð  ñêðèïòå íóæíî íàñòðîèòü ñèëó è ïîðîã ïîâûøåíèÿ ðåçêîñòè ïî âêóñó. Ïðè óâåëè÷åíèè 4 îðåîëîâ íåò, îäíàêî ñêîðîñòü îáðàáîòêè î÷åíü ñèëüíî ïàäàåò. Äà è øóì óñèëèâàåòñÿ.  äèäàêòè÷åñêèõ öåëÿõ çàïèøåì ýòîò ñêðèïò, ââåäÿ ïîëüçîâàòåëüñêóþ ôóíêöèþ SSSharpen (ÿçûê AviSynth äîïóñêàåò ýòî), êîòîðàÿ âûçûâàåòñÿ àíàëîãè÷íî âíóòðåííèì ôóíêöèÿì èëè ôóíêöèÿì èç ïëàãèíîâ. Ñíà÷àëà äîëæíî áûòü îïðåäåëåíèå ôóíêöèè ñî ñïèñêîì ïàðàìåòðîâ è èõ òèïîâ (clip, int, float, string) è ïîñëåäóþùèìè ôèãóðíûìè ñêîáêàìè  ñ ïîñëåäîâàòåëüíîñòüþ êîìàíä. Îïðåäåëåíèå ìîæíî ïðèâåñòè â òîì ôàéëå, èëè çàïèñàòü åãî â îòäåëüíûé ôàéë, íàïðèìåð, ssxsharpen.avs è èñïîëüçîâàòü â íà÷àëå îñíîâíîãî ñêðèïòà êîìàíäó Import("ssxsharpen.avs"), èëè èìåíîâàòü ôàéë ñ ðàñøèðåíèåì avsi, íàïðèìåð, #Ïðèìåð ñêðèïòà 13.2 # Îïðåäåëåíèå ôóíêöèè SSXSharpen ## ## Ïîâûøàåò ðåçêîñòü èçîáðàæåíèÿ èñïîëüçóÿ ñâåðõðàçðåøåíèå. ## LoadPlugin("C:\Plugins\DeGrainMedian.dll") DeGrainMedian() # ïîäàâëÿåì øóì íåêîòîðûì ôèëüòðîì # âûçûâàåì ôóíêöèþ ñ ïàðàìåòðàìè ïî óìîë÷àíèþ. SSXSharpen(last, ssw=4, ssh=4, xstren=255, xthresh=20) Ñêðèïò ðàáîòàåò î÷åíü ìåäëåííî. Ñäåëàíû ïîïûòêè îãðàíè÷èòü ÷ðåçìåðíóþ ñòåïåíü ïîâûøåíèÿ ðåçêîñòè äëÿ ðåçêèõ äåòàëåé, è óìåíüøèòü îáðàçîâàíèå îðåîëîâ áåç áîëüøîãî ñâåðõðàçðåøåíèÿ. Ïîïóëÿðåí äëèííûé ñêðèïò, îôîðìëåííûé â âèäå ïîëüçîâàòåëüñêîé ôóíêöèè LimitedSharpen (ñîñòàâèòåëü Didee), êîïèÿ íàõîäèòñÿ â ôàéëå LimitedSharpen.avs â ïðèëàãàåìîì àðõèâå avs.zip. Ìû íå áóäåì åãî ïîäðîáíî ðàçáèðàòü, êðàòêî îòìåòèì, ÷òî â ôóíêöèè íàõîäÿòñÿ êðàÿ îáúåêòîâ, ðàçìûòîå ñðåäíåå çíà÷åíèå ñîñåäíèõ ïèêñåëåé, äåëàåòñÿ ïðîñòîå ïîâûøåíèå ðåçêîñòè, êîòîðîå çàòåì îãðàíè÷èâàåòñÿ. Ôóíêöèÿ èñïîëüçóåò ïëàãèí WarpSharp (ÿïîíñêèé) äëÿ ïîâûøåíèÿ ðåçêîñòè (â îäíîì èç ðåæèìîâ), è ïëàãèí MaskTools (ðàçðàáîò÷èêè "Kurosu", "Manao"). Ôóíêöèè MaskTools ÷àñòî èñïîëüçóþòñÿ â ñëîæíûõ ñêðèïòàõ, òàê êàê ïîìîãàåò íà îñíîâå ìàñîê è äðóãèõ ìàòåìàòè÷åñêèõ îïåðàöèé ðåàëèçîâûâàòü ðàçíîîáðàçíûå àëãîðèòìû îáðàáîòêè âìåñòî ðàçðàáîòêè ïëàãèíîâ íà ÿçûêàõ ïðîãðàììèðîâàíèÿ. #Ïðèìåð ñêðèïòà 13.3 # Ïóñòü ïëàãèíû WarpSharp, MaskTools â àâòîçàãðóçêå, # à ñêðèïò LimitedSharpen.avs â òåêóùåì êàòàëîãå Import("LimitedSharpen.avs") AviSource("d:\video\film.avi") # îòêðûâàåì âèäåîôàéë DeGrainMedian() # ïîäàâëÿåì øóì íåêîòîðûì ôèëüòðîì # ôóíêöèÿ ïîâûøåíèÿ ðåçêîñòè ñ ïàðàìåòðàìè ïî óìîë÷àíèþ. LimitedSharpen() LimitedSharpen ïðåäíàçíà÷åíà äëÿ ïðîãðåññèâíîãî âèäåî è èìååò íåñêîëüêî ïàðàìåòðîâ äëÿ íàñòðîéêè åå äåéñòâèÿ. "ss_x", "ss_y" — ôàêòîðû ïðîìåæóòî÷íîãî óâåëè÷åíèÿ ïî ãîðèçîíòàëè è âåðòèêàëè (ïî óìîë÷àíèþ 1.5); "dest_x", "dest_y" — êîíå÷íàÿ øèðèíà è âûñîòà; "Smode" — íîìåð ðåæèìà ïîâûøåíèÿ ðåçêîñòè 1 — UnSharpMask, 2 — Sharpen, 3 — MinMaxSharpen (ïî óìîë÷àíèþ); "strength" — ñèëà ïîâûøåíèÿ ðåçêîñòè (ïî óìîë÷àíèþ 100); "radius" — ðàäèóñ ìàñêè íåðåçêîñòè äëÿ Smode=1 (ïî óìîë÷àíèþ 2), "Lmode" — íîìåð ðåæèìà îãðàíè÷åíèÿ 1 — æåñòêîå, âìåñòå ñ "overshoot" (ïî óìîë÷àíèþ), 2- ìÿãêîå; "wide" — false — èñïîëüçîâàòü äëÿ îãðàíè÷åíèÿ ìèí. è ìàêñ. âåëè÷èíû â îáëàñòè 3õ3 êðàåâ îáúåêòîâ (ïî óìîë÷àíèþ), true — 5õ5; "overshoot" — íàñêîëüêî ïîâûøåíèå ðåçêîñòè ìîæåò ïåðåõîäèòü ìèí. è ìàõ. ïðåäåëû (1); "soft" — true — ñëåãêà ñìÿã÷èòü êëèï ïðè íàõîæäåíèè ìèí. è ìàêñ. âåëè÷èí, false — íåò (ïî óìîë÷àíèþ; "edgemode" — ðåæèì îáðàáîòêè êðàåâ (0 — âåñü êàäð, 1 -òîëüêî êðàÿ, 2 — êðîìå êðàåâ); "special" — true — èñïîëüçîâàòü ñïåöèàëüíûé êîíòðàñòíûé ðåæèì ðåçêîñòè äëÿ Smode=3; "exborder" — øèðèíà áîðäþðîâ êàäðà, èñêëþ÷åííàÿ èç îáðàáîòêè. Åñòü òàêæå áîëåå áûñòðàÿ ìîäèôèêàöèé ôóíêöèè LimitedSharpenFaster, âêëþ÷åííàÿ â ñîñòàâ ðàçðàáàòûâàåìîé íîâîé àëüôà-âåðñèè 2.0 ïëàãèíà MaskTools , à òàêæå ñêðèïò SeeSaw (ñîñòàâèòåëü Didee) äëÿ óâåëè÷åíèÿ ñëàáûõ äåòàëåé áåç ÷ðåçìåðíîé ðåçêîñòè èëè ñòóïåíåê íà ñèëüíûõ äåòàëÿõ, ñî ñòàáèëüíûìè âî âðåìåíè ðåçóëüòàòàìè áåç äðîæàíèÿ. Åùå îäíà ôóíêöèÿ äëÿ óìåðåííîãî ïîâûøåíèÿ ðåçêîñòè âêëþ÷åíà â ïëàãèí FFT3DFilter. Èñïîëüçóåòñÿ ôèëüòð âûñîêèõ ÷àñòîò Ãàóññà ñ ïåðåìåííîé ÷àñòîòîé ñðåçà è íåêîòîðûé ñïåöèàëüíûé ìåòîä îãðàíè÷åííîãî ïîâûøåíèÿ ðåçêîñòè: ñàìûå ñëàáûå ÷àñòîòû (ñ ìàëûìè àìïëèòóäàìè) íå óñèëèâàþòñÿ, ÷òîáû ïðåäîòâðàòèòü óâåëè÷åíèå øóìà; ñàìûå ñèëüíûå ÷àñòîòû (ñ áîëüøèìè àìïëèòóäàìè) íå óñèëèâàþòñÿ, ÷òîáû ïðåäîòâðàòèòü ÷ðåçìåðíîå ïîâûøåíèå ðåçêîñòè è îáðàçîâàíèå îðåîëîâ. Ñòåïåíü ïîâûøåíèÿ ðåçêîñòè ìàêñèìàëüíà äëÿ ÷àñòîò ñî ñðåäíèìè àìïëèòóäàìè. FFT3DFilter äàåò áîëåå ïëàâíûå ïåðåõîäû îáëàñòåé ñ ðàçíîé ñòåïåíüþ ïîâûøåíèÿ ðåçêîñòè, ÷åì LimitedSharpen. ×òî ëó÷øå, âîïðîñ ñóáúåêòèâíûé. Ñêîðîñòü îáðàáîòêè ìåíüøå, íî ïðè èñïîëüçîâàíèè FFT3DFilter è äëÿ ïîäàâëåíèÿ øóìà, ïîâûøåíèå ðåçêîñòè ïî÷òè íå âíîñèò äîïîëíèòåëüíîãî ïàäåíèÿ ñêîðîñòè. #Ïðèìåð ñêðèïòà 13.4 LoadPlugin("C:\Plugins\fft3dfilter.dll") # çàãðóæàåì ïëàãèí AviSource("d:\video\video.avi") # îòêðûâàåì âèäåîôàéë # êàíàë öâåòíîñòè òîëüêî ôèëüòðóåì # ôèëüòðóåì è ïîâûøàåì ðåçêîñòü êàíàëà ÿðêîñòè FFT3DFilter(sigma=1.5, plane=0, interlaced=true, sharpen=0.7) Âû ìîæåòå óïðàâëÿòü êàê îáùåé ñèëîé ïîâûøåíèÿ ðåçêîñòè, òàê è ãðàíèöàìè (ñì. äîêóìåíòàöèþ ê FFT3DFilter). 14. Ïîäàâëåíèå îðåîëîâ Áëèçêîé çàäà÷åé ê îãðàíè÷åííîìó ïîâûøåíèþ ðåçêîñòè ÿâëÿåòñÿ ïîäàâëåíèå èìåþùèõñÿ îðåîëîâ, êîòîðûå è ïðîèñõîäÿò èç ïðåäøåñòâóþùåãî "òóïîãî" ïîâûøåíèÿ ðåçêîñòè, è ÷àñòî èìåþòñÿ íà VHS è íåêîòîðûõ äðóãèõ èñòî÷íèêàõ. Ñóùåñòâóåò ñïåöèàëüíûé ïëàãèí FixVHSOversharp (ðàçðàáîò÷èê "MrTibs"), ñîñòîÿùèé èç äâóõ ôóíêöèé (äëÿ ëåâîãî è ïðàâîãî êðàÿ), ðàáîòàþùèõ îòäåëüíî äëÿ êàæäîé ñòðîêè,  òî åñòü òîëüêî â ãîðèçîíòàëüíîì íàïðàâëåíèè, èùóùèõ îáëàñòè ñ ÿðêîñòüþ, îòëè÷àþùåéñÿ îò ÿðêîñòè ñîñåäíèõ îáëàñòåé. Ïàðàìåòðàìè ÿâëÿþòñÿ: ïîðîã èçìåíåíèÿ ÿðêîñòè â îðåîëå, øèðèíà îáëàñòè äåòåêòèðîâàíèÿ, è ñìåùåíèå ðàáî÷åãî ïèêñåëÿ îò êîíòðîëüíîãî. #Ïðèìåð ñêðèïòà 14.1 function m4(float x) {return(x<16?16:int(round(x/4.0)*4))} Ôóíêöèÿ íàõîäèò îáëàñòè îðåîëîâ ïóòåì ñðàâíåíèÿ ðåçóëüòàòà ðàñøèðåíèÿ è ñóæåíèÿ ìàñîê öâåòîâûõ êàíàëîâ â îðèãèíàëüíîì è ñãëàæåííîì ïóòåì èçìåíåíèÿ ðàçìåðà êàäðîâ, è òàê äàëåå... Íîâè÷êàì íåîáõîäèìî çíàòü, ÷òî â ýòîì è äðóãèõ ñëîæíûõ ñêðèïòàõ ÷àñòî èñïîëüçóþò ïîëåçíóþ ôóíêöèþ YV12LUTxy èç ïëàãèíà MaskTools, êîòîðàÿ ïðîèçâîäèò ïîïèêñåëüíûå âû÷èñëåíèÿ ðåçóëüòàòà, èñõîäÿ èç çíà÷åíèé ïèêñåëåé â êàäðàõ äâóõ êëèïîâ-àðãóìåíòîâ (õ è y), ïðè ýòîì ôîðìóëà âû÷èñëåíèÿ çàäàåòñÿ ñòðîêîé â îáðàòíîé çàïèñè (íàïðèìåð, "x y -" îçíà÷àåò èç ïèêñåëåé ïåðâîãî êëèïà X âû÷åñòü çíà÷åíèÿ âòîðîãî Y). Ìîæíî èìåòü ôóíêöèþ DeHalo_alpha.avs, è çàòåì èìïîðòèðîâàòü â îñíîâíîé ñêðèïò. Ôóíêöèÿ èìååò ñëåäóþùèå ïàðàìåòðû: "rx" , "ry" — ðàäèóñû ïî ãîðèçîíòàëè è âåðòèêàëè äëÿ óäàëåíèÿ îðåîëîâ (îò 1 äî 3, ïî óìîë÷àíèþ 2); "darkstr", "brightstr" — ôàêòîðû ñòåïåíè äëÿ òåìíûõ è ñâåòëûõ îðåîëîâ (îò 0 äî 1.0 íåñòðîãî, ïî óìîë÷àíèþ 1.0); "lowsens" — ÷óâñòâèòåëüíîñòü ê ñëàáûì èçìåíåíèÿì, ïîëíîñòüþ ïðèíèìàåìûì (îò 0 äî 100, ïî óìîë÷àíèþ 50); "highsens" -÷óâñòâèòåëüíîñòü ê ñèëüíûì èçìåíåíèÿì, ïîëíîñòüþ îòâåðãàåìûì (îò 0 äî 100, ïî óìîë÷àíèþ 50); "ss" — ôàêòîð ïðîìåæóòî÷íîãî ñâåðõðàçðåøåíèÿ äëÿ èçáåãàíèÿ ñòóïåíåê (ïî óìîë÷àíèþ 1.5) Ôóíêöèÿ DeHalo_alpha ðàçðàáàòûâàëàñü äëÿ ïðîãðåññèâíîãî âèäåî öâåòîâîãî ôîðìàòà YV12. ×åðåññòðî÷íîå âèäåî íåîáõîäèìî ïðåäâàðèòåëüíî ðàçäåëèòü íà ïîëÿ, è öåëåñîîáðàçíî óìåíüøèòü âåðòèêàëüíûé ðàäèóñ îðåîëà âäâîå. # Ïðèìåð ñêðèïòà 14.4 LoadPlugin("MaskTools.dll") # òàê êàê ïîëÿ ïîëîâèííîé âûñîòû Weave() Ïî âñåé âèäèìîñòè, ïîäàâëåíèå øóìà ëó÷øå äåëàòü äî óäàëåíèÿ îðåîëîâ, äëÿ áîëåå ÷åòêîãî èõ íàõîæäåíèÿ. Ïðèìåíåíèå ôóíêöèè ïîäàâëåíèÿ îðåîëîâ ìîæåò ñìàçàòü íåêîòîðûå äåòàëè èçîáðàæåíèÿ. Ïîïðîáóéòå ïîäîáðàòü îïòèìàëüíûå ïàðàìåòðû. Îòìåòèì, ÷òî âîçìîæíû è äðóãèå ðåøåíèÿ ïðîáëåìû, íàïðèìåð, â ÷àñòîòíîé îáëàñòè ñ ïëàãèíîì FFT3DFilter. Ïîêà îíè íå îòðàáîòàíû, íî êàê ïðåäâàðèòåëüíûé âàðèàíò ïîïðîáóéòå âìåñòî DeHalo_alpha ñëåäóþùóþ êîìàíäó, èñïîëüçóþùóþ ïîâûøåíèå ðåçêîñòè ñ îáðàòíûì çíàêîì äëÿ ïîíèæåíèÿ âûñîêèõ ÷àñòîò ñ áîëüøîé àìïëèòóäîé: fft3dfilter(bt=-1,sharpen=-1.5,smin=200,smax=90000,scutoff=0.45,interlaced=true). Ñíèæåíèå ðåçêîñòè è îðåîëîâ áîëåå ïëàâíîå, ÷åì â Dehalo_alpha.  íîâûõ âåðñèÿõ FFT3DFilter ïîÿâèëàñü ñïåöèàëüíàÿ îïöèÿ "dehalo", ÷òî ìîæåò ïîçâîëèòü ÷èñòèòü øóìû, ïîâûøàòü ðåçêîñòü è ïîäàâëÿòü îðåîëû îäíîé êîìàíäîé. 15. Ïîäàâëåíèå ðàäóæíûõ ïîëîñ Èç ìíîãîîáðàçèÿ äåôåêòîâ âèäåî ðàññìîòðèì âñòðå÷àþùèåñÿ ïðè îáðàáîòêå àíàëîãîâûõ ñèãíàëîâ ðàäóæíûå ïîëîñû, íàáëþäàåìûå â ìåñòàõ ñ âûñîêèì êîíòðàñòîì ÿðêîñòè, ÷àñòî íà òèòðàõ. Äåôåêòû ýòè ñâîéñòâåííû êîìïîçèòíîìó (ñìåøàííîìó) ñèãíàëó, èç-çà ïåðåêðåñòíîãî âëèÿíèÿ ÿðêîñòè è öâåòíîñòè, åñëè íå èñïîëüçóåòñÿ êà÷åñòâåííûé àïïàðàòíûé (òàê íàçûâàåìûé ãðåáåí÷àòûé) ôèëüòð äëÿ ïîäàâëåíèÿ ýòèõ ïîìåõ. Åñòü ïëàãèíû GuavaComb (ðàçðàáîò÷èê "Lindsey Dubb"), TComb (ðàçðàáîò÷èê "tritical"), BiFrost (ðàçðàáîò÷èê Fredrik Mellbin) äëÿ óñòðàíåíèÿ ïîäîáíûõ ïîìåõ ìåòîäîì óñðåäíåíèÿ âî âðåìåíè ñîñåäíèõ êàäðîâ (ãëàâíûì îáðàçîì äëÿ NTSC, è òîëüêî äëÿ ñòàòè÷íûõ ñþæåòîâ). Äðóãèì ìåòîäîì ÿâëÿåòñÿ ïðîñòðàíñòâåííîå ñãëàæèâàíèå ïîäîáíûõ ó÷àñòêîâ.  íàèáîëåå ýôôåêòèâíîì àëãîðèòìå Rainbow Killer («óáèéöà ðàäóã») ñíà÷àëà èùóòñÿ ðåçêèå êðàÿ îáúåêòîâ â ÿðêîñòíîì êàíàëå, à çàòåì ïðîèçâîäèòñÿ ðàçìûòèå êàíàëîâ öâåòíîñòè âáëèçè íàéäåííûõ êðàåâ. Àëãîðèòì ðåàëèçîâàí â ñêðèïòå-ôóíêöèè DeRainbow (ñîñòàâèòåëü "sh0dan"). Èñïîëüçóþòñÿ ïëàãèíû Msharpen (ðàçðàáîò÷èê Donald Graft) äëÿ ïîñòðîåíèå ìàñêè êðàåâ, MipSmooth (ðàçðàáîò÷èê "sh0dan") äëÿ ðàçìûòèÿ, è MaskTools (ðàçðàáîò÷èêè "Kurosu", "Manao") äëÿ îáúåäèíåíèÿ. Îòìåòèì, ÷òî ôóíêöèÿ DeRainbow ïîäðàçóìåâàåò ïðîãðåññèâíûé âõîäíîé êëèï ôîðìàòà YV12, äëÿ öâåòîâîãî ôîðìàòà YUY2 åñòü àíàëîãè÷íàÿ ôóíêöèÿ DeRainbowYUY2. Äëÿ ÷åðåññòðî÷íîãî âèäåî èñïîëüçóéòå ðàçáèâêó íà ïîëÿ. Ïîäàâëåíèå øóìà (è ïîâûøåíèå ðåçêîñòè) ëó÷øå äåëàòü ïîñëå óäàëåíèÿ ðàäóãè. # Ïðèìåð ñêðèïòà 15.1 # Èñïîëüçóåò ïëàãèíû Msharpen, MipSmooth, MaskTools function DeRainbow(clip org, int "thresh") { # ïðîâåðêà ôîðìàòà ñ ñîîáùåíèåì 16. Êîìïåíñàöèÿ äâèæåíèÿ Îöåíêà äâèæåíèÿ è åãî êîìïåíñàöèÿ — ñëîæíûé ñïîñîá ïîâûøåíèÿ êà÷åñòâà îáðàáîòêè ïðè ïîíèæåíèè øóìà, äåèíòåðëåéñå, èçìåíåíèè ÷àñòîòû (à â êîäèðîâùèêàõ â MPEG ýòà èíôîðìàöèÿ èñïîëüçóåòñÿ äëÿ ïîâûøåíèÿ ñòåïåíè ñæàòèÿ). Ðàññìîòðèì ñëó÷àé ïðîâîäêè êàìåðû (ïàíîðàìèðîâàíèÿ) ïðè ñúåìêå è åå âëèÿíèå íà äèíàìè÷åñêîå ïîíèæåíèå øóìà. Ïðè ýòîì âñå îáúåêòû â ñîñåäíèõ êàäðàõ íå ñîâïàäàþò ïî ðàñïîëîæåíèþ, ïîýòîìó ãëóïûé àëãîðèòì ôèëüòðàöèè (óñðåäíåíèÿ) äàñò ïðèçðàêè ïî âñåìó êàäðó, à óìíûé àëãîðèòì áóäåò âûíóæäåí óìåíüøèòü ñòåïåíü ôèëüòðàöèè òàêæå ïî÷òè ïî âñåìó êàäðó. Åñëè ìû ñäâèíóëè áû ïðåäûäóùèé êàäð íà âåëè÷èíó ïåðåìåùåíèÿ êàìåðû, òî ïî÷òè âñå îáúåêòû ñîâïàëè áû, è ýôôåêòèâíîñòü ïîíèæåíèÿ øóìà çíà÷èòåëüíî óâåëè÷èëàñü. Òàêîå ãëîáàëüíîå äâèæåíèå (ñìåùåíèå, çóì, âðàùåíèå) ïîçâîëÿåò îöåíèòü è êîìïåíñèðîâàòü ïëàãèí DePan (ðàçðàáîò÷èê "Fizick"), êîòîðûé âêëþ÷àåò ôóíêöèþ-ñåðâåð îöåíêè äâèæåíèÿ DepanEstimate, ïðîèçâîäÿùóþ êëèï â ñïåöèàëüíîì ôîðìàòå ñî âñòàâëåííûìè â ïåðâûå ñòðîêè äàííûìè î äâèæåíèè, è íåñêîëüêî ôóíêöèé-êëèåíòîâ, èñïîëüçóþùèõ ýòè äàííûå äëÿ êîìïåíñàöèè. #Ïðèìåð ñêðèïòà 16.1 LoadPlugin("Depan.dll") SeparateFields() DepanInterleave(data=M, prev=1, next=1) # óòðîåííîå ÷èñëî êàäðîâ DeGrainMedian() # íåêîòîðûé øóìîïîíèæàþùèé ôèëüòð Weave()  ñêðèïòå èñïîëüçîâàíà ôóíêöèÿ DePanInterleave, êîòîðàÿ äëÿ êàæäîãî òåêóùåãî êàäðà ïîäàåò íà âûõîä òðîéêó ïîõîæèõ êàäðîâ: ñêîìïåíñèðîâàííûé ïî äâèæåíèþ âïåðåä ïðåäûäóùèé, òåêóùèé è ñêîìïåíñèðîâàííûé ïî äâèæåíèþ íàçàä ïîñëåäóþùèé. Ñîâìåñòíî ñ ïîñëåäóþùåé ïðîðåæèâàþùåé êîìàíäîé SelectEvery, îíè îáðàçóþò êàê áû ñêîáêè (îáêëàäêè), âíóòðè êîòîðûõ ïèøåì âðåìåííîé (ïðîñòðàíñòâåííî-âðåìåííîé) ôèëüòð. Îòìåòèì, ÷òî òàêàÿ îáðàáîòêà íå èìååò ñìûñëà ñ ÷èñòî ïðîñòðàíñòâåííûìè ôèëüòðàìè, äëÿ íèõ êîìïåíñàöèÿ íå íóæíà, èõ ìîæíî óêàçàòü äî óòðîåíèÿ. Åùå îáðàòèì âíèìàíèå, ÷òî äëÿ íåêîòîðûõ âðåìåííûõ ôèëüòðîâ, ñ áîëüøèì âðåìåííûì ðàäèóñîì (áîëüøå îäíîãî êàäðà), íóæíî ñîîòâåòñòâåííî óâåëè÷èòü ÷èñëî êîìïåíñèðîâàííûõ êàäðîâ â ãðóïïå (ïàðàìåòðàìè prev, next), è ñîîòâåòñòâåííî èçìåíèòü ïàðàìåòðû SelectEvery.  ÷àñòíîñòè, ïðè ïîñëåäîâàòåëüíîì ïðèìåíåíèè äâóõ âðåìåííûõ ôèëüòðîâ èõ ðàäèóñû ñêëàäûâàþòñÿ. #Ïðèìåð ñêðèïòà 16.2 LeakKernelBob(order=1) # äëÿ TFF AssumeTFF() # LeakKernelBob íå ñîõðàíÿåò äîìèíàíòíîñòü ïîëåé M=DepanEstimate(trust=3, fftw=true) # ñïåöêëèï M ñ äàííûìè ïî äâèæåíèþ DepanInterleave(data=M,prev=1,next=1)#óòðîåííîå ÷èñëî êàäðîâ DeGrainMedian() # íåêîòîðûé øóìîïîíèæàþùèé ôèëüòð SeparateFields() weave()  ïðèâåäåííîì ñêðèïòå ïðè îòñóòñòâèè øóìîïîäàâèòåëÿ èñõîäíûé êëèï ïåðåäàåòñÿ íà âûõîä íåèçìåííûì, à äâà óðîâíÿ "ñêîáîê" (âíåøíèé Bob è âíóòðåííèé Depan) ñòðåìÿòñÿ ñäåëàòü ñîñåäåé ôèëüòðóåìîãî êàäðà (ïîëÿ) êàê ìîæíî áîëåå íà íåãî ïîõîæèìè. Åùå îäíèì èñïîëüçîâàíèåì ãëîáàëüíîãî äâèæåíèÿ ÿâëÿåòñÿ òàêàÿ åãî ÷àñòè÷íàÿ êîìïåíñàöèÿ, ïðè êîòîðîé ïðîèñõîäèò ñíèæåíèå òðÿñêè êàäðà, êàê â àïïàðàòíûõ ñòàáèëèçàòîðàõ âèäåîêàìåð. Îäèí èç ïðîñòûõ àëãîðèòìîâ ñòàáèëèçàöèè ðåàëèçîâàí â ôóíêöèè DepanStabilize. SeparateFields() DepanStabilize(data=M, cutoff=1, mirror=15) # còàáèëèçàöèÿ Weave() DeGrainMedian(interlaced=true) # ôèëüòðàöèÿ ïîñëå ñòàáèëèçàöèè Íåêîòîðóþ ñòàáèëèçàöèþ ìîæíî ðåàëèçîâàòü òàêæå ñ ïîìîùüþ ïëàãèíà Motion (ðàçðàáîò÷èê "mg262"), âîçìîæíî òàêæå èñïîëüçîâàíèÿ èçâåñòíîãî ïëàãèíà DeShaker (ðàçðàáîò÷èê Gunnar Thalin) äëÿ VirtualDub, ñ êîòîðûì DePan èìååò îáùèé ôîðìàò ëîã-ôàéëîâ. Ïðè ïîìîùè ÷àñòè÷íîé êîìïåíñàöèè ãëîáàëüíîãî äâèæåíèÿ òàêæå ìîæíî ïîñòðîèòü êàäðû, ñîîòâåòñòâóþùèå ïðîìåæóòî÷íûì ìîìåíòàì âðåìåíè, ÷òî ìîæíî èñïîëüçîâàòü, íàïðèìåð, äëÿ ïîâûøåíèÿ ÷àñòîòû êàäðîâ ñòàðûõ ëþáèòåëüñêèõ óçêîïëåíî÷íûõ ôèëüìîâ, ñúåìêè ïàíîðàì ñòàíîâÿòñÿ áîëåå ïëàâíûìè. Îäíàêî êîìïåíñàöèÿ ãëîáàëüíîãî äâèæåíèÿ ýôôåêòèâíà íå âñåãäà, à òîëüêî åñëè äâèæåíèå äåéñòâèòåëüíî â îñíîâíîì ãëîáàëüíîå. Åñëè äâèæåíèå îáúåêòîâ ñóùåñòâåííî ðàçíèòñÿ, òî íåîáõîäèì àíàëèç è êîìïåíñàöèÿ ëîêàëüíîãî äâèæåíèÿ, ÷òî ðåàëèçîâàíî â ïëàãèíàõ MVTools (ðàçðàáîò÷èêè "Manao", "Fizick") è Motion (ðàçðàáîò÷èê "mg262"), êîòîðûå âåäóò àíàëèç ïîáëî÷íî. Ïëàãèí Motion âûñîêî îïòèìèçèðîâàí ïî ñêîðîñòè, íî îöåíêà äâèæåíèÿ áîëåå òî÷íà ó ïëàãèíà MVTools, êîòîðûé è áóäåò îïèñàí â äàííîé ñòàòüå. Èñïîëüçîâàíèå êîìïåíñàöèè ëîêàëüíîãî äâèæåíèÿ äëÿ öåëåé ïîíèæåíèÿ øóìà àíàëîãè÷íî ðàññìîòðåííîìó èñïîëüçîâàíèþ ãëîáàëüíîãî äâèæåíèÿ. Äëÿ êàæäîãî áëîêà â òåêóùåì êàäðå íàõîäèòñÿ ïîõîæèé íà íåãî áëîê â ïðåäûäóùåì, êîìïåíñàöèåé ïèêñåëè ñòàâÿòñÿ íà ñîîòâåòñòâóþùèå ìåñòà, è ïðîèçâîäèòñÿ ôèëüòðàöèÿ. Âïåðâûå äëÿ AviSynth ýòî áûëî ðåàëèçîâàíî â èçâåñòíîì ïëàãèíå Dust (ðàçðàáîò÷èê "Steady"), êîòîðûé áûë â ñâîå âðåìÿ ñàìûì ëó÷øèì è ìåäëåííûì øóìîïîäàâèòåëåì.  ïëàãèíå MVTools èìååòñÿ âñòðîåííàÿ ôóíêöèÿ ïîíèæåíèÿ øóìà MVDenoise à òàêæå íîâàÿ óñîâåðøåíñòâîâàííàÿ MVDegrain2. Áîëåå óíèâåðñàëüíûì (ýòî íå îçíà÷àåò îïòèìàëüíûì) ðåøåíèåì ÿâëÿåòñÿ íåçàâèñèìàÿ êîìïåíñàöèÿ äâèæåíèÿ è èñïîëüçîâàíèå ñ íèì ïðîèçâîëüíîãî âðåìåííîãî èëè ïðîñòðàíñòâåííî-âðåìåííîãî øóìîïîäàâèòåëÿ. #Ïðèìåð ñêðèïòà 16.5 LoadPlugin("MVTools.dll") AssumeTFF() # Èçìåíèòå äëÿ DV íà AssumeBFF ConvertToYV12(interlaced=true) # ïîêà ïîääåðæèâàåòñÿ YV12 MVBob() # Áîá-äåèíòåðëåéñ ñ ïàðàìåòðàì ïî-óìîë÷àíèþ SelectEven() # âûáðàëè ÷åòíûå êàäðû (âåäóùåå ïîëå ÷åòíîå) Äðóãîé èçâåñòíîé àíàëîãè÷íîé ôóíêöèåé ÿâëÿåòñÿ ñêðèïò MCBob (ñîñòàâèòåëü — "Didee"), èñïîëüçóþùèé ïîáëî÷íóþ êîìïåíñàöèþ MVCompensate è ïîýòîìó íåñêîëüêî ìåíåå ìåäëåííûé. Îòìåòèì, ÷òî àëãîðèòìû àíàëèçà è êîìïåíñàöèÿ äâèæåíèÿ íå ñîâåðøåííû (ïëàãèíû è ñêðèïòû íàõîäÿòñÿ â ïðîöåññå ðàçðàáîòêè), è âîçìîæíû íåêîòîðûå àðòåôàêòû. Ðÿä çàùèòíûõ ìåð èõ ïî ïðåäîòâðàùåíèþ óìåíüøàåò è áåç òîãî íåâûñîêóþ ñêîðîñòü îáðàáîòêè. Ñàìîé ñëîæíîé ïðîáëåìîé ÿâëÿåòñÿ íå êîìïåíñàöèÿ, à èíòåðïîëÿöèÿ äâèæåíèÿ, òî åñòü âîññòàíîâëåíèå (ðåêîíñòðóêöèÿ) ìåñòîïîëîæåíèÿ è ôîðìû äâèæóùèõñÿ îáúåêòîâ èçîáðàæåíèÿ â ïðîìåæóòî÷íûå âðåìåíà ìåæäó êàäðàìè, íàïðèìåð, äëÿ èçìåíåíèÿ ÷àñòîòû êàäðîâ, ïðåîáðàçîâàíèÿ PAL-NTSC è ò.ï. (òåìû çàñëóæèâàþò îñîáîãî ðàññìîòðåíèÿ è îáñóæäàþòñÿ). Ïðåîáðàçîâàíèå ÷àñòîòû ïðîâîäèòñÿ ñ ïðîãðåññèâíûì âèäåî, à äëÿ ÷åðåññòðî÷íîãî ïðåäâàðèòåëüíî ïðèìåíÿåòñÿ äåèíòåðëåéñ (òèïà Áîá äëÿ âèäåîêàìåðû èëè ïîäáîð ïîëåé è ïðîðåæèâàíèÿ äëÿ ôèëüìîâ), çàòåì ïðåîáðàçîâàíèå ÷àñòîòû ñ ïîñëåäóþùèì âûäåëåíèåì íóæíûõ ïîëåé è ïðåîáðàçîâàíèåì âèäåî â ÷åðåññòðî÷íîå (ïðè íåîáõîäèìîñòè). Èñïîëüçóåìûå â ôóíêöèè MVFlowFps (è â ôóíêöèÿõ-ñêðèïòàõ ïëàãèíà Motion òèïà MotionProtectedFps) ìåòîäû ìîãóò äàòü äëÿ ìíîãèõ âèäåî-îòðåçêîâ äîñòàòî÷íî íåïëîõèå ðåçóëüòàòû, íà óðîâíå ëó÷øèõ êîììåð÷åñêèõ ïàêåòîâ. #Ïðèìåð ñêðèïòà 16.7 LoadPlugin("MVTools.dll") # èñïîëüçóåì ïåðåêðûòèå áëîêîâ overlap äëÿ êà÷åñòâà # ïðÿìûå âåêòîðà äâèæåíèÿ # óäâîèì ÷àñòîòó, óäâàèâàÿ åå ÷èñëèòåëü è íå ìåíÿÿ çíàìåíàòåëü source.MVFlowFps(backward_vec, forward_vec,\ num=2*FramerateNumerator(source), \ den=FramerateDenominator(source), idx=1) Íî â ðÿäå ñëó÷àåâ ïîòðåáóåòñÿ êðîïîòëèâàÿ ðàáîòà ïî ïîäáîðó ïàðàìåòðîâ è ñîñòàâëåíèþ ñêðèïòà äëÿ áîðüáû ñ àðòåôàêòàìè, ñ ìåäëåííîé îáðàáîòêîé è áåç ãàðàíòèè ïîëó÷åíèÿ ïðèåìëåìûõ ðåçóëüòàòîâ äëÿ âñåõ êàäðîâ ââèäó ðÿäà ïðè÷èí (çàñëîíåíèÿ îáúåêòîâ, íàëè÷èÿ ïîâòîðÿþùèõñÿ ñõîæèõ ýëåìåíòîâ, âñïûøåê, î÷åíü áûñòðûõ äâèæåíèé, èçìåíåíèÿ ôîðìû, îãðàíè÷åíèé è íåäîñòàòêîâ èñïîëüçóåìîãî ìåòîäà).  òàêîì ñëó÷àå ìîæíî èñïîëüçîâàòü è áîëåå ïðîñòûå ìåòîäû èçìåíåíèÿ ÷àñòîòû, àíàëîãè÷íûå èñïîëüçóåìûì ïîäàâëÿþùèì áîëüøèíñòâîì ìîíòàæíûõ ïðîãðàìì è êîäèðîâùèêîâ (èëè ïðîñòî ïîëîæèòüñÿ íà íèõ).  ÷àñòíîñòè, âñòðîåííàÿ â AviSynth ôóíêöèÿ ConvertFps ðàáîòàåò áûñòðî è èñïîëüçóåò ñìåøåíèå (blend) ñîñåäíèõ êàäðîâ ñ âåñîì, ïðîïîðöèîíàëüíûì áëèçîñòè êàäðà ê ðàññ÷èòûâàåìîìó ìîìåíòó âðåìåíè. Ðåêîìåíäóåòñÿ, åñëè ýòî, âîçìîæíî, íå òåðÿòü îðèãèíàëüíûõ êàäðîâ (ïîëåé) ïðè ïðåîáðàçîâàíèè, òî åñòü óâåëè÷èâàòü ÷àñòîòó êðàòíî, è, íàïðèìåð, ïîïðîáîâàòü ïðåîáðàçîâàòü ôîòîàïïàðàòíîå 15 Ãö âèäåî â ñòàíäàðòíûé ôîðìàò NTSC 30 Ãö (òî÷íåå 29,97), à íå â PAL 25 Ãö. Åñòü è ôóíêöèÿ ChangeFps, ðåàëèçóþùàÿ ìåòîä äóáëèðîâàíèÿ êàäðîâ, ÷òî ïîçâîëÿåò èçáåæàòü èõ èçìåíåíèÿ, íî çà ñ÷åò ââåäåíèÿ ïðåðûâèñòîñòè äâèæåíèÿ. Ñòîèò îòìåòèòü è íàëè÷èå ôóíêöèè AssumeFps, êîòîðàÿ   íå ìåíÿåò ïîñëåäîâàòåëüíîñòü è ÷èñëî êàäðîâ, à ïðîñòî çàñòàâëÿåò AviSynth ïîëàãàòü, ÷òî ÷àñòîòà ðàâíà íîâîìó çàäàííîìó çíà÷åíèþ (óäîáíî äëÿ ìàëûõ èçìåíåíèé ÷àñòîòû çàõâà÷åííîãî âèäåî òèïà 24,995, íî ìîæåò ïîòðåáîâàòüñÿ ïîäãîíêà çâóêà). Ìîæåò áûòü îðãàíèçîâàíî è èçìåíåíèå ÷àñòîòû ïóòåì ïðåîáðàçîâàíèÿ èç ïðîãðåññèâíîãî â ÷åðåññòðî÷íîå âèäåî ñ ïîâòîðîì íåêîòîðûõ ïîëåé ïî îïðåäåëåííîìó øàáëîíó ñ èñïîëüçîâàíèåì DoubleWeave, SelectEvery è Weave (ôàêòè÷åñêè ýòî ïðîìûøëåííûé ñòàíäàðòíûé ìåòîä Pulldown, èñïîëüçóåìûé ïðè çàïèñè ôèëüìîâ â ôîðìàòå NTSC, è, êñòàòè, ìîæåò áûòü ðåàëèçîâàí ïðÿìîé ìîäèôèêàöèåé ãîòîâîãî MPEG2 ôàéëà ïðîãðàììîé DGPullown áåç ó÷àñòèÿ AviSynth). Âû ìîæåòå ñàìè âûáðàòü ñâîé "ÿä" (ïëàâíîñòü ñ âîçìîæíûìè àðòåôàêòàìè, ñìåøåíèå êàäðîâ èëè ïðåðûâèñòîñòü). 17. Îáðàáîòêà çâóêà Íàðÿäó ñ îáðàáîòêîé èçîáðàæåíèé, AviSynth èìååò ðÿä áàçîâûõ âîçìîæíîñòåé è äëÿ îáðàáîòêè çâóêà. Åñòåñòâåííî, ïðè ââîäå âèäåîôàéëà ñ÷èòûâàåòñÿ è çâóê (â íåêîòîðûõ ñëó÷àÿõ, íàïðèìåð, äëÿ MPEG2, ìîæåò ïîòðåáîâàòüñÿ äîïîëíèòåëüíàÿ êîìàíäà ñ÷èòûâàíèÿ çâóêà). Òî÷íåå, îí, êàê è âèäåî, ðàñïàêîâûâàåòñÿ, ïîýòîìó íà âûõîäå èç AviSynth ôîðìàò çâóêà — âñåãäà íåñæàòûé PCM. Ñëåäîâàòåëüíî, åñëè âû, íàïðèìåð, õîòèòå ïåðåêîäèðîâàòü MPEG2 âèäåî â MPEG2 è íå õîòèòå ïåðåêîäèðîâàòü çâóê, åãî íàäî çàðàíåå äåìóëüòèïëåêñèðîâàòü (îòäåëèòü îò âèäåî), íàïðèìåð, â ïðîãðàììå DGIndex ïàêåòà DGDecode, è ïîñëå î÷èñòêè è êîäèðîâàíèÿ âèäåî — ìóëüòèïëåêñèðîâàòü (ïðè ñîõðàíåíèè äëèòåëüíîñòè). Çâóê ïðèâÿçàí ê âèäåî, ïðè íàðåçêå âèäåî îòðåçàþòñÿ è ñîîòâåòñòâóþùèå ó÷àñòêè çâóêà. Âûøå â ñêðèïòàõ ìû èñïîëüçîâàëè ïðè îáúåäèíåíèè êëèïîâ îïåðàòîð äâîéíîãî ïëþñà ++. Ýòî ýêâèâàëåíò ôóíêöèè AlignedSplice, êîòîðàÿ, â îòëè÷èå îò îäèíî÷íîãî ïëþñà ( UnAlignedSplice), ïîäðåçàåò ïåðâóþ çâóêîâóþ äîðîæêó èëè âñòàâëÿåò òèøèíó ïðè íåîáõîäèìîñòè, ÷òîáû âòîðàÿ çâóêîâàÿ äîðîæêà îñòàâàëàñü ñèíõðîíèçèðîâàííîé ñ âèäåî. Çâóê ìîæíî ñ÷èòûâàòü è îòäåëüíî îò âèäåî ñ ïîìîùüþ êîìàíäû WAVSource. Ôîðìàòû àóäèî, âñòðå÷àþùèåñÿ íà DVD (AC3, DTS, MPA , LPCM) ìîæíî èìïîðòèðîâàòü ñ ïîìîùüþ ïëàãèíà NicAudio (ðàçðàáîò÷èê "Nic"). Äëÿ ÷òåíèÿ äðóãèõ ôîðìàòîâ ìîæíî ïîïðîáîâàòü BassAudio (ðàçðàáîò÷èê "dimzon") è FFMpegSource.  AviSynth èìåþòñÿ êîìàíäû óñèëåíèÿ Amplify, íîðìàëèçàöèè # LoadPlugin("C:\dgdecode.dll") # ïëàãèí äëÿ ÷òåíèÿ MPEG2 âèäåî # LoadPlugin("C:\nicaudio.dll") # ïëàãèí äëÿ ÷òåíèÿ MPEG2 àóäèî # Îòêðîåì DVD âèäåî, óêàçàâ ôàéë èíäåêñà D2V MPEG2Source(d2v="mydvd.d2v") # ÷èòàåì âèäåî â ïîäðàçóìåâàåìûé Last audio=NicAC3Source("mydvd.ac3") # ÷èòàåì çâóê â ïåðåìåííóþ audio # èëè NicMPASource, NicLPCMSource, NicDTSSource # ðåçóëüòàò ïîìåùàåòñÿ â íîâûé êëèï Last Ýêñïîðò àóäèî ìîæíî îðãàíèçîâàòü ñ ïîìîùüþ ôóíêöèè (ïëàãèíà) SoundOut (ðàçðàáîò÷èê Klaus Post "sh0dan"). Êàê è â ñëó÷àå ñ âèäåî, ñóùåñòâóþò íåêîòîðûå ïðîãðàììû-óòèëèòû, èñïîëüçóþùèå AviSynth, â ÷àñòíîñòè BeHappy (ðàçðàáîò÷èê "dimzon") — îñíîâàííûé íà AviSynth èíñòðóìåíò äëÿ òðàíñêîäèðîâàíèÿ àóäèî. Åñòü óòèëèòà êîìàíäíîé ñòðîêè Avs2wav (ðàçðàáîò÷èê "Kassandro") äëÿ ÷òåíèÿ AVS ñêðèïòîâ è ãåíåðàöèè WAV ôàéëîâ èëè WAV àóäèî ïîòîêîâ (íà âõîä íåêîòîðûõ ïðîãðàìì-êîäèðîâùèêîâ). Õî÷åòñÿ çàêîí÷èòü ñòàòüþ íà ìàæîðíîé íîòå (èìååòñÿ êîìàíäà Tone, ïðîèãðàéòå ôàéë Authors.avs â ïîäêàòàëîãå Examples), íî åñëè íè÷åãî íå íðàâèòñÿ è õî÷åòñÿ òèøèíû, òî åñòü êîìàíäà ïîëíîãî óäàëåíèÿ çâóêà KillAudio. Êñòàòè, ïîñëåäíèì äîñòèæåíèåì íîâåéøåé âåðñèè AviSynth 2.5.7 ÿâèëàñü êîìàíäà KillVideo, ïîçâîëÿþùàÿ, íàêîíåö, äîâåñòè îáðàáîòêó âèäåî (â òîì ÷èñëå óäàëåíèå ïîìåõ) äî àáñîëþòíîãî èäåàëà (â áîëåå ñòàðûõ âåðñèÿõ èìåëàñü ëèøü êîìàíäà BlankClip, ãåíåðèðóþùàÿ ÷åðíûé ýêðàí è ìîë÷àíèå. À åùå ÷òî åñòü? Êðîìå ðàññìîòðåííûõ â íàñòîÿùåé ñòàòüå, AviSynth èìååò ìíîãî äðóãèõ âîçìîæíîñòåé. Îí íåèñ÷åðïàåì, êàê è àòîì (è ëþáîé ÿçûê, íî íàäî ó÷èòüñÿ...). Èìåþòñÿ, â ÷àñòíîñòè, ôóíêöèè óñëîâíîãî âûïîëíåíèÿ, òàêæå åñòü ïëàãèíû äëÿ âûïîëíåíèÿ äðóãèõ ñïåöèôè÷åñêèõ çàäà÷ (íàïðèìåð, ðåñòàâðàöèè ñòàðîãî âèäåî, ñîçäàíèÿ ýôôåêòîâ ïåðåõîäîâ, è ò.ä.). Ñîâåòóþ îçíàêîìèòüñÿ ñ äîêóìåíòàöèåé, â òîì ÷èñëå ïîñìîòðåòü "ïðîäâèíóòûå" òåìû è îïèñàíèÿ ïëàãèíîâ, äàæå Âàìè íå èñïîëüçóåìûõ — íàéäåòå ìíîãî ïîçíàâàòåëüíîãî îò êâàëèôèöèðîâàííûõ àâòîðîâ! Ìíîãî ïîëåçíîé (õîòÿ èíîãäà ïðîòèâîðå÷èâîé) èíôîðìàöèè ìîæíî íàéòè â ñïåöèàëèçèðîâàííûõ ôîðóìàõ. Îôèöèàëüíûé ñàéò ýòî   äîñòàòî÷íî èíòåðåñíîå ÿâëåíèå, õîòü è íå âñåãäà ïîíÿòíîå â íàâèãàöèè — Richard Berg ñäåëàë âñå åãî Wiki-ñòðàíèöû ñ âîçìîæíîñòüþ ðåäàêòèðîâàíèÿ ïîñåòèòåëÿìè, è âû ìîæåòå, íàïðèìåð, äîáàâèòü ñòðàíè÷êó ñ îïèñàíèåì ñâîåãî ñêðèïòà. Ïðîãðàììèñòàì ñ íà÷àëüíûìè çíàíèÿìè C++ (èëè ñ íåêîòîðûìè îãðàíè÷åíèÿìè Pascal, Delphi) íå ñîñòàâèò òðóäà îñâîèòü AviSynth FilterSDK è íàïèñàòü íîâûé ïëàãèí äëÿ ðåàëèçàöèè ñâîèõ ñîáñòâåííûõ èäåé (ïðîùå ÷åì äëÿ VirtualDub). Õîòü ôîðìàëüíîãî ïîëíîãî îïèñàíèÿ SDK íå ñóùåñòâóåò, ìíîãî èíôîðìàöèè åñòü íà îôèöèàëüíîì ñàéòå, äèñòðèáóòèâå, à òàêæå â îòêðûòûõ èñõîäíèêàõ èìåþùèõñÿ ïëàãèíîâ. Îñòàëüíûå, ïðîáóéòå ñèëû â ñêðèïòîïèñàíèè! Îñíîâíûå ññûëêè ïî òåìå:

Как убрать шум с аудиозаписи. Одна из наиболее частых проблем, возникающих при Показано как убрать фон у вашего микрофона, так-же можно усилить сам микрофон Причины шума в ушах и голове: как избавиться от него лечением народными средствами Основы использования утилиты AviSynth при обработке видео. 1. Что такое AviSynth 2. Установка Как пользоваться программой Audacity? Прежде чем отвечать на данный вопрос, необходимо

  • Архив линий марафон
  • Монтана лудогорец разград
  • Онлайн азино еврогранд
  • Форумы про казино
  • Cap reached перевод
  • как убрать шум при записи видео Как пользоваться программой Audacity? Если Вас все устраивает, то можно скачивать программу. Затем нужно ознакомиться с интерфейсом программы и ее инструментами. Начать пользоваться! Информации, представленной на данной странице, вполне достаточно для быстрого старта. Обзор основных возможностей пакета Audacity Возможности Audacity обеспечивает выполнение следующих функций: импорт и экспорт файлов WAV, MP3 (с использованием кодировщика LAME MP3), Ogg Vorbis, FLAC и других форматов; запись с микрофона, линейного входа и других источников; запись с одновременным прослушиванием имеющихся дорожек; запись до 16 каналов одновременно (необходима многоканальная звуковая карта); эффекты и расширения как в комплекте поставки, так и устанавливаемые отдельно (LADSPA либо на функциональном языке Nyquist); индикаторы уровня записи и воспроизведения; изменение темпа с сохранением высоты тона; изменение высоты тона с сохранением темпа; удаление шума по образцу; воспроизведение множества дорожек одновременно (без поддержки многоканального звука — при воспроизведении используются только два канала, в которые микшируются все дорожки); сведение дорожек с разными качественными характеристиками с автоматическим преобразованием к заданным характеристикам проекта в режиме реального времени; результаты могут сохраняться во множество форматов, обеспечиваемых библиотекой libsndfile. Поддерживаемые звуковые форматы Audacity с кратким их описанием . Внутренний формат Audacity (AUP). Проекты Audacity хранятся в этом формате. Если вы знакомы с программой Photoshop, то можно провести аналогию между форматами PSD и AUP. Формат позволяет хранить звуковые дорожки, дорожку времени, дорожки для заметок, а также их взаимное расположение. Поскольку данный формат понимает только Audacity, перед распространением звукового файла его рекомендуется сохранить в один из стандартных форматов, приведенных ниже. WAV (Формат Windows Wave). Это формат хранения звуковых файлов без сжатия, являющийся стандартным в операционной системе Windows. AIFF (Формат Audio Interchange). Это аналог формата WAV для операционной системы Макинтош. Формат Sun Au / NeXT. Это основной формат хранения звука для компьютеров Sun и NeXT. Формат предполагает простой алгоритм сжатия с низким коэффициентом. Данный формат широко используется и продолжает использоваться в настоящее время для несложных эффектов, где не требуется высокое качество, в том числе при создании Web-сайтов. MP3 (MPEG I, layer 3). Это один из самых популярных форматов сжатия аудиофайлов. Коэффициент сжатия достигает 10:1 при очень слабых искажениях. Audacity может встраивать в себя другие программные средства, которые работают с MP3, например библиотеку LAME. Ogg Vorbis. Это новейший сжатый формат, который разрабатывался как свободная альтернатива MP3. Формат менее распространён, но по качеству представления звука превосходит MP3. Экспорт в OGG Vorbis является встроенной функцией программы Audacity. Качество файлов OGG существенно выше, чем MP3, особенно для записей с низкой частотой преобразования. Где скачать эту программу Audacity? Audacity — свободный программный продукт, распространяемый на условиях GNU General Public License. Скачать последнюю стабильную версию можно на сайте проекта — audacity.sourceforge.net Обзор инструментов Audacity Рассмотрим группу инструментов панели Инструменты Audacity: Выделение (1) ? это главный инструмент. С помощью этого инструмента выделяется фрагмент сигнала (для выделения нескольких фрагментов надо одновременно с нажатием кнопки мыши нажать клавишу Shift). Выделенный фрагмент сигнала копируется сочетанием клавиш Ctrl+C. Воспроизведение начинается с начала выделения. Изменение огибающей (2) ? с помощью этого инструмента вы можете детально контролировать затухание и повышение громкости звука. При выборе этого инструмента выделяется часть огибающей зеленым цветом. Чтобы поставить контрольную точку (место перегиба), достаточно щелкнуть в этом месте и изменить огибающую. Чтобы удалить огибающую, щелкните на ней и перетащите за пределы дорожки. Изменение сэмплов (3) ? этот инструмент позволяет рисовать кривую сигнала. Надо отметить, что для его использования должен быть установлен соответствующий масштаб. При активации этого инструмента нажатие на комбинацию клавиши ALT + щелчок приводит к сглаживанию области сигнала. Комбинация клавиши CTRL + щелчок приводит к редактированию одного сэмпла (отсчета) на кривой. Сэмпл представляет собой минимальный участок графика дорожки, доступный для редактирования. Масштабирование (4) ? этот инструмент позволяет увеличивать отдельные участки аудиосигнала. Для возврата обычного масштаба используйте меню Вид>>Обычный масштаб. В дополнение можно отметить, что вы можете выделить участок кривой сигнала, щелкнув в каком-то месте и не отпуская кнопки мыши, переместив курсор. Сдвиг дорожки во времени (5) ? этот инструмент позволяет двигать дорожки относительно друг друга по времени. Также можно использовать команду Проект>>Выровнять и переместить. Универсальный инструмент (6) ? это инструмент, который, как и инструмент (3) служит для изменения кривой сигнала. Однако, в отличие от последнего, редактирует не отдельные сэмплы, а выделенный участок сигнала. Теперь опишем назначение кнопок панели Control Audacity Воспроизвести ? эта кнопка служит для начала воспроизведения звука. Если щелкнуть эту кнопку с нажатой клавишей Shift, то выделенный участок будет проигрываться в цикле. Запись ? эта кнопка служит для начала записи с входного устройства вашего компьютера. Для настройки записи используйте пункт меню Правка>>Настроить. Запись всегда производится с частотой дискретизации и чувствительностью установленной в проекте. Пауза ? щелчок по этой кнопке приводит к паузе в воспроизведении. Остановить ? данная кнопка используется для немедленной остановки воспроизведения. Перейти к концу дорожки ? перемещает курсор в конец проекта. Нажатие клавиши Shift + щелчок выделяет фрагмент дорожки от курсора до конца. Микшер Audacity Регулировки этой панели обеспечивают управление входными и выходными параметрами вашей звуковой карты. Ползунки будут находиться в крайней левой позиции, если функции звукозаписи не поддерживаются на вашем компьютере. Это также возникает в случае с некоторыми малораспространенными звуковыми картами. Левый ползунок устанавливает выходные параметры звуковой карты. С помощью правого ползунка устанавливается уровень входного сигнала для выбранного типа устройств (например, микрофона, линейного входа и т.п.). Если вы обнаружите, что звук искажается, следует снизить уровень входного сигнала. Во время записи рекомендуется выключить все входные устройства, кроме используемого для снижения шума. Селектор позволяет выбрать входное устройство, с которого будет производиться запись. Конкретный список определяется используемой звуковой картой. Панель инструментов Правка Все эти инструменты панели Правка Audacity выполняют абсолютно те же функции, что и соответствующие пункты меню Правка и сочетания горячих клавиш. Вырезать ? перемещает выделенную область сигнала в клипборд. Скопировать ? копирует выделенную область в клипборд. Вставить ? вставляет из клипборда в место, где находится курсор. Подрезка ? удаляет все вне зоны выделения. Заполнить тишиной — удаляет сигнал в зоне выделения. Отменить ? отменяет последнюю операцию. Нет ограничений на число отменяемых шагов. Повторить ? отменяет операцию Отменить. Уменьшить ? уменьшает масштаб звуковой дорожки Увеличить ? увеличивает масштаб выделенной части звуковой дорожки Уместить проект в окне ? подбирает масштаб таким образом, чтобы весь трэк уместился в одном окне Вид записанной аудиодорожки представлен на рисунке ниже: Вид окна программы Audacity Обратите внимание на панель слева. В ней представлена информация об открытом звуковом файле, а сверху располагается дорожка времени. Аудиодорожка имеет выпадающее меню, чтобы оно отобразилось просто щелкните на названии звукового файла в панель информации слева: Рассмотрим основные опции данного меню: Имя ? даёт возможность назвать дорожку уникальным именем. Переместить дорожку вверх ? перемещает дорожку среди других дорожек на одну позицию вверх. Волна ? задаёт отображение аудиосигнала в виде зависимостиамплитуды от времени. Спектр ? отображает спектр распределения аудиочастот во времени. Высота тона (EAC) ? отображает высоту тона во времени. Моно ? устанавливает воспроизведение дорожек на правом или левом канале. Левый канал ? устанавливает воспроизведение левого канала Правый канал ? устанавливает воспроизведение правого канала. Сделать дорожку стерео ? приводит к тому, что выбранная дорожка и та, что под ней становятся единой стереодорожкой. Разделить стереодорожку ? переводит стереодорожку в две монодорожки. Установить размер сэмпла ? обеспечивает выбор сэмпла (разрешение каждого отсчета) на дорожке. В результате все записываемые данные будут иметь выбранный формат. Установить частоту дискретизации ? устанавливает частоту дискретизации дорожки. Преобразование частоты производится автоматически, что дает возможность объединять в проект дорожки с разной частотой. Щелчок по кнопке Соло переводит данную дорожку в режим соло, то есть при воспроизведении будет звучать только эта дорожка. Эта функция не подлежит возврату по кнопке Отменить, но вы можете вернуть прежнее состояние просто щелкнув по этой кнопке еще раз. В режиме Соло воспроизводятся только активированные дорожки. Узнать их можно по нажатой кнопке (синего цвета). Для возврата в прежнее состояние надо просто щелкнуть по этой кнопке еще раз. Щелчок по кнопке Тихо приведёт к тому, что соответствующая дорожка перейдёт в режим Тихо, т.е. она не будет воспроизводиться при прослушивании. Чтобы вернуться в исходное состояние, необходимо ещё раз щелкнуть по этой кнопке. Дорожки, включенные (находящиеся) в режим Тихо, помечаются серым цветом. Громкость и Интерфейс Audacity Новый (Ctrl+N) ? cоздает новое пустое окно проекта. Открыть (Ctrl+O) ? выбор этого пункта открывает диалоговое окно для выбора файла. Файл будет открыт в новом окне. Audacity работает со следующими типами файлов: WAV, AIFF, NeXT/AU, IRCAM, MP3, Ogg Vorbis, MIDI, и внутренний формат Audacity (AUP). В дополнение отметим, что Audacity может открыть любой несжатый файл. Меню вызывается следующим образом: Проект>>Импортировать Raw-файл. Aydacity автоматически определит тип и параметры файла, которые предложит в диалоговом окне. Пользователю остается только подтвердить предложенные настройки или внести изменения. Закрыть (Ctrl+W) ? закрывает текущее окно проекта. Сохранить проект (Ctrl+S) ? сохраняет текущий проект Audacity в формате AUP. Это служебный формат Audacity, и он не предназначен для чтения другими программами. По завершении работы над проектом вам надо экспортировать его в другой (распространенный формат). Это можно сделать в меню Файл. Сохранить проект как (Ctrl+Shift+S) ? сохраняет текущий проект в формате Audacity (AUP) под другим именем и в другом месте диска. Экспортировать ? экспортирует текущий проект в нужный вам формат. Выйти (Ctrl-Q) ? закрывает все окна Audacity. Программа задаст вопрос, хотите ли Вы сохранить проект для использования в будущем. Опции меню Правка Вид>>История изменений в проекте. Повторить ? эта команда повторит отмененную команду. Используйте также меню Вид>>История изменений в проекте. Вырезать ? перемещает выделенную часть сигнала в клипборд. Скопировать ? копирует выделенную часть сигнала в клипборд. Вставка ? вставляет сигнал из клипборда. Обрезать по краям ? стирает все по обе стороны выделения. Удалить ? удаляет выделенную часть сигнала. Заполнить тишиной ? заменяет выделенную часть сигнала тишиной (сигналом с амплитудой, равной нулю). Разделить ? перемещает выделенную часть сигнала в собственную дорожку или дорожки, заполняя выделенную часть тишиной. Дублирование ? то же, что Разделить, но оставляет выделенную часть сигнала. Опции меню Вид Обычный масштаб ? устанавливает масштаб, который равен 1 дюйм на секунду (стоит по умолчанию). Отдалить ? уменьшает масштаб. Уместить в окне ? уменьшает масштаб до размеров текущего окна. Уместить по вертикали — растягивает график звукового файла по вертикали, заполняя пустое место (актуально для мониторов с большим разрешением) Масштабировать в выделение — увеличивает выделенный фрагмент. Установить формат времени — можно изменить градацию шкалы времени. Отцепить ? ряд опций позволяет расположить панели инструментов оптимальным образом для каждого пользователя. Опции меню Проект Импорт звукового файла — эта команда используется для импорта стандартных звуковых файлов в проек. Импорт заметок — эта команда импортирует текстовый файл, содержащий коды и временные метки и преобразовывает его в дорожку заметок. Импорт MIDI — это меню импортирует MIDI файл и помещает его в дорожку заметок. Audacity показывает его но не позволяет редактировать и проигрывать. Импортировать raw-файл — по этой команде можно вводить любой звуковой файл. Audacity просматривает его и попытается определить что это за файл и его параметры. В 90% случаев ей это удается. Вам остается подтвердить, щелкнув OK. Изменить ID3-теги — Открывает диалоговое окно, позволяющее редактировать ID3 теги, связанные с проектом для экспорта в MP3 Быстрое сведение — эта команда сводит все выбранные дрожки в одну или две дорожки. Количество дорожек в проекте определяет, как будет производиться смешение. Создать новую аудио дорожку — эта команда создаст новую пустую аудио дорожку, в которую можно копировать данные из других дорожек. Создать новую дорожку для заметок — создается новая дорожка для заметок, которую можно использовать для текстовых аннотаций. Остальные пункты меню не нуждаются в особом пояснении. Опции меню Создание Silence (Тишина) — вставляет паузу (тишину). Длина паузы определяется размером выделения. Если не сделано ни какого выделения, будет вставлена пауза длиной в 30 секунд. Создать Белый шум — действует так же, как вставка тишины, но вставляет белый шум (стационарный шум, спектральные составляющие которого равномерно распределены по всему диапазону задействованных частот. Примерами белого шума являются шум водопада). Создать волну — вставляет волну, выбранного типа, частоты и амплитуды. Длина определяется так же, как при вставке тишины. Pluck — вставляет синтезированную волну, длина определяется длиной выделения. Опции меню Эффекты Данное меню содержит множество пунктов. Каждый пункт соответствует одному эффекту. Я не буду описывать каждый пункт, т.к. это займет очень много времени. Я решил описать наиболее используемые и интересные эффекты. Я вынес это описание в отдельную главу (смотрите ниже). Опции меню Анализ Примечание: в этом меню располагаются плагины, которые непосредственно не предназначены для изменения звуковых дорожек, а служат для анализа. Например, для поиска тишины в открытом файле или в выделенном фрагменте. Они могут помечать области, отвечающие условиям анализа. По умолчанию это меню бывает пустым. Настройка Audacity Чтобы настроить этот замечательный аудиоредактор, обратитесь к пункту меню Правка >> Настроить. В открывшемся меню можно настроить различные параметры, начиная от используемых программой устройств ввода/вывода и заканчивая настройкой интерфейса. Данные настройки разделены на группы и каждая группа располагается на отдельной вкладке. Рассмотрим их более подробно. Закладка Audio I/O Устройство записи и воспроизведения звука. В качестве устройства воспроизведения и устройства записи лучше выбрать звуковую карту, как показано на рисунке. Воспроизводить существующие дорожки при записи новой. Отметив эту галочку, вы можете записывать файл при одновременном воспроизведении другого файла. Это удобно, когда, к примеру, надо записывать голос под аккомпанемент. Аппаратное сквозное воспроизведение — этот режим удобен для самоконтроля записи через наушники. Закладка Качество Остальные параметры можно оставить по умолчанию. Закладка Форматы файлов Если выбрать « Скопировать файл перед изменением безопасности«, Audacity будет работать медленнее, но вы всегда будете иметь копию файла по операциях редактирования. « Прочитать напрямую из файла» — более быстрый но менее безопасный режим. Экспорт в несжатый формат: эта команда позволяет экспортировать проект в несжатые форматы, т.е. форматы, обеспечивающие сохранение данных без потерь. Настройка экспорта в Ogg: Устанавливает параметры формата Ogg Vorbis. Ogg Vorbis является сжатым форматом, аналогично MP3, но в отличии от MP3 имеющим свободную лицензию. Нормальное качество Ogg Vorbis соответствует «5». Обратите внимание, что в отличии от MP3 Ogg Vorbis не устанавливает частоту дискретизации потому, что разные фрагменты требуют разную частоту. Однако, повышение качества кодирования всегда приводит к увеличению размера файла. Настройка экспорта в MP3: Эта настройка определяет качество кодирования в MP3. Более высокое качество требует большего размера файла. Закладка Спектрограммы Вы можете использовать спектрограммы вместо волнового представления. Вот установки для спектрального представления сигналов. Размер FFT: размер быстрого преобразования Фурье (БПФ) (Fast Fourier Transform (FFT) определяет на сколько детально будет показан спектр. В оттенках серого: определяет серые спектрограммы вместо цветных. Максимальная частота: устанавливайте этот диапазон в пределах от 22050 Hz до 4100 Hz. Многие приложения, например, по распознаванию речи, не требуют слишком высоких частот, по этому этот показатель надо ставить ниже. Закладки Каталоги, Интерфейс, Клавиатура, мышь Настройки на этих вкладках интуитивно понятны, описывать их нет необходимости. Использование фильтров и различных эффектов, доступных в аудиоредакторе Audacity Рассматриваемый звуковой редактор содержит множество интересных инструментов. Описать каждый из них я не смогу (да и сам пока не со всеми из них разобрался). Рассмотрю только часть из них. В дальнейшем планирую написать об их практическом применении с примерами. Нормализация Этот фильтр используется для выравнивания уровня записанного сигнала. В отличии от фильтра «Усиление сигнала» данный фильтр обеспечивает усиление в заданном диапазоне, т.е. максимальная амплитуда — фиксированное число. Этот фильтр обычно применяют после записи с микрофона. FFT-фильтр Инвертирование Крайне полезный фильтр, если надо выделить общую для двух дорожек часть. Как правило, при стереозаписи — это вокал. Если инвертировать один из каналов и произвести вычитание, вокал частично удалится из спектра и останется сопровождение. Плавное нарастание или затухание Повтор Разворот Смена темпа Этот фильтр удобно применять к записи речи. В отличии от «Смены скорости» он не меняет тональность, но меняет темп Удаление шума Усиление базовых частот Усиление сигнала Фазер Очень интересный фильтр сопровождает основной сигнал звуком, который получается с помощью фазосдвигателя. Сдиг по фазе производится низкочастотным модулятором, параметры которого вы можете менять: Эквалайзер

    97
    Игровые автоматы | КАК УБРАТЬ ШУМ ПРИ ЗАПИСИ ВИДЕО