นับตั้งแต่เปิดตัววิดีโอ High Dynamic Range (HDR) บริการสตรีมมิงก็เริ่มสตรีมวิดีโอ HDR โดยเน้นที่ประสบการณ์การรับชมแบบเต็มหน้าจอ เมื่อเร็วๆ นี้ แอปโซเชียลมีเดียได้เริ่มรองรับวิดีโอ HDR และ Ultra HDR ซึ่งแสดงให้เห็นว่าผู้คนเริ่มให้ความสนใจในการใช้ HDR ในแอปต่างๆ มากขึ้น
การรองรับ HDR ของ Android
ต่อไปนี้คือเหตุการณ์สำคัญในการรองรับเทคโนโลยี HDR ของ Android ในช่วงหลายปีที่ผ่านมา
Android 7
- การรองรับเบื้องต้นสำหรับการถอดรหัสและการแสดงผลวิดีโอ HDR
- การพัฒนาความสามารถของ HDR อย่างต่อเนื่อง
Android 13
- การรองรับจากต้นทางถึงปลายทางสำหรับการจับภาพ การเข้ารหัส และการแสดงผลวิดีโอ HDR
- การเปิดตัวการผสมองค์ประกอบ SDR และ HDR ซึ่งกำหนดช่วงความสว่างที่แสดงได้แตกต่างกันระหว่าง SDR และ HDR
Android 14
- รองรับรูปภาพ HDR ด้วย Ultra HDR
การรองรับภาพหน้าจอด้วย HDR ก็มีการพัฒนาและเปลี่ยนแปลงไปหลายอย่างเช่นกันในช่วงหลายปีที่ผ่านมา
ความก้าวหน้าของความสามารถในการถ่ายภาพหน้าจอ HDR
ส่วนนี้จะติดตามความคืบหน้าของความสามารถในการจับภาพหน้าจอ HDR ในการอัปเดต Android ล่าสุด
Android 9
SurfaceFlinger ซึ่งเป็นโปรแกรมคอมโพสิชันกราฟิกของ Android รองรับวิดีโอ HDR แล้ว GPU รองรับการแสดงผลวิดีโอและภาพหน้าจอ HDR ด้วยโปรแกรมแมปโทนสีแบบพหุนามที่ซับซ้อน เส้นโค้งการปรับโทนสีนี้อาจไม่เท่ากับตัวปรับโทนสีของจอแสดงผลเสมอไป ดังนั้นภาพหน้าจอจึงแตกต่างจากเนื้อหาบนหน้าจอ
Android 13
ระบบจะเพิ่มปลั๊กอินการปรับโทนสีลงในบล็อกการแสดงผล GPU ของ SurfaceFlinger ซึ่งช่วยให้ OEM ระบุโปรแกรมเปลี่ยนสี GPU ให้ตรงกับเส้นโค้งการปรับโทนสีของจอแสดงผลได้ ภาพหน้าจอเกือบตรงกับสิ่งที่แสดงบนหน้าจอ แต่มีข้อแตกต่างดังนี้
- ภาพหน้าจอจะยังคงอยู่ในรูปแบบ SDR ดังนั้น เมื่อดูภาพหน้าจอควบคู่ไปกับฉาก HDR บริเวณ HDR ในภาพหน้าจอจะดูสลัวกว่า
- ระบบไม่ได้จัดการความสว่าง SDR ส่งผลให้เนื้อหา SDR ในภาพหน้าจอปรากฏสว่างเท่ากับเนื้อหา HDR
กล่าวคือ ระบบจะแปลงวิดีโอ HDR ที่บันทึกไว้ในภาพหน้าจอเป็นวิดีโอ SDR
Android 14
Ultra HDR เป็นปัญหาที่ท้าทายอย่างยิ่งสำหรับการจับภาพหน้าจอ โดยทั่วไปแล้ว รูปภาพจะแสดงผลภายในเฟรมบัฟเฟอร์ UI ซึ่งแตกต่างจากวิดีโอ โดยมีผลลัพธ์หลัก 2 อย่างดังนี้
- รูปภาพต้องไม่มีการประมวลผลรูปภาพ ซึ่งรวมถึงการปรับโทนสีที่แตกต่างจาก UI รอบๆ
- แอปมีหน้าที่รับผิดชอบในการแมปโทนสีตามแหล่งที่มาเมื่อแสดงผล UI
ในการลดความท้าทายนี้ การใช้งานภาพหน้าจอที่เป็นไปได้มี 3 วิธีดังนี้
- เก็บรายละเอียด HDR ของรูปภาพ Ultra HDR ไว้ ซึ่งจะทำให้ UI ของแอปในภาพหน้าจอมืดลง
- เก็บรายละเอียด UI ของแอปไว้ ซึ่งทำให้ภาพ Ultra HDR มีการครอบตัด
- ประนีประนอมโดยการเพิ่มความสว่างให้กับ UI ของแอปขณะที่ตัดไฮไลต์ HDR
Android 14 ใช้แนวทางที่ 3 ซึ่งก็คือการเพิ่มความสว่างให้กับ UI ของแอปและการครอบตัดไฮไลต์ HDR
Android 15-QPR1
SurfaceFlinger มีอัลกอริทึมการปรับโทนสีในเครื่องสำหรับภาพหน้าจอ กระบวนการนี้ประกอบด้วยขั้นตอนต่อไปนี้
- การแบ่งรูปภาพอินพุตออกเป็นรูปภาพขนาดเล็ก
- การคํานวณความสว่างสูงสุดในแต่ละรูปภาพ และทิ้งค่าความสว่างต่ำภายในแต่ละส่วน
- การปรับค่าความสว่างที่คำนวณแล้วผ่านการเบลอและการสุ่มตัวอย่างอีกครั้ง
- การใช้โทนแมปเปอร์ Reinhard ที่มีพารามิเตอร์กับรูปภาพอินพุต โดยอิงตามค่าความสว่างที่อัตราส่วน
อัลกอริทึมนี้แสดงการปรับปรุงภาพหน้าจอที่สำคัญระหว่าง Android 14 กับ Android 15-QPR1 ดังที่แสดงในตัวอย่างต่อไปนี้
ตัวอย่างที่ 1 คือภาพหน้าจอของวิดีโอ HDR ที่วางซ้อนอยู่ด้านบนหน้า Chrome ที่มี Ultra HDR สีของ UI ส่วนใหญ่จะยังคงเดิมในการใช้งานแบบใหม่ และรูปภาพจะไม่ถูกตัดอีกต่อไป
Android 14 Android 15-QPR1 รูปที่ 1 การเปรียบเทียบ Android 14 กับ Android 15-QPR1 สำหรับตัวอย่างที่ 1
ตัวอย่างที่ 2 คือภาพหน้าจอของวิดีโอ HDR ที่วางซ้อนอยู่ด้านบนการตั้งค่าพร้อมภาพหน้าจอที่ตามมา ใน Android 14 สีของภาพหน้าจอจะเข้มขึ้นเรื่อยๆ ใน Android 15-QPR1 เครื่องมือปรับโทนสีจะจำลองและรักษาสีของ UI ได้อย่างถูกต้อง
Android 14 Android 15-QPR1 รูปที่ 2 การเปรียบเทียบ Android 14 กับ Android 15-QPR1 สําหรับตัวอย่างที่ 2
Android 16
ภาพหน้าจอ HDR จะจัดเก็บแผนที่การขยายสัญญาณในไฟล์ภาพหน้าจอเพื่อกู้คืนการแสดงผล HDR ในระหว่างการแสดงผล ซึ่งคล้ายกับ Ultra HDR อย่างไรก็ตาม ภาพหน้าจอจะยังคงอยู่ในรูปแบบ PNG เพื่อใช้งานร่วมกับระบบที่นำเข้าภาพหน้าจอ PNG ได้ย้อนหลัง ซึ่งแตกต่างจาก Ultra HDR
รายละเอียดการสร้างภาพหน้าจอมีดังนี้
- เมื่อเนื้อหา HDR แสดงบนอุปกรณ์ ระบบจะสร้างภาพหน้าจอโดยใช้พิกเซล FP16
- โปรแกรมเปลี่ยนโทนระดับท้องถิ่นที่อธิบายไว้ใน Android 15-QPR1 จะสร้างการแสดงผล SDR พื้นฐาน 8 บิต
- แผนที่การขยายสัญญาณ 8 บิตสร้างขึ้นโดยการรวมการแสดงผลพื้นฐาน SDR เข้ากับการแสดงผล HDR
- ระบบจะเข้ารหัสการแสดงผลพื้นฐาน SDR และแผนที่การขยายเป็นไฟล์ PNG ไฟล์เดียว
รายละเอียดการเข้ารหัส PNG มีดังนี้
- แผนที่อัตราขยายจะเข้ารหัสเป็นรูปภาพ PNG ซึ่งประกอบด้วยข้อมูลโค้ด gmAP ที่มีข้อมูลเมตา ISO 21496-1 สำหรับแผนที่อัตราขยาย
- การแสดงผลพื้นฐาน SDR ได้รับการเข้ารหัสเป็นรูปภาพ PNG ซึ่งประกอบด้วยข้อมูลโค้ด gmAP ที่มีข้อมูลเมตา ISO 21496-1 เวอร์ชัน รูปภาพ PNG นี้ยังมีข้อมูล gdAT ที่มีไฟล์ PNG ของแผนที่การขยายสัญญาณที่เข้ารหัสทั้งหมดด้วย
รูปภาพต่อไปนี้แสดงเลย์เอาต์ของข้อมูลโค้ด PNG
รูปที่ 3 เลย์เอาต์ของข้อมูลโค้ด PNG
ใน Android 16 ตัวแปลงรหัส PNG จะรองรับทั้งการเข้ารหัสและการถอดรหัส PNG เหล่านี้ แอปสามารถแสดง PNG ที่มีแผนที่การขยายสัญญาณในลักษณะเดียวกับ Ultra HDR