اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
البيانات الوصفية وعناصر التحكّم
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
لإتاحة حفظ ملفات الصور الأولية من خلال إطار عمل Android، يجب توفُّر ملف بيانات وصفية أساسي
عن خصائص أداة الاستشعار. ويشمل ذلك
معلومات مثل مساحات الألوان ووظائف تظليل العدسة.
إنّ معظم هذه المعلومات هي خاصيّة ثابتة للنظام الفرعي للكاميرا، وبالتالي يمكن
الاستعلام عنها قبل ضبط أيّ قنوات إخراج أو إرسال أي
طلبات. تعمل واجهات برمجة تطبيقات الكاميرا الجديدة على توسيع نطاق المعلومات المقدَّمة من خلال getCameraInfo()
لتوفير هذه المعلومات لتطبيق.
بالإضافة إلى ذلك، يتطلب التحكّم اليدوي في النظام الفرعي للكاميرا ملاحظات من
الأجهزة المتنوعة حول حالتها الحالية والمَعلمات الفعلية المستخدَمة في
التقاط إطار معيّن. يجب تضمين القيم الفعلية لعناصر التحكّم (وقت التعرّض ومدة
اللقطة والحساسية) كما تستخدمها الأجهزة في
البيانات الوصفية للإخراج. هذا أمر ضروري حتى تعرف التطبيقات متى حدث التقريب أو التقريب، وكي يتمكّن التطبيق من تعويض الإعدادات الحقيقية المستخدَمة لالتقاط الصور.
على سبيل المثال، إذا ضبط تطبيق مدة اللقطة على 0 في طلب، على HAL
ضبط مدة اللقطة على الحد الأدنى الفعلي لمدة اللقطة لذلك
الطلب، والإبلاغ عن الحد الأدنى المضبوط في البيانات الوصفية لنتيجة الإخراج.
لذلك، إذا كان التطبيق بحاجة إلى تنفيذ روتين مخصّص لميزة "التحكّم الذكي بالصور" (مثلاً، لقياس كثافة اللقطات العالية الديناميكية بشكل صحيح)، يجب أن يعرف التطبيق الإعدادات المستخدَمة لالتقاط
أحدث مجموعة من النتائج التي تلقّاها لتعديل الإعدادات الخاصة
بالطلب التالي. لذلك، تضيف واجهة برمجة التطبيقات الجديدة للكاميرا قدرًا كبيرًا من
البيانات الوصفية الديناميكية إلى كل لقطة يتم التقاطها. ويشمل ذلك المَعلمات المطلوبة والمَعلمات الفعلية
المستخدَمة في عملية الالتقاط، بالإضافة إلى بيانات وصفية إضافية لكل إطار، مثل
الطوابع الزمنية ومخرجات أداة إنشاء الإحصاءات.
التحكّم في كلّ إعداد
بالنسبة إلى معظم الإعدادات، من المتوقّع أن يتم تغييرها في كل إطار،
بدون حدوث تقطُّع أو تأخير كبير في بثّ الإطارات الناتجة.
من الناحية المثالية، يجب التحكّم في معدّل عرض اللقطات في الإخراج فقط من خلال حقل مدة اللقطة في طلب الالتقاط
، ويجب أن يكون مستقلاً عن أي تغييرات في إعدادات وحدات المعالجة. في الواقع، من المعروف أنّ بعض عناصر التحكّم المحدّدة تتغيّر ببطء، ويشمل ذلك درجة دقة الإخراج وتنسيق الإخراج لمسار معالجة الكاميرا، بالإضافة إلى عناصر التحكّم التي تؤثّر في الأجهزة المادية، مثل مسافة تركيز عدسة الكاميرا. سيتم توضيح المتطلبات الدقيقة لكل مجموعة عناصر تحكّم لاحقًا.
إتاحة بيانات أجهزة الاستشعار الأوّلية
بالإضافة إلى تنسيقات البكسل المتوافقة مع
واجهة برمجة التطبيقات القديمة، تضيف واجهة برمجة التطبيقات الجديدة شرطًا للتوافق مع بيانات أجهزة الاستشعار الأوّلية
(Bayer RAW)، وذلك لكلّ من تطبيقات الكاميرا المتقدّمة ودعم ملفات الصور
الأوّلية.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-03-26 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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."]]