فور سي سي
FourCC ("رمز مكون من أربعة أحرف") عبارة عن تسلسل من أربعة بايتات (عادةً ما تكون بتنسيق ASCII ) يستخدم لتحديد تنسيقات البيانات بشكل فريد . نشأ هذا الرمز من نظام التعريف التعريفي OSType أو ResType المستخدم في نظام التشغيل Mac OS الكلاسيكي وتم اعتماده لتنسيق الملفات التبادلي Amiga / Electronic Arts ومشتقاته. تمت إعادة استخدام الفكرة لاحقًا لتحديد أنواع البيانات المضغوطة في QuickTime و DirectShow .
تاريخ
في عام 1984، تم إصدار أقدم إصدار من نظام تشغيل ماكنتوش، وهو نظام 1. وقد استخدم نظام ملفات ماكنتوش أحادي المستوى مع حقول بيانات وصفية تتضمن أنواع الملفات ومعلومات المنشئ (التطبيق) والشوك لتخزين الموارد الإضافية . وكان من الممكن تغيير هذه المعلومات دون تغيير البيانات نفسها، بحيث يمكن تفسيرها بشكل مختلف. وتم استخدام أكواد متطابقة في جميع أنحاء النظام، كعلامات نوع لجميع أنواع البيانات. [1] [2]
في عام 1985، قدمت شركة إلكترونيك آرتس تنسيق الملفات المتبادلة (IFF) (عائلة تنسيقات الملفات)، والذي تم تصميمه في الأصل للاستخدام على جهاز Amiga . تتكون هذه الملفات من سلسلة من "القطع"، والتي يمكن أن تحتوي على بيانات عشوائية، كل قطعة مسبوقة بمعرف مكون من أربعة بايتات. يذكر مواصفات IFF صراحةً أن أصول فكرة FourCC تعود إلى شركة Apple. [3]
تم اعتماد هذا IFF من قبل عدد من المطورين بما في ذلك Apple لملفات AIFF و Microsoft لملفات RIFF (التي تم استخدامها كأساس لتنسيقات ملفات AVI و WAV ). أشارت Apple إلى العديد من هذه الرموز باسم OSTypes . يشير مطورو Microsoft و Windows إلى معرفاتهم المكونة من أربعة بايتات باسم FourCCs أو Four-Character Codes . كما تبنت Microsoft رموز FourCC لتحديد تنسيقات البيانات المستخدمة في DirectX ، وتحديدًا داخل DirectShow و DirectX Graphics.
في أنظمة Apple
منذ Mac OS X Panther ، أصبحت توقيعات OSType واحدة من عدة مصادر يمكن فحصها لتحديد معرف النوع الموحد ولم تعد تُستخدم كتوقيع نوع البيانات الأساسي. يفضل Mac OS X (macOS) الاتفاقية الأكثر شيوعًا لتصنيف أنواع الملفات باستخدام ملحقات اسم الملف. في وقت التغيير، كان التغيير مصدرًا لخلاف كبير بين المستخدمين الأكبر سنًا، الذين اعتقدوا أن Apple كانت تعود إلى طريقة أكثر بدائية تضع البيانات الوصفية في اسم الملف بشكل خاطئ.
لا يمكن للمستخدمين الوصول بسهولة إلى أكواد النوع المرتبطة بنظام الملفات، على الرغم من إمكانية عرضها وتغييرها باستخدام برامج معينة، وأبرزها أدوات سطر أوامر macOS GetFileInfo و SetFile المثبتة كجزء من أدوات المطور في /Developer/Tools ، أو أداة ResEdit المتوفرة لأجهزة Mac القديمة. [4] [5]
التفاصيل الفنية
يقتصر تسلسل البايت عادةً على أحرف ASCII القابلة للطباعة ، مع الاحتفاظ بأحرف المسافة لتعبئة التسلسلات الأقصر. يتم الحفاظ على حساسية الحالة، على عكس ملحقات الملفات . يتم ترميز FourCCs أحيانًا بالنظام السداسي عشر (على سبيل المثال، "0x31637661" لـ " avc1 ") [6] [7] [8] وأحيانًا يتم ترميزها بطريقة يمكن للإنسان قراءتها (على سبيل المثال، " mp4a "). ومع ذلك، تحتوي بعض FourCCs على أحرف غير قابلة للطباعة، ولا يمكن للإنسان قراءتها بدون تنسيق خاص للعرض؛ على سبيل المثال، يمكن أن يحتوي مقطع فيديو Y'CbCr 4:2:2 بدقة 10 بت على FourCC ('Y', '3', 10, 10) [9] والذي يعرضه ffmpeg كـ rawvideo (Y3[10] [10] / 0x0A0A3359), yuv422p10le.
إن المعرفات المكونة من أربعة بايتات مفيدة لأنها يمكن أن تتكون من أربعة أحرف يمكن قراءتها بواسطة الإنسان بصفات تساعد على التذكر، مع الحفاظ على ملاءمتها لمساحة الذاكرة المكونة من أربعة بايتات المخصصة عادةً للأعداد الصحيحة في الأنظمة المكونة من 32 بت (على الرغم من أن مشكلات نهاية السلسلة قد تجعلها أقل قابلية للقراءة). وبالتالي، يمكن استخدام الرموز بكفاءة في كود البرنامج كأعداد صحيحة، فضلاً عن إعطاء إشارات في تدفقات البيانات الثنائية عند فحصها.
دعم المترجم
تمت كتابة FourCC بترتيب كبير نسبيًا لتسلسل أحرف ASCII الأساسي، بحيث تظهر بالترتيب الصحيح للبايتات عند قراءتها كسلسلة. تحدد العديد من مُجمِّعي C، بما في ذلك GCC، سلوكًا حرفيًا متعدد الأحرف للمحاذاة إلى اليمين إلى أقل بايت أهمية، بحيث '1234'يصبح في ASCII. [10] هذه هي الطريقة التقليدية لكتابة أكواد FourCC التي يستخدمها مبرمجو Mac OS لـ OSType. ( كان نظام Mac OS الكلاسيكي يعتمد على ترتيب كبير حصريًا.)
0x31323334
في الأجهزة ذات النهاية الصغيرة، يلزم تبديل البايت على القيمة لجعل النتيجة صحيحة. باستخدام مثال avc1 من الأعلى: على الرغم من أن الحرف 'avc1' يحول بالفعل إلى القيمة الصحيحة 0x61766331 ، فإن الجهاز ذي النهاية الصغيرة سيعكس ترتيب البايت ويخزن القيمة على أنها 31 63 76 61. لإنتاج تسلسل البايت الصحيح 61 76 63 31 ، يتم استخدام القيمة التي تم تبديلها مسبقًا 0x31637661 .
الاستخدامات الشائعة
يحتاج هذا القسم إلى مصادر إضافية للتحقق . ( فبراير 2024 ) |
أحد الاستخدامات الأكثر شهرة لـ FourCCs هو تحديد برنامج ترميز الفيديو أو تنسيق ترميز الفيديو في ملفات AVI. تشمل المعرفات الشائعة DIVX و XVID و H264 . بالنسبة لتنسيقات ترميز الصوت ، تستخدم ملفات AVI وWAV معرفًا مكونًا من بايتين، مكتوبًا عادةً بالنظام السداسي عشر (مثل 0055 لملفات MP3 ). في ملفات QuickTime، يتم وضع بادئة "ms" لهذه المعرفات المكونة من بايتين لتشكيل رمز مكون من أربعة أحرف. تستخدم ملفات RealMedia أيضًا رموزًا مكونة من أربعة أحرف، ومع ذلك، تختلف الرموز الفعلية المستخدمة عن تلك الموجودة في ملفات AVI أو QuickTime.
تنسيقات الملفات الأخرى التي تستخدم مفهوم المعرف المكون من أربعة بايتات بشكل مهم هي تنسيق ملف MIDI القياسي (SMF) ، وتنسيق ملف صورة PNG ، وتنسيق ملف شبكة 3DS (3D Studio Max)، وتنسيق ملف تعريف ICC .
تُستخدم أيضًا الرموز المكونة من أربعة أحرف في تطبيقات أخرى غير تنسيقات الملفات، على سبيل المثال:
- منتدى UEFI للبائعين في سجل معرف ACPI [11]
- تحدد مواصفات ACPI معرفات مكونة من أربعة أحرف في لغة المصدر ACPI (ASL)
- Synopsys لإخبار معرف المكون عبر سجلات IP (مجموعة DesignWare)
تتضمن الاستخدامات الأخرى لـ OSTypes ما يلي:
- كمعرفات حقول التسجيل ونوع الحدث ومعرفات الفئة في AppleEvents
- لتحديد المكونات في مدير المكونات
- كمعرفات "ذرة" في تنسيقات ملفات الأفلام والصور QuickTime
- كطريقة مستقلة عن التوطين لتحديد المجلدات القياسية في مدير المجلدات
- في QuickDraw GX ، تم استخدامها كأنواع gxTag وأيضًا كأنواع عناصر المجموعة في مدير المجموعة.
- ثوابت التعداد في واجهات برمجة تطبيقات Apple (كعدد صحيح؛ endianess المضيف)
- رموز خطأ "OSStatus" في مكتبات معينة، مثل QuickTime (كعدد صحيح؛ endianess المضيف) [12]
انظر أيضا
- ملحق اسم الملف (يُعرف أيضًا باسم "ملحق الملف")
- تنسيق ملف التبادل
- الرقم السحري
- نوع نظام التشغيل
مراجع
- ^ قاعدة بيانات النوع/المنشئ
- ^ "توقيعات ملفات Macintosh". Logiciels & Services Duhem . تم الاسترجاع في 1 ديسمبر 2015 .
- ^ موريسون، جيري (14 يناير 1985). ""EA IFF 85" معيار لملفات تنسيق التبادل". إلكترونيك آرتس .
- ^ "GetFileInfo"، مرجع داروين (صفحة الدليل)، Apple
- ^ "SetFile"، مرجع داروين (صفحة الدليل)، Apple
- ^ online-metadata.com. "ما هي علامة الترميز؟". ما هي علامة الترميز؟ . تم الاسترجاع في 9 يونيو 2019 .
- ^ "git.videolan.org Git - ffmpeg.git/blob - libavformat/isom.c". git.videolan.org . تم الاسترجاع في 9 يونيو 2019 .
- ^ "FFmpeg/FFmpeg search". GitHub . تم الاسترجاع في 9 يونيو 2019 .
- ^ "FFmpeg: ملف مصدر libavcodec/raw.c". ffmpeg.org . تم الاسترجاع في 9 يونيو 2019 .
- ^ "معالج C المسبق: السلوك المحدد بالتنفيذ". gcc.gnu.org .
- ^ "سجل معرف ACPI". uefi.org .
- ^ "OSStatus — أخطاء API الخاصة بـ Apple". www.osstatus.com .
المراجع العامة
- هيئة التسجيل الرسمية لعائلة معايير ISOBMFF
- فليشمان، إي. (يونيو 1998). "RFC2361 - سجلات ترميز WAVE وAVI". هيئة أرقام الإنترنت المخصصة (IANA).
- "معرفات GUID الفرعية الصوتية". Microsoft . تم الاسترجاع في 23 فبراير 2017 .
- كرون، ديرك جان (16 فبراير 2011). "قائمة برامج ترميز الفيديو، فور سي سي". ماث ووركس (نُشر في 13 سبتمبر 2010).
تقدم هذه الوظيفة GETFOURCC قائمة ببرامج ترميز الفيديو المتوفرة في تثبيت Windows الحالي
