LE অডিওর উপর হেড ট্র্যাকিং

ব্লুটুথ (BT) লো এনার্জি (LE) অডিও, হেড ট্র্যাকিং (HT) ডেটার জন্য অ্যাসিঙ্ক্রোনাস কানেকশন-ওরিয়েন্টেড লজিক্যাল (LE-ACL) এবং আইসোক্রোনাস (LE-ISO) লজিক্যাল ট্রান্সপোর্ট মেকানিজম চালু করেছে।

অ্যান্ড্রয়েড ১৫, LE-ACL নাকি LE-ISO ট্রান্সপোর্ট মেকানিজম ব্যবহার করা হচ্ছে তার উপর ভিত্তি করে HT-এর জন্য ল্যাটেন্সি মোড সমন্বয়ের সুবিধা প্রদান করে।

এই পৃষ্ঠায় বর্ণনা করা হয়েছে কিভাবে অডিও ফ্রেমওয়ার্ক, অডিও এইচএএল এবং ব্লুটুথ স্ট্যাক পারস্পরিক ক্রিয়ার মাধ্যমে হোস্ট ও হেডসেট দ্বারা সমর্থিত এলই-এসিএল বা এলই-আইএসও ট্রান্সপোর্ট মেকানিজমগুলো আবিষ্কার ও নির্বাচন করে।

LE-ACL এবং LE-ISO এর জন্য সমর্থন

অ্যান্ড্রয়েড ১৫-এ ভেন্ডর-সংজ্ঞায়িত সিস্টেম প্রপার্টি , অডিও HAL ল্যাটেন্সি মোড এবং স্পেশিয়ালাইজার কানেকশন মোড ব্যবহারের মাধ্যমে LE-ACL ও LE-ISO ট্রান্সপোর্ট মেকানিজমের জন্য সমর্থন অন্তর্ভুক্ত রয়েছে।

সিস্টেম সম্পত্তি

ফোন বিক্রেতার বাস্তবায়নে bluetooth.core.le.dsa_transport_preference সিস্টেম প্রপার্টিতে সমর্থিত ট্রান্সপোর্ট মেকানিজমগুলোর তালিকা দেওয়া থাকে। এর ভ্যালুটি হলো কমা দ্বারা পৃথক করা স্ট্রিং-এর একটি তালিকা, যেখানে সমর্থিত ট্রান্সপোর্টগুলোকে পছন্দের ক্রমানুসারে তালিকাভুক্ত করা হয়:

  • le-acl : LE-ACL ট্রান্সপোর্ট, যখন ইনার্শিয়াল মেজারমেন্ট ইউনিট (IMU)-এর ডেটা সেন্সর স্ট্যাকের মাধ্যমে রিপোর্ট করা হয়।
  • iso-hw : এমন একটি ISO ট্রান্সপোর্ট যা ব্লুটুথ কন্ট্রোলার থেকে সরাসরি অডিও DSP-এর স্পেশিয়ালাইজারে HT ডেটা টানেল করার ক্ষমতা রাখে।
  • iso-sw : টানেলিং ক্ষমতা ছাড়া ISO পরিবহন, যখন IMU ডেটা সেন্সর স্ট্যাকের মাধ্যমে রিপোর্ট করা হয়।

লেটেন্সি মোড

BT LE অডিওর ক্ষেত্রে, BT স্ট্যাক থেকে অডিও HAL এবং অডিও ফ্রেমওয়ার্ককে সমর্থিত ল্যাটেন্সি মোডগুলো জানানোর পদ্ধতিটি BT Classic (A2DP)-এর জন্য সংজ্ঞায়িত পদ্ধতির মতোই। অডিও HAL বর্তমানে নির্বাচিত অডিও ডিভাইস অনুযায়ী সমর্থিত ল্যাটেন্সি মোডগুলো রিপোর্ট করে।

A2DP ইমপ্লিমেন্টেশনগুলো শুধুমাত্র FREE এবং LOW_LATENCY মোড সমর্থন করে।

