27 মার্চ, 2025 থেকে, আমরা AOSP তৈরি করতে এবং অবদান রাখতে aosp-main
এর পরিবর্তে android-latest-release
ব্যবহার করার পরামর্শ দিচ্ছি। আরও তথ্যের জন্য, AOSP-তে পরিবর্তনগুলি দেখুন।
ভিডিও এনকোডিং পরিসংখ্যান রপ্তানি করুন
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
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
ভিডিও এনকোডার থেকে নির্গত এনকোডিং পরিসংখ্যান তথ্যের স্তর বর্ণনা করে, নিম্নরূপ:
একটি রেফারেন্স বাস্তবায়নের জন্য 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);
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।
[[["সহজে বোঝা যায়","easyToUnderstand","thumb-up"],["আমার সমস্যার সমাধান হয়েছে","solvedMyProblem","thumb-up"],["অন্যান্য","otherUp","thumb-up"]],[["এতে আমার প্রয়োজনীয় তথ্য নেই","missingTheInformationINeed","thumb-down"],["খুব জটিল / অনেক ধাপ","tooComplicatedTooManySteps","thumb-down"],["পুরনো","outOfDate","thumb-down"],["অনুবাদ সংক্রান্ত সমস্যা","translationIssue","thumb-down"],["নমুনা / কোড সংক্রান্ত সমস্যা","samplesCodeIssue","thumb-down"],["অন্যান্য","otherDown","thumb-down"]],["2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।"],[],[],null,["# Export video encoding statistics\n\nStarting with Android 13, app clients can request the\nvideo encoder to export encoding statistics for each encoded video frame. With\nthe statistics obtained from the video encoder, apps can optimize their video\nencoding tasks such as multipass encoding and frame preprocessing prior to\nencoding.\n\nTo export video encoding statistics, SoC vendors must change the video encoder\ndriver as described in [Updates to the video encoder driver](#updates-encoder).\n\nVideo encoding statistics data\n------------------------------\n\nWith Android 13, the video encoder exports statistics\ndata as shown in the following table.\n\n| Name of encoder statistics | Description |\n|----------------------------|-------------------------------------------------------------------------------------|\n| Average block QP per frame | The average of all block QPs in the video frame that are encoded into the bitstream |\n| Picture type | Type I or P or B |\n\nDevelopers can retrieve statistics information for each frame by using the\n[`MediaFormat`](https://developer.android.com/reference/android/media/MediaFormat)\ndeveloper class.\n\nUpdates to the video encoder driver\n-----------------------------------\n\nTo support the export of video encoding statistics, SoC vendors must change the\nvideo encoder driver. The following keys are added in the Codec 2.0 base in\nAndroid 13:\n\n- [`KEY_VIDEO_QP_AVERAGE`](https://cs.android.com/android/platform/superproject/+/android-latest-release:frameworks/base/media/java/android/media/MediaFormat.java;drc=5ad6db77423479d027abb791ad3c02da39513a2c;l=1154) describes the per-frame\n average block QP.\n\n The following rules apply to the implementation of the `KEY_VIDEO_QP_AVERAGE`\n key:\n - The SoC encoder must round the average of the block QPs to the nearest\n integer before emitting to Codec 2.0.\n\n - The average value is computed only from a luma plane.\n\n - The SoC encoder must return `INT_MAX` if all the blocks in the current\n frame are in the skipped mode. This condition occurs when no coefficients are\n encoded and no significant QP info is encoded in the frame.\n\n- [`KEY_PICTURE_TYPE`](https://cs.android.com/android/platform/superproject/+/android-latest-release:frameworks/base/media/java/android/media/MediaFormat.java;drc=5ad6db77423479d027abb791ad3c02da39513a2c;l=1163)\n describes the picture type of the encoded frame as [`PICTURE_TYPE_I`](https://developer.android.com/reference/android/media/MediaFormat#PICTURE_TYPE_I),\n [`PICTURE_TYPE_P`](https://developer.android.com/reference/android/media/MediaFormat#PICTURE_TYPE_P),\n [`PICTURE_TYPE_B`](https://developer.android.com/reference/android/media/MediaFormat#PICTURE_TYPE_B),\n or [`PICTURE_TYPE_UNKNOWN`](https://developer.android.com/reference/android/media/MediaFormat#PICTURE_TYPE_UNKNOWN).\n\n- [`KEY_VIDEO_ENCODING_STATISTICS_LEVEL`](https://cs.android.com/android/platform/superproject/+/android-latest-release:frameworks/base/media/java/android/media/MediaFormat.java;drc=5ad6db77423479d027abb791ad3c02da39513a2c;l=1122) describes the level of\n encoding statistics information emitted from video encoder, as follows:\n\n - When the encoder generates no information about encoding statistics,\n this key is set to [`VIDEO_ENCODING_STATISTICS_LEVEL_NONE`](https://cs.android.com/android/platform/superproject/+/android-latest-release:frameworks/base/media/java/android/media/MediaFormat.java;drc=5ad6db77423479d027abb791ad3c02da39513a2c;l=1129).\n\n - When the encoder generates `KEY_VIDEO_QP_AVERAGE` and `KEY_PICTURE_TYPE`\n for each frame, this key is set to [`VIDEO_ENCODING_STATISTICS_LEVEL_1`](https://cs.android.com/android/platform/superproject/+/android-latest-release:frameworks/base/media/java/android/media/MediaFormat.java;drc=5ad6db77423479d027abb791ad3c02da39513a2c;l=1136).\n\nSee [`VideoEncodingStatisticsTest`](https://cs.android.com/android/platform/superproject/+/android-latest-release:cts/tests/tests/media/codec/src/android/media/codec/cts/VideoEncodingStatisticsTest.java;drc=77bafd18279c8d6dad49fd74dac2e369fdc6ba69;l=56)\nfor a reference implementation.\n\nValidation\n----------\n\nRun the [`VideoEncodingStatisticsTest`](https://cs.android.com/android/platform/superproject/+/android-latest-release:cts/tests/tests/media/codec/src/android/media/codec/cts/VideoEncodingStatisticsTest.java;drc=77bafd18279c8d6dad49fd74dac2e369fdc6ba69;l=56)\nCTS test to validate that the average QP part of the video encoding statistics\nworks correctly: CTS runs two encodings of the same input video, one with a\nhigher bitrate, and another with a lower bitrate. CTS then compares the two\nexported average QP values from the two encodings. If the average QP from the encoding\nwith the lower bitrate is higher than the average QP from the encoding with the\nhigher bitrate, CTS passes.\n\nTo validate turning off the exporting video encoding statistics feature when\nenabled, use the `VIDEO_ENCODING_STATISTICS_LEVEL_NONE` key as follows: \n\n format.setInteger(MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL, MediaFormat.VIDEO_ENCODING_STATISTICS_LEVEL_NONE);"]]