เรากำลังเปิดตัวเฟรมเวิร์กคุณภาพของสื่อใน Android 16 สำหรับ Android TV โดยมีเป้าหมายเพื่อสร้าง API ที่ได้มาตรฐานสำหรับการปรับคุณภาพของภาพ (PQ) และคุณภาพของเสียง (AQ) เป้าหมายหลักคือการมอบแนวทางที่รวมเป็นหนึ่งเดียวสำหรับการปรับเหล่านี้ในอุปกรณ์ Android TV ต่างๆ เฟรมเวิร์กที่ได้มาตรฐานนี้มีเป้าหมายเพื่อลดความซับซ้อนในการพัฒนาสำหรับนักพัฒนาแอป ผู้ผลิตอุปกรณ์ดั้งเดิม (OEM) และผู้จำหน่ายระบบวงจรรวมบนชิป (SoC) ด้วยการนำเสนอชุด API ของ Android ที่สอดคล้องกัน สำหรับผู้จำหน่าย SoC โดยเฉพาะ เฟรมเวิร์กนี้จะช่วยให้เฟรมเวิร์ก Android จัดการการกำหนดค่า PQ และ AQ ได้ ซึ่งจะช่วยลดภาระในการทำงานร่วมกับนักพัฒนาแอปพลิเคชันต่างๆ
ท้ายที่สุดแล้ว เฟรมเวิร์กนี้จะช่วยลดการแยกส่วน ปรับปรุงคุณภาพและความสามารถในการปรับขนาด มอบฟีเจอร์ใหม่ๆ และวางรากฐานสำหรับ UI ของ AQ/PQ ที่รวมเป็นหนึ่งเดียวและประสบการณ์ของผู้ใช้ที่ดียิ่งขึ้นสำหรับแพลตฟอร์ม Google และ Android
เฟรมเวิร์กคุณภาพของสื่อรองรับกรณีการใช้งานต่างๆ เพื่อปรับปรุงประสบการณ์การรับชมทีวี คุณสามารถจัดการโปรไฟล์และการตั้งค่าตามชื่อแพ็กเกจ (แอป) หรือตามรหัสอินพุต นอกจากนี้ แอปของระบบหรือแอปในรายการที่อนุญาตสามารถสร้างโปรไฟล์ได้ และมีเพียงเจ้าของเท่านั้นที่อัปเดตหรือนำโปรไฟล์ออกได้
โดยเฉพาะอย่างยิ่ง เฟรมเวิร์กนี้จะจัดการโปรไฟล์รูปภาพและเสียง ตัวอย่างพารามิเตอร์รูปภาพ ได้แก่ ความสว่าง คอนทราสต์ และความคมชัด ส่วนตัวอย่างพารามิเตอร์เสียง ได้แก่ เบสและเสียงแหลม
คุณสามารถใช้โปรไฟล์เหล่านี้ในบริบทต่างๆ ได้แก่ การตั้งค่าโปรไฟล์เริ่มต้นส่วนกลาง การสตรีมโปรไฟล์โดยใช้ MediaCodec การตั้งค่าโปรไฟล์เริ่มต้นของแอปสำหรับแอปสื่อเฉพาะ และการตั้งค่าโปรไฟล์รูปภาพอินพุตของทีวีสำหรับอินพุตเฉพาะ เช่น HDMI นอกจากนี้ เฟรมเวิร์กยังรองรับการเปลี่ยนแปลงสถานะ (อนุญาตให้ใช้ชุดพารามิเตอร์ต่างๆ สำหรับสถานะต่างๆ เช่น HDR) จัดการโปรไฟล์รูปภาพที่ใช้งานอยู่สำหรับการประมวลผลที่กำลังดำเนินอยู่ และจัดการฟีเจอร์ไฟแบ็กไลต์รอบข้าง
ทีม Android กำลังทำงานร่วมกับพาร์ทเนอร์ในระบบนิเวศเพื่อรองรับเฟรมเวิร์กคุณภาพของสื่อ
คอมโพเนนต์
เฟรมเวิร์กคุณภาพของสื่อประกอบด้วยคอมโพเนนต์หลักหลายรายการที่ทำงานร่วมกันในเลเยอร์แอปพลิเคชัน เฟรมเวิร์ก และฮาร์ดแวร์
- ตัวจัดการคุณภาพของสื่อ (SDK API): SDK API ที่หันหน้าเข้าหาแอปพลิเคชันซึ่ง ช่วยให้แอปจัดการโปรไฟล์รูปภาพและเสียงได้
- บริการคุณภาพของสื่อ: บริการของระบบที่มีตรรกะทางธุรกิจหลัก ซึ่งจัดการโปรไฟล์ สิทธิ์ และการสื่อสารกับ HAL
- ฐานข้อมูลคุณภาพของสื่อ: ฐานข้อมูล SQLite ที่จัดเก็บโปรไฟล์รูปภาพและ เสียงทั้งหมด
- สัญญาคุณภาพของสื่อ: กำหนดพารามิเตอร์และโครงสร้างข้อมูลที่ได้มาตรฐานซึ่งใช้สำหรับการสื่อสารระหว่างแอปและเฟรมเวิร์ก
- HAL คุณภาพของสื่อ: ระดับชั้นการจัดการฮาร์ดแวร์โดยตรงที่ผู้จำหน่าย SoC ใช้เพื่อสื่อสารการเปลี่ยนแปลงโปรไฟล์รูปภาพและเสียงกับฮาร์ดแวร์พื้นฐาน
ฟีเจอร์
เฟรมเวิร์กคุณภาพของสื่อรองรับฟีเจอร์ที่หลากหลายเพื่อมอบระบบที่ยืดหยุ่นและมีประสิทธิภาพสำหรับการจัดการคุณภาพของสื่อ
การจัดการโปรไฟล์
- โปรไฟล์ที่แอปจัดการ: แอปสามารถสร้าง อัปเดต และลบ โปรไฟล์ของตนเองเพื่อมอบประสบการณ์ที่ปรับแต่งได้
- โปรไฟล์เริ่มต้น: แอปของระบบสามารถตั้งค่าโปรไฟล์เริ่มต้นสำหรับแอปที่เฉพาะเจาะจง หรืออินพุตของทีวี (เช่น HDMI 1)
- โปรไฟล์เริ่มต้นส่วนกลาง: โปรไฟล์สำรองทั่วทั้งระบบที่จะใช้ เมื่อไม่มีการตั้งค่าโปรไฟล์ที่เฉพาะเจาะจง
เวิร์กโฟลว์โดยรวม
แผนภาพต่อไปนี้แสดงลำดับการเรียกสำหรับการดำเนินการคุณภาพของสื่อทั่วไป
สร้างและใช้โปรไฟล์รูปภาพ
- แอปของระบบจะเรียก
setPictureProfileAllowList()เพื่อให้สิทธิ์แอปสื่อในการสร้างโปรไฟล์ - แอปสื่อจะลงทะเบียน
PictureProfileCallbackเพื่อรับการแจ้งเตือนเกี่ยวกับการเปลี่ยนแปลงโปรไฟล์ - แอปสื่อจะเรียก
createPictureProfile()ด้วยออบเจ็กต์PictureProfile MediaQualityServiceจะประมวลผลคำขอ บันทึกโปรไฟล์ลงในฐานข้อมูล และแจ้งให้แอปทราบว่าสำเร็จหรือล้มเหลวโดยใช้การเรียกกลับที่ลงทะเบียนไว้ (onPictureProfileAdded()หรือonError())
ตั้งค่าโปรไฟล์รูปภาพต่อสตรีม
เวิร์กโฟลว์นี้แสดงวิธีที่แอปพลิเคชันใช้โปรไฟล์ที่เฉพาะเจาะจงกับเนื้อหาวิดีโอระหว่างการเล่น
- แอปสื่อจะค้นหา
MediaQualityManagerเพื่อรับรายการโปรไฟล์รูปภาพที่พร้อมใช้งาน - จากนั้นแอปจะใช้
MediaCodec.setParametersเพื่อเลือกและตั้งค่าโปรไฟล์ที่เลือกสำหรับสตรีม - เฟรมเวิร์กจะสื่อสารตัวเลือกนี้กับ HAL คุณภาพของสื่อ (MQ) โดยส่งรหัสโปรไฟล์และพารามิเตอร์ของโปรไฟล์
- สุดท้าย HAL MQ จะส่งพารามิเตอร์เหล่านี้ไปยัง Composer HAL ซึ่งจะแสดงสตรีมวิดีโอด้วยโปรไฟล์รูปภาพที่ระบุ
ตั้งค่าโปรไฟล์เริ่มต้นส่วนกลาง
มีเพียงแอปของระบบเท่านั้นที่ตั้งค่าโปรไฟล์เริ่มต้นส่วนกลางได้ ซึ่งจะทำหน้าที่เป็นโปรไฟล์สำรองสำหรับเนื้อหาที่ไม่ได้กำหนดโปรไฟล์ที่เฉพาะเจาะจง
- แอปของระบบจะดึงรายการโปรไฟล์รูปภาพที่พร้อมใช้งานจากเฟรมเวิร์ก
- จากนั้นแอปจะเลือกโปรไฟล์เหล่านี้โปรไฟล์ใดโปรไฟล์หนึ่งให้เป็นโปรไฟล์เริ่มต้นส่วนกลางใหม่โดยเรียก
setDefaultPictureProfile(id) - เฟรมเวิร์กจะส่งพารามิเตอร์ของโปรไฟล์นั้นไปยัง HAL คุณภาพของสื่อ ซึ่งจะใช้การเปลี่ยนแปลง
Media Quality SDK API
Media Quality SDK API มีเครื่องมือที่จำเป็นสำหรับแอปในการโต้ตอบกับเฟรมเวิร์ก จุดเริ่มต้นหลักคือแพ็กเกจ android.media.quality
android.media.quality
แพ็กเกจนี้มีคลาสหลักสำหรับการจัดการคุณภาพของสื่อ
| ชั้นเรียน | คำอธิบาย |
|---|---|
MediaQualityManager |
คลาสส่วนกลางสำหรับการโต้ตอบกับ MQF |
PictureProfile |
คลาสข้อมูลที่แสดงชุดพารามิเตอร์รูปภาพทั้งหมดสำหรับโหมดที่เฉพาะเจาะจง |
SoundProfile |
คลาสข้อมูลสำหรับพารามิเตอร์เสียง |
MediaQualityContract |
คลาสที่มีค่าคงที่สำหรับคีย์พารามิเตอร์ที่กำหนดไว้ล่วงหน้าทั้งหมด |
MediaQualityManager
เมธอดหลัก ได้แก่
| เมธอด | คำอธิบาย |
|---|---|
createPictureProfile(PictureProfile profile) |
สร้างโปรไฟล์รูปภาพใหม่ ต้องได้รับสิทธิ์พิเศษหรือแอปต้องอยู่ในรายการที่อนุญาต |
updatePictureProfile(PictureProfile profile) |
อัปเดตโปรไฟล์รูปภาพที่มีอยู่ เรียกได้เฉพาะผู้สร้างโปรไฟล์เท่านั้น |
removePictureProfile(String profileId) |
ลบโปรไฟล์ เรียกได้เฉพาะผู้สร้างโปรไฟล์เท่านั้น |
getAvailablePictureProfiles() |
แสดงรายการโปรไฟล์รูปภาพที่พร้อมใช้งานทั้งหมด |
setDefaultPictureProfile(String profileId) |
ตั้งค่าโปรไฟล์รูปภาพเริ่มต้นส่วนกลาง ต้องได้รับสิทธิ์ MANAGE_GLOBAL_PICTURE_QUALITY_SERVICE |
registerPictureProfileCallback(PictureProfileCallback cb) |
ลงทะเบียนการเรียกกลับเพื่อรับฟังการเปลี่ยนแปลงโปรไฟล์ |
ออบเจ็กต์ PictureProfile
ออบเจ็กต์ PictureProfile จะห่อหุ้มข้อมูลทั้งหมดสำหรับโหมดรูปภาพที่กำหนด
public final class PictureProfile {
private String id;
private int type; // System or Application
private String name; // e.g., "Movie", "Game"
private String inputId; // e.g., "HDMI1"
private String packageName; // e.g., "com.google.android.youtube"
private PersistableBundle parameters; // Bundle containing all PQ parameters
}
HAL คุณภาพของสื่อ
HAL คุณภาพของสื่อเป็นอินเทอร์เฟซที่อิงตาม AIDL ซึ่งกำหนดไว้ใน hardware/interfaces/tv/mediaquality/aidl/ ผู้จำหน่าย SoC ต้องใช้อินเทอร์เฟซนี้เพื่อเปิดใช้เฟรมเวิร์กคุณภาพของสื่อในอุปกรณ์ของตน HAL ทำหน้าที่เป็นสะพานเชื่อมการสื่อสารระหว่าง MediaQualityService ในเฟรมเวิร์ก Android กับฮาร์ดแวร์พื้นฐาน ซึ่งมีหน้าที่ใช้การปรับรูปภาพและเสียง
HAL จะจัดการโปรไฟล์รูปภาพและเสียงโดยใช้ AIDL Parcelable ซึ่งรวมถึงการรับการเปลี่ยนแปลงโปรไฟล์จากเฟรมเวิร์กและการแจ้งให้เฟรมเวิร์กทราบถึงการปรับที่ทำในระดับฮาร์ดแวร์
โมดูล
อินเทอร์เฟซ HAL ประกอบด้วยไฟล์ AIDL หลักหลายไฟล์ ดังนี้
| ไฟล์ HAL | คำอธิบาย |
|---|---|
IMediaQuality.aidl |
อินเทอร์เฟซหลักสำหรับบริการคุณภาพของสื่อ ซึ่งใช้สำหรับการตั้งค่า Listener และการค้นหาความสามารถของฮาร์ดแวร์ |
IPictureProfileChangedListener.aidl |
อินเทอร์เฟซ Listener ที่เฟรมเวิร์กใช้เพื่อแจ้งให้ HAL (โดยเฉพาะคอมโพเนนต์ เช่น Composer HAL) ทราบถึงการเปลี่ยนแปลงโปรไฟล์รูปภาพ |
IPictureProfileAdjustmentListener.aidl |
อินเทอร์เฟซ Listener ที่ HAL ใช้เพื่อแจ้งให้เฟรมเวิร์กทราบถึงการปรับที่ทำในระดับฮาร์ดแวร์ เช่น เมื่อผู้ใช้เปลี่ยนการตั้งค่าโดยตรงโดยใช้รีโมตฮาร์ดแวร์ |
PictureParameter.aidl |
สหภาพ AIDL ที่กำหนดพารามิเตอร์รูปภาพมาตรฐานทั้งหมด เช่น คอนทราสต์และความคมชัด ซึ่งปรับได้ |
PictureProfile.aidl |
AIDL Parcelable ที่แสดงออบเจ็กต์ PictureProfile ในเลเยอร์ HAL ซึ่งมีรหัสโปรไฟล์และพารามิเตอร์ที่เกี่ยวข้อง |
ISoundProfileChangedListener.aidl |
อินเทอร์เฟซ Listener ที่เฟรมเวิร์กใช้เพื่อแจ้งให้ HAL ทราบถึงการเปลี่ยนแปลงโปรไฟล์เสียง |
ISoundProfileAdjustmentListener.aidl |
อินเทอร์เฟซ Listener ที่ HAL ใช้เพื่อแจ้งให้เฟรมเวิร์กทราบถึงการปรับเสียงที่ทำในระดับฮาร์ดแวร์ |