التعامل مع المصادر المتداخلة
---------------------------------------
ملاحظة: p = Progressive = Progressive-scan ، و i = interlaced = Interlaced-scan
-----
--------------
والان سنأتي الى طرق ازالة التداخل وجعل المعدل 24000/1001 من اجل المشاهدة على الحاسوب
طبعا هنالك مصادر ينفع معها فلتر معين، ومصادر اخرى لا ينفع معها نفس الفلتر والعكس ايضا
وهنا يأتي دورك في التجريب ما متاح امامك، وانا ساحول تسهيل الامور هنا من خلال وضع الحلول الجيدة من خلال ما صادفت من مصادر
---
وقبل البدأ احب انبه على شيئين، احدهما الفيلد بليند الذي يولد تشبيح وتجده في انميات الPAL
لذا ابتعد عنها وابحث عن NTSC لان اليابان ntsc وما الpal الا نسخة اوربية مسجلة من ntsc وتحتوي عيوب النظامين
مع مشاكل تداخل وتشبيح بسبب تحويل المعدل من 30 الى 25 بشكل غير مدروس
----
وقد تصادفها ايضا في مصادر الntsc السيئة جدا، كالتي تم تسجيها من UHF و VHF
مثل هذه العينة لمقدمة كونان القديمة
لاحظ التشبيح في الزجاج المكسور
العينة على شكل فديو
http://www.gulfup.com/?N32rhV
الحل المتوفر لها هو
لا تستعمله الا على مثل تلك المصادر لانه يسبب اهتزاز بالكتابات او الحدود احيانا
---
والاخر هو ان هنالك تداخل بخطوط حدود الرسم، اشبه بتموج وتسنن الحدود، او شيء اشبه بالaliasing
وهذه المشكلة ممكن تحصلها بتي اس فياري تيل، هنا العينة
وهنا الفديو
http://www.gulfup.com/?HsYjlR
جرب هذه الامر
كود:
tfm.tdecimate(mode=1)
وسترى ما اقصد، خصوصا اخر لقطات (عند الدقيقة 1:22 تقريبا)
هذه ممكن حلها (او تجنب ظهورها في بعض المشاهد الغير متوقعة) ب
هذه الحالة موجودة في اغلب الانميات لكن بتفاوت، موجودة حتى بون بيس في بعض المشاهد السريعة
وحلها باستخدام animeivtc ، فهو يمنع حدوثها بكافة انماطه حتى الرابع منهم
---
هنالك مصادر بها Double hard telecine (اعراضه نفس صورة فياري تيل اعلاه وربما اسوء) مثال على مصدر به مشهد Double hard telecine هنا
http://www.gulfup.com/?bar0hk
يظهر في مشهد معين دون غيره فقط
وهنا مثال اخر لكريدز كله Double hard telecine هنا
http://www.gulfup.com/?3aQrTO
هذه العينات اعلاه لا تُحل الا بالمود الثالث من animeivtc، لكن المود الثالث من عيوبه انه ممكن يجيب العيد في المشاهد التي لا تحتاجه
وكذلك ثقيل جدا (حل الثقل يكون باستخدام mp_pipeline مع زيادة مستحقات الرام لعملية الافس)
لهذا نلجأ الى تطبيقه على مشهد معين فقط به تلك العلة
التفاصيل بالSPOILER ادناه
بخصوص بطئ المود الثالث فجرب زيادة مستحقات الرام للعملية المرتبطة بالافس (لانها محددة بـ512 بشكل افتراضي) عن طريق SetMemoryMax لكن هذا الامر خطر في حال لم تستعمل SoraSMServer او MP_Pipeline الاخير افضل طبعا تفاصيل اخرى http://amjadsony.wordpress.com/2012/...-1/#comment-42
اقتباس:
الرسالة الأصلية كتبت بواسطة امجد صلاح
عن طريق ApplyRange
وضيفة داخلية بالافس
تطبيق لها
كود:
ApplyRange(45, 314, "Tweak", 0,1,0,1.13)
ApplyRange(45, 314, "Tweak", 0,1,-15)
طبعا الـ45 فريم بداية مكان التأثير, اي لن تطبق الفلتر على كل المقطع
و 314 فريم نهاية تأثير الفلتر
_
او بفلتر (سكربت) خارجي لكي تكتب الفلاتر بشكلها الرسمي
JDL_ApplyRange
كود:
JDL_ApplyRange(startframe,endframe,"Deblock()")
JDL_ApplyRange(startframe,endframe,"dfttest()")
JDL_ApplyRange(startframe,endframe,"deen("a3d",4,8,9)")
JDL_ApplyRange(startframe,endframe,"fft3dgpu(bt=3,sigma=8,sharpen=1.3)")
JDL_ApplyRange(startframe,endframe,"awarpsharp2()")
|
الطرق اعلاه تنفع للفلاتر التي لا تغير عدد الفريمات ومعدلها
هنا طريقة برمجية بمساعدة امر التريم تنفع مع الفلاتر التي تغير عدد الفريمات ومنها فلاتر حل التداخل
كود:
a=Trim(0,7899).animeivtc(1)
b=Trim(7900,8143).animeivtc(3)
c=Trim(8144,36413).animeivtc(1)
a+b+c
او بطريقة اخرى
كود:
trim(0,7899).animeivtc(1) +\
Trim(7900,8143).animeivtc(3) +\
Trim(8144,36413).animeivtc(1)
شغلنا هو Trim(7900,8143).animeivtc(3) ويفضل ان يكون فريم البداية هو بداية مشهد وفريم النهاية هو نهاية مشهد، حتى لا يتم حذف فريم يغير من توافقية الصوت والصورة عن طريق فلاتر حل تداخل عن طريق الخطأ
وتحت ساضع اوامر اخذتها انا من دووم9 وعدلتها، لتضعها في السكربت بعد التريم الرئيسي (قبل ان تبدأ العمل بالفلترة واعادة معدل الى 24) وبعدها تعمل تحليل للفديو analysis عن طريق avspmod، وضيفتها ايجاد المشاهد وجعلها تريمات (من اجل تسهيل العمل)
كود:
source = last
min_scene_size = 5
trim_front = 0
trim_end = 0
scene_num = 1
scene_begin = 0
scene_end = -1
scheme = 2
vectors = source.MSuper(pel=2, hpad=12, vpad=12, rfilter=2, isse=true).MAnalyse(isb=false, search=3, searchparam=3, isse=true, lambda=440, dct=4)
source.MSCDetection(vectors, thscd1=248, thscd2=50)
# Log results
file_out = "scene changes.txt"
WriteFileStart(file_out, "### scene change list ###" + chr(10))
FrameEvaluate(last, """
# detect new scene
global newscene = (current_frame < scene_end + min_scene_size) ? false \
: (scheme == 1) ? (YDifferenceFromPrevious>40) \
: (AverageLuma>250)
# remember where scene started for subsequent filtering.
# this probably doesn't work well if not accesing the clip linearly.
scene_begin = newscene ? scene_end+1 : scene_begin
scene_end = newscene ? current_frame-1 : scene_end
# bump scene counter on each scene change
scene_num = (newscene && (current_frame > 0)) ? scene_num+1 : scene_num
""")
WriteFileif(last, file_out, "newscene", \
"""" trim("""", "scene_begin + trim_front", """","""", "scene_end - trim_end", """") """", """"+"""", """"\"""")
# log scene changes at end of film
WriteFileif(file_out, "current_frame==framecount-1", \
"""" trim("""", "scene_end + 1 + trim_front", """","""", "framecount-1-trim_end", """")"""")
ShowFrameNumber(size=12, x=10, y=40)
ScriptClip(last, """subtitle("scene #"+string(scene_num))""")
تفاصيل اخرى، هذا الموضوع مع ردوده http://forum.doom9.org/showthread.ph...21#post1497121
-------------
ولكن لعينة الكريدز يجب ان تطبق المود الثالث على الكريدز كله (اي الاغنية كلها)
والافضل انك تشوف اغنية بدون كريدز، اغلب الديفيديات بها هذا الشيء
---
يبقى عندنا حالة شاذة وحيدة لا تقبل
وهي انمي توريكو
وايضا اوفا ون بيس المشتركة معه
بحيث لما تحط
راح يصير عندك تشبيح كحالة عينة كونان اعلاه وربما اسوء
صور للحالة