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