تصف هذه الصفحة المواصفات التي تسمح لملفات MP4 بتضمين البيانات الوصفية حول حركة الكاميرا أثناء التقاط الفيديو. تتضمّن الأجهزة التي تلتقط فيديوهات عادةً أجهزة الاستشعار التي يمكن أن توفر معلومات إضافية حول الالتقاط. على سبيل المثال:
- تحتوي الهواتف المحمولة عادةً على أدوات استشعار للجيروسكوب ومقياس التسارع ومقياس المغناطيسية ونظام تحديد المواقع العالمي (GPS).
- يمكن استخدام اندماج أجهزة الاستشعار لتتبّع وضع الحرية الثلاث (3DoF) للأجهزة.
- يمكن استخدام الأقلمة ورسم الخرائط المتزامنين (SLAM) لتتبع 6 درجات من الحرية (6DoF) وضعية الجهاز (على سبيل المثال، Tango).
- يمكن استخدام معلومات التعرّض لإقحام الحركة لكل خط المسح الضوئي.
ويمكن حفظ هذه البيانات الوصفية في الفيديو لمعالجتها بعد ذلك في تطبيقات مختلفة. على سبيل المثال:
- يمكن استخدام معلومات التدوير على مستوى الإطار لتثبيت الفيديوهات، كما يمكن استخدام بيانات الحركة على مستوى خط البحث لتقليل تأثيرات الغالق.
- يمكن استخدام قراءات IMU ووضعيات 3DoF المستمدة لتقييم محاذاة الوقت والمحاذاة الهندسية بين IMU والكاميرا.
تحدّد الأقسام أدناه مسار البيانات الوصفية للحركة (CAMM) الخاصة بالكاميرا، والذي يتضمّن نموذجًا جديدًا. إدخال يشير إلى وجود المسار وتنسيق البيانات لعينات المسارات.
إدخال نموذجي
يجب أن يحتوي ملف الفيديو على نموذج مربّع الإدخال التالي للإشارة إلى البيانات الوصفية المخصّصة
المقطع الصوتي، ويجب ضبط subComponentType
للمقطع الصوتي على meta
.
Camera Motion Metadata Sample Entry (camm) Definition Box Type: camm Container: stsd A sample entry indicating the data track that saves the camera motion. Syntax aligned(8) class CameraMotionMetadataSampleEntry extends SampleEntry('camm') { }
تنسيق البيانات
يتضمن مسار البيانات الوصفية مجموعة من نماذج البيانات الوصفية التي تم تنسيقها على النحو التالي.
الحقل | الوحدة | الوصف |
---|---|---|
uint16 reserved; |
محجوز. يجب أن تكون القيمة 0. | |
uint16 type; |
نوع حزمة البيانات (انظر أدناه). تحتوي كل حزمة على نوع واحد من البيانات. | |
switch (type) { |
||
case 0: float angle_axis[3]; break; |
اتجاه محور الزاوية بوحدات الراديان التي تمثّل الدوران من إحداثيات الكاميرا المحلية إلى نظام إحداثيات العالم. يتم تعريف نظام الإحداثيات العالمية بالتطبيقات. لنفترض أن M تكون مصفوفة الدوران 3×3 والمتجاوبة مع خط متجه محور الزاوية. بالنسبة إلى أي شعاع س في نظام الإحداثيات المحلي، يكون اتجاه الشعاع في إحداثيات العالم هو م * س. يمكن الحصول على هذه المعلومات من خلال دمج أداة استشعار 3DoF على الجهاز. بعد دمج قراءات IMU، يلزم تسجيل الاتجاه العالمي المتكامل فقط. تمثل القيم الثلاث الخط المتجه لمحور الزاوية، بحيث يتم تحديد زاوية الدوران بوحدات الراديان من خلال طول الخط المتجه، ويتم تحديد محور الدوران بواسطة الخط المتجه الذي تمت تسويته. يمكن إنشاء التمثيل المشفَّر من محور وزاوية باستخدام ويمكن تحويل التمثيل المشفَّر مرة أخرى إلى محور وزاوية باستخدام |
|
case 1: int32 pixel_exposure_time; int32 rolling_shutter_skew_time; break; |
نانو ثانية |
تكون هذه البيانات الوصفية لكل إطار فيديو. يجب أن يكون وقت عرض هذه البيانات الوصفية (PTS) ليكون بداية ظهور أول سطر للفحص تم استخدامه في إطار فيديو. pixel_exposure_time_ns هو وقت التعرض للبكسل الواحد نانوثانية وrolling_shutter_skew_time_ns هو التأخير بين التعرض لخط الفحص لأول مرة وخط الفحص الأخير الذي تم استخدامه. يمكن استخدامها إضافة بيانات التعريف لكل المسح الضوئي. يجب أن تكون نقاط المراقبة للإطار المقابل ضمن pts_of_this_metadata وpts_of_this_metadata + pixel_exposure_time_ns + Roll_shutter_skew_time_ns. عند عدم حفظ هذه المعلومات، يجب أن يبذل الجهاز قصارى جهده اضبط النقاط الأساسية لإطار الفيديو في منتصف تعرض الإطار. |
case 2: float gyro[3]; break; |
راديان/ثانية |
إشارة الجيروسكوب بوحدات الراديان/الثانية حول محاور XYZ في الكاميرا تدوير هو موجبة في عكس عقارب الساعة. تحدد التطبيقات العلاقة بين نظام إحداثيات IMU والكاميرا نظام إحداثي. لذلك، ننصحك باستخدام التنسيقَين إن أمكن. لاحظ أن قراءات الجيروسكوب الأولية موجودة في نظام إحداثيات IMU المحدد من خلال برنامج التشغيل، والتحويل الصحيح مطلوب لتحويله إلى نظام إحداثيات الكاميرا. يمكنك الرجوع إلى أداة استشعار Android.TYPE_GYROSCOPE. |
case 3: float acceleration[3]; break; |
متر/ثانية^2 |
قياس التسارع بالمتر/الثانية^2 على طول المحاور س ص ع في الكاميرا تحدد التطبيقات العلاقة بين نظام إحداثيات IMU والكاميرا نظام إحداثي. لذلك، ننصحك باستخدام التنسيقَين إن أمكن. يمكنك الرجوع إلى أداة استشعار Android.TYPE_ACCELEROMETER. |
case 4: float position[3]; break; |
موضع الكاميرا الثلاثي الأبعاد يحدد الموضع الثلاثي الأبعاد ودوران محور الزاوية معًا وضع 6DoF للكاميرا، وهي في إحداثي مشترك يحدده التطبيق . يمكنك الحصول على هذه المعلومات من خلال تنفيذ تتبُّع 6DoF على الجهاز. |
|
case 5: double latitude; double longitude; double altitude; break; |
درجات |
الحد الأدنى من إحداثيات نظام تحديد المواقع العالمي (GPS) للعينة. |
case 6: double time_gps_epoch; int gps_fix_type; double latitude; double longitude; float altitude; float horizontal_accuracy; float vertical_accuracy; float velocity_east; float velocity_north; float velocity_up; float speed_accuracy; break; |
seconds degrees degrees meters meters meters meters/seconds meters/seconds meters/seconds meters/seconds |
time_gps_epoch - الوقت منذ فترة نظام تحديد المواقع العالمي (GPS) عندما تم إجراء القياس gps_fix_type - 0 ( بدون إصلاح)، 2 (إصلاح ثنائي الأبعاد)، 3 (إصلاح ثلاثي الأبعاد) خط العرض - خط العرض بالدرجات خط الطول - خط الطول بالدرجات الارتفاع - الارتفاع فوق الجزء الناقص-WGS-84 horizontal_accuracy - الدقة الأفقية (خط العرض/الطول) vertical_accuracy - الدقة العمودية (الارتفاع) velocity_east - السرعة في الاتجاه الشرقي velocity_north - السرعة في الاتجاه الشمالي velocity_up - السرعة في الاتجاه للأعلى speed_accuracy - دقة السرعة |
case 7: float magnetic_field[3]; break; |
ميكروتسلا |
المجال المغناطيسي المحيطي راجع أداة استشعار Android.TYPE_MAGNETIC_FIELD. |
} |
ملاحظات
- يجب أن يكون هناك مسار CAMM واحد فقط لكل ملف MP4، والذي يحتوي على جميع أنواع البيانات المذكورة أعلاه عن طريق مزجها معًا.
- يجب أن تكون نماذج نظام تحديد المواقع العالمي (GPS) في الحالتَين 5 و6 قيمًا أوّلية أنشأتها أدوات الاستشعار. لا يمكن أن تكون يتم تحديدها أو تكرارها في حال عدم إجراء أي تغيير على نظام تحديد المواقع العالمي (GPS).
- تظهر أنظمة الإحداثيات بالجانب الأيمن. يتم تعريف نظام إحداثيات الكاميرا على أنه X يشيران إلى اليمين، وحرف Y يشيران إلى أسفل، وZ يشيران إلى الأمام. يركز المحور ص على نظام الإحداثيات يجب أن يشير لأسفل على طول متجه الجاذبية.
- عادةً ما تكون قراءات مستشعر IMU في نظام إحداثيات منفصل لجهاز استشعار IMU، ويلزم الدوران وتعيينها إلى نظام الإحداثيات للكاميرا إذا كان نظاما الإحداثيات مختلفين.
- جميع الحقول ذات أطراف صغيرة (البايت الأقل أهمية أولاً) ونموذج عائم 32 بت بتنسيق IEEE 754-1985.
- لمزامنة إطار الفيديو والبيانات الوصفية بدقة، يجب أن تكون النقاط الأساسية لإطار الفيديو يجب أن يكون موضع عرضه (يمكن أيضًا استنتاجه من البيانات الوصفية الخاصة بالتعرُّض).
- يجب أن يختار التطبيق الذي يمزج هذه البيانات نطاقًا زمنيًا كبيرًا بما يكفي نقاط الاتصال الدقيقة.
المشاكل المحتملة
-
يسمح هذا التصميم بحزمة واحدة فقط لكل عينة بيانات. قد تحدث مشاكل في الكتابة على الأجهزة المضمَّنة.
حُزم تردد عالية جدًا لأنّها تزيد من ضغط وحدات الإدخال والإخراج، بالإضافة إلى حجم العنوان
(مثل ذرتَي
stsc
وstsz
) في حال اختلاف حجم الحزمة. - يمكن أن يؤدي مزج أنواع مختلفة من البيانات مع تأخيرات مختلفة إلى تقديم PTS إلى الأمام والعكس كما تتم كتابة الحزم إلى الملف. ومع ذلك، يمكن التغلب على هذا من خلال التخزين المؤقت للحزم وكتابتها بترتيب رتيب.