องค์ประกอบ SDR และ HDR ผสมกัน

หน้านี้อธิบายข้อกำหนด การกำหนดค่า และการตรวจสอบฟีเจอร์การหรี่แสงเนื้อหา SDR สำหรับการจัดองค์ประกอบเนื้อหา SDR และ HDR แบบผสม

Android 13 ปรับปรุงการรองรับการนำเสนอการจัดองค์ประกอบเนื้อหา SDR และ HDR พร้อมกันบนหน้าจอโดยการเปิดตัวฟีเจอร์ต่อไปนี้

  • การแมปโทนสีความสว่าง HDR ให้เป็นช่วงที่เข้ากันได้กับ SDR

    การใช้ libtonemap จะช่วยให้การทำ การแมปโทนสี สอดคล้องกัน ระหว่าง Hardware Composer (HWC), SurfaceFlinger และแอป OEM สามารถใช้เส้นโค้งการแมปโทนสีของตนเองเพื่อแชร์ระหว่างคอมโพเนนต์ของผู้ให้บริการและเฟรมเวิร์ก

  • การหรี่แสงเนื้อหา SDR บนหน้าจอเมื่อนำเสนอพร้อมกับเนื้อหา HDR

    เมื่อเนื้อหา HDR ปรากฏบนหน้าจอ ความสว่างของหน้าจอจะเพิ่มขึ้นเพื่อรองรับช่วงความสว่างที่เพิ่มขึ้นของเนื้อหา HDR เนื้อหา SDR ที่ปรากฏบนหน้าจอจะหรี่แสงลงอย่างราบรื่นเมื่อความสว่างของหน้าจอเพิ่มขึ้น เพื่อไม่ให้ความสว่างที่รับรู้ได้ของเนื้อหา SDR เปลี่ยนไป OEM สามารถกำหนดค่าจอแสดงผลในตัวให้หรี่แสงเนื้อหา SDR บนหน้าจอเมื่อนำเสนอพร้อมกับเนื้อหา HDR

ข้อกำหนดของ OEM

หากต้องการใช้การจัดองค์ประกอบเนื้อหาที่ปรับปรุงแล้วสำหรับเนื้อหา HDR และ SDR ผ่านการหรี่แสงเนื้อหา SDR ให้ทำตามข้อกำหนดต่อไปนี้

  • ใช้ HWC เวอร์ชัน AIDL ซึ่งรวมถึงการรองรับการหรี่แสงที่เร่งด้วยฮาร์ดแวร์ในไปป์ไลน์สีของอุปกรณ์ โปรดดู AIDL สำหรับ HWC เพื่อใช้ความสามารถที่จำเป็น

  • การหรี่แสงฮาร์ดแวร์โอเวอร์เลย์ใน HWC อย่างแม่นยำต้องใช้ฮาร์ดแวร์เฉพาะเพื่อปรับขนาดแสงเชิงเส้นของโอเวอร์เลย์ การใช้งานที่ไม่มีฮาร์ดแวร์เพียงพอจะต้องเลื่อนการจัดองค์ประกอบเนื้อหาไปยัง GPU โดย SurfaceFlinger ซึ่งจะทำให้แบตเตอรี่หมดเร็วขึ้นและการหรี่แสงอาจมีคุณภาพต่ำ

  • อุปกรณ์ต้องรองรับเทคโนโลยี HDR อย่างน้อย 1 รายการที่รายงานโดย Display.getHdrCapabilities

การกำหนดค่า

คุณสามารถกำหนดค่าฟีเจอร์การจัดองค์ประกอบเนื้อหา SDR และ HDR แบบผสมได้ตามลักษณะของอุปกรณ์แสดงผลในตัว เพื่อให้มีการประนีประนอมระหว่างอายุการใช้งานแบตเตอรี่ ภาพค้างในหน้าจอ และความสมจริงของเนื้อหา

การเปิดใช้และการปรับการจัดองค์ประกอบเนื้อหาที่ปรับปรุงแล้วจะทำผ่านการกำหนดค่าจอแสดงผล ซึ่งสคีมาจะอยู่ใน display-device-config.xsd องค์ประกอบคีย์ใหม่ต่อไปนี้มีความสำคัญในการตั้งค่าการกำหนดค่าจอแสดงผล

  • องค์ประกอบ sdrHdrRatioMap ช่วยให้การหรี่แสง SDR และกำหนดตารางการค้นหา (LUT) สำหรับการทำ Tone Mapping ความสว่างของหน้าจอสำหรับ HDR ที่จะแสดงเป็นจุดสีขาว SDR เมื่อมีเนื้อหา HDR บนหน้าจอ

    หากมีการกำหนด sdrHdrRatioMap ไว้ DisplayManagerService จะสื่อสารจุดสีขาว SDR ที่ต้องการไปยัง SurfaceFlinger เพื่อให้ SurfaceFlinger ส่งอัตราส่วนการหรี่แสงที่เหมาะสมต่อเลเยอร์ไปยัง HWC ซึ่งเป็นส่วนหนึ่งของการควบคุมความสว่างของหน้าจอ

    หากไม่ได้กำหนด sdrHdrRatioMap ไว้ การหรี่แสง SDR จะไม่เปิดใช้ แม้ว่าการใช้งาน HWC จะรองรับการหรี่แสง SDR ก็ตาม

  • องค์ประกอบ minimumHdrPercentOfScreen ที่มีค่าตั้งแต่ 0 ถึง 100 จะควบคุมเวลาที่ระบบอนุญาตให้เปิดโหมดความ สว่างสูงของแผง ใน Android 13 คุณสามารถปรับเกณฑ์นี้เพื่อเปิดใช้โหมดความสว่างสูงในสถานการณ์ต่างๆ มากขึ้น เช่น สถานการณ์แบบ Picture-in-Picture AOSP เวอร์ชันก่อนหน้ากำหนดค่านี้ไว้ที่ 50%

ดูองค์ประกอบคีย์ของการกำหนดค่าจอแสดงผลได้ในโค้ดบล็อกต่อไปนี้

<displayConfiguration>
    ...
    <highBrightnessMode>
        ...
        <!--Percentage of the screen that must be covered by HDR layers until high brightness mode is enabled.
        <minimumHdrPercentOfScreen>...</minimumHdrPercentOfScreen>
        <!--sdrHdrRatioMap, backed by spline, must have at least two entries -->
        <sdrHdrRatioMap>
            <point>
                <sdrNits>...</sdrNits>
                <hdrRatio>...</hdrRatio>
            </point>
            <point>
                <sdrNits>...</sdrNits>
                <hdrRatio>...</hdrRatio>
            </point>
            <!--More interpolation points may be added –->
            ...
        </sdrHdrRatioMap>
        ...
    </highBrightnessMode>
    ...
</displayConfiguration>

ข้อควรระวัง

การเปิดใช้ฟีเจอร์การแมปโทนสีและการหรี่แสงเนื้อหา SDR อาจทำให้เกิดสถานการณ์ต่อไปนี้

  • ความสมจริงของเนื้อหา HDR ที่เล่นบนอุปกรณ์อาจเพิ่มขึ้นเนื่องจากองค์ประกอบเนื้อหา SDR หรี่แสงลง

  • อายุการใช้งานแบตเตอรี่อาจลดลงในสถานการณ์ต่อไปนี้

    • การใช้งาน HWC ที่เลื่อนการดำเนินการหรี่แสงไปยัง GPU อาจทำให้ GPU ทำงานมากขึ้น

    • การกำหนดค่าจอแสดงผลที่อนุญาตให้ใช้เกณฑ์ต่ำกว่าสำหรับการเปิดใช้โหมดความสว่างสูงอาจเพิ่มการใช้พลังงานสำหรับการแสดงหน้าจอที่ความสว่างสูงขึ้น

  • สุขภาพของหน้าจออาจได้รับผลกระทบเนื่องจากใช้เวลาในโหมดความสว่างสูงนานขึ้น ซึ่งอาจทำให้เกิดปัญหาในระยะยาว เช่น ภาพค้างในหน้าจอ

การตรวจสอบ

OEM สามารถใช้การทดสอบ VTS ซึ่งรวมอยู่ในการทดสอบชุดโปรแกรมทดสอบของ HWC เพื่อตรวจสอบความถูกต้องของการหรี่แสงและเพื่อตรวจสอบอัตราส่วนการหรี่แสงอินพุต

การตรวจสอบฟีเจอร์นี้ขึ้นอยู่กับอุปกรณ์ จึงไม่มีการทดสอบ CTS หรือ GTS ที่รองรับ

OEM ต้องทำการทดสอบด้วยตนเองเพื่อตรวจสอบว่าคุณภาพของรูปภาพขององค์ประกอบ SDR ที่หรี่แสงลงอยู่ในระดับที่ยอมรับได้ OEM สามารถเล่นเนื้อหาตามมาตรฐาน HDR ที่อุปกรณ์รองรับผ่าน SurfaceView เพื่อตรวจสอบว่าองค์ประกอบ SDR ที่เล่นพร้อมกับเนื้อหา HDR ไม่สว่างจนเกินไป

ปัญหา

การหรี่แสงรูปภาพ SDR อาจทำให้เกิด Black Crush หรือการสูญเสียข้อมูลในบริเวณที่มืดกว่า ของรูปภาพต้นฉบับ ซึ่งเป็นผลมาจากค่าสีที่เข้มกว่ารวมกันเป็นชุดโค้ดสีเข้มที่เล็กลง

การใช้งานสำหรับการหรี่แสงที่ทำให้เกิด Black Crush ที่ยอมรับไม่ได้ต้องใช้อัลกอริทึมการกระจายสี ซึ่งจะแทรกสัญญาณรบกวนลงในรูปภาพสุดท้ายเพื่อลดเอฟเฟกต์แถบสี

การใช้งาน HWC ที่ไม่สามารถกระจายสีรูปภาพในตำแหน่งที่เหมาะสมในไปป์ไลน์สีต้องขอให้ SurfaceFlinger ใช้การหรี่แสงและการกระจายสีบน GPU

การใช้งานยังสามารถปรับค่า sdrHdrRatioMap เพื่อจำกัดปริมาณการหรี่แสงสำหรับองค์ประกอบ SDR ได้ด้วย การหรี่แสงให้อยู่ในระดับความสว่างต่ำมากต้องใช้ GPU ซึ่งจะช่วยปรับปรุงคุณภาพของรูปภาพแต่จะลดอายุการใช้งานแบตเตอรี่