스크립트
00:00:00إليك سؤال. كيف يمكنك إرسال ملف إلى شخص ما دون استخدام شبكة وددون استخدام أي
00:00:05أجهزة مادية مثل وحدات تخزين USB؟ حسناً، الإجابة هي نقل الملفات الضوئية. مطور يدعى إيفان
00:00:13كراولي قام للتو بنناء أداة تسمى Deciman، وهي قادرة على إرسال ملف من جهاز إلى
00:00:19آخر مجرد عن طريق عرض رموز الاستجابة السريعة وقراءتها مرة أخرى. إنها تقنية رائعة حقاً لنقل الملفات
00:00:26وتستخدم بعض تكتيكات الهندسة الذكية جداً. لذلك في فيديو اليوم، سنلقي نظرة
00:00:31على Deciman، ونرى كيف يعمل ونختبره في سيناريوهات مختلفة لنرى مدى قوة نقل الملفات
00:00:37الضوئية حقاً. سيكون الأمر ممتعاً للغاية، لذا دعونا نغوص فيه.
00:00:46إذن Deciman يعمل بهذه الطريقة. يعرض أحد الجهازين تدفقاً من الإطارات المشابهة لرمز الاستجابة السريعة على شاشته
00:00:53ويوجه جهاز آخر كاميرا إليه ويفك رموزها مرة أخرى إلى ملف. لذلك لا توجد شبكة
00:01:00مشاركة متضمنة على الإطلاق. لذا إذا احتجت يوماً إلى تبادل ملف مع جهاز معزول، فهذه هي الطريقة الوحيدة
00:01:06ل القيام بذلك دون توصيل أي أجهزة خارجية مثل محركات أقراص USB بشكل مادي. والفكرة هي أنك
00:01:12تقوم بترميز ملفك كتسلسل من رموز الاستجابة السريعة، وتنقله على الشاشة واحداً تلو الآخر، وتجعل الكاميرا
00:01:19في الطرف الآخر تلتقط وتفك تشفير كل إطار. قد يبدو ذلك بسيطاً، لكن التعقيد ينشأ
00:01:26من حقيقة أن الكاميرات لا تلتقط بشكل فوري في الواقع، والشاشات لا يتم تحديثها
00:01:32بشكل فوري. لذا أنت تسابق قطعتين مختصفتين من الأجهزة ضد بعضهما البعض، وإذا خرجتا عن التزامن،
00:01:38تتعرض الإطارات للتلف أو تفوت تماماً. ولكن إجابة Deciman على هذه المشكلة هي طريقة تسمى ترميز النافورات.
00:01:46بدلاً من إرسال الإطار الأول، الإطار الثاني، الإطار الثالث، وتمني أن يصل كل واحد منها،
00:01:53فهو يولد تدفقاً غير محدود فعلياً من الإطارات المشفرة حيث يكون كل إطار مزيجاً رياضياً
00:02:00من أجزاء الملف الأصلي بدلاً من جزء محدد منه. هذا يعني أنه لا يوجد إطار واحد لا يمكن تعويضه.
00:02:07المستقبل لا يحتاج إلى الإطار رقم 47 تحديداً، بل يحتاج فقط إلى ما يكفي من الإطارات، أياً كانت التي تصادف وصولها.
00:02:14وإذا فاتك نصفها، فلا يهم ذلك. إنه يستمر في البث حتى يجمع المستقبل
00:02:22ما يكفي منها. ولكن هذا النهج ليس حلاً سحرياً بأي حال من الأحوال. مع هذه الطريقة، هناك سقف لمدى البيانات
00:02:29التي يمكننا نقلها. بشكل افتراضي، يدفع مرسل Deciman ما يقرب من 2953 بايت لكل إطار بمعدل 60 إطاراً في الثانية.
00:02:37إذا قمت بالحسابات على ذلك، ستحصل على سقف نظري يقرب من 177 كيلوبايت في الثانية.
00:02:44خذ في الاعتبار الحمل الزائد من ترميز النافورات، نظراً لأن بعض هذه الإطارات المدمجة تكون زائدة عن الحاجة بحكم التصميم.
00:02:51وما تبقى لديك هو الرقم الذي تدعيه فعلياً ملف README الخاص بـ Deciman.
00:02:56وهو يبلغ ذروته عند حوالي 128 كيلوبايت في الثانية عند قياسه من هاتف إلى هاتف.
00:03:02والسبب في استخدامه لقطع بحجم 2953 بايت تحديداً هو أنه يتوافق مع الإصدار 40 من رمز الاستجابة السريعة،
00:03:11وهو أكبر حجم قياسي لرمز الاستجابة السريعة، شبكة من 177 في 177 من الوحدات الفردية المضغوطة في إطار واحد.
00:03:20وهنا يظهر التنازل الحقيقي. إذا قمت بحشر المزيد من البيانات في إطار، فأنت تحتاج إلى عدد أقل من الإطارات
00:03:26بشكل عام لإرسال نفس الملف، مما يعني أن أي كاميرا تقرأه تحتاج إلى دقة أعلى،
00:03:33ويداً أكثر ثباتاً، وتكييزاً أكثر حدة للتمييز بين وحدة وأخرى.
00:03:38لذا فإن النظام بأكمله هو في الواقع عملية موازنة بين ثلاثة متغيّرات.
00:03:42عدد الإطارات في الثانية التي ترسلها، ومدى كثافة كل إطار من هذه الإطارات، ومدى جودة الكاميرا
00:03:49المستقبلة في الواقع في حل تلك الكثافة. وتأتي أداة Deciman مع توازن واحد محدد تم ضبطه افتراضياً،
00:03:57وهو مصمم لسيناريو واحد محدد، والذي كما اكتشفت، ليس هو السيناريو الذي اختبرته فيه.
00:04:03إذن ها هو إعدادي: شاشة كمبيوتر محمول كمرسل، موضوعة على مسافة ذراع عادية،
00:04:09مثلما قد تستخدم هذا عملياً. مع هذا الإعداد، وصل نقل البيانات الخاص بي إلى حوالي ثلاثة كيلوبايت في الثانية.
00:04:16ما يقرب من واحد إلى اثنين بالمائة من الإطارات المرسلة يتم فك تشفيرها فعلياً. والباقي يتم التقاطه وإلقاؤه.
00:04:23والآن هناك ثلاثة أشياء تتراكم ضدنا هنا. العقبة الأولى والأكبر هي عدم تطابق معدل الإطارات.
00:04:30المرسل يدفع 60 إطاراً في الثانية، لكن كاميرا هاتفي تلتقط بمعدل 30. لا يمكنك أخذ عينات من 60 صورة متميزة
00:04:38باستخدام مستشعر يلتقط 30 فقط. والأمر أسوأ من مجرد فقدان نصفها، لأن نافذة التعرض لكل
00:04:45إطار ملتقط تتداخل مع رمزي استجابة سريعة مختلفين على الشاشة. لذا لا تفوت الكاميرا الإطار بدقة، بل تمزج اثنين منها معاً في شيء يتم فك تشفيره إلى لا شيء.
00:04:56وفي ملف main.ts، هناك ملاحظة تفيد بأن نظام iOS سيسلم بصمت 30 إطاراً في الثانية، حتى عندما يطلب التطبيق بوضوح من الكاميرا 60 إطاراً.
00:05:07الكاميرا ببساطة لا تمنحك ما طلبته، والكود يعالج ذلك بالفعل.
00:05:12وعلى مسافة أقصر قليلاً في نفس الملف، يوجد تعليق يتوقع تماماً ما حدث لي في محاولتي الأولى.
00:05:19القيم الافتراضية، وهي 2953 بايت لكل إطار عند 60 إطاراً في الثانية، مخصصة خصيصاً لعرض توضيحي من هاتف إلى هاتف عن قرب.
00:05:29ومن المتوقع أن تواجه نفس التركيبة صعوبة على شاشة عادية على مسافة الذراع.
00:05:35بعبارة أخرى، أخبرني المشروع أن هذا سيحدث. لم أكن قد مررت للأسفل بشكل كافٍ في الكود لأراه.
00:05:41على جانب الإرسال، تواجه لوحة كمبيوتر محمول بمعدل 60 هิرتز نفس المشكلة بالعكس. وتستغرق بكسلات شاشات الكريستال السائل وقتاً طويلاً للانتقال الكامل من الرمادي إلى الرمادي.
00:05:51ووقت الإعداد هذا يعني أن اللوحة لم تصل بالكامل إلى رمز واحد قبل أن يبدأ الرمز التالي في الطلاء فوقه.
00:05:58لذا ستحصل على آثار شبح. والمشكلة الثانية هي كثافة الكود مقابل دقة الكاميرا.
00:06:042953 بايت هو إصدار QR 40، لكن فك التشفير الموثوق يحتاج إلى حوالي ثلاثة إلى أربعة بكسلات كاميرا لكل وحدة، وهو ما يصل إلى أكثر من 600 بكسل عرضياً بتركيز حاد فقط للكود نفسه.
00:06:20وشاشة الكمبيوتر المحمول التي تتم جدولتها على مسافة الذراع نادراً ما تملأ هذا القدر من إطار كاميرا الهاتف، لكن من هاتف إلى هاتف على مسافة قريبة يملأ محدد المعاينة بأكمله بسهولة.
00:06:30والمشكلة الثالثة هي السطوع والتباين. إنه قضية ثانوية، لكنه يساعد إذا قام مزيل التباين للمستقبل بتحديد عتبة الصورة بشكل نظيف، لكنه لا يزال غير قادر على إصلاح عدم تطابق معدل الإطارات أو الكود صغير الحجم.
00:06:44لذا دعونا الآن نحاول إجراء نفس النقل، ولكن هذه المرة من هاتف إلى هاتف آخر.
00:06:50لذا فإن الشيء الوحيد الذي يتغير هو المرسل. إنها شاشة OLED صغيرة ومطورة ومضيئة مقربة، تملأ إطار الهاتف المستقبل بأكمله.
00:06:58الآن يمكن للكاميرا بالفعل الوصول إلى معدل إطاراتها الحقيقي بشكل أوثق.
00:07:02يملا الكود الإطار بدقة عالية ولا توجد آثار شبح لشاشات الكريستال السائل للمحاربة معها.
00:07:07هذا هو السيناريو الذي تم قياس رقم 128 كيلوبايت في الثانية في ملف README تحته في الواقع.
00:07:14هناك أيضاً تفاصيل صغيرة ولكنها مفيدة حقاً في كود المستقبل.
00:07:18وهو يبلغ عن إطارات الالتقاط في الثانية وإطارات فك التشفير في الثانية بشكل منفصل. يخبرنا الالتقاط بما تراه الكاميرا مادياً.
00:07:26يخبرك فك التشفير بمقدار ذلك القابل للاستخدام في الواقع.
00:07:30عندما يبتعد هذان الرقمان عن بعضهما البعض، بحيث يظل الالتقاط صحياً بينما ينهار فك التشفير،
00:07:35فإنك تنظر إلى عدم تطابق بين مدى كثافة الإطارات وما يمكن للكاميرات حله في ذلك النطاق.
00:07:42لذا إذا كان النقل من كمبيوتر محمول إلى هاتف هو حالة الاستخدام الفعلية الخاصة بك، فالإصلاح هو إعادة موازنة تلك المتغيرات الثلاثة على جانب المرسل.
00:07:50يجب عليك خفض البايتات لكل إطار إلى 1465، وهو ما يتوافق مع إصدار QR أكثر خشونة بوحدات أكبر وأكثر تسامحاً.
00:07:59ثم خفض معدل إطارات الإرسال إلى 24 عن قصد تحت سقف الكاميرا البالغ 30 إطاراً في الثانية.
00:08:07حتى يتم أخذ عينات من الإطارات بنظافة واحدة تلو الأخرى بدلاً من الاندماج في بعضها البعض.
00:08:12وكما ترون، فإن خفض هذه الأرقام ينتج عنه إنتاجية أكبر بكثير.
00:08:16لذا يوضح لك هذا فقط أن نقل الملفات الضوئية ليس حلاً يناسب الجميع.
00:08:21عليك تعديله يدوياً لكل حالة استخدام اعتماداً على الأجهزة التي تستخدمها.
00:08:26إذن ها هو ذا يا أصدقاء.
00:08:27هذا هو Deciman باختصار.
00:08:29بشكل عام، كان هذا مشروعاً ممتعاً حقاً للتعمق فيه.
00:08:32نقل الملفات الضوئية هو تقنية رائعة للغاية.
00:08:36 ورؤية مفهوم ترميز النافورات المطبق في سيناريو حالة واقعية هنا كان أمراً مثيراً للاهتمام حقاً للمشاهدة.
00:08:44وبينما كنت أستكشف هذا المشروع، كنت أفكر أيضاً، أين ستستخدم هذا النوع من الأدوات بالفعل؟
00:08:49أعتقد أن الإجابة الواضحة ستكون لعمليات النقل المعزولة حيث لا تريد عمداً أي اتصال شبكي على الإطلاق.
00:08:57أو ربما الأجهزة التي لا تحتوي حتى على بلوتوث أو واي فاي مثل الأجهزة القديمة أو الأنظمة المضمنة.
00:09:04أعني، في أي مكان تكون فيه الشاشة والكاميرا هما الشيئين الوحيدين اللذين يمكنك الاعتماد عليهما.
00:09:10ولكن ما رأيك في هذه الأداة؟
00:09:11هل استخدمت أدوات نقل ضوئية من قبل؟
00:09:14هل ترى أي تطبيق حقيقي في الحياة الواقعية لهذا؟
00:09:17أخبرنا في قسم التعليقات أدناه.
00:09:19ويا أصدقاء، إذا كنتم تحبون هذه الأنواع من التفاصيل الفنية، يرجى إعلامي عن طريق تحطيم زر الإعجاب أسفل الفيديو.
00:09:25ولا تنسوا أيضاً الاشتراك في قناتنا.
00:09:28كان هذا أندروس من BetterStack وسأراك في الفيديوهات القادمة.
00:09:34سأراك في الفيديو القادم.