السلام عليكم ورحمة الله وبركاتُه
والصلاة والسلام على نبينا مُحمد وعلى آله وصحبه أجمعين
يتكلم هذا الموضوع عن"شيء" يُدعى vapoursynth
غالبية الموضوع ستكون بشكل"س و ج" حتى يكون مُختصر وذا فائدة أكبر
س/ ما هو vapoursynth ؟
ج: الـ vapoursynth عبارةعن frameserver يتكون من مكتبة و python module. (والـ frameserver عبارة عن برنامج يقوم بإرسال فريمات الفيديو إلى برنامج آخر, بشكل frame by frame ويُدعى البرنامج الذي يتلقى الفريمات بالـ frameclient.)
وضيفة هذا الـ frameserver هو التعديل على مقاطع الفيديو كغيره من الفريم سيرفرز مثل avisynth, VirtualDub, Adobe Premiere Pro...إلخ. (والأشهر بينهم في تصفية الفيديو هو avisynth كما هو معروف). ووجود الـ python module يسمح بكتابة سكربتات للـ vapoursynth بلغة البيثون.
س/هل هي أفضل من avisynth ؟؟ وإن هي كذلك, ما الذي يجعلها أفضل ؟؟
ج:نعم. هُناك أمور كثيرة تجعل من vapoursynth أفضل من avisynth سأذكر منها ما أعرف:
1-Multithreading (Frame-based)l
الـ Thread هو أصغر سلسلة من التعليمات البرمجية التي يُمكن التحكم بها بشكل مُنفصل من قبل مُجدول نظام التشغيل. كُل برنامج يحوي على عملية (proccess) واحدة أو أكثر, وكُل عملية تحوي على Thread واحد أو اكثر. النسخة الرسمية من الـ avisynth هي single-threaded, أي أنهُ في حال وجود مكتبة (أو برنامج) أجرت عملية (أو عمليات) مُعينة إستُعملت بها مكتبة avisynth وكانت هذه العملية تتكون من أكثر من Thread واحد, فسيتم إنجاز هذه العملية من قبل المعالج بشكل Thread by Thread, أي أن المعالج سيستخدم CPU (أو Core) واحدة فقط حتى لو كان معالج جهازك يملك اكثر من CPU (أي multi-core processor). والأمر نفسه ينطبق على العمليات التي يتم تنفيذها من مكتبة الـ avisynth نفسها (أي من دون إستعمال أي برنامج أو مكتبة خارجية).
أما الـ vapoursynth فهي Multi-Threaded أي أنهُ, أي عملية يتم تنفيذها من قبل مكتبة أو برنامج معين (ونفس الأمر ينطبق على العمليات التي يتم تنفيذها من قبل الـ vapoursynth نفسها) وإستُعملت بها الـ vapoursynth, ستتم مُعالجتها على اكثر من CPU (أو Core) واحدة في حالة كون تلك المكتبة Multi-Threaded أيضاً (وعلى فرض أن معالج جهازك مُتعدد الأنوية), وسيؤدي هذا طبعاً إلى إتمام العمليات بشكل أسرع.
2-دعم شامل لأنظمة الألوان
الـ avisynth, تدعم إدخال الفيديو بأي نظام ألوان (Colorspace) كان به وبأي عُمق وذلك عن طريق مكتبة ffms2 (وهي source filter) حيث أن هذه المكتبة تدعم إدخال الفيديو بجميع انظمة الألوان (والحاويات) المدعومة من مكتبة libav مع بعض الإضافات أيضاً. أما من حيث الإخراج فهي لا تدعم إلا إخراج الفيديو بنظام بعمق 8-بت فقط, لهذا تُستعمل غالباً حُزمة الـ Dither من أجل إخراج الفيديو بعمق ألوان أكبر من 8 بت, أي من أجل مُحاولة التعويض عن الـ bits التي تمت خسارتها أثناء معالجة المصدر بفلاتر الـ avisynth الأُخرى في حالة كون الإدخال بعمق أكبر من 8 بت (ﻷن معظم فلاتر الـ avisynth تقوم بإعادة الفيديو إلى 8 بت بعد الإنتهاء من معالجته إلا بعض الفلاتر مثل RedAverage و ResampleHQ...) ولكن هذه الحُزمة Hack قبيح, ولا يُعتبر كـ "دعم" في الـ avisynth.
(مُلاحظة: الـ Hack هو مُسطلح يُستعمل في البرمجة للإشارة إلى "حل قبيح" لمُشكلة مُعينة.)
أما الـ vapoursynth فتدعم "إدخال وإخراج" الفيديو بأي نظام ألوان كان به وبأي عُمق للألوان