السلام عليكم ورحمة الله وبركاته
تنبيه: إذا كنت تريد معرفة طريقة الإنتاج بـ 10 بت فقط فتوجه رأساً إلى نهاية الموضوع ودعك من وجع الدماغ. هذا الموضوع لا يزال مسودة، أنوي إضافة أشياء أخرى لمن يريد أن يتعلم.
طبعاً، (لا) تذكرون جميعاً أنني تحدثت عن شيء اسمه quantization في موضوع المرجع الشامل. و(لا) تذكرون أيضاً أنني وضعت صوراً تشرح مفهوم الـ quantization. ولا بد أنكم (لم تلاحظوا) لاحظتم الفرق بين شكل الإشارة قبل وبعد الـ quantization. هذا الفرق يسمى
quantization error، يعني العيب الذي تتسبب فيه عملية الـ quantization (ربما تقولون الآن: يلعن أبو الـ quantization هذه). لكن، هذا ليس كل شيء. تحدثت أيضاً عن شيء (لا) تذكرونه بالطبع وهو motion estimation. هذه بدورها تضيف نوعين من العيوب إلى الفيديو وهما estimation error و
rounding error. هنا ندخل بعجالة في لب الموضوع....
الديثر يساعد على التخلص من quantization error والإنتاج بـ 10 بت يستعمل الديثر للحد من rounding errors. يعني الإنتاج بعشرة بت يحد من كليهما معاً في ضربة واحد ويزيدك بقشيش إضافي قيمته تتمثل في التخفيض من حجم الفيديو بما يمكن أن يصل إلى 50 بالمئة مع نفس الجودة. إن كنتم لا تعرفون قصة septs d’un coup فسيصعب عليكم تصور مدى روعة أسلوب الإنتاج هذا.
randomn00b: لكن يا أخوي، إنت مو قلت إنتاج أبو عشرة بت يعني زيادة 2 بت، صح؟ يعني زيادة في الحجم مو تخفيض يا شيخ !
لا يا بُنيْ، العشرة يُقصد بها دقة الحسابات التي يجريها الانكودر (accuracy, precision... w/e) أما تخزين الـ bitstream فيكون في 8 بت !
بعدها، على مستوى الديكودر، يقع التحويل إلى 10 بت. وبالمناسبة،
دقة الحسابات تعني دقة الألوان ومشابهتها لألوان المصدر.
ربما (لن) يطرح أحدكم هذا السؤال:
س: ما هذا الديثر الذي تتحدث عنه؟
ج: الديثر تقنية مستعملة في معالجة الإشارة عموما وخاصة الصوت والفيديو. ما يهمنا هنا هو الفيديو. يضيف الديثر نوعاً من الوشوشة (noise) التي من شأنها الحد من
أخذ "بكسلات" كثيرة ومتجاورة من الصورة لقيمة واحدة. أخذ "بكسلات" كثيرة ومتجاورة من الصورة لقيمة واحدة من شأنه أن يؤدي إلى ما يعرف ب
الباندينغ وهو تدرج غير انسيابي للألوان. فلنفترض أن لديك مشهد داكن وفيه إضاءة قليلة (غرفة مظلمة في الليل وبابها مفتوح، مثلاً)؛ المناطق القريبة من الباب ستكون أكثر إضاءة من المناطق البعيدة عنه وستتقلص الإضاءة تدريجيا كلما ابتعدت عن الباب. ستأتي عملية الـ quantization وتحد من قيم البكسلات الممكنة (
تحد من عدد الألوان الممكنة) وتجمع البكسلات المتجاورة وذات القيم المتقاربة معاً في
مناطق جديدة أصغر حجماً ولجميع بكسلاتها قيمة واحدة (لون واحد). ماذا سيحدث حسب رأيك؟ ستحصل على مناطق
متلاصقة ولكل منها قيمة مختلفة عن الأخرى = مناطق ذات ألوان مختلفة (تستطيع العين التمييز بينها) و
تفصل بينها حدود واضحة للعيان. هنيئاً لك، أخيراً فهمتَ حقيقة الباندينغ وكيفية ظهوره.
الديثر، يا بُنيْ، يضيف الوشوشة (خاصة على الحدود الواضحة للمناطق ذات الأوان المتقاربة) كي لا تبقى هناك بكسلات متقاربة الألوان في منطقة ما بوسع الـ quantization أن تجمعهم في منطقة واحدة وتتسبب بذلك في الباندينغ.
الإنتاج بالـ 10 بت يتيح لك استعمال ألوان أكثر بأربع مرات من الإنتاج العادي بـ 8 بت. وهذا بدوره يساعد الـ quantization على تضييق خطوتها. رسم على السريع للتوضيح قبل أن يغمى عليك أو تقذف بحاسبك في دورة المياه:
لنفترض أن قيم الألوان في المصدر بهذا الشكل:
طبعاً، تلاحظون انسيابية في الانتقال من لون إلى لون كما هي الحال مع الصورة الحقيقية غير المضغوطة.
الآن نطبق الـ quantization، يعني نقلل من عدد القيم (= عدد الألوان) التي يمكن أن يأخذها كل بكسل. نحصل على شيء كهذا:
لاحظتم الانتقالات المفاجئة في القيم (= في الألوان)؟
تلك، يا بُنيْ، هي طريقة ظهور الحدود البشعة والانتقالات المفاجئة التي تسمى باندينغ. ترى منطقة لها امتداد لا بأس به ولون معين، ثم فجأة ترى منطقة أخرى لها لون آخر وبينهما برزخ!
الآن، إذا طبقنا الديثر على الصورة الأولى فسنحصل على شيء كهذا:
randomBakan00b: عمو، طرشتنا بالحديث عن الانتقالات المفاجئة بين القيم وكيف أنها تسبب الباندينغ. هذا الديثر تبعك يسبب انتقالات مفاجئة أكثر!
صغيري، لا أعتقد أنك فهمت شيئاً مما قلته. أنا أتحدث عن انتقالات مفاجئة (وإن كانت بقيم صغيرة) بين
مناطق ممتدة لها نفس القيم (=ألوان). ما تراه في الصورة هو انتقال طفيف بين ألوان "بكسلات"، هذا الانتقال تعجز العين البشرية عن ملاحظته.
مع هذا، فإنتاج هذا الكم الهائل من القيم والمحافظة عليها يحتاج إلى عامل quantization صغير جداً (يعني crf صغير) وهذا الأمر يتطلب بترايت عالي جداً في حالة الإنتاج العادي بثمانية بت. هنا يظهر علو كعب الإنتاج بعشرة بت. الإنتاج بعشرة بت يتيح استخدام قيم أكثر بكثير من الإنتاج العادي، فالقيم التي كنت ستخفض الـ crf (= عامل الـ quantization) كي تحافظ عليها صار بوسعك المحافظة عليها دون تخفيض الـ crf. أكرر، لأن الإنتاج بعشرة بت يتيح قيم أكثر فإنك تستطيع المحافظة على القيم الكثيرة بشكل أفضل من الإنتاج العادي.
لا تحسبوا أنني أحسب أن هذا الكلام يسهل فهمه عليكم، لكن، صدقاً، قمت بكثير جداً من المقاربات (approximations) كي أوصل لكم المفهوم العام بشكل علمي حتى إذا تجرأ أحد وسولت له نفسه الطعن في جدوى الإنتاج بعشرة بت تصفعه مباشرة بالدليل العلمي بعيداً عن دروشةِ "الإنتاج بعشرة بت يخفض الحجم ويزيد الجودة، لا أعرف كيف، لكن هذه هي الحقيقة"
طريقة الإنتاج بالانكودر x264 أبو عشرة بت:
سأفترض أنكم تعلمتم من خلال موضوع المرجع كيفية التعامل مع command line أو prompt window أو الدوس كما يحلو لكثير منكم تسميتها.
- حمل ffms2 من هنا:
http://ffmpegsource.googlecode.com/files/ffms-2.16.7z وضع الملفات ffms2.dll وffmsindexer.exe في مجلد plugins الخاص بـ avisynth
- افتح my
وابحث عن كلمة masktool. انتظر انتهاء البحث واحذف أي ملف dll يحتوي اسمه على masktool
- حمل dither-package من هنا:
http://forum.doom9.org/showthread.ph...59#post1386559
تفك ضغط الملف والملفات المضغوطة التي بداخله، ثم:
- تضع الملفات dither.avsi و mt_xxpand_multi.avsi و dither.dll و mvtools2.dll و dfttest.dll في مجلد plugins الخاص بـ avisynth
- تضع الملف libfftw3f-3.dll في مجلد C:\Windows\System32
استبدل الملفات القديمة بالجديدة في حالة كنت تملك هذه الملفات على جهازك.
- حمل آخر نسخة من masktool من هنا:
http://forum.doom9.org/showthread.php?t=98985 وضع النسخة المناسبة في مجلد plugins الخاص بـ avisynth. الرقم 25 في الاسم يشير إلى أن نسخة أفيسينث لديك هي 2.5 و26 يعني نسخة 2.6. لا تحملوا نسخة 64 إلا إذا كنتم تعرفون ما تفعلون. لن أوفر دعما فنيا لمن يستخدمها.
- حمل أداة avs2yuv من هنا:
http://akuvian.org/src/avisynth/avs2yuv/
- حمل الانكودر 10 بت من هنا:
http://x264.nl/ ضعه هو وavs2yuv في مجلد واحد
- افتح سكربت avs واستدع الفيديو بواسطة ffms2
كود:
ffvideosource("X:\blah\lol.xyz")
- افعل كل ما تريده من قص أو تغيير أبعاد أو إضافة أفتر أو فلترة أو أي هراء تريده
- في آخر سكربت الـ avs أضف هذين السطرين:
كود:
Dither_convert_8_to_16()
Dither_convey_yuv4xxp16_on_yvxx()
ولا تضف أي شيء بعدهما.
يعني يكون الملف على هذا الشكل:
كود:
ffvideosource("X:\blah\lol.xyz")
#crop
#spline36resize(x,y)
#fiter
#AFX goes here
Dither_convert_8_to_16()
Dither_convey_yuv4xxp16_on_yvxx()
افتح نافذة الدوس وتوجه إلى المجلد الذي وضعت فيه الانكودر x264 وأداة avs2yuv وسكربت الـ avs
اكتب ما يلي:
كود:
avs2yuv -raw "script.avs" -o - | x264-10bit.exe --input-depth 16 --input-res 1920x1080 --demuxer raw --fps 24000/1001 --output result.mkv -
غيّر input-res بأبعاد المصدر، إذا غيرت أبعاد المصدر في سكربت الـ avs فضع الأبعاد الجديدة بعد التغيير.
تستطيع إضافة إعداداتك المفضلة قبل المطة التي في نهاية الأوامر.
اضغط enter واستمتع بالإنتاج.
الإنتاج بـ 10 بت أبطئ من الإنتاج العادي بـ 8 بت بما قد يصل إلى 30 بالمئة. الإنتاج بـ 10 بت يعطيك جودة أفضل وحجم أقل، وكما شرحت، يساعد على التخلص من الباندينغ.
عند الإنتاج بـ 10 بت فأنت قد ألقيت بقدرة أجهزة تشغيل الفيديو مثل popcorn hour وأمثاله في الجحيم. لا يوجد أي جهاز متاح للاستعمال الشخصي من هذا النوع بوسعه تشغيل 10 بت. الأجهزة المتاحة كلها تختص بالتطبيقات واسعة النطاق مثل البث الفضائي.
عدم الإنتاج بـ 10 بت لا أعده تخلفاً مثل الهاردسب. هناك أسباب معتبرة لعدم فعل ذلك.
أن تنتج بـ 10 بت لا يعني أنك تفهم 2 ميللي في الإنتاج. بل يعني أنك طبقت خطوات محددة لتصل للنتيجة، ربما يستطيع قرد فعلها إذا علمناه إياها.
في الختام هناك بعض الأشياء التي لا علاقة وطيدة لها بالموضوع أود الحديث عنها:
- أنوي بتسهيل من الله أن أجري تفاعلية إنتاجية في هذا القسم على شكل مسابقة تعليمية الهدف منها هو نقل الخبرة والمعرفة للجيل الجديد من المنتجين وليس تسمية أحدهم بألقاب هرائية من قبيل "المنتج الأول" أو "المنتج الحائز على جائزة التفاهة في الإنتاج"... يمكن المشاركة بغرض التعلم للمبتدئين والتعليم للمحنكين. ما أعدكم به هو تقييم صارم وموضوعي بعيداً عن مفضلاتي الشخصية وأساليبي التهكمية وأمثلة متعددة ومتنوعة تشمل أكثر مما تصبون إلى تعلمه x264 settings, avisynth, IVTC, VFR, aspect ratio, color space, funny audio...
التقييم سيكون جله (كي لا أقول كله) على أساس المعرفة لا الجودة، لأن الجودة مفهوم ذوقي جداً جداً، كل واحد يفسره على هواه.
أحسب أن الأمر سيتطلب شهرين أو ثلاثة للتحضير للأمر بالنظر إلى ضيق الوقت المتاح لي، إن كنتَ مهتما فشارك في التصويت.
المفضلات