এর বিপরীতে, BT LE অডিওর ক্ষেত্রে, LE-ACL এবং LE-ISO ট্রান্সপোর্ট মেকানিজম যুক্ত করাকে সমর্থন করার জন্য অডিও HAL-এ নিম্নলিখিত ল্যাটেন্সি মোডগুলি সংজ্ঞায়িত করা হয়েছে:

  • FREE : এই মানটি নির্দেশ করে যে ল্যাটেন্সির উপর কোনো নির্দিষ্ট সীমাবদ্ধতা নেই। এই মোডটি তখন ব্যবহৃত হয় যখন লো ল্যাটেন্সি সমর্থিত নয় (যা HAL দ্বারা নির্দেশিত), অথবা যখন HT সক্রিয় নয় (যা ফ্রেমওয়ার্ক দ্বারা নির্দেশিত)।

  • LOW : এই মানটি HT অপারেশনের সাথে সামঞ্জস্যপূর্ণ একটি অপেক্ষাকৃত কম ল্যাটেন্সি (যেমন, ১০০ মিলিসেকেন্ডের কম) নির্দেশ করে। এই মোডটি তখন ব্যবহৃত হয় যখন কম ল্যাটেন্সি সমর্থিত থাকে এবং HID, ACL প্রোটোকলের মাধ্যমে প্রেরিত হয় (যা HAL দ্বারা নির্দেশিত), অথবা যখন HT সক্রিয় থাকে এবং অন্য কোনো কম ল্যাটেন্সি মোড উপলব্ধ থাকে না (যা ফ্রেমওয়ার্ক দ্বারা নির্দেশিত)।

  • DYNAMIC_SPATIAL_AUDIO_SOFTWARE : নিম্নলিখিত শর্তগুলির মধ্যে একটি পূরণ হলে এই মোডটি ব্যবহৃত হয়:

    • যখন লো ল্যাটেন্সি সমর্থিত হয়, তখন HID ISO প্রোটোকলের মাধ্যমে প্রেরিত হয়, এবং HID-কে স্পেশিয়ালাইজার এফেক্ট ইঞ্জিনে টানেল করা যায় না (যা HAL দ্বারা নির্দেশিত)।
    • যখন HT সক্রিয় থাকে এবং ISO প্রোটোকল ব্যবহৃত হয়, তখন অডিও ফ্রেমওয়ার্ক স্পেশিয়ালাইজার এফেক্ট ইঞ্জিনকে HID ডেটা সরবরাহ করে (যা ফ্রেমওয়ার্ক দ্বারা নির্দেশিত)।

    এই মোডে, ফ্রেমওয়ার্কের HT কম্পিউটিং লাইব্রেরিটি IMU ডেটার সমস্ত প্রিপ্রসেসিং এবং ফোন সেন্সর দ্বারা নির্দেশিত ফোনের নড়াচড়ার সাথে তার সামঞ্জস্য বিধানের কাজ করে।

  • DYNAMIC_SPATIAL_AUDIO_HARDWARE : নিম্নলিখিত শর্তগুলির মধ্যে একটি পূরণ হলে এই মোডটি ব্যবহৃত হয়:

    • যখন লো ল্যাটেন্সি সমর্থিত হয়, তখন HID ISO প্রোটোকলের মাধ্যমে প্রেরণ করা হয়, এবং HID-কে স্পেশিয়ালাইজার এফেক্ট ইঞ্জিনে (যা HAL দ্বারা নির্দেশিত) টানেল করা যায়।
    • যখন HT সক্রিয় থাকে এবং ISO প্রোটোকল ব্যবহৃত হয়, তখন HID ডেটা স্পেশালাইজার এফেক্ট ইঞ্জিনে টানেল করা হয় (যা ফ্রেমওয়ার্ক দ্বারা নির্দেশিত)।

    এই মোডে, স্পেশিয়ালাইজার এফেক্ট ইঞ্জিন সরাসরি বিটি স্ট্যাক বা বিটি কন্ট্রোলার থেকে অপ্রক্রিয়াজাত আইএমইউ ডেটা গ্রহণ করে। স্পেশিয়ালাইজার এফেক্ট ইমপ্লিমেন্টেশনটি আইএমইউ ডেটার উপর সমস্ত প্রিপ্রসেসিং এবং ফোন সেন্সর দ্বারা নির্দেশিত ফোনের নড়াচড়ার সাথে এর সমন্বয় সাধনের কাজ করে।

Spatializer.cpp ফাইলে ল্যাটেন্সি মোড এনামগুলোকে bluetooth.core.le.dsa_transport_preference সিস্টেম প্রপার্টির সাথে ম্যাপ করা হয়েছে।

স্পেশালাইজার সমর্থন

অডিও পলিসি সার্ভিসের স্পেশিয়ালাইজার কন্ট্রোলার LE অডিওর উপর HT ট্রান্সপোর্ট প্রোটোকলের নির্বাচন নিয়ন্ত্রণ করে। স্পেশিয়ালাইজার এফেক্ট ইঞ্জিন ইমপ্লিমেন্টেশনটি HeadTracking.ConnectionMode ক্যাপাবিলিটির মাধ্যমে HT ডেটা টানেলিংয়ের জন্য সমর্থন নির্দেশ করে।

সমর্থিত HT সংযোগ মোডগুলো নিম্নরূপ:

  • FRAMEWORK_PROCESSED : অডিও ফ্রেমওয়ার্কটি প্রিপ্রসেসড IMU ডেটা একটি হেড-টু-স্টেজ ভেক্টর ফরম্যাটে HAL-কে প্রদান করে। এই ডিফল্ট মোডটি BT ক্লাসিকের বর্তমান মোডের অনুরূপ।
  • DIRECT_TO_SENSOR_SW : স্পেশিয়ালাইজার এফেক্ট ইঞ্জিন সেন্সর সফটওয়্যার স্ট্যাকের মাধ্যমে সরাসরি সেন্সরের সাথে সংযুক্ত হয়। অডিও ফ্রেমওয়ার্ক শুধুমাত্র সেন্সরের সক্রিয় অবস্থা নিয়ন্ত্রণ করে। যেসব সফটওয়্যার ইমপ্লিমেন্টেশন AOSP libheadtracking IMU ডেটা প্রিপ্রসেসিং অথবা DSP অফলোডেড স্পেশিয়ালাইজার ইমপ্লিমেন্টেশন ব্যবহার করে না, তারা DIRECT_TO_SENSOR_SW মোডটি ব্যবহার করতে পারে।
  • DIRECT_TO_SENSOR_TUNNEL : স্পেশিয়ালাইজার এফেক্ট ইঞ্জিন হার্ডওয়্যার টানেলিংয়ের মাধ্যমে সরাসরি সেন্সরের সাথে সংযুক্ত হয়। অডিও ফ্রেমওয়ার্ক শুধুমাত্র সেন্সরের সক্রিয় অবস্থা নিয়ন্ত্রণ করে। DSP অফলোডেড স্পেশিয়ালাইজার ইমপ্লিমেন্টেশনগুলো DIRECT_TO_SENSOR_TUNNEL মোড ব্যবহার করতে পারে।

লেটেন্সি মোড নির্বাচন

ফ্রেমওয়ার্কটি HAL দ্বারা রিপোর্ট করা সমর্থিত ল্যাটেন্সি মোডগুলির তালিকা থেকে একটি ল্যাটেন্সি মোড নির্বাচন করে। ল্যাটেন্সি মোডটি বর্তমান HT এনাবল অবস্থা, বর্তমান স্পেশিয়ালাইজার সাপোর্ট এবং ট্রান্সপোর্ট মেকানিজমগুলির মধ্যে অগ্রাধিকার ক্রম স্থাপনকারী ভেন্ডর-নির্দিষ্ট সিস্টেম প্রপার্টির উপর ভিত্তি করে সেট করা হয়।

ফ্রেমওয়ার্কটি selectHeadtrackingConnectionMode_l এ ল্যাটেন্সি মোড নির্বাচন করার জন্য নিম্নলিখিত প্রক্রিয়াটি ব্যবহার করে:

  1. ফ্রেমওয়ার্কটি bluetooth.core.le.dsa_transport_preference সিস্টেম প্রপার্টি থেকে ট্রান্সপোর্ট প্রেফারেন্স লোড করে।
  2. অডিও HAL দ্বারা রিপোর্ট করা সমর্থিত ল্যাটেন্সি মোডগুলিকে ধাপ ১-এ লোড করা তালিকার সাথে মিলিয়ে ফিল্টার ও সাজানো হয়।
  3. যদি সর্বোচ্চ অগ্রাধিকারের লো ল্যাটেন্সি মোডটি iso-hw হয় এবং স্পেশিয়ালাইজার ইমপ্লিমেন্টেশনটি সরাসরি সেন্সর সংযোগ সমর্থন করে (অর্থাৎ, স্পেশিয়ালাইজারে DIRECT_TO_SENSOR_SW বা DIRECT_TO_SENSOR_TUNNEL সেট করা থাকে), তাহলে ল্যাটেন্সি মোডটি DYNAMIC_SPATIAL_AUDIO_HARDWARE এ সেট করা হয়।
  4. যদি সর্বোচ্চ অগ্রাধিকারের লো ল্যাটেন্সি মোড iso-hw হয় এবং স্পেশিয়ালাইজার ইমপ্লিমেন্টেশন সরাসরি সেন্সর সংযোগ সমর্থন না করে (অর্থাৎ স্পেশিয়ালাইজারে DIRECT_TO_SENSOR_SW বা DIRECT_TO_SENSOR_TUNNEL সেট করা না থাকে), তাহলে পরবর্তী পছন্দের মোড (যা iso-sw বা le-acl হতে পারে) ল্যাটেন্সি মোড নির্ধারণ করে (যা DYNAMIC_SPATIAL_AUDIO_SOFTWARE বা LOW হতে পারে)।

    পরবর্তী পছন্দের মোড নির্দিষ্ট করা না থাকলে, সিস্টেম একটি পণ্য কনফিগারেশন ত্রুটি রিপোর্ট করে।