ভিডিও এনকোডিং সংক্রান্ত পরিসংখ্যান এক্সপোর্ট করা

Android 13 থেকে শুরু করে, অ্যাপ ক্লায়েন্টরা প্রতিটি এনকোড করা ভিডিও ফ্রেমের জন্য এনকোডিং পরিসংখ্যান এক্সপোর্ট করতে ভিডিও এনকোডারকে অনুরোধ করতে পারে। ভিডিও এনকোডার থেকে পাওয়া পরিসংখ্যানের সাহায্যে, অ্যাপগুলি ভিডিও এনকোডিং টাস্ক অপ্টিমাইজ করতে পারে। যেমন, এনকোডিংয়ের আগে মাল্টিপাস এনকোডিং ও ফ্রেম প্রিপ্ৰসেসিং।

ভিডিও এনকোডিং সংক্রান্ত পরিসংখ্যান এক্সপোর্ট করতে, SoC ভেন্ডরদের অবশ্যই ভিডিও এনকোডার ড্রাইভারের আপডেট-এ বর্ণিত পদ্ধতি অনুযায়ী ভিডিও এনকোডার ড্রাইভার পরিবর্তন করতে হবে।

ভিডিও এনকোডিংয়ের পরিসংখ্যান সংক্রান্ত ডেটা

Android 13-এর মাধ্যমে, ভিডিও এনকোডার পরিসংখ্যান ডেটা এক্সপোর্ট করে যা নিম্নলিখিত সারণীতে দেখানো হয়েছে।

এনকোডার পরিসংখ্যানের নাম বর্ণনা
ফ্রেম পিছু গড় ব্লক QP বিটস্ট্রিমে এনকোড করা ভিডিও ফ্রেমের সব ব্লক QP-এর গড়
ছবির ধরন I বা P বা B টাইপ করুন

ডেভেলপাররা MediaFormat ডেভেলপার ক্লাস ব্যবহার করে প্রতিটি ফ্রেমের জন্য পরিসংখ্যান সংক্রান্ত তথ্য পেতে পারেন।

ভিডিও এনকোডার ড্রাইভারের আপডেট

ভিডিও এনকোডিং পরিসংখ্যান এক্সপোর্ট করার সুবিধা দিতে, SoC ভেন্ডরদের অবশ্যই ভিডিও এনকোডার ড্রাইভার পরিবর্তন করতে হবে। Codec 2.0 বেসে Android 13-এ নিম্নলিখিত কী যোগ করা হয়েছে:

  • KEY_VIDEO_QP_AVERAGE-এ ফ্রেম পিছু ব্লকের গড় QP-এর বিবরণ দেওয়া আছে।

    KEY_VIDEO_QP_AVERAGE কী প্রয়োগ করার ক্ষেত্রে নিম্নলিখিত নিয়ম প্রযোজ্য:

    • Codec 2.0-এ পাঠানোর আগে 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 দেখুন।

যাচাইকরণ

VideoEncodingStatisticsTestভিডিও এনকোডিং পরিসংখ্যানের গড় QP অংশটি সঠিকভাবে কাজ করে কিনা তা যাচাই করতে 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);