FLAC

تسجيل ثنائي الأذنين لآلة الجيرجيري الشعبية من جنوب آسيا بصيغة FLAC

FLAC ( يُلفظ / flæk / ؛ اختصار لـ Free Lossless Audio Codec ) هو تنسيق ترميز صوتي لضغط الصوت الرقمي دون فقدان الجودة ، طُوّر بواسطة مؤسسة Xiph.Org ، وهو أيضًا اسم مشروع البرمجيات الحرة الذي يُنتج أدوات FLAC، وهي حزمة البرامج المرجعية التي تتضمن تطبيقًا لبرنامج الترميز . يمكن عادةً تقليل حجم الصوت الرقمي المضغوط بواسطة خوارزمية FLAC إلى ما بين 50 و70 بالمائة من حجمه الأصلي [ 4 ] ، ويتم فك ضغطه إلى نسخة مطابقة لبيانات الصوت الأصلية.

FLAC هو تنسيق مفتوح المصدر بترخيص مجاني ، وله تطبيق مرجعي مجاني . يدعم FLAC إضافة بيانات وصفية ، وعرض صور أغلفة الألبومات ، والبحث السريع.

تاريخ

بدأ تطوير البرنامج في عام 2000 على يد جوش كولسون. تم تثبيت تنسيق البتات مع إصدار النسخة 0.9 من التطبيق المرجعي في 31 مارس 2001. تم إصدار النسخة 1.0 في 20 يوليو 2001. [ 5 ]

في 29 يناير 2003، أعلنت مؤسسة Xiph.Org ومشروع FLAC عن دمج FLAC تحت مظلة Xiph.org. وتضم Xiph.org أيضًا صيغ ضغط مجانية أخرى مثل Vorbis و Theora و Speex و Opus . [ 5 ] [ 6 ] [ 7 ]

تم إصدار النسخة 1.3.0 في 26 مايو 2013، وعندها تم نقل عملية التطوير إلى مستودع Xiph.org على نظام git. [ 8 ]

في عام 2019، تم اقتراح FLAC كمعيار من معايير IETF . [ 9 ]

في ديسمبر 2024 ، تم تحديد FLAC رسميًا ونشره كـ RFC 9639. [ 10 ] 

تصميم

FLAC هو ترميز بدون فقدان لبيانات تعديل رمز النبض الخطي . [ 11 ]

بنية الملفات

يتكون ملف FLAC من الرقم السحريfLaC والبيانات الوصفية والصوت المشفر. [ 11 ]

يُقسّم الصوت المُشفّر إلى إطارات، يتألف كل منها من رأس، وكتلة بيانات، ومجموع اختبار CRC16 . يُشفّر كل إطار بشكل مستقل عن الإطارات الأخرى. يبدأ رأس الإطار بكلمة تزامن تُستخدم لتحديد بداية إطار صالح. يحتوي باقي الرأس على عدد العينات، وموقع الإطار، وتخصيص القناة، ومعدل أخذ العينات وعمق البت (اختياري ). تحتوي كتلة البيانات على معلومات الصوت. [ 11 ]

تسبق البيانات الوصفية في ملفات FLAC الصوت. وتحتوي هذه البيانات دائمًا على خصائص مثل معدل العينة وعدد القنوات. وقد تتضمن أيضًا معلومات أخرى، مثل غلاف الألبوم . [ 11 ] يستخدم FLAC تعليقات Vorbis للبيانات الوصفية النصية مثل عنوان المقطع واسم الفنان.

التشفير وفك التشفير

لقطة شاشة flacلبرنامج سطر الأوامر

تتألف خوارزمية ترميز FLAC من عدة مراحل. في المرحلة الأولى، يُقسّم الصوت المُدخل إلى كتل. إذا كان الصوت يحتوي على قنوات متعددة ، تُرمّز كل قناة على حدة ككتلة فرعية. ثم يحاول المُرمّز إيجاد تقريب رياضي جيد للكتلة، إما عن طريق مطابقة متعددة حدود بسيطة ، أو من خلال الترميز التنبؤي الخطي العام . بعد ذلك، يُكتب وصف للتقريب، والذي لا يتجاوز طوله بضعة بايتات. أخيرًا، يُرمّز الفرق بين التقريب والصوت المُدخل، والذي يُسمى الباقي، باستخدام ترميز رايس . في كثير من الحالات، يشغل وصف التقريب والباقي المُرمّز مساحة أقل من استخدام تعديل رمز النبض . [ 11 ]

عملية فك التشفير هي عكس عملية التشفير. حيث يتم أولاً فك تشفير الجزء المتبقي المضغوط. [ 12 ] [ 13 ] ثم يُستخدم وصف التقريب الرياضي لحساب شكل الموجة. وتتكون النتيجة من خلال جمع الجزء المتبقي مع شكل الموجة المحسوب. [ 14 ] [ 15 ] وبما أن FLAC يضغط البيانات دون فقدان ، فإن شكل الموجة بعد فك التشفير يكون مطابقًا لشكل الموجة قبل التشفير.

في حالة الصوت الاستريو ثنائي القنوات، قد يختار المُشفِّر تشفير الصوت بشكل مشترك. تُحوَّل القنوات إلى قناة جانبية، وهي الفرق بين قناتي الإدخال، وقناة وسطى، وهي مجموع قناتي الإدخال. وبدلاً من القناة الوسطى، يمكن تشفير القناة اليسرى أو اليمنى، وهو ما يكون أحيانًا أكثر كفاءة في استخدام المساحة. [ 16 ]

على الرغم من أن المشفر المرجعي يستخدم حجم كتلة واحد للتدفق بأكمله، [ 11 ] يسمح FLAC بتغيير حجم الكتلة بالعينات لكل كتلة.

ضغط

تُحدد درجة الضغط بناءً على عدة معايير، منها رتبة نموذج التنبؤ الخطي وحجم الكتلة. وبغض النظر عن درجة الضغط، يمكن دائمًا إعادة بناء البيانات الأصلية بشكل كامل.

لتسهيل استخدام البرنامج، يُحدد التطبيق المرجعي 9 مستويات ضغط، وهي عبارة عن إعدادات مسبقة للمعايير التقنية لخوارزمية التشفير. تُرقّم المستويات من 0 إلى 8، حيث تُشير الأرقام الأعلى إلى نسبة ضغط أعلى، على حساب سرعة الضغط. يختلف معنى كل مستوى ضغط باختلاف التطبيق. [ 17 ] [ 18 ]

تم تحسين تنسيق FLAC لزيادة سرعة فك التشفير على حساب سرعة التشفير. وقد أظهرت دراسة معيارية أنه على الرغم من وجود اختلاف طفيف في سرعة فك التشفير مع زيادة مستوى الضغط، إلا أنه بعد مستوى الضغط الافتراضي 5، تستغرق عملية التشفير وقتًا أطول بكثير مع توفير مساحة ضئيلة مقارنةً بالمستوى 5. [ 19 ]

تطبيق

إلى جانب تنسيق FLAC، يتضمن مشروع FLAC أيضًا تطبيقًا مرجعيًا مجانيًا ومفتوح المصدر يُسمى libFLAC. يوفر libFLAC أدوات لترميز وفك ترميز بيانات FLAC ومعالجة البيانات الوصفية لملفات FLAC. كما يُعد libFLAC++، وهو غلاف برمجي كائني التوجه لـ libFLAC مكتوب بلغة C++ ، وبرامج سطر الأوامر ، جزءًا من التطبيق المرجعي.flacmetaflac

من غير المعروف أن تنسيق FLAC، إلى جانب libFLAC، مشمول بأي براءات اختراع ، وأي شخص حر في كتابة تطبيقاته الخاصة لـ FLAC.

مقارنة بالصيغ الأخرى

صُممت صيغة FLAC خصيصًا لضغط البيانات الصوتية بكفاءة عالية، على عكس خوارزميات الضغط غير المضغوطة العامة مثل DEFLATE ، المستخدمة في ZIP و gzip . فبينما قد تُقلل ZIP حجم ملف صوتي بجودة الأقراص المدمجة بنسبة 10-20%، تستطيع FLAC تقليل حجم البيانات الصوتية بنسبة 40-50% [ 20 ] بالاستفادة من خصائص الصوت.

تكمن المزايا التقنية لصيغة FLAC مقارنةً بالصيغ الأخرى غير المضغوطة في قدرتها على البث وفك التشفير بسرعة، بغض النظر عن مستوى الضغط. [ 20 ]

بما أن FLAC صيغة غير مضغوطة، فهي مناسبة كصيغة أرشفة لأصحاب الأقراص المدمجة وغيرها من الوسائط الذين يرغبون في حفظ مجموعاتهم الصوتية. في حال فقدان الوسائط الأصلية أو تلفها أو اهترائها، تضمن نسخة FLAC من المسارات الصوتية إمكانية استعادة نسخة طبق الأصل من البيانات الأصلية في أي وقت. أما الاستعادة الدقيقة من نسخة مضغوطة (مثل MP3 ) لنفس البيانات فهي مستحيلة. ولأن FLAC غير مضغوطة، فهي مناسبة جدًا لإعادة الترميز ، مثلاً إلى MP3، دون فقدان الجودة المعتاد عند إعادة الترميز بين الصيغ المضغوطة. يمكن إنشاء ملف CUE اختياريًا عند نسخ القرص المدمج. إذا تمت قراءة القرص المدمج ونسخه بنجاح إلى ملفات FLAC، يسمح ملف CUE لاحقًا بنسخ قرص صوتي مدمج مطابق تمامًا للقرص الأصلي من حيث البيانات الصوتية، بما في ذلك ترتيب المسارات والفواصل الزمنية ، ولكن بدون بيانات إضافية مثل كلمات الأغاني ورسومات CD +G . [ 21 ] ولكن اعتمادًا على برنامج النسخ المستخدم، يمكن استعادة نص القرص المضغوط من البيانات الوصفية المخزنة في ورقة CUE ونسخها مرة أخرى إلى نسخة جديدة على وسائط CD-R فارغة.

التبني والتنفيذ

التنفيذ المرجعي

تُنفَّذ النسخة المرجعية من FLAC كمكتبة التشفير وفك التشفير الأساسية libFLAC ، حيث يُمثِّل البرنامج الرئيسي القابل للتوزيع flacالنسخة المرجعية من واجهة برمجة تطبيقات libFLAC. تتوفر واجهة برمجة التطبيقات هذه أيضًا بلغة C++ باسم libFLAC++. يُمكن تجميع النسخة المرجعية من FLAC على العديد من المنصات، بما في ذلك معظم أنظمة التشغيل Unix (مثل Solaris و BSD ) والأنظمة الشبيهة بـ Unix (بما في ذلك LinuxوWindows ، و BeOS ، و OS/2 . توجد أنظمة بناء لـ autotools و CMake [ 22 ] . لا تدعم libFLAC حاليًا المعالجات متعددة النوى ، ولكن يُمكن استخدام أدوات مثل GNU parallel وواجهات رسومية متنوعة لتشغيل عدة نسخ من المُشفِّر.

الأجهزة والبرامج

يُعدّ دعم تشغيل ملفات FLAC في أجهزة الصوت المحمولة وأنظمة الصوت المخصصة محدودًا مقارنةً بتنسيقات مثل MP3 [ 23 ] أو PCM غير المضغوط . ويُعدّ دعم FLAC مُضمّنًا افتراضيًا في أنظمة Windows 10 [ 24 ] و Android [ 25 ] و macOS و iOS [ 26 ] .

دعم ملفات FLAC من قبل أنظمة التشغيل المختلفة
مايكروسوفت ويندوزنظام التشغيل macOSأندرويدنظام التشغيل iOS
دعم الترميزنعمنعمنعمنعم
دعم الحاوياتFLAC (.flac) ماتروسكا (.mka، .mkv) Ogg (.oga) [ 27 ]FLAC (.flac) تنسيق الصوت الأساسي (.caf)FLAC (.flac)FLAC (.flac) تنسيق الصوت الأساسي (.caf)
ملحوظات

تم تقديم الدعم في نظام التشغيل ويندوز 10 .

يدعم برنامج Windows Media Player (2022) أيضًا ملفات FLAC في حاوية Ogg للبث المباشر (مثل راديو الإنترنت Icecast ). [ 28 ]

تم تقديم الدعم في نظام macOS 10.13 High Sierra .

تم تقديم الدعم في نظام Android 3.1.

يدعم نظام أندرويد ملفات FLAC العادية (.flac) بشكلٍ أصلي، ولكنه لا يدعم ملفات Ogg FLAC (.oga). [ 29 ] ومع ذلك، أُضيفت لاحقًا ميزة دعم كلٍ من ملفات FLAC العادية وOgg FLAC إلى مدير الملفات (Google) .

تم تقديم الدعم في نظام التشغيل iOS 11 (لكنه يعتمد على الجهاز).

يتم دعم العديد من الحاويات الأخرى، بشكل مستقل عن نظام التشغيل المستخدم، وذلك اعتمادًا على برنامج التشغيل المستخدم.

الاستخدام في الأرشيفات

استندت عملية توحيد تنسيق FLAC في RFC 9639 إلى الاستخدام المحدد للأرشفة والحفظ. [ 30 ] وقد أدرجت إدارة المحفوظات والسجلات الوطنية في الولايات المتحدة تنسيق FLAC كتنسيق مفضل للصوت الرقمي. [ 31 ] 

انظر أيضاً

مراجع

  1. "FLAC 1.5 يُقدّم أخيرًا ترميزًا متعدد الخيوط" . 11 فبراير 2025. تم الاطلاع عليه بتاريخ 11 فبراير 2025 .
  2. كولسون، جوش. "FLAC – format" . مؤسسة Xiph.Org . مؤرشف من الأصل في 11 مارس 2013. تم الاطلاع عليه في 4 أبريل 2013 .يشير الرمز "fLaC" إلى علامة تدفق FLAC في نظام ASCII، مما يعني أن البايت 0 من التدفق هو 0x66، متبوعًا بـ 0x4C 0x61 0x43
  3. "PlayOgg!" . مؤسسة البرمجيات الحرة . 17 مارس 2010. تم الاطلاع عليه في 1 أكتوبر 2013 .
  4. "نظرة على نسب ضغط الفلاك" . ستيفن بيجون. 7 فبراير 2012. تم الاطلاع عليه بتاريخ 10 مايو 2018 .
  5. 1 2 "الميزات" . مؤسسة Xiph.Org . تم الاطلاع عليه بتاريخ 23 نوفمبر 2023 .
  6. "انضمام FLAC إلى Xiph.org" . مؤسسة Xiph.org . 29 يناير 2003. تم الاطلاع عليه بتاريخ 31 أغسطس 2009 .
  7. بلانت، إيميت. "انضمام FLAC إلى Xiph!" . مؤسسة Xiph.org . مؤرشف من الأصل في 29 مايو 2008. تم الاطلاع عليه في 31 أغسطس 2009 .
  8. "FLAC – سجل التغييرات" . مؤسسة Xiph.org . تم الاطلاع عليه بتاريخ 15 أكتوبر 2013 .
  9. ^ فان بوردن ، مارتين. ويفر، أندرو. برنامج ترميز الصوت بدون فقدان . فريق عمل الإنترنت . معرف المسودة-ietf-قبو-flac . تم الاسترجاع في 14 مايو 2023 .
  10. كولسون، جوش. "FLAC - تم تحديد FLAC رسميًا في RFC 9639" . xiph.org . تم الاطلاع عليه بتاريخ 12 فبراير 2025 .
  11. 1 2 3 4 5 6 كولسون، جوش. "حول تنسيق FLAC" . تم الاطلاع عليه بتاريخ 13 فبراير 2022 .
  12. "stream_decoder.c" . libFLAC . تم الاطلاع عليه بتاريخ 19 فبراير 2022 .
  13. libFLAC/stream_decoder.c ، السطر 2734.
  14. "lpc.c" . libFLAC . تم الاطلاع عليه بتاريخ 19 فبراير 2022 .
  15. libFLAC/lpc.c ، الأسطر 813–820.
  16. "مواصفات تنسيق FLAC" . FLAC . تم الاطلاع عليه بتاريخ 19 فبراير 2022 .
  17. "مقارنة برامج ترميز FLAC في CUETools" . ويكي CUETools . تم الاطلاع عليه بتاريخ 27 مايو 2013 .
  18. "إعدادات الترميز" . مركز وسائط JRiver . تم الاطلاع عليه بتاريخ 27 مايو 2013 .
  19. "مقارنة برامج الترميز غير المضغوطة" . Synthetic-soul.co.uk . مؤرشف من الأصل في 2 فبراير 2009. تم الاطلاع عليه في 26 نوفمبر 2016 .
  20. 1 2 "مقارنة ترميز الصوت بدون فقدان الجودة، المراجعة 6 - جزء CDDA" . تم الاطلاع عليه بتاريخ 27 ديسمبر 2025 .
  21. "الأسئلة الشائعة" . FLAC . تم الاطلاع عليه بتاريخ 23 سبتمبر 2014 .
  22. "بناء FLAC" . تم الاطلاع عليه بتاريخ 4 أبريل 2026 .
  23. "روابط" . FLAC . تم الاطلاع عليه بتاريخ 24 مارس 2009 .
  24. "يا عشاق الصوت المميز، ابتهجوا: نظام ويندوز 10 سيدعم ملفات FLAC على مستوى النظام" . مجلة بي سي وورلد . تم الاطلاع عليه بتاريخ 10 يوليو 2015 .
  25. "تنسيقات الوسائط المدعومة في نظام أندرويد" . Android.com . 27 سبتمبر 2024. تم الاطلاع عليه بتاريخ 20 ديسمبر 2024 .
  26. "يُتيح نظام iOS 11 تشغيل ملفات FLAC الصوتية بدون فقدان الجودة على أجهزة iPhone و iPad" . idownloadblog.com . 9 يونيو 2017. تاريخ الاطلاع: 26 سبتمبر 2017 .
  27. "أنواع MIME وامتدادات الملفات - XiphWiki" .
  28. "FLAC مقابل Ogg FLAC" .
  29. "لا تدعم منصة Android بشكل كامل تنسيقات حاويات OGG (OGA) [ 36906426 ] - مرئي للعامة - متتبع المشكلات" .
  30. "ترميز الكودك للأرشفة بدون فقدان البيانات والإرسال في الوقت الحقيقي" .
  31. "الملحق أ: جداول تنسيقات الملفات | الأرشيف الوطني" .