ما هو الـ frame rate وما هي العوامل التي تؤثر عليه
أكثر الناس الذين يشغلهم موضوع الـ frame rate هم مطوري الألعاب، وصناع الفيديوهات والأفلام، والمهتمين بعالم الجرافيكس والانيمشن، وكذلك بعض مطوري الويب خاصة من لديهم مواقع بث الفيديوهات وشغل الوسائط المتعددة الـ Multimedia، فإن كنت مهتم بموضوع الـ frame rate عليك أن تكون ملم ببعض النقاط في هذا المجال، في البداية دعونا نتحدث عن تعريف الـ frame rate.
ما هو تعريف الـ frame rate ؟؟
الـ frame rate بشكل موجز ومختصر هو عدد الإطارات "frames" التي يتم عرضها في الثانية الواحدة، ويتم قياس الـ frame rate بوحدة الـ "fps" أي frame per second.
والـ "frame" أو الإطار الذي نقصده هنا، هو الصورة التي تعرضها شاشة الكمبيوتر أو شاشة التليفون المحمول أو شاشة التليفزيون. عندما تشاهد فيلما أو تلعب لعبة "video game" على جهازك، تقوم الشاشة بعرض frame ثم frame ثم frame أي صورة وراء صورة وراء صورة ... وهكذا. وفي كل مرة تتغير إحداثيات الصورة. فإذا قامت الشاشة بعرض 30 frame في ثانية واحدة يكون الـ frame rate وقتها يساوي 30fps ، وإذا تم عرض 60 frame يكون الناتج 60fps. السؤال هنا؛ ماذا سيحدث إن زاد الـ frame rate أو قل ؟؟ أي ما الفرق بين frame rate يساوي 30fps وأخر يساوي 60fps ؟؟
كلما قل الـ frame rate سيظهر عرض الفيديو أو اللعبة بشكل مُقطع "choppy" وربما تعتقد أن الجهاز/اللعبة "بتهنج - freezing"، وكلما زاد الـ frame rate كلما كانت حركة الكائنات الموجودة في اللعبة أو الفيديو حركة سريعة وناعمة "smooth movement". والسؤال هنا ما هو الـ frame rate المثالي ؟؟ أي ما هو عدد الإطارات التي يجب عرضها في الثانية الواحدة ؟؟
بالتأكيد لا يوجد رقم ثابت، لكن لكي تصل إلى الـ frame rate المثالي فهناك متوسط معين أو مدى معين لا تقل عنه ولا تزد عنه، لا تقل عنه حتى لا يصبح هناك تقطيع أو خلل في حركة الكائنات بداخل اللعبة أو الفيديو، ولا تزد عنه لأن أي زيادة فوق الـ frame rate المثالي سوف تستهلك الكثير من موارد الجهاز بالإضافة إلى أن هذه الزيادة ستكون ضمن الكماليات، أي ربما تستغني عن هذه الزيادة دون أن يحدث خلل في حركة الكائنات بداخل اللعبة أو الفيديو، ناهيكم عن أن الـ frame rates العالية جدا مثل 150fps ربما لا يستوعبه بعض الـ CPU أو GPU أي أن البروسيسور وكارت الشاشة غير قادرين على استيعاب عدد كبير جدا من الإطارات في الثانية الواحدة. وبالتالي لو كنت من مطوري الألعاب أو من صناع الفيديوهات أو تتعامل بأي شكل من الأشكال مع الـ frame rates عليك دائما أن تنتج الألعاب والفيديوهات في المدي المثالي للـ frame rate لا تقل عنه ولا تزد عليه.
بالطبع الـ frame rate يطول فيه الحديث لكن أردنا فقط أن نعطي نبذة بسيطة وموجزة عن الـ frame rate قبل الدخول في العوامل التي تؤثر عليه.
ما هي العوامل التي تؤثر على الـ frame rate ؟؟
لكي نعرف ما هي العوامل التي تؤثر على الـ frame rate لابد لنا في البداية أن نتعرف على دورة حياة الـ frame من أين يبدأ الـ frame وأين ينتهي وما هو الطريق الذي يسلكه. أنظر إلى الصورة الآتية.
هذه صورة كروكية لتوضيح دورة حياة الـ frame، حيث تقوم اللعبة أو مقطع الفيديو أو التطبيق بإرسال الـ frame إلى CPU وحدة المعالجة المركزية، فيقوم الـ CPU بمعالجة الـ frame وعمل بعض الوظائف الآخرى ثم يقوم بمخاطبة الـ GPU "كارت الشاشة"، وكارت الشاشة يقوم بعمل رسم Rendering للـ frame ثم يقوم بمخاطبة الشاشة لكي تقوم بعرض هذا الـ frame ... وهكذا مع الـ frames الأخرى. بالطبع دورة حياة الـ frame أكثر تعقيدا من هذا ولها أبعاد أخرى، لكن أردنا فقط أن نعطي شكلا كروكيا لنوضح عليه العوامل التي تؤثر على الـ frame rate.
وبمجرد أن يكون لديك فكرة عن دورة حياة الـ frame تستطيع بكل سهولة أن تستنتج العوامل التي تؤثر على الـ frame rate، فكل مرحلة يمر بها الـ frame تؤثر على الـ frame rate بشكل أو بأخر. وإليك هذه العوامل في نقاط
1- Code optimization and smart calculation
هذا العامل موجه إلى مطوري الألعاب ومطوري التطبيقات التي تتعامل مع الـ frame rate، حيث أن طريقة كتاية الكود تؤثر بشكل مباشر في الـ frame rate، فكلما كانت الأكواد مكتوبة بشكل مثالي وإجراء العمليات الحسابية ثثم بشكل ذكي كلما حصلت على frame rate عالي وبالتأكيد ستتجنب الـ choppy movement.
2- At which frame rate you create your video
هذا العامل موجه إلى المهتمين بعالم الجرافيكس والانيمشن وصناع الفيديوهات والأفلام، بكل بساطة لو أنك تصور مقطع فيديو بكاميراتك الخاصة، فيمكنك أن تحدد الـ frame rate الذي تريد التصوير به -هذه الخاصية موجودة في بعض الكاميرات- وكذلك يمكنك أن تغير الـ frame rate لأي فيديو إن أردت، وبالتالي أنت تحدد الـ frame rate من البداية. وأيضا الذين يقومون بتحريك الأشحاص والكائنات في صناعة الانميشن ومنتجي الصور المتحركة كلهم يتحكمون في الـ frame rate من البداية.
لكن السؤال هنا إن كنت قد حددت الـ frame rate من البداية فهل من الممكن أن يتأثر بالعوامل الأخرى ؟ بالتأكيد سيتأثر بالعوامل الأخرى، فإن كان لديك مقطع فيديو الـ frame rate الخاص به يساوي 200fps وقمت بتشغيل هذا المقطع على موبايل ذات امكانيات وموارد ضعيفة، فستجد أن هذا الموبايل غير قادر على معالجة وطلي وعرض 200 إطار في ثانية واحدة. ولذلك عليك دائما أن تأخذ في الإعتبار العوامل الأخرى، فبكل بساطة ليس من المعقول أن تنتج فيديو أو تطور لعبة موجهة إلى أجهزة قديمة ذات امكانيات وموارد ضعيفة وتجعل هذا الفيديو أو هذه اللعبة ذات frame rate عالي جدا.
3- Content of the frame
بالتأكيد متحوي الـ frame يؤثر بشكل أو بأخر على الـ frame rate ككل، حيث أن الـ frame ذا الجودة العالية high resolution يأخد وقت أكثر نسبيا في عملية الـ rendering من الـ frame ذا الجودة المنخفضة، وبالتالي لو كانت الـ frames المكونة لمقطع الفيديو أو اللعبة ذات جودة عالية فمن المنطقي أن يكون عدد الإطارات التي تعرض في الثانية الواحدة قليلة نسبيا أى أن الـ frame rate وقتها سيكون أقل نسبيا مقارنة بمقطع فيديو أخر مكون من frames ذات جودة منخفضة.
كذلك في تطوير الألعاب لو كان الـ frame مليء بالكائنات، فكل كائن لديه سكربتات وأكواد وعمليات حسابية خاصة به، وبالتالي كلما زادت الكائنات الموجودة في الـ frame كلما زادت العمليات الحسابية كلما زاد وقت المعالجة الخاصة بهذا الـ frame وبالتالي هذا سيؤثر في النهاية على معدل الـ frames التي تُعرض في الثانية الواحدة.
4- ( Hardware and its quality ( CPU - Memory/RAM - GPU - Monitor
بالتأكيد موارد الجهاز وجودتها تعتبر عامل محوري في التأثير على الـ frame rates فكلما كان البروسيسور سريعا، و"الرامات" ذات سعة كبيرة، وكذلك كارت الشاشة كان عاليا. كلما كانت عمليات المعالجة والطلي والعرض سريعة، وبالتالي ستحصل على frame rate عالي والعكس صحيح. فلو تتذكر أن الكثير منا عندما يذهب لشراء جهاز كمبيوتر تجد صاحب المتجر يسأله فيما سيستخدم هذا الكمبيوتر، لو كنت ستستخدمه في مجال الجرافيكس والألعاب، ستجد صاحب المتجر يرشدك إلى الأجهزة ذات البروسيسور وكروت الشاشة العالية والسريعة. وعلى هامش هذه الجزئية نقول أيضا أن جودة الصناعة تؤثر هي الأخرى على معدل عرض الإطارات، فربما يعرض عليك صاحب المتجر جهازين لهما نفس الإمكانيات، لكن أسعارهما مختلفة، والسبب في أن إحدى الماركتين أغلى من الأخرى هو جودة الصناعة.
ولو تطرقنا سريعا إلى موضوع الشاشة "monitor" وكيف لها أن تؤثر على الـ frame rate، هناك شيء يسمى الـ refresh rate خاص بالشاشة، وهو بالطبع يختلف عن موضوعنا الـ frame rate، بدون الدخول في تفاصيل الـ refresh rate سنكتفي فقط ببعض السطور إلى أن تحن لنا الفرصة ونتحدث بتفاصيل أكثر عن هذه الجزئية. لو قولنا أن الـ refresh rate الخاص بالشاشة منخفض وهذه الشاشة تقوم بعرض فيديو أو لعبة ذات frame rate عالي فماذا سيحدث ؟؟ ربما في هذه الحالة لا تقوم الشاشة بعرض جميع الإطارات التي تصل إليها من كارت الشاشة.
5- Applications runs in background
هناك الكثير من التطبيقات والبرامج التي تعمل في الخلفية، وهذه التطبيقات تسحب جزء من موارد الجهاز، وبالتالي هي تؤثر بشكل غير مباشر على الـ frame rate، ولذلك في بعض الأحيان عندما تقوم بتشغل لعبة عالية الجرافيكس وتحتاج قدر كبير جدا من موارد الجهاز عليك بإغلاق البرامج التي تعمل في الخلفية إن كنت لا تحتاجها وقت تشغيل اللعبة وبهذا تستطيع أن توفر أكبر قدر ممكن من موارد الجهار إلى هذه اللعبة.
6 - Frame rate of audio
هناك frame rate أخر غير الذي نتحدث عليه وهو الـ frame rate الخاص بالصوت "audio frame rate"، لا نعد هذا العامل من العوامل التي تؤثر على الـ frame rate كالعوامل السابقة لكن يجب عليك دائما أن تأخذه في عين الإعتبار خاصة وإن كنت تقوم بالتعديل على الفيديوهات "video editing". حيث أنك إن لم تأخذ في عين الإعتبار المزامنة "synchronization" بين الـ frame rate الخاص بالصورة والـ frame rate الخاص بالصوت سينتج عن ذلك إما أن يسبق الصوت الصورة أو تسبق الصورة الصوت.
في نهاية موضوعنا نريد أن نلفت انتباهكم إلى التقدم التكنولوجي والتقني الذي جعلنا نصل إلى معدلات عالية جدا من الـ frame rate دون أي خلل أو أي مشكلة. حيث أن معظم الأجهزة الحديثة اليوم تستطيع أن تجاري الفيديوهات والألعاب ذات الـ frame rates العالية نسبيا دون أي مشكلات.
وكما قلنا سابقا الحديث عن الـ frame rate يطول فيه الكلام والشرح والتفاصيل، لكن أردنا فقط أن نلفت الأنظار تجاه بعض النقاط في هذا المجال إلى أن نتكلم بشكل أوسع وأدق في أوقات لاحقة بإذن الله.