پشتیبانی از فراداده
برای پشتیبانی از ذخیره فایل های تصویر خام توسط فریم ورک اندروید، فراداده قابل توجهی در مورد ویژگی های حسگر مورد نیاز است. این شامل اطلاعاتی مانند فضاهای رنگی و عملکردهای سایه زنی لنز است.
بیشتر این اطلاعات یک ویژگی ثابت زیرسیستم دوربین است و بنابراین می توان قبل از پیکربندی خط لوله خروجی یا ارسال هر گونه درخواستی، از آنها پرس و جو کرد. API های دوربین جدید اطلاعات ارائه شده توسط متد getCameraInfo()
را تا حد زیادی گسترش می دهند تا این اطلاعات را در اختیار برنامه قرار دهند.
علاوه بر این، کنترل دستی زیرسیستم دوربین نیاز به بازخورد از دستگاه های مختلف در مورد وضعیت فعلی آنها، و پارامترهای واقعی مورد استفاده در گرفتن یک فریم خاص دارد. مقادیر واقعی کنترل ها (زمان نوردهی، مدت زمان فریم و حساسیت) که در واقع توسط سخت افزار استفاده می شود باید در فراداده خروجی گنجانده شود. این امر ضروری است تا برنامهها بدانند چه زمانی گیره یا گرد کردن اتفاق افتاده است و برنامه بتواند تنظیمات واقعی مورد استفاده برای ثبت تصویر را جبران کند.
به عنوان مثال، اگر یک برنامه در یک درخواست، مدت زمان فریم را روی 0 تنظیم کند، HAL باید مدت زمان فریم را به حداقل مدت زمان فریم واقعی برای آن درخواست اضافه کند و حداقل مدت زمان فشرده شده را در فراداده نتیجه خروجی گزارش کند.
بنابراین، اگر برنامهای نیاز به اجرای یک روال سفارشی 3A داشته باشد (مثلاً برای اندازهگیری صحیح یک انفجار HDR)، باید تنظیمات مورد استفاده برای گرفتن آخرین مجموعه از نتایجی را که دریافت کرده است بداند تا تنظیمات را برای درخواست بعدی بهروزرسانی کند. بنابراین، API دوربین جدید مقدار قابل توجهی متادیتای پویا را به هر فریم ثبت شده اضافه می کند. این شامل پارامترهای درخواستی و واقعی مورد استفاده برای ضبط، و همچنین فراداده های اضافی در هر فریم مانند مهرهای زمانی و خروجی تولید کننده آمار است.
کنترل هر تنظیم
برای اکثر تنظیمات، انتظار این است که بتوان آنها را در هر فریم تغییر داد، بدون اینکه لکنت یا تاخیر قابل توجهی در جریان فریم خروجی ایجاد شود. در حالت ایده آل، نرخ فریم خروجی باید صرفاً توسط فیلد مدت زمان فریم درخواست ضبط کنترل شود و مستقل از هرگونه تغییر در پیکربندی بلوک های پردازش باشد. در واقع، برخی از کنترل های خاص به کندی تغییر می کنند. اینها شامل وضوح خروجی و فرمت خروجی خط لوله دوربین، و همچنین کنترلهایی است که بر دستگاههای فیزیکی تأثیر میگذارند، مانند فاصله فوکوس لنز. الزامات دقیق برای هر مجموعه کنترل بعداً شرح داده می شود.
پشتیبانی از داده های حسگر خام
علاوه بر فرمتهای پیکسلی که توسط API قدیمی پشتیبانی میشوند، API جدید نیاز به پشتیبانی از دادههای حسگر خام (Bayer RAW) را هم برای برنامههای دوربین پیشرفته و هم برای پشتیبانی از فایلهای تصویر خام اضافه میکند.