ตั้งแต่วันที่ 27 มีนาคม 2025 เป็นต้นไป เราขอแนะนำให้ใช้ android-latest-release
แทน aosp-main
เพื่อสร้างและมีส่วนร่วมใน AOSP โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการเปลี่ยนแปลงใน AOSP
ข้อมูลเมตาและการควบคุม
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
หากต้องการรองรับการบันทึกไฟล์ภาพ RAW โดยเฟรมเวิร์ก Android คุณต้องมีข้อมูลเมตาจำนวนมากเกี่ยวกับลักษณะของเซ็นเซอร์ ซึ่งรวมถึงข้อมูลอย่างเช่นพื้นที่สีและฟังก์ชันการปรับแสงเลนส์
ข้อมูลส่วนใหญ่นี้เป็นพร็อพเพอร์ตี้แบบคงที่ของระบบย่อยของกล้อง จึงสามารถค้นหาได้ก่อนที่จะกำหนดค่าไปป์ไลน์เอาต์พุตหรือส่งคำขอ API กล้องใหม่จะขยายข้อมูลที่ได้รับจากgetCameraInfo()
วิธีเพื่อให้ข้อมูลนี้แก่แอป
นอกจากนี้ การควบคุมระบบย่อยของกล้องด้วยตนเองยังต้องใช้การตอบกลับจากอุปกรณ์ต่างๆ เกี่ยวกับสถานะปัจจุบันและพารามิเตอร์จริงที่ใช้ในการจับเฟรมหนึ่งๆ ค่าจริงของการควบคุม (เวลาการเปิดรับแสง ระยะเวลาเฟรม และระดับความไว) ตามที่ใช้จริงโดยฮาร์ดแวร์ต้องรวมอยู่ในข้อมูลเมตาเอาต์พุต ข้อมูลนี้จำเป็นเพื่อให้แอปทราบว่ามีการจำกัดหรือปัดเศษเกิดขึ้นเมื่อใด และเพื่อให้แอปชดเชยการตั้งค่าจริงที่ใช้สำหรับการจับภาพ
ตัวอย่างเช่น หากแอปตั้งค่าระยะเวลาเฟรมเป็น 0 ในคำขอ HAL ต้องจำกัดระยะเวลาเฟรมเป็นระยะเวลาเฟรมขั้นต่ำจริงสำหรับคำขอนั้น และรายงานระยะเวลาขั้นต่ำที่จำกัดไว้ในข้อมูลเมตาของผลลัพธ์เอาต์พุต
ดังนั้นหากแอปต้องใช้รูทีน 3A ที่กําหนดเอง (เช่น เพื่อวัดแสงอย่างเหมาะสมสําหรับการถ่าย HDR แบบต่อเนื่อง) แอปจะต้องทราบการตั้งค่าที่ใช้เพื่อบันทึกชุดผลลัพธ์ล่าสุดที่ได้รับเพื่ออัปเดตการตั้งค่าสําหรับคําขอถัดไป ดังนั้น Camera API ใหม่จึงเพิ่มข้อมูลเมตาแบบไดนามิกจำนวนมากลงในเฟรมที่จับภาพแต่ละเฟรม ซึ่งรวมถึงพารามิเตอร์ที่ขอและพารามิเตอร์จริงที่ใช้สำหรับการบันทึก รวมถึงข้อมูลเมตาเพิ่มเติมของแต่ละเฟรม เช่น การประทับเวลาและเอาต์พุตของเครื่องมือสร้างสถิติ
การควบคุมตามการตั้งค่า
สําหรับการตั้งค่าส่วนใหญ่ การตั้งค่าเหล่านี้ควรเปลี่ยนแปลงได้ในทุกเฟรม โดยไม่มีการกระตุกหรือความล่าช้าที่เห็นได้ชัดในสตรีมเฟรมเอาต์พุต
ตามหลักการแล้ว อัตราเฟรมเอาต์พุตควรควบคุมโดยช่องระยะเวลาเฟรมของคำขอจับภาพแต่เพียงอย่างเดียว และไม่ควรขึ้นอยู่กับการเปลี่ยนแปลงใดๆ ในการกำหนดค่าของบล็อกการประมวลผล ในความเป็นจริง การควบคุมบางอย่างเป็นที่ทราบกันดีว่าเปลี่ยนแปลงได้ช้า ซึ่งรวมถึงความละเอียดเอาต์พุตและรูปแบบเอาต์พุตของไปป์ไลน์กล้อง รวมถึงการควบคุมที่ส่งผลต่ออุปกรณ์จริง เช่น ระยะโฟกัสของเลนส์ เราจะอธิบายข้อกำหนดที่แน่นอนสำหรับชุดการควบคุมแต่ละชุดในภายหลัง
การรองรับข้อมูลเซ็นเซอร์ดิบ
นอกจากรูปแบบพิกเซลที่ API เก่ารองรับแล้ว API ใหม่ยังมีข้อกำหนดในการรองรับข้อมูลเซ็นเซอร์ RAW (Bayer RAW) ทั้งสำหรับแอปกล้องขั้นสูงและเพื่อรองรับไฟล์รูปภาพ RAW ด้วย
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-03-26 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-03-26 UTC"],[],[],null,["# Metadata and controls\n\nMetadata support\n----------------\n\nTo support the saving of raw image files by the Android framework, substantial\nmetadata is required about the sensor's characteristics. This includes\ninformation such as color spaces and lens shading functions.\n\nMost of this information is a static property of the camera subsystem and can\ntherefore be queried before configuring any output pipelines or submitting any\nrequests. The new camera APIs greatly expand the information provided by the\n`getCameraInfo()` method to provide this information to the\napp.\n\nIn addition, manual control of the camera subsystem requires feedback from the\nassorted devices about their current state, and the actual parameters used in\ncapturing a given frame. The actual values of the controls (exposure time, frame\nduration, and sensitivity) as actually used by the hardware must be included in\nthe output metadata. This is essential so that apps know when either\nclamping or rounding took place, and so that the app can compensate for\nthe real settings used for image capture.\n\nFor example, if an app sets frame duration to 0 in a request, the HAL\nmust clamp the frame duration to the real minimum frame duration for that\nrequest, and report that clamped minimum duration in the output result metadata.\n\nSo if an app needs to implement a custom 3A routine (for example, to\nproperly meter for an HDR burst), it needs to know the settings used to capture\nthe latest set of results it has received to update the settings for\nthe next request. Therefore, the new camera API adds a substantial amount of\ndynamic metadata to each captured frame. This includes the requested and actual\nparameters used for the capture, as well as additional per-frame metadata such\nas timestamps and statistics generator output.\n\nPer-setting control\n-------------------\n\nFor most settings, the expectation is that they can be changed every frame,\nwithout introducing significant stutter or delay to the output frame stream.\nIdeally, the output frame rate should solely be controlled by the capture\nrequest's frame duration field, and be independent of any changes to processing\nblocks' configuration. In reality, some specific controls are known to be slow\nto change; these include the output resolution and output format of the camera\npipeline, as well as controls that affect physical devices, such as lens focus\ndistance. The exact requirements for each control set are detailed later.\n\nRaw sensor data support\n-----------------------\n\nIn addition to the pixel formats supported by\nthe old API, the new API adds a requirement for support for raw sensor data\n(Bayer RAW), both for advanced camera apps as well as to support raw\nimage files."]]