บันทึกประจำรุ่นของชุดทดสอบรูปภาพกล้องของ Android 13

การเปิดตัว Android 13 มีการเปลี่ยนแปลงหลายอย่างเกิดขึ้นกับ กล้องไอที นอกจาก การเปลี่ยนแปลงที่เพิ่มขึ้น เช่น เวอร์ชัน Python และเวอร์ชันแพ็กเกจที่อัปเดตแล้ว รวมถึงการทดสอบ การอัปเดตฮาร์ดแวร์, Android 13 รองรับการทดสอบวิดีโอ

หน้านี้จะสรุปการเปลี่ยนแปลงของระบบไอทีในกล้องถ่ายรูปสำหรับ Android ธันวาคม การเปลี่ยนแปลงจะแบ่งออกเป็น 7 หมวดหมู่กว้างๆ ดังนี้

เวอร์ชันของ Python และแพ็กเกจ

Android 13 รองรับ Python เวอร์ชันต่อไปนี้ใน นอกเหนือจากเวอร์ชัน Python และไลบรารีที่รองรับใน Android 12:

การเพิ่มไฟล์การกำหนดค่า

เนื่องจากมีการเพิ่มการควบคุมการจัดแสงสำหรับการทดสอบ test_auto_flash.py ไฟล์ config.yml ต้องการพารามิเตอร์เพิ่มเติม 2 รายการสำหรับตัวควบคุมและ สำหรับการจัดแสง เพื่อระบุว่าอุปกรณ์อยู่ระหว่างการทดสอบ (DUT) เป็นแบบพับได้หรือไม่ ไฟล์ config.yml ต้องการพารามิเตอร์เพิ่มเติมอันดับ 3 ซึ่งจะต้อง ลงในทั้งส่วนที่ใช้แท็บเล็ตและส่วนฟิวชันเซ็นเซอร์

TestBeds:
  - Name: TEST_BED_TABLET_SCENES
    # Test configuration for scenes[0:4, 6, _change]
    Controllers:
        AndroidDevice:
          - serial: 8A9X0NS5Z
            label: dut
          - serial: 5B16001229
            label: tablet

    TestParams:
      brightness: 192
      chart_distance: 22.0
      debug_mode: "False"  # "True" or "False"; quotes needed
      lighting_cntl: <controller-type>  # "arduino" or "None"; quotes needed
      lighting_ch: <controller-channel>
      camera: 0
      foldable_device: "False". # set "True" if testing foldable
      scene: <scene-name>  # if <scene-name> runs all scenes

ทดสอบการเปลี่ยนแปลง

โหมด1_1/test_black_white.py

การทดสอบ test_black_white มีการตรวจสอบความอิ่มตัวของช่อง สอดคล้องกับ Android เวอร์ชันก่อนหน้า ซึ่งหมายความว่า จำเป็นต้องใช้ API ระดับแรกสำหรับการตรวจสอบความอิ่มตัวของช่องทางคือ Android 10.

ฉาก 1_2/test_yuv_plus_raw.py

การทดสอบ test_yuv_plus_raw จะจัดการกับเซ็นเซอร์ที่ไม่ใช่ 16:9 หรือ 4:3 เพื่อให้ สนับสนุนสขช.ได้ดีกว่า หากการทดสอบไม่พบรูปแบบที่ใช้กันทั่วไป ระหว่างรูปแบบเซ็นเซอร์ RAW กับรูปแบบการบันทึกภาพ YUV โดยการทดสอบจะเปรียบเทียบ ไฟล์ข้อมูล RAW เพื่อให้ได้ภาพ YUV ที่ใหญ่ที่สุด แม้ว่าสัดส่วนภาพจะ แตกต่างกัน

โหมด2_a/test_faces.py

เปลี่ยนโครงสร้างภายในโค้ด test_faces เป็น test_num_faces แล้ว

Scene2_a/test_num_faces.py

การทดสอบ test_num_faces จะจัดการการครอบตัดเซ็นเซอร์และตำแหน่ง รูปสี่เหลี่ยมผืนผ้าของใบหน้าที่ถูกต้องในภาพที่ถ่ายจากกล้อง UW ที่ครอบตัด

Scene3/test_lens_position.py

การทดสอบ test_lens_position เลิกใช้งานแล้วใน Android ธันวาคม

โหมด6/test_zoom.py

การทดสอบ test_zoom มีการเปลี่ยนโครงสร้างภายในโค้ดเพื่อให้ทดสอบ 3 และ 4 ได้ง่ายขึ้น กล้อง หากกล้องทดสอบในช่วงการซูมอย่างถูกต้องในช่วงการซูม 10 เท่า ทำให้การทดสอบออกอย่างถูกต้อง วิธีนี้ทำให้สามารถทดสอบการซูมได้ในครั้งเดียว ระยะทางในแผนภูมิ

เปลี่ยนโหมด/ทดสอบ_โหมด_change.py

การทดสอบ test_scene_change เลิกใช้งานแล้วใน Android ธันวาคม

การทดสอบใหม่ในแท็บเล็ต

Android 13 มีการทดสอบใหม่ในแท็บเล็ต 2 รายการ การทดสอบทั้ง 2 รายการได้รับการกำหนดให้ใช้กับอุปกรณ์ที่มี Android 13 แต่ข้ามไปสำหรับอุปกรณ์ที่อัปเกรดเป็น Android 13

บรรยากาศ ชื่อการทดสอบ API ระดับแรก คำอธิบาย
2_ก test_auto_flash 33 ตรวจสอบว่าฉากที่มืดทริกเกอร์แฟลชอัตโนมัติ
2_ข test_yuv_jpg_capture_sameness 33 ยืนยันว่าการจับภาพ YUV และ JPEG ยังคงถูกต้องเหมือนกันทุกประการ

โหมด 2_a/test_auto_flash.py

Android 13 เพิ่มการทดสอบ test_auto_flash

พารามิเตอร์

  • flash: ข้ามการทดสอบหาก Flash ไม่พร้อมใช้งาน

วิธีการ

การทดสอบจะกำหนดค่าคำขอจับภาพสำหรับแฟลชอัตโนมัติและนำเสนอฉาก ต้องมีเหตุการณ์แฟลช แสงสว่างในเครื่องทดสอบและแท็บเล็ต ปิดการนำเสนอฉากที่มืดสำหรับอัลกอริทึมการรับแสงอัตโนมัติ การทดสอบ กำหนดค่าลำดับการจับภาพ NUM_FRAMES ที่เปิดใช้แฟลชอัตโนมัติ หาก การตั้งค่า AE_STATE แสดงผล FLASH_REQUIRED ซึ่งการทดสอบยืนยันว่าแฟลช ในการจับภาพ

คุณสามารถควบคุมการจัดแสงด้วยตนเองได้เมื่อได้รับแจ้ง หรือควบคุมโดยอัตโนมัติด้วย ตัวควบคุม Arduino ที่มาพร้อมกับการควบคุมแสงสว่างสำหรับการทดสอบอัตโนมัติ ใหม่ โฟลเดอร์ยูทิลิตี lighting_control_utils จะรวมโค้ดสำหรับการควบคุม การจัดแสงในการทดสอบ

ฉาก 2_a/test_yuv_jpeg_capture_sameness.py

Android 13 เพิ่ม test_yuv_jpeg_capture_sameness การทดสอบ

พารามิเตอร์

  • streamUseCase: กำหนดว่ากล้องรองรับกรณีการใช้งานสตรีมหรือไม่
  • android.jpeg.quality: ตั้งค่าคุณภาพ JPEG เป็น 100

วิธีการ

การทดสอบนี้จะบันทึกรูปภาพ 2 รูปโดยใช้รูปแบบ YUV และ JPEG ทั่วไปที่ใหญ่ที่สุด สัดส่วนภาพเท่ากับรูปแบบ JPEG ที่ใหญ่ที่สุด ซึ่งไม่เกินความละเอียด 1920x1440 การทดสอบจะตั้งค่า jpeg.quality เป็น 100 และจับภาพพื้นผิวคู่ อีกครั้ง จากนั้นจะแปลงรูปภาพทั้ง 2 รูปเป็นอาร์เรย์ RGB และคำนวณราก 3 มิติ ความต่างของรูปสี่เหลี่ยมจัตุรัส (RMS) ระหว่างรูปทั้งสอง ความแตกต่างของความอดทน มีค่าเป็น 1%

การทดสอบวิดีโอ

Camera ITS เพิ่มการรองรับการทดสอบวิดีโอใน Android ธันวาคม

Android 13 เพิ่มการทดสอบต่อไปนี้

บรรยากาศ ชื่อการทดสอบ API ระดับแรก คำอธิบาย
4 test_preview_stabilization_fov 33 ตรวจสอบว่าตัวอย่างวิดีโอไม่ครอบตัดมากเกินไปเมื่อเปิดระบบกันภาพสั่น
4 อัตราส่วนและการครอบตัดวิดีโอทดสอบ 33 ยืนยันรูปแบบวิดีโอ FoV, สัดส่วนภาพ และการครอบตัด
เซ็นเซอร์ฟิวชัน test_preview_stabilition 33 ยืนยันว่าระบบกันภาพสั่นตัวอย่างใช้งานได้
เซ็นเซอร์ฟิวชัน ทดสอบการสั่นไหวของวิดีโอ 33 ยืนยันว่าระบบกันภาพวิดีโอสั่นทำงาน

โหมด 4/test_preview_stabilization_fov.py

Android 13 เพิ่ม test_preview_stabilization_fov การทดสอบ การทดสอบนี้จะตรวจสอบขนาดตัวอย่างที่รองรับเพื่อให้มั่นใจว่าไม่มี FoV มีการครอบตัดอย่างไม่เหมาะสม

วิธีการ

การทดสอบจะบันทึกวิดีโอ 2 รายการ โดยรายการหนึ่งเปิดการป้องกันภาพสั่นไหวและอีกคลิปหนึ่งเปิดอยู่ เมื่อปิดการป้องกันภาพสั่นไหว เลือกเฟรมตัวแทนจากแต่ละเฟรม และวิเคราะห์วิดีโอเพื่อให้มั่นใจว่าการเปลี่ยนแปลงด้าน FoV ของวิดีโอทั้ง 2 รายการ ภายในข้อกำหนดเฉพาะ

โดยเฉพาะอย่างยิ่ง การทดสอบจะตรวจสอบพารามิเตอร์ต่อไปนี้ที่มีและไม่มี การป้องกันภาพสั่นไหว:

  • ความกลมของวงกลมจะคงที่
  • จุดกึ่งกลางของวงกลมนั้นคงที่
  • ขนาดของวงกลมจะเปลี่ยนไม่เกิน 20% ซึ่งหมายความว่า FoV จะเปลี่ยนไป ไม่เกิน 20%

อัตราส่วน 4/test_video_aspect_ratio_and_crop.py

Android 13 เพิ่ม test_video_aspect_ratio_and_crop การทดสอบ คล้ายกับ test_aspect_ratio_and_crop การทดสอบการจับภาพยังคงนิ่ง การทดสอบนี้จะตรวจสอบรูปแบบวิดีโอที่รองรับ เพื่อให้แน่ใจว่าเฟรมของวิดีโอไม่ยืดหรือครอบตัดอย่างไม่เหมาะสม ระบบจะทดสอบคุณภาพวิดีโอที่รายงานด้วยตนเองทั้งหมด นอกจากนี้ หาก กล้องรองรับวิดีโอ HLG10 และมีการทดสอบวิดีโอ 10 บิตแล้ว

Android 13 เพิ่ม get_available_video_qualities ไปยัง its_session_utils เพื่อแชร์โค้ดทั่วไป กับการทดสอบที่มีอยู่ Android 13 ยังมี ฟังก์ชันยูทิลิตี image_fov_utils และ video_processing_utils

วิธีการ

การทดสอบจะถ่ายภาพอ้างอิงในรูปแบบ RAW หรือรูปภาพสูงสุด รูปแบบความละเอียด JPEG หากไม่รองรับ RAW จากรูปภาพอ้างอิง ระบบจะกำหนดขนาดและตำแหน่งของแวดวง จากนั้น วิดีโอสั้นๆ จะถ่ายโดยมี คุณภาพวิดีโอที่รองรับ เฟรมอ้างอิงสุดท้ายจะถูกดึงจาก คุณภาพวิดีโอ จากเฟรมอ้างอิง ขอบเขตการมองเห็น (FoV) การจัดกึ่งกลาง (ครอบตัด) และอัตราส่วนจะได้รับการคำนวณสำหรับคุณภาพวิดีโอแต่ละรายการ

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

Sensor_fusion/test_preview_stabilization.py

Android 13 เพิ่มการทดสอบ test_preview_stabilization ซึ่งจะทดสอบคุณภาพการแสดงตัวอย่างที่รองรับทั้งหมดถึง 1920x1080 การทดสอบใช้ อุปกรณ์ทดสอบฟิวชันเซ็นเซอร์และ ต้องใช้ตัวควบคุมฟิวชันเซ็นเซอร์เวอร์ชัน 2 ใหม่หรืออัปเกรดเฟิร์มแวร์ ตัวควบคุม Arduino เวอร์ชันก่อนหน้า สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับตัวควบคุมใหม่ ดูการอัปเดตฮาร์ดแวร์และส่วนเพิ่มเติม

วิธีการ

โทรศัพท์ค่อยๆ เคลื่อนผ่านมุมประมาณ 15 องศาพร้อมภาพตัวอย่าง เปิดระบบกันภาพสั่นแล้ว แล้วเปรียบเทียบการหมุนของรูปภาพกับ การหมุนเครื่องวัดการหมุน

Sensor_fusion/test_video_stabilization.py

Android 13 เพิ่มการทดสอบ test_video_stabilization ซึ่งจะทดสอบคุณภาพวิดีโอที่รองรับถึง 1920x1080 วิดีโอความละเอียดต่ำ QCIF ได้รับการยกเว้น การทดสอบใช้เมธอด การผสมผสานเซ็นเซอร์ และ ต้องใช้ตัวควบคุมฟิวชันเซ็นเซอร์เวอร์ชัน 2 ใหม่หรืออัปเกรดเฟิร์มแวร์ ตัวควบคุม Arduino เวอร์ชันก่อนหน้า สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับตัวควบคุมใหม่ ดูการอัปเดตฮาร์ดแวร์และส่วนเพิ่มเติม

วิธีการ

อุปกรณ์ทดสอบเคลื่อนโทรศัพท์ช้าๆ ผ่านมุมประมาณ 15 องศาโดย เปิดใช้การป้องกันภาพสั่นไหว แล้วเปรียบเทียบการหมุนของรูปภาพกับ การหมุนของเครื่องวัดการหมุน

การอัปเดตและการเพิ่มฮาร์ดแวร์

Android 13 มีการอัปเกรดแอปเป็น Arduino ตัวควบคุมฟิวชันเซ็นเซอร์รุ่น 2 การอัปเกรดนี้มีทั้งการเปลี่ยนแปลงฮาร์ดแวร์และเฟิร์มแวร์ การอัปเกรดช่วยให้ ตัวควบคุมเพื่อตั้งค่าความเร็วในการหมุนและการควบคุมแสง นอกจากนี้การอัปเกรดยัง มีโล่ใหม่ (แสดงในรูปที่ 1) ซึ่งมี 3 ช่อง ได้แก่ การหมุน และการควบคุมแสง 3 ช่อง

Arduino Shield rev2.0

รูปที่ 1 Arduino Shield rev2.0 พร้อมการควบคุมการหมุนและแสง

นอกจากนี้ สำหรับ 13 เฟิร์มแวร์ของ ต้องอัปเดตตัวควบคุมเพื่อเปิดใช้การควบคุมความเร็วในการหมุน เฟิร์มแวร์นี้ สามารถดาวน์โหลดได้จาก

ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวควบคุมใหม่ได้ที่ ตัวควบคุมฟิวชันเซ็นเซอร์ของ Android 13

การสนับสนุนการทดสอบแบบพับได้

Android 13 มีการทดสอบการรองรับอุปกรณ์แบบพับได้ อุปกรณ์ หากต้องการเปิดใช้ API กล้องหลายตัว อุปกรณ์แบบพับได้ สถานะโทรศัพท์ ต้องระบุ (Folded หรือ Unfolded) ระหว่างการทดสอบ เพื่อเปิดใช้แบบสำรวจสถานะโทรศัพท์สำหรับ DUT ทั้งหมด ซึ่งรวมถึงอุปกรณ์แบบพับไม่ได้ ให้เรียกใช้คำสั่ง adb ต่อไปนี้หลังจากเชื่อมต่อ DUT กับโฮสต์แล้ว

adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier