หลังจากเปิดตัววิดีโอ 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 สามารถระบุ Shader ของ 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 ประกอบด้วยสิ่งต่อไปนี้
- Gain Map จะเข้ารหัสเป็นรูปภาพ PNG ซึ่งมีกลุ่ม
gmAPที่มีข้อมูลเมตา ISO 21496-1 สำหรับ Gain Map - การแสดงผลพื้นฐานของ SDR จะได้รับการเข้ารหัสเป็นรูปภาพ PNG ซึ่งมี
gmAPChunk ที่มีข้อมูลเมตาเวอร์ชัน ISO 21496-1 รูปภาพ PNG นี้ยังมีก้อนข้อมูลgdATซึ่งมี ส่วนทั้งหมดของ PNG ของ Gainmap ที่เข้ารหัส
รูปภาพต่อไปนี้แสดงเลย์เอาต์ของกลุ่มข้อมูล PNG
รูปที่ 3 เลย์เอาต์ของ Chunk PNG
ใน Android 16 ตัวแปลงรหัส PNG จะรองรับทั้งการเข้ารหัสและการถอดรหัส PNG เหล่านี้ แอปสามารถแสดง PNG ที่มี Gainmap ในลักษณะเดียวกับ Ultra HDR