تدفق الأحداث هو أحد مواصفات تنسيق الملف. تم تصميمه كمعيار لتخزين تدفقات الأحداث، ويمكن استخدامه لنقل الأحداث بين الأجهزة الإلكترونية. تتضمن المواصفات نظام إصدار، للسماح بإجراء تغييرات هائلة مع الحفاظ على التوافق مع الإصدارات السابقة. الامتداد الموصى به لملفات دفق الأحداث هو .es .
بالنسبة للبايتة b
، تشير b[0]
إلى LSB (البتة الأقل أهمية) وتشير b[7]
إلى MSB (البتة الأكثر أهمية).
يبدأ كل ملف دفق الأحداث برأس يبلغ 15 بايت:
موضع | محتوى |
---|---|
البايتات من 0 إلى 11 | 0x45 0x76 0x65 0x6e 0x74 0x20 0x53 0x74 0x72 0x65 0x61 0x6d ( تدفق الأحداث بترميز ASCII) |
البايت 12 | النسخة الرئيسية |
البايت 13 | نسخة ثانوية |
البايت 14 | نسخة التصحيح |
يتبع ترقيم الإصدارات اصطلاح الإصدار الدلالي. البايتات 15 حتى النهاية تعتمد على الإصدار. ويرد وصف المحتوى أدناه.
يمكن أن يمثل الملف خمسة أنواع من التدفقات: الأحداث العامة، وأحداث DVS، وأحداث ATIS، وأحداث العرض غير المتزامنة والمعيارية، وأحداث الألوان. يتم تخزين النوع في البايت 15:
البايت 15 | نوع الدفق |
---|---|
0x00 | أحداث عامة |
0x01 | أحداث DVS |
0x02 | أحداث ATIS |
0x03 | أحداث العرض غير المتزامنة والمعيارية |
0x04 | أحداث اللون |
يمكن أن تكون البايتات من 16 إلى النهاية أيًا من إعادة التعيين أو الفائض أو البايت 0 أو بايت الحجم أو بايت البيانات . يتم تحديد الترتيب المحتمل لهذه البايتات بواسطة جهاز الحالة:
تقوم البايتات بترميز البيانات التالية:
اسم البايت | ام اس بي | بت 6 | بت 5 | بت 4 | بت 3 | بت 2 | بت 1 | LSB |
---|---|---|---|---|---|---|---|---|
إعادة ضبط | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
تجاوز | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
بايت 0 | t[7] | t[6] | t[5] | t[4] | t[3] | t[2] | t[1] | t[0] |
بايت الحجم | s[6] | s[5] | s[4] | s[3] | s[2] | s[1] | s[0] | is_last |
بايت البيانات | d[7] | d[6] | d[5] | d[4] | d[3] | d[2] | d[1] | d[0] |
إعادة التعيين عبارة عن بايت خاص يتم إدخاله عند الضرورة لتصحيح أخطاء جهاز الحالة الناتجة عن أخطاء البت.
t يرمز الوقت المنقضي منذ الحدث السابق بالميكروثانية، ولا يمكن أن يكون 0b11111110
أو 0b11111111
. إذا كانت هذه المرة تساوي أو تزيد عن 0b11111110
ميكروثانية، فسيتم إدراج بايت واحد أو عدة بايت تجاوز السعة قبل الحدث. يمكن حساب الوقت الفعلي المنقضي منذ الحدث الأخير كطابع زمني للحدث الحالي بالإضافة إلى 0b11111110
ميكروثانية مضروبًا في عدد البايتات الفائضة .
تبدأ حمولة البيانات لكل حدث ببايت واحد أو أكثر، مما يشفر عدد بايتات البيانات المراد قراءتها. يتم إعطاء عدد n
من بايتات البيانات المراد قراءتها بواسطة:
n = ∑ (s_i) << (7 * i)
حيث تشير s_i, i ∈ [0, k - 1]
إلى القيمة (i + 1)th s
، و k
عدد بايتات الحجم. يعتمد الحد الأدنى لعدد بايتات الحجم على عدد بايتات البيانات. يمكن أن تحتوي أحداث نفس الدفق على أعداد مختلفة من بايتات البيانات وأعداد مختلفة من بايتات الحجم. تتطلب بايتات البيانات n
ما لا يقل عن Γlb(n + 1) / 7⅂
بايت، حيث Γ…⅂
هي الدالة ceil و lb(…)
هي اللوغاريتم الثنائي. يتم تشجيع التطبيقات أو الأجهزة التي تولد أحداثًا عامة على استخدام هذا العدد الأدنى، على الرغم من أن مواصفات تدفق الأحداث تسمح بعدد أكبر من وحدات البايت ذات الحجم.
is_last
يساوي 0
لآخر بايت حجم قبل بايتات البيانات، و 1
بخلاف ذلك.
d
يشفر البيانات المقدمة من المستخدم.
البايتات من 16 إلى 19 تقوم بتشفير عرض المستشعر وارتفاعه:
اسم البايت | ام اس بي | بت 6 | بت 5 | بت 4 | بت 3 | بت 2 | بت 1 | LSB |
---|---|---|---|---|---|---|---|---|
بايت 16 | w[7] | w[6] | w[5] | w[4] | w[3] | w[2] | w[1] | w[0] |
بايت 17 | w[15] | w[14] | w[13] | w[12] | w[11] | w[10] | w[9] | w[8] |
بايت 18 | h[7] | h[6] | h[5] | h[4] | h[3] | h[2] | h[1] | h[0] |
بايت 19 | h[15] | h[14] | h[13] | h[12] | h[11] | h[10] | h[9] | h[8] |
w
(على التوالي h
) يشفر عرض المستشعر (على التوالي). يجب أن يكون إحداثي x (على التوالي) للحدث في نطاق عدد صحيح [0, w - 1]
(على التوالي [0, h - 1]
).
يمكن أن تكون البايتات 20 حتى النهاية أيًا من إعادة التعيين أو الفائض أو البايت 0 أو البايت 1 أو البايت 2 أو البايت 3 أو البايت 4 . يتم تحديد الترتيب المحتمل لهذه البايتات بواسطة جهاز الحالة:
تقوم البايتات بترميز البيانات التالية:
اسم البايت | ام اس بي | بت 6 | بت 5 | بت 4 | بت 3 | بت 2 | بت 1 | LSB |
---|---|---|---|---|---|---|---|---|
إعادة ضبط | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
تجاوز | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
بايت 0 | t[6] | t[5] | t[4] | t[3] | t[2] | t[1] | t[0] | is_increase |
بايت 1 | x[7] | x[6] | x[5] | x[4] | x[3] | x[2] | x[1] | x[0] |
بايت 2 | x[15] | x[14] | x[13] | x[12] | x[11] | x[10] | x[9] | x[8] |
بايت 3 | y[7] | y[6] | y[5] | y[4] | y[3] | y[2] | y[1] | y[0] |
بايت 4 | y[15] | y[14] | y[13] | y[12] | y[11] | y[10] | y[9] | y[8] |
إعادة التعيين هو حدث خاص يتم إدراجه عند الضرورة لتصحيح أخطاء جهاز الحالة الناتجة عن أخطاء البت. يجب إدراج وحدات البايت لإعادة التعيين خمس مرات في كل مرة، بحيث تتم قراءة بايت واحد على الأقل أثناء وجوده في حالة الخمول .
t
يرمز الوقت المنقضي منذ الحدث السابق بالميكروثانية، ولا يمكن أن يكون 0b1111111
. إذا كانت هذه المرة تساوي أو أكبر من 0b1111111
ميكروثانية، فسيتم إدراج بايت واحد أو عدة بايت تجاوز السعة قبل الحدث. يمكن حساب الوقت الفعلي المنقضي منذ الحدث الأخير كطابع زمني للحدث الحالي بالإضافة إلى 0b1111111
ميكروثانية مضروبًا في عدد البايتات الفائضة .
is_increase
يساوي 1
لأحداث الزيادة الضوئية، و 0
بخلاف ذلك.
يقوم x
و y
بتشفير إحداثيات البكسل المرتبطة بالحدث.
البايتات من 16 إلى 19 تقوم بتشفير عرض المستشعر وارتفاعه:
اسم البايت | ام اس بي | بت 6 | بت 5 | بت 4 | بت 3 | بت 2 | بت 1 | LSB |
---|---|---|---|---|---|---|---|---|
بايت 16 | w[7] | w[6] | w[5] | w[4] | w[3] | w[2] | w[1] | w[0] |
بايت 17 | w[15] | w[14] | w[13] | w[12] | w[11] | w[10] | w[9] | w[8] |
بايت 18 | h[7] | h[6] | h[5] | h[4] | h[3] | h[2] | h[1] | h[0] |
بايت 19 | h[15] | h[14] | h[13] | h[12] | h[11] | h[10] | h[9] | h[8] |
w
(على التوالي h
) يشفر عرض المستشعر (على التوالي). يجب أن يكون إحداثي x (على التوالي) للحدث في نطاق عدد صحيح [0, w - 1]
(على التوالي [0, h - 1]
).
يمكن أن تكون البايتات 20 حتى النهاية أيًا من إعادة التعيين أو الفائض أو البايت 0 أو البايت 1 أو البايت 2 أو البايت 3 أو البايت 4 . يتم تحديد الترتيب المحتمل لهذه البايتات بواسطة جهاز الحالة:
تقوم البايتات بترميز البيانات التالية:
اسم البايت | ام اس بي | بت 6 | بت 5 | بت 4 | بت 3 | بت 2 | بت 1 | LSB |
---|---|---|---|---|---|---|---|---|
إعادة ضبط | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
تجاوز | 1 | 1 | 1 | 1 | 1 | 1 | overflow[1] | overflow[0] |
بايت 0 | t[5] | t[4] | t[3] | t[2] | t[1] | t[0] | polarity | is_tc |
بايت 1 | x[7] | x[6] | x[5] | x[4] | x[3] | x[2] | x[1] | x[0] |
بايت 2 | x[15] | x[14] | x[13] | x[12] | x[11] | x[10] | x[9] | x[8] |
بايت 3 | y[7] | y[6] | y[5] | y[4] | y[3] | y[2] | y[1] | y[0] |
بايت 4 | y[15] | y[14] | y[13] | y[12] | y[11] | y[10] | y[9] | y[8] |
إعادة التعيين عبارة عن حدث خاص يتم إدراجه عند الضرورة لتصحيح أخطاء جهاز الحالة الناتجة عن أخطاء البت. يجب إدراج وحدات البايت التي تم إعادة تعيينها خمس مرات في كل مرة، بحيث تتم قراءة بايت واحد على الأقل أثناء وجوده في حالة الخمول .
t
يرمز الوقت المنقضي منذ الحدث السابق بالميكروثانية، ولا يمكن أن يكون 0b111111
. إذا كانت هذه المرة تساوي أو أكبر من 0b111111
ميكروثانية، فسيتم إدراج بايت واحد أو عدة بايت تجاوز السعة قبل الحدث. يمكن حساب الوقت الفعلي المنقضي منذ الحدث الأخير كطابع زمني للحدث الحالي بالإضافة إلى 0b111111
ميكروثانية مضروبًا في الرقم المشفر بواسطة overflow[0]
و overflow[1]
لكل حدث تجاوز .
يساوي is_tc
0
لحدث DVS، و 1
لعبور العتبة (نصف قياس التعرض). مخازن polarity
is_increase
لحدث DVS، is_second
لعبور العتبة.
يقوم x
و y
بتشفير إحداثيات البكسل المرتبطة بالحدث.
البايتات 16 حتى النهاية يمكن أن تكون أيًا من إعادة التعيين ، أو التجاوز ، أو البايت 0 ، أو البايت 1 ، أو البايت 2 ، أو البايت_3 . يتم تحديد الترتيب المحتمل لهذه البايتات بواسطة جهاز الحالة:
تقوم البايتات بترميز البيانات التالية:
اسم البايت | ام اس بي | بت 6 | بت 5 | بت 4 | بت 3 | بت 2 | بت 1 | LSB |
---|---|---|---|---|---|---|---|---|
إعادة ضبط | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
تجاوز | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
بايت 0 | t[7] | t[6] | t[5] | t[4] | t[3] | t[2] | t[1] | t[0] |
بايت 1 | x[7] | x[6] | x[5] | x[4] | x[3] | x[2] | x[1] | x[0] |
بايت 2 | y[7] | y[6] | y[5] | y[4] | y[3] | y[2] | y[1] | y[0] |
بايت 3 | s[7] | s[6] | s[5] | s[4] | s[3] | s[2] | s[1] | s[0] |
إعادة التعيين هو حدث خاص يتم إدراجه عند الضرورة لتصحيح أخطاء جهاز الحالة الناتجة عن أخطاء البت. يجب إدراج وحدات البايت التي تم إعادة تعيينها أربع وحدات بايت في كل مرة، بحيث تتم قراءة بايت واحد على الأقل أثناء وجوده في حالة الخمول .
t
يرمز الوقت المنقضي منذ الحدث السابق بالميكروثانية، ولا يمكن أن يكون 0b11111110
أو 0b11111111
. إذا كانت هذه المرة تساوي أو تزيد عن 0b11111110
ميكروثانية، فسيتم إدراج بايت واحد أو عدة بايت تجاوز السعة قبل الحدث. يمكن حساب الوقت الفعلي المنقضي منذ الحدث الأخير كطابع زمني للحدث الحالي بالإضافة إلى 0b11111110
ميكروثانية مضروبًا في عدد البايتات الفائضة .
يقوم x
و y
بتشفير إحداثيات البكسل المرتبطة بالحدث.
s
يشفر المرحلة الحالية في الهرم. خارج الشاشة، يجب أن تكون قيمتها 0b00000000
(راجع وثائق العرض غير المتزامن والمعياري للحصول على التفاصيل).
البايتات من 16 إلى 19 تقوم بتشفير عرض المستشعر وارتفاعه:
اسم البايت | ام اس بي | بت 6 | بت 5 | بت 4 | بت 3 | بت 2 | بت 1 | LSB |
---|---|---|---|---|---|---|---|---|
بايت 16 | w[7] | w[6] | w[5] | w[4] | w[3] | w[2] | w[1] | w[0] |
بايت 17 | w[15] | w[14] | w[13] | w[12] | w[11] | w[10] | w[9] | w[8] |
بايت 18 | h[7] | h[6] | h[5] | h[4] | h[3] | h[2] | h[1] | h[0] |
بايت 19 | h[15] | h[14] | h[13] | h[12] | h[11] | h[10] | h[9] | h[8] |
w
(على التوالي h
) يشفر عرض المستشعر (على التوالي). يجب أن يكون إحداثي x (على التوالي) للحدث في نطاق عدد صحيح [0, w - 1]
(على التوالي [0, h - 1]
).
يمكن أن تكون البايتات 20 حتى النهاية أيًا من إعادة التعيين أو الفائض أو البايت 0 أو البايت 1 أو البايت 2 أو البايت 3 أو البايت 4 أو البايت 5 أو البايت 6 أو البايت 7 . يتم تحديد الترتيب المحتمل لهذه البايتات بواسطة جهاز الحالة:
تقوم البايتات بترميز البيانات التالية:
اسم البايت | ام اس بي | بت 6 | بت 5 | بت 4 | بت 3 | بت 2 | بت 1 | LSB |
---|---|---|---|---|---|---|---|---|
إعادة ضبط | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
تجاوز | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
بايت 0 | t[7] | t[6] | t[5] | t[4] | t[3] | t[2] | t[1] | t[0] |
بايت 1 | x[7] | x[6] | x[5] | x[4] | x[3] | x[2] | x[1] | x[0] |
بايت 2 | x[15] | x[14] | x[13] | x[12] | x[11] | x[10] | x[9] | x[8] |
بايت 3 | y[7] | y[6] | y[5] | y[4] | y[3] | y[2] | y[1] | y[0] |
بايت 4 | y[15] | y[14] | y[13] | y[12] | y[11] | y[10] | y[9] | y[8] |
بايت 5 | r[7] | r[6] | r[5] | r[4] | r[3] | r[2] | r[1] | r[0] |
بايت 6 | g[7] | g[6] | g[5] | g[4] | g[3] | g[2] | g[1] | g[0] |
بايت 7 | b[7] | b[6] | b[5] | b[4] | b[3] | b[2] | b[1] | b[0] |
إعادة التعيين عبارة عن حدث خاص يتم إدراجه عند الضرورة لتصحيح أخطاء جهاز الحالة الناتجة عن أخطاء البت. يجب إدراج ارتفاع بايتات إعادة التعيين في كل مرة، بحيث تتم قراءة بايت واحد على الأقل أثناء وجوده في حالة الخمول .
t
يرمز الوقت المنقضي منذ الحدث السابق بالميكروثانية، ولا يمكن أن يكون 0b11111110
أو 0b11111111
. إذا كانت هذه المرة تساوي أو تزيد عن 0b11111110
ميكروثانية، فسيتم إدراج بايت واحد أو عدة بايت تجاوز السعة قبل الحدث. يمكن حساب الوقت الفعلي المنقضي منذ الحدث الأخير كطابع زمني للحدث الحالي بالإضافة إلى 0b11111110
ميكروثانية مضروبًا في عدد البايتات الفائضة .
يقوم x
و y
بتشفير إحداثيات البكسل المرتبطة بالحدث.
يقوم r
و g
و b
بتشفير مكونات اللون الأحمر والأخضر والأزرق.
راجع ملف الترخيص لمعرفة حقوق الترخيص وقيوده (GNU GPLv3).