ব্লুটুথ (BT) লো এনার্জি (LE) অডিও হেড ট্র্যাকিং (HT) ডেটার জন্য অ্যাসিঙ্ক্রোনাস কানেকশন-ওরিয়েন্টেড লজিক্যাল (LE-ACL) এবং আইসোক্রোনাস (LE-ISO) লজিক্যাল ট্রান্সপোর্ট মেকানিজম চালু করে।
LE-ACL বা LE-ISO ট্রান্সপোর্ট মেকানিজম ব্যবহার করা হয়েছে কিনা তার উপর ভিত্তি করে Android 15, HT-এর জন্য লেটেন্সি মোড অ্যাডজাস্টমেন্টের সুবিধা দেয়।
হোস্ট ও হেডসেটে কাজ করে এমন LE-ACL বা LE-ISO ট্রান্সপোর্ট মেকানিজম খুঁজে বের করা ও বেছে নেওয়ার জন্য অডিও ফ্রেমওয়ার্ক, অডিও HAL ও ব্লুটুথ স্ট্যাক কীভাবে ইন্টার্যাক্ট করে তা এই পৃষ্ঠায় বর্ণনা করা হয়েছে।
LE-ACL ও LE-ISO-এর জন্য সহায়তা
Android 15-এ LE-ACL ও LE-ISO ট্রান্সপোর্ট মেকানিজমের জন্য সহায়তা অন্তর্ভুক্ত থাকে। এর জন্য ভেন্ডর-ডিফাইন করা সিস্টেম প্রপার্টি, অডিও HAL লেটেন্সি মোড, ও স্পেশিয়ালাইজার কানেকশন মোড ব্যবহার করা হয়।
সিস্টেম প্রপার্টি
ফোন ভেন্ডর ইমপ্লিমেন্টেশন,
bluetooth.core.le.dsa_transport_preference সিস্টেম প্রপার্টিতে কাজ করে এমন ট্রান্সপোর্ট মেকানিজমের তালিকা দেখায়। মানটি হল স্ট্রিংয়ের কমা-সেপারেটেড তালিকা,
যেখানে পছন্দ অনুযায়ী ক্রমে কাজ করে এমন ট্রান্সপোর্ট তালিকাভুক্ত করা হয়েছে:
le-acl: LE-ACL ট্রান্সপোর্ট, যখন ইনর্শিয়াল মেজারমেন্ট ইউনিট (IMU) ডেটা সেন্সর স্ট্যাকের মাধ্যমে রিপোর্ট করা হয়।iso-hw: ISO ট্রান্সপোর্ট যার মধ্যে HT ডেটা সরাসরি Bluetooth কন্ট্রোলার থেকে অডিও DSP-তে স্প্যাশিয়ালাইজারে টানেল করার ক্ষমতা আছে।iso-sw: টানেলিং ক্ষমতা ছাড়া ISO ট্রান্সপোর্ট, যখন IMU ডেটা সেন্সর স্ট্যাকের মাধ্যমে রিপোর্ট করা হয়।
লেটেন্সি মোড
BT LE অডিওর ক্ষেত্রে, BT স্ট্যাকের মাধ্যমে অডিও HAL ও অডিও ফ্রেমওয়ার্কে কাজ করে এমন লেটেন্সি মোড নির্দেশ করার মেকানিজম BT ক্লাসিক (A2DP)-এর জন্য নির্ধারিত মেকানিজমের মতোই। বর্তমানে বেছে নেওয়া অডিও ডিভাইস অনুযায়ী অডিও HAL, কাজ করে এমন লেটেন্সি মোড সম্পর্কে রিপোর্ট করে।
A2DP ইমপ্লিমেন্টেশনে শুধুমাত্র FREE ও LOW_LATENCY মোড কাজ করে।
অন্যদিকে, BT LE অডিওর জন্য, LE-ACL এবং LE-ISO ট্রান্সপোর্ট মেকানিজম যোগ করার সুবিধা দিতে অডিও HAL-এ নিম্নলিখিত লেটেন্সি মোড নির্ধারণ করা হয়েছে:
FREE: এই ভ্যালু থেকে বোঝা যায় যে লেটেন্সি সংক্রান্ত কোনও নির্দিষ্ট সীমাবদ্ধতা নেই। কম লেটেন্সি কাজ না করলে (HAL দ্বারা নির্দেশিত) অথবা HT অ্যাক্টিভ না থাকলে (ফ্রেমওয়ার্ক দ্বারা নির্দেশিত) এই মোড ব্যবহার করা হয়।LOW: এই ভ্যালু তুলনামূলকভাবে কম লেটেন্সি (যেমন, ১০০ মিলি সেকেন্ডের কম ) নির্দেশ করে যা HT অপারেশনের সাথে মানানসই। কম লেটেন্সি কাজ করলে এবং ACL প্রোটোকলের মাধ্যমে HID ট্রান্সফার করা হলে (HAL-এর মাধ্যমে ইঙ্গিত করা হয়) অথবা HT অ্যাক্টিভ থাকলে এবং অন্য কোনও কম লেটেন্সি মোড উপলভ্য না থাকলে (ফ্রেমওয়ার্কের মাধ্যমে ইঙ্গিত করা হয়) এই মোড ব্যবহার করা হয়।DYNAMIC_SPATIAL_AUDIO_SOFTWARE: নিম্নলিখিত শর্তগুলির মধ্যে কোনও একটি পূরণ হলে এই মোড ব্যবহার করা হয়:- লো ল্যাটেন্সি কাজ করলে, ISO প্রোটোকলের মাধ্যমে HID পাঠানো হয়, এবং স্পেশিয়ালাইজার এফেক্ট ইঞ্জিনে HID টানেল করা যায় না (HAL-এর মাধ্যমে ইঙ্গিত করা হয়)।
- HT অ্যাক্টিভ থাকলে এবং ISO প্রোটোকল ব্যবহার করা হলে, অডিও ফ্রেমওয়ার্ক স্পেশিয়ালাইজার এফেক্ট ইঞ্জিনে HID ডেটা প্রদান করে (যা ফ্রেমওয়ার্ক দ্বারা নির্দেশিত)।
এই মোডে, ফ্রেমওয়ার্কের HT কম্পিউটিং লাইব্রেরি IMU ডেটার উপর সব প্রিপ্রসেসিং এবং ফোন সেন্সরের মাধ্যমে নির্দেশিত ফোন মুভমেন্টের সাথে রিকনসিলিয়েশন করে।
DYNAMIC_SPATIAL_AUDIO_HARDWARE: নিম্নলিখিত শর্তগুলির মধ্যে একটি পূরণ হলে এই মোড ব্যবহার করা হয়:- কম লেটেন্সি কাজ করলে, ISO প্রোটোকলের মাধ্যমে HID পাঠানো হয় এবং HID-কে স্প্যাশিয়ালাইজার এফেক্ট ইঞ্জিনে টানেল করা যায় (HAL-এর মাধ্যমে বোঝানো হয়)।
- HT অ্যাক্টিভ থাকলে এবং ISO প্রোটোকল ব্যবহার করা হলে, HID ডেটা স্পেশিয়ালাইজার এফেক্ট ইঞ্জিনে টানেল করা হয় (ফ্রেমওয়ার্ক দ্বারা নির্দেশিত)।
এই মোডে, স্পেশিয়ালাইজার এফেক্ট ইঞ্জিন, BT স্ট্যাক বা BT কন্ট্রোলার থেকে সরাসরি প্রসেস না করা IMU ডেটা পায়। স্পেশিয়ালাইজার এফেক্ট প্রয়োগ করার সময় IMU ডেটার সব প্রিপ্রসেসিং এবং ফোনের সেন্সর থেকে পাওয়া ফোনের মুভমেন্টের সাথে সামঞ্জস্য বিধান করা হয়।
লেটেন্সি মোড এনুমগুলি Spatializer.cpp-এ bluetooth.core.le.dsa_transport_preference
সিস্টেম প্রপার্টির সাথে ম্যাপ করা হয়।
স্পেশিয়ালাইজার সাপোর্ট
অডিও পলিসি পরিষেবায় স্পেশিয়ালাইজার
কন্ট্রোলার, LE অডিওর উপর HT ট্রান্সপোর্ট
প্রোটোকল বেছে নেওয়া নিয়ন্ত্রণ করে। স্পেশিয়ালাইজার এফেক্ট ইঞ্জিন ইমপ্লিমেন্টেশন থেকে বোঝা যায় যে
HeadTracking.ConnectionMode ক্ষমতা সহ HT ডেটা টানেলিং কাজ করে।
HT কানেকশন মোডগুলি নিম্নলিখিতভাবে কাজ করে:
FRAMEWORK_PROCESSED: অডিও ফ্রেমওয়ার্ক HAL-এ হেড-টু-স্টেজ ভেক্টর ফর্ম্যাটে প্রিপ্রসেস করা IMU ডেটা প্রদান করে। এই ডিফল্ট মোড BT ক্লাসিকের সাথে বর্তমান মোডের সাথে সম্পর্কিত।DIRECT_TO_SENSOR_SW: স্পেশিয়ালাইজার এফেক্ট ইঞ্জিন সরাসরি সেন্সর সফ্টওয়্যার স্ট্যাকের মাধ্যমে সেন্সরের সাথে কানেক্ট করে। অডিও ফ্রেমওয়ার্ক শুধুমাত্র সেন্সরের চালু থাকা স্ট্যাটাস নিয়ন্ত্রণ করে। AOSPlibheadtrackingIMU ডেটা প্রিপ্রসেসিং বা DSP অফলোড করা স্পেশিয়ালাইজার ইমপ্লিমেন্টেশন ব্যবহার করে না এমন সফ্টওয়্যার ইমপ্লিমেন্টেশনDIRECT_TO_SENSOR_SWমোড ব্যবহার করতে পারে।DIRECT_TO_SENSOR_TUNNEL: স্পেশিয়ালাইজার এফেক্ট ইঞ্জিন সরাসরি হার্ডওয়্যার টানেলিংয়ের মাধ্যমে সেন্সরের সাথে কানেক্ট করে। অডিও ফ্রেমওয়ার্ক শুধুমাত্র সেন্সরের চালু থাকা অবস্থা নিয়ন্ত্রণ করে। DSP অফলোড করা স্পেশিয়ালাইজার ইমপ্লিমেন্টেশনDIRECT_TO_SENSOR_TUNNELমোড ব্যবহার করতে পারে।
লেটেন্সি মোড বেছে নেওয়া
HAL-এর রিপোর্ট করা কাজ করে এমন লেটেন্সি মোড-এর তালিকা থেকে ফ্রেমওয়ার্ক একটি লেটেন্সি মোড বেছে নেয়। বর্তমান HT চালু থাকার অবস্থা, বর্তমান স্পেশিয়ালাইজার সাপোর্ট এবং ভেন্ডর-নির্দিষ্ট সিস্টেম প্রপার্টির উপর ভিত্তি করে লেটেন্সি মোড সেট করা হয় যা ট্রান্সপোর্ট মেকানিজমের মধ্যে অগ্রাধিকারের ক্রম স্থাপন করে।
লেটেন্সি মোড বেছে নিতে, ফ্রেমওয়ার্ক নিম্নলিখিত প্রসেস ব্যবহার করে:selectHeadtrackingConnectionMode_l
- ফ্রেমওয়ার্কটি
bluetooth.core.le.dsa_transport_preferenceসিস্টেম প্রপার্টি থেকে ট্রান্সপোর্ট সংক্রান্ত পছন্দ লোড করে। - অডিও HAL-এর মাধ্যমে জানানো লেটেন্সি মোড ফিল্টার করা হয় এবং ১ম ধাপে লোড করা তালিকার সাথে তুলনা করে সাজানো হয়।
- সর্বোচ্চ অগ্রাধিকারের লো-লেটেন্সি মোড
iso-hwহলে এবং স্পেশালাইজার ইমপ্লিমেন্টেশন সরাসরি সেন্সর কানেকশন সাপোর্ট করলে (অর্থাৎ, স্পেশালাইজারেDIRECT_TO_SENSOR_SWবাDIRECT_TO_SENSOR_TUNNELসেট করা থাকলে), লেটেন্সি মোডDYNAMIC_SPATIAL_AUDIO_HARDWARE-এ সেট করা হয়। সবচেয়ে বেশি অগ্রাধিকারের লো-লেটেন্সি মোড
iso-hwহলে এবং স্পেশিয়ালাইজার ইমপ্লিমেন্টেশন সরাসরি সেন্সর কানেকশন (DIRECT_TO_SENSOR_SWবাDIRECT_TO_SENSOR_TUNNELস্পেশিয়ালাইজারে সেট করা নেই) সাপোর্ট না করলে, পরবর্তী পছন্দের মোড (যাiso-swবাle-acl) লেটেন্সি মোড (যাDYNAMIC_SPATIAL_AUDIO_SOFTWAREবাLOW) নির্ধারণ করে।পরের পছন্দসই মোড উল্লেখ করা না থাকলে, সিস্টেম প্রোডাক্ট কনফিগারেশন সংক্রান্ত সমস্যার কথা জানায়।