เรากำลังจะเปิดตัวเฟรมเวิร์กคุณภาพสื่อใน Android 16 สำหรับ Android TV โดยมีวัตถุประสงค์เพื่อสร้าง API ที่ได้มาตรฐานสำหรับการปรับคุณภาพของภาพ (PQ) และคุณภาพเสียง (AQ) เป้าหมายหลักคือการจัดหา แนวทางที่สอดคล้องกันสำหรับการปรับเหล่านี้ในอุปกรณ์ Android TV ต่างๆ เฟรมเวิร์กที่ได้มาตรฐานนี้มีเป้าหมายเพื่อลดความซับซ้อนในการพัฒนาสำหรับนักพัฒนาแอป ผู้ผลิตอุปกรณ์ดั้งเดิม (OEM) และผู้จำหน่ายระบบบนชิป (SoC) โดย นำเสนอชุด Android API ที่สอดคล้องกัน สำหรับผู้จำหน่าย SoC โดยเฉพาะ การดำเนินการนี้จะช่วยให้เฟรมเวิร์ก Android จัดการการกำหนดค่า PQ และ AQ ได้ ซึ่งจะช่วยลดภาระในการทำงานร่วมกับนักพัฒนาแอปพลิเคชันรายต่างๆ
ท้ายที่สุดแล้ว สำหรับแพลตฟอร์ม Google และ Android การดำเนินการนี้จะช่วยลดการกระจายตัว ปรับปรุงคุณภาพและความสามารถในการปรับขนาด มอบฟีเจอร์ใหม่ๆ และวางรากฐาน สำหรับ UI ของ AQ/PQ แบบรวมและประสบการณ์ของผู้ใช้ที่ดียิ่งขึ้น
เฟรมเวิร์กคุณภาพสื่อรองรับกรณีการใช้งานต่างๆ เพื่อปรับปรุง ประสบการณ์การรับชมทีวี คุณจัดการโปรไฟล์และการตั้งค่าได้ตามชื่อแพ็กเกจ (แอป) หรือตามรหัสอินพุต นอกจากนี้ แอปของระบบหรือ แอปในรายการที่อนุญาตจะสร้างโปรไฟล์ได้ และมีเพียงเจ้าของเท่านั้นที่อัปเดตหรือนำโปรไฟล์ออกได้
โดยเฉพาะอย่างยิ่ง เฟรมเวิร์กจะจัดการโปรไฟล์รูปภาพและเสียง ตัวอย่าง พารามิเตอร์รูปภาพ ได้แก่ ความสว่าง คอนทราสต์ และความคมชัด ส่วนตัวอย่าง พารามิเตอร์เสียง ได้แก่ เสียงเบสและเสียงแหลม
คุณใช้โปรไฟล์เหล่านี้ได้ในบริบทต่างๆ ซึ่งรวมถึงการตั้งค่าโปรไฟล์เริ่มต้นส่วนกลาง
การสตรีมโปรไฟล์โดยใช้ MediaCodec การตั้งค่าโปรไฟล์เริ่มต้นของแอป
สำหรับแอปสื่อที่เฉพาะเจาะจง และการตั้งค่าโปรไฟล์รูปภาพอินพุตของทีวีสำหรับ
อินพุตที่เฉพาะเจาะจง เช่น HDMI นอกจากนี้ เฟรมเวิร์กยังรองรับการเปลี่ยนแปลงสถานะ (อนุญาตให้ใช้ชุดพารามิเตอร์ที่แตกต่างกันสำหรับสถานะต่างๆ เช่น HDR), จัดการโปรไฟล์รูปภาพที่ใช้งานอยู่
สำหรับการประมวลผลที่กำลังดำเนินการ และจัดการฟีเจอร์แบ็กไลต์โดยรอบ
ทีม Android กำลังทำงานร่วมกับพาร์ทเนอร์ในระบบนิเวศเพื่อรองรับเฟรมเวิร์กคุณภาพของสื่อ
คอมโพเนนต์
กรอบคุณภาพสื่อประกอบด้วยองค์ประกอบสำคัญหลายอย่างที่ทำงานร่วมกันในเลเยอร์แอปพลิเคชัน เฟรมเวิร์ก และฮาร์ดแวร์
- Media Quality Manager (SDK API): SDK API ที่หันหน้าไปทางแอปพลิเคชันซึ่ง ช่วยให้แอปจัดการโปรไฟล์ภาพและเสียงได้
- บริการคุณภาพสื่อ: บริการของระบบที่มีตรรกะทางธุรกิจหลัก การจัดการโปรไฟล์ สิทธิ์ และการสื่อสารกับ HAL
- ฐานข้อมูลคุณภาพสื่อ: ฐานข้อมูล SQLite ที่จัดเก็บโปรไฟล์รูปภาพและเสียงทั้งหมด
- สัญญาคุณภาพของสื่อ: กำหนดพารามิเตอร์และโครงสร้างข้อมูลมาตรฐานที่ใช้สำหรับการสื่อสารระหว่างแอปกับเฟรมเวิร์ก
- HAL คุณภาพสื่อ: ระดับชั้นการจัดการฮาร์ดแวร์โดยตรง ที่ผู้ให้บริการ SoC ใช้เพื่อสื่อสารการเปลี่ยนแปลงโปรไฟล์รูปภาพและเสียงกับฮาร์ดแวร์พื้นฐาน
ฟีเจอร์
กรอบการทำงานด้านคุณภาพของสื่อรองรับฟีเจอร์ที่หลากหลายเพื่อมอบระบบที่ยืดหยุ่นและมีประสิทธิภาพสำหรับการจัดการคุณภาพของสื่อ
การจัดการโปรไฟล์
- โปรไฟล์ที่แอปจัดการ: แอปสามารถสร้าง อัปเดต และลบโปรไฟล์ของตัวเอง เพื่อมอบประสบการณ์การใช้งานที่ปรับแต่งแล้ว
- โปรไฟล์เริ่มต้น: แอปของระบบสามารถตั้งค่าโปรไฟล์เริ่มต้นสำหรับแอปบางแอป หรืออินพุตทีวี (เช่น HDMI 1)
- โปรไฟล์เริ่มต้นส่วนกลาง: โปรไฟล์สำรองทั่วทั้งระบบที่ใช้ เมื่อไม่ได้ตั้งค่าโปรไฟล์ที่เฉพาะเจาะจง
เวิร์กโฟลว์โดยรวม
แผนภาพต่อไปนี้แสดงลำดับการเรียกสำหรับการดำเนินการด้านคุณภาพสื่อทั่วไป
สร้างและใช้โปรไฟล์รูปภาพ
- แอปของระบบจะเรียกใช้
setPictureProfileAllowList()เพื่อให้สิทธิ์แอปสื่อ ในการสร้างโปรไฟล์ - แอปสื่อจะลงทะเบียน
PictureProfileCallbackเพื่อรับการแจ้งเตือน เกี่ยวกับการเปลี่ยนแปลงโปรไฟล์ - แอปสื่อจะเรียกใช้
createPictureProfile()ด้วยออบเจ็กต์PictureProfile MediaQualityServiceจะประมวลผลคำขอ บันทึกโปรไฟล์ลงใน ฐานข้อมูล และแจ้งให้แอปทราบว่าสำเร็จหรือไม่โดยใช้ การเรียกกลับที่ลงทะเบียนไว้ (onPictureProfileAdded()หรือonError())
ตั้งค่าโปรไฟล์รูปภาพต่อสตรีม
เวิร์กโฟลว์นี้แสดงวิธีที่แอปพลิเคชันสามารถใช้โปรไฟล์ที่เฉพาะเจาะจงกับ เนื้อหาวิดีโอระหว่างการเล่น
- แอปสื่อจะค้นหา
MediaQualityManagerเพื่อรับรายการโปรไฟล์รูปภาพที่พร้อมใช้งาน - จากนั้นแอปจะใช้
MediaCodec.setParametersเพื่อเลือกและตั้งค่าโปรไฟล์ที่เลือก สำหรับสตรีม - เฟรมเวิร์กจะสื่อสารตัวเลือกนี้ไปยัง HAL คุณภาพสื่อ (MQ) โดยส่งต่อรหัสโปรไฟล์และพารามิเตอร์ของรหัส
- สุดท้าย MQ HAL จะส่งพารามิเตอร์เหล่านี้ไปยัง Composer HAL ซึ่ง จะแสดงสตรีมวิดีโอด้วยโปรไฟล์รูปภาพที่ระบุ
ตั้งค่าโปรไฟล์เริ่มต้นส่วนกลาง
มีเพียงแอปของระบบเท่านั้นที่ตั้งค่าโปรไฟล์เริ่มต้นส่วนกลางได้ ซึ่งจะใช้เป็นโปรไฟล์สำรอง สำหรับเนื้อหาที่ไม่ได้กำหนดโปรไฟล์เฉพาะ
- แอปของระบบจะดึงรายการโปรไฟล์รูปภาพที่ใช้ได้จากเฟรมเวิร์ก
- จากนั้นแอปจะเลือกโปรไฟล์ใดโปรไฟล์หนึ่งเหล่านี้ให้เป็นค่าเริ่มต้นใหม่ทั่วโลกโดย
การเรียกใช้
setDefaultPictureProfile(id) - เฟรมเวิร์กจะส่งพารามิเตอร์ของโปรไฟล์นั้นไปยัง HAL คุณภาพสื่อ ซึ่งจะใช้การเปลี่ยนแปลง
API ของ SDK คุณภาพสื่อ
API ของ Media Quality SDK มีเครื่องมือที่จำเป็นสำหรับแอปในการโต้ตอบกับ
เฟรมเวิร์ก จุดแรกเข้าหลักคือแพ็กเกจ 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 ต้องใช้
อินเทอร์เฟซนี้เพื่อเปิดใช้ Media Quality Framework ในอุปกรณ์ HAL ทำหน้าที่
เป็นสะพานเชื่อมการสื่อสารระหว่าง MediaQualityService ในเฟรมเวิร์ก
Android กับฮาร์ดแวร์พื้นฐาน ซึ่งมีหน้าที่ปรับรูปภาพและ
เสียง
HAL จะจัดการโปรไฟล์รูปภาพและเสียงโดยใช้ AIDL Parcelable ซึ่งรวมถึง การรับการเปลี่ยนแปลงโปรไฟล์จากเฟรมเวิร์กและการแจ้งเตือนเฟรมเวิร์กเกี่ยวกับการ ปรับที่ระดับฮาร์ดแวร์
โมดูล
อินเทอร์เฟซ HAL ประกอบด้วยไฟล์ AIDL หลักหลายไฟล์ดังนี้
| ไฟล์ HAL | คำอธิบาย |
|---|---|
IMediaQuality.aidl |
อินเทอร์เฟซหลักสำหรับบริการคุณภาพสื่อ ซึ่งใช้ในการตั้งค่า Listener และค้นหาความสามารถของฮาร์ดแวร์ |
IPictureProfileChangedListener.aidl |
อินเทอร์เฟซ Listener ที่เฟรมเวิร์กใช้เพื่อแจ้ง HAL (โดยเฉพาะคอมโพเนนต์อย่าง HAL ของ Composer) เกี่ยวกับการเปลี่ยนแปลงโปรไฟล์รูปภาพ |
IPictureProfileAdjustmentListener.aidl |
อินเทอร์เฟซ Listener ที่ HAL ใช้เพื่อแจ้งให้เฟรมเวิร์กทราบถึงการปรับที่ทำในระดับฮาร์ดแวร์ เช่น เมื่อผู้ใช้เปลี่ยนการตั้งค่าโดยตรงโดยใช้รีโมตฮาร์ดแวร์ |
PictureParameter.aidl |
สหภาพ AIDL ที่กำหนดพารามิเตอร์รูปภาพมาตรฐานทั้งหมด เช่น คอนทราสต์และความคมชัด ซึ่งปรับได้ |
PictureProfile.aidl |
Parcelable AIDL ที่แสดงออบเจ็กต์ PictureProfile ที่เลเยอร์ HAL ซึ่งมีรหัสโปรไฟล์และพารามิเตอร์ที่เชื่อมโยง |
ISoundProfileChangedListener.aidl |
อินเทอร์เฟซ Listener ที่เฟรมเวิร์กใช้เพื่อแจ้ง HAL เกี่ยวกับการเปลี่ยนแปลงโปรไฟล์เสียง |
ISoundProfileAdjustmentListener.aidl |
อินเทอร์เฟซ Listener ที่ HAL ใช้เพื่อแจ้งให้เฟรมเวิร์กทราบถึงการปรับเสียงที่ทำในระดับฮาร์ดแวร์ |