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

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

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

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

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

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

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

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

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

  • KEY_VIDEO_QP_AVERAGE প্রতি-ফ্রেম গড় ব্লক QP বর্ণনা করে।

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

    • কোডেক 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 দেখুন।

বৈধতা

ভিডিও এনকোডিং পরিসংখ্যানের গড় 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);