অ্যান্ড্রয়েড ১৩ থেকে শুরু করে, অ্যাপ ক্লায়েন্টরা প্রতিটি এনকোড করা ভিডিও ফ্রেমের জন্য এনকোডিং পরিসংখ্যান রপ্তানি করতে ভিডিও এনকোডারকে অনুরোধ করতে পারে। ভিডিও এনকোডার থেকে প্রাপ্ত পরিসংখ্যান ব্যবহার করে, অ্যাপগুলো এনকোডিংয়ের আগে তাদের ভিডিও এনকোডিং কাজ, যেমন মাল্টিপাস এনকোডিং এবং ফ্রেম প্রিপ্রসেসিং, অপ্টিমাইজ করতে পারে।
ভিডিও এনকোডিং পরিসংখ্যান এক্সপোর্ট করার জন্য, SoC ভেন্ডরদের অবশ্যই "ভিডিও এনকোডার ড্রাইভারের আপডেট" অংশে বর্ণিত পদ্ধতি অনুযায়ী ভিডিও এনকোডার ড্রাইভার পরিবর্তন করতে হবে।
ভিডিও এনকোডিং পরিসংখ্যান ডেটা
অ্যান্ড্রয়েড ১৩-এর সাথে, ভিডিও এনকোডারটি নিম্নলিখিত সারণিতে দেখানো পরিসংখ্যান ডেটা রপ্তানি করে।
| এনকোডার পরিসংখ্যানের নাম | বর্ণনা |
|---|---|
| প্রতি ফ্রেমে গড় ব্লক QP | ভিডিও ফ্রেমে থাকা সমস্ত ব্লক কিউপি-র গড়, যা বিটস্ট্রিমে এনকোড করা হয়। |
| ছবির ধরণ | টাইপ I বা P বা B |
ডেভেলপাররা MediaFormat ডেভেলপার ক্লাস ব্যবহার করে প্রতিটি ফ্রেমের পরিসংখ্যান তথ্য সংগ্রহ করতে পারেন।
ভিডিও এনকোডার ড্রাইভারের আপডেট
ভিডিও এনকোডিং পরিসংখ্যান রপ্তানি সমর্থন করার জন্য, SoC বিক্রেতাদের অবশ্যই ভিডিও এনকোডার ড্রাইভার পরিবর্তন করতে হবে। Android 13-এর Codec 2.0 বেসে নিম্নলিখিত কীগুলি যোগ করা হয়েছে:
KEY_VIDEO_QP_AVERAGEপ্রতি ফ্রেমের গড় ব্লক QP বর্ণনা করে।KEY_VIDEO_QP_AVERAGEকী-টির বাস্তবায়নের ক্ষেত্রে নিম্নলিখিত নিয়মগুলি প্রযোজ্য:কোডেক ২.০-তে প্রেরণ করার আগে SoC এনকোডারকে অবশ্যই ব্লক QP-গুলোর গড়কে নিকটতম পূর্ণসংখ্যায় রাউন্ড করতে হবে।
গড় মান শুধুমাত্র একটি লুমা প্লেন থেকে গণনা করা হয়।
বর্তমান ফ্রেমের সমস্ত ব্লক স্কিপড মোডে থাকলে SoC এনকোডারকে অবশ্যই
INT_MAXরিটার্ন করতে হবে। এই অবস্থাটি তখন ঘটে যখন ফ্রেমে কোনো কোএফিসিয়েন্ট এনকোড করা হয় না এবং কোনো গুরুত্বপূর্ণ QP তথ্যও এনকোড করা থাকে না।
KEY_PICTURE_TYPEএনকোড করা ফ্রেমের ছবির ধরনকেPICTURE_TYPE_I,PICTURE_TYPE_P,PICTURE_TYPE_B, অথবাPICTURE_TYPE_UNKNOWNহিসেবে বর্ণনা করে।KEY_VIDEO_ENCODING_STATISTICS_LEVELভিডিও এনকোডার থেকে নির্গত এনকোডিং পরিসংখ্যান তথ্যের স্তরকে নিম্নরূপভাবে বর্ণনা করে:যখন এনকোডার এনকোডিং পরিসংখ্যান সম্পর্কে কোনো তথ্য তৈরি করে না, তখন এই কী-টি
VIDEO_ENCODING_STATISTICS_LEVEL_NONEএ সেট করা হয়।যখন এনকোডার প্রতিটি ফ্রেমের জন্য
KEY_VIDEO_QP_AVERAGEএবংKEY_PICTURE_TYPEতৈরি করে, তখন এই কী-টিVIDEO_ENCODING_STATISTICS_LEVEL_1এ সেট করা হয়।
রেফারেন্স ইমপ্লিমেন্টেশনের জন্য VideoEncodingStatisticsTest দেখুন।
বৈধতা
ভিডিও এনকোডিং পরিসংখ্যানের গড় QP অংশটি সঠিকভাবে কাজ করছে কিনা তা যাচাই করতে VideoEncodingStatisticsTest CTS পরীক্ষাটি চালান: CTS একই ইনপুট ভিডিওর দুটি এনকোডিং চালায়, একটি উচ্চ বিটরেটে এবং অন্যটি নিম্ন বিটরেটে। এরপর CTS দুটি এনকোডিং থেকে প্রাপ্ত দুটি গড় QP মান তুলনা করে। যদি নিম্ন বিটরেটের এনকোডিং থেকে প্রাপ্ত গড় QP, উচ্চ বিটরেটের এনকোডিং থেকে প্রাপ্ত গড় QP-এর চেয়ে বেশি হয়, তাহলে CTS সফল হয়।
চালু থাকা অবস্থায় এক্সপোর্টিং ভিডিও এনকোডিং পরিসংখ্যান ফিচারটি বন্ধ করা যাচাই করতে, নিম্নলিখিতভাবে VIDEO_ENCODING_STATISTICS_LEVEL_NONE কী-টি ব্যবহার করুন:
format.setInteger(MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL, MediaFormat.VIDEO_ENCODING_STATISTICS_LEVEL_NONE);