เอาต์พุตกล้อง 10 บิต

สำหรับอุปกรณ์ที่ใช้ Android 13 ขึ้นไป Android รองรับเอาต์พุตกล้อง 10 บิตผ่านโปรไฟล์ช่วงไดนามิกที่ไคลเอ็นต์กล้องกำหนดค่าได้ โดยเป็นส่วนหนึ่งของการกำหนดค่าสตรีม ผู้ผลิตอุปกรณ์สามารถเพิ่มการรองรับโปรไฟล์ช่วงไดนามิก 10 บิต เช่น HLG10, HDR 10, HDR 10+ และ Dolby Vision

การสนับสนุนเอาต์พุตกล้อง 10 บิตช่วยให้ไคลเอนต์กล้องค้นพบโปรไฟล์ช่วงไดนามิก 10 บิตที่รองรับของอุปกรณ์โดยการเรียก getSupportedProfiles จากนั้นเฟรมเวิร์กจะส่งคืนอินสแตนซ์ของ DynamicRangeProfiles ซึ่งรวมถึงข้อมูลเกี่ยวกับโปรไฟล์ช่วงไดนามิกที่รองรับ และหากมี จะบันทึกข้อจำกัดคำขอ ต้องรองรับโปรไฟล์ HLG10 โปรไฟล์ช่วงไดนามิกที่แนะนำจะแสดงอยู่ในฟิลด์ REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE

ไคลเอนต์กล้องสามารถกำหนดค่าการรวมสตรีมได้โดยการเรียก setDynamicRangeProfile สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการรวมสตรีมเอาต์พุตบังคับ โปรดดูตาราง การกำหนดค่าการรับประกันเพิ่มเติมเอาต์พุต 10 บิต ใน การจับภาพปกติ

ความต้องการ

หากต้องการรองรับเอาต์พุตกล้อง 10 บิต อุปกรณ์จะต้องมีเซ็นเซอร์กล้องที่มีความสามารถ 10 บิตหรือสูงกว่าพร้อมการรองรับ ISP ตามลำดับ สำหรับรายละเอียดเกี่ยวกับข้อกำหนดความเข้ากันได้ที่เกี่ยวข้องสำหรับการสนับสนุน 10 บิต ดูหัวข้อ 7.5 กล้อง ใน CDD

การนำไปปฏิบัติ

เพื่อให้รองรับเอาต์พุตกล้อง 10 บิต ผู้ผลิตอุปกรณ์จะต้องดำเนินการผสานรวม Camera AIDL HAL ต่อไปนี้:

  • รวม ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT ในความสามารถของกล้อง
  • เติม ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP ด้วยโปรไฟล์ช่วงไดนามิกที่รองรับทั้งหมดและบิตแมปของข้อจำกัด ต้องรองรับโปรไฟล์ HLG10 คุณต้องรวมโปรไฟล์ช่วงไดนามิกที่แนะนำเพื่อแจ้งให้ไคลเอ็นต์กล้องทราบถึงรูปแบบที่รองรับอย่างเหมาะสมที่สุด
  • ตรวจสอบการรองรับค่าโปรไฟล์ช่วงไดนามิกระหว่างการกำหนดค่าสตรีมสำหรับสตรีมโดยใช้รูปแบบ P010 หรือรองรับรูปแบบที่กำหนดการใช้งาน ( ImageFormat.PRIVATE )
  • ขึ้นอยู่กับโปรไฟล์ช่วงไดนามิก ให้ตั้งค่าบัฟเฟอร์เมตาดาต้าแบบคงที่หรือไดนามิกของบัฟเฟอร์ Gralloc 4 ที่ประมวลผลก่อนที่จะแจ้งเตือนบริการกล้อง

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับเอาต์พุตกล้อง 10 บิตใน Camera HAL โปรดดูข้อมูลต่อไปนี้ใน metadata_definitions.xml :

สำหรับการอ้างอิงการใช้งาน Camera HAL ที่รองรับเอาต์พุตกล้อง 10 บิต โปรดดูที่ /hardware/google/camera/devices/EmulatedCamera/hwl

การตรวจสอบ

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

สำหรับการตรวจสอบความถูกต้องด้วยภาพของเอาต์พุตกล้อง 10 บิต จะถือว่าอุปกรณ์รองรับการแสดง HDR (จอแสดงผล 1,000+ nits) และแอปดูวิดีโอ (เช่น Google Photos) รองรับการเล่นวิดีโอ HDR

ทดสอบความถูกต้องของการทำงานของ API

หากต้องการทดสอบความถูกต้องของการทำงานของ API ของเอาต์พุตกล้อง 10 บิต ให้รันการทดสอบ CTS, ITS ของกล้อง และ VTS ต่อไปนี้:

  • hardware/interfaces/camera/provider/aidl/vts/ : ทดสอบการค้นหาพื้นฐาน การกำหนดค่า และการสตรีม และตรวจสอบการมีอยู่ของข้อมูลเมตา HDR ในกรณีที่จำเป็น
  • tests/camera/src/android/hardware/camera2/cts/ : ตรวจสอบให้แน่ใจว่ากล้องทำงานตามข้อกำหนด AOSP API
  • cts/apps/CameraITS : ยืนยันว่าลักษณะการทำงานของวิดีโอทั่วไปสอดคล้องกันเมื่อใช้โปรไฟล์ HDR การทดสอบเฉพาะคือ tests/scene4/test_video_aspect_ratio_and_crop.py

เปรียบเทียบกล้องเนทิฟกับแอพของบุคคลที่สาม

เราขอแนะนำอย่างยิ่งให้ตรวจสอบให้แน่ใจว่าผลลัพธ์ของการบันทึกวิดีโอ 10 บิตด้วยแอปบุคคลที่สามนั้นคล้ายคลึงกับแอปกล้องเนทีฟ (หากไม่เหมือนกัน) ซึ่งหมายความว่าตัวเลือกการปรับแต่ง เช่น การเปิดรับแสง ช่วงไดนามิก และสี ควรส่งต่อจากแอปเนทีฟไปยังแอปของบุคคลที่สาม หากต้องการตรวจสอบพฤติกรรมการบันทึกวิดีโอของแอพของบริษัทอื่นที่รองรับเอาต์พุตกล้อง 10 บิตบนอุปกรณ์ของคุณ ให้ใช้ แอพตัวอย่าง Camera2Video บน GitHub คำแนะนำต่อไปนี้ใช้เพื่ออธิบายแง่มุมที่มองเห็นได้ของ HDR โดยไม่มีตัวเลขวัตถุประสงค์ เนื่องจากความแปรปรวนของเซ็นเซอร์ แผง สภาพการรับชม และการตั้งค่าของผู้จำหน่าย

ฉากที่แนะนำสำหรับการเปรียบเทียบ

หากต้องการเปรียบเทียบระหว่างแอพกล้องเนทีฟและแอพของบริษัทอื่น ให้ถ่ายวิดีโอโดยใช้ฉากต่างๆ หลายๆ ฉากกับทั้งแอพกล้องเนทีฟและแอพตัวอย่าง Camera2Video ต่อไปนี้เป็นฉากที่แนะนำเพื่อใช้ในการเปรียบเทียบ:

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

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

เปรียบเทียบช่วงไดนามิกมาตรฐานและช่วงไดนามิกสูง

เพื่อให้แน่ใจว่ามีประโยชน์ที่รับรู้ของการใช้โปรไฟล์ช่วงไดนามิก 10 บิตเหนือโปรไฟล์ช่วงไดนามิกมาตรฐาน ให้เปรียบเทียบการจับภาพวิดีโอโดยใช้ SDR (ไม่มีโปรไฟล์ HDR) กับวิดีโอ HDR เพื่อยืนยันว่าลักษณะสำคัญของ HDR ปรากฏในการจับภาพ หากต้องการเปรียบเทียบ SDR และ HDR ให้ใช้ แอพตัวอย่าง Camera2Video และ ฉากที่แนะนำ สำหรับการเปรียบเทียบแอพกล้องเนทิฟกับแอพของบริษัทอื่น

ต่อไปนี้เป็นประเด็นสำคัญที่ต้องตรวจสอบในฉากที่แนะนำ แผงจอแสดงผลที่รองรับ HDR นั้นมีระดับความสว่างที่แตกต่างกัน (วัดเป็นนิตหรือลูเมน) ดังนั้นตัวเลขต่อไปนี้ที่ให้ไว้เป็นตัวอย่าง:

  • ในฉากที่มีแสงปานกลางถึงแสงน้อย ไฮไลท์ที่สว่างของเทียนหรือแสงเล็กๆ จะถูกเรนเดอร์ด้วย ความสว่างสูงสุดสำหรับจอภาพ (อาจสูงถึง 1,000 นิต) ในคลิป HDR และเรนเดอร์ที่ ความสว่างสูงสุดสำหรับ SDR (ประมาณ 100 nits) ในคลิป SDR ในคลิป HDR ไฮไลท์ที่สว่างควรส่องออกมาจากจอแสดงผล เพื่อบันทึกการรับรู้ของผู้ใช้ว่าช่วงไดนามิกที่แท้จริงของฉากนั้นเป็นอย่างไร เมื่อเปรียบเทียบกับคลิป HDR แล้ว คลิป SDR ควรมีลักษณะเรียบกว่าและสว่างน้อยกว่า
  • ในฉากเอาต์พุตที่สว่าง ขึ้นอยู่กับการปรับแต่งของอุปกรณ์ คลิป HDR จะแสดงความแตกต่างที่ชัดเจนในความสว่างหน้าจอเมื่อเปรียบเทียบกับคลิป SDR สำหรับคลิป HDR ความสว่างหน้าจอสำหรับฉากโดยรวม (ขึ้นอยู่กับพื้นที่ด้านบน) ควรสูงกว่า เช่น สูงถึง 800 นิต และมากกว่านั้นสำหรับไฮไลท์ที่สว่าง เช่น กันชนโครเมียม ควรมีความสว่างสูงสุด
  • ในการจับภาพในร่มช่วงไดนามิกกลางและช่วงไดนามิกต่ำ คลิป HDR และ SDR จะมีสีและโทนคล้ายกัน โดยการบันทึก HDR อาจสว่างกว่า SDR HDR ไม่ควรเข้มกว่า SDR หากตัวเลือกการปรับแต่งทำให้เป็นไปไม่ได้ ตรวจสอบให้แน่ใจว่าลักษณะการทำงานของแอพของบริษัทอื่นตรงกับลักษณะการทำงานของแอพกล้องเนทิฟ