تنسيقات البيانات

استخدامات الروبوت مجموعة واسعة من الصوت تنسيقات البيانات داخليا، ويعرض مجموعة فرعية من هذه في واجهات برمجة التطبيقات العامة، تنسيقات الملفات ، و طبقة تجريد الأجهزة (HAL).

الخصائص

يتم تصنيف تنسيقات البيانات الصوتية حسب خصائصها:

ضغط
غير مضغوط ، ضياع مضغوط ، أو الضياع مضغوط . PCM هو تنسيق الصوت غير المضغوط الأكثر شيوعًا. FLAC هو تنسيق مضغوط لا يمكن فقدانه ، بينما MP3 و AAC عبارة عن تنسيقات مضغوطة مع فقدان البيانات.
عمق البت
عدد البتات المهمة لكل عينة صوتية.
حجم الحاويات
عدد البتات المستخدمة لتخزين أو إرسال عينة. عادةً ما يكون هذا هو نفس عمق البت ، ولكن في بعض الأحيان يتم تخصيص بتات حشو إضافية للمحاذاة. على سبيل المثال ، يمكن تضمين عينة 24 بت في كلمة 32 بت.
انتقام
إذا كان حجم الحاويات يساوي بالضبط إلى عمق بت، ويسمى معبأة في التمثيل. وإلا فإن التمثيل تفكيك. عادةً ما يتم محاذاة البتات المهمة من العينة إما مع أقصى اليسار (الأكثر أهمية) أو أقصى اليمين (الأقل أهمية) من الحاوية. ومن التقليدي إلى استخدام مصطلحي معبأة وتفكيك فقط عندما يكون عمق بت ليس قوة اثنين .
التوقيع
ما إذا كانت العينات موقعة أم غير موقعة.
التمثيل
إما النقطة الثابتة أو العائمة ؛ انظر أدناه.

تمثيل النقطة الثابتة

نقطة ثابتة هي معظم تمثيل مشترك لبيانات الصوت PCM غير مضغوط، وخصوصا في واجهات الأجهزة.

عدد نقاط ثابتة لديه ثابت (ثابت) عدد الأرقام قبل وبعد نقطة الجذر . كل التمثيل لدينا استخدام قاعدة 2 ، لذلك نحن بديلا قليلا عن أرقام، ونقطة الثنائية أو مجرد نقطة لنقطة الأصل. بت على يسار النقطة هي جزء صحيح، والبتات إلى يمين النقطة هي جزء الكسر .

نحن نتكلم من PCM صحيح، لأن القيم نقطة ثابتة وعادة ما تكون مخزنة والتلاعب بها كقيم صحيح. التفسير كنقطة ثابتة ضمني.

نحن نستخدم متمم ثنائي لجميع تمثيلات نقطة ثابتة وقعت، لذلك يحمل ما يلي حيث كل القيم هي في وحدة من واحد LSB :

|largest negative value| = |largest positive value| + 1

تدوين Q و U

وهناك العديد من الرموز لتمثيل نقطة ثابتة في عدد صحيح. نحن نستخدم Q تدوين : Q م. ن وسائل M بت عدد صحيح و n بت كسور. يتم احتساب "Q" على أنها بت واحد ، على الرغم من أن القيمة يتم التعبير عنها في تكملة اثنين. إجمالي عدد البتات م + ن + 1.

U م. n غير لأرقام غير موقعة: بت م عدد صحيح و n بت كسور، والتهم "U" صفر بت. إجمالي عدد البتات م + ن.

يمكن استخدام الجزء الصحيح في النتيجة النهائية ، أو يكون مؤقتًا. وفي الحالة الأخيرة، وتسمى البتات التي تشكل جزءا صحيحا بت الحراسة. تسمح بتات الحراسة بالحساب الوسيط لتجاوز الفائض ، طالما كانت القيمة النهائية ضمن النطاق أو يمكن تثبيتها لتكون ضمن النطاق. علما بأن بت الحرس نقطة ثابتة هي في الجهة اليسرى، بينما الفاصلة العائمة وحدة الأرقام حارس تستخدم لتقليل خطأ roundoff وهم على حق.

تمثيل النقطة العائمة

النقطة العائمة هو بديل لنقطة ثابتة، الذي موقع نقطة يمكن أن تختلف. تشمل المزايا الأساسية للفاصلة العائمة ما يلي:

  • أكبر الإرتفاع و النطاق الديناميكي . يسمح حساب الفاصلة العائمة بتجاوز النطاقات الاسمية أثناء الحساب الوسيط ، ويثبت فقط القيم في النهاية
  • دعم القيم الخاصة مثل اللانهايات و NaN
  • أسهل في الاستخدام في كثير من الحالات

تاريخيًا ، كان حساب الفاصلة العائمة أبطأ من حساب الأعداد الصحيحة أو حساب النقطة الثابتة ، ولكن من الشائع الآن أن تكون النقطة العائمة أسرع ، بشرط ألا تستند قرارات تدفق التحكم إلى قيمة الحساب.

تنسيقات Android للصوت

يتم سرد تنسيقات Android الرئيسية للصوت في الجدول أدناه:

الرموز
ملكية س 0.15 Q0.7 1 س 0.23 Q0.31 يطفو
وعاء
بت
16 8 24 أو 32 2 32 32
بتات كبيرة
بما في ذلك التوقيع
16 8 24 24 أو 32 2 25 3
الإرتفاع
في ديسيبل
0 0 0 0 126 4
النطاق الديناميكي
في ديسيبل
90 42 138 138 إلى 186 900 5

جميع تنسيقات النقطة الثابتة أعلاه لها نطاق اسمي من -1.0 إلى +1.0 ناقص واحد LSB. هناك قيمة سالبة واحدة أكثر من القيمة الموجبة بسبب التمثيل التكميلي للاثنين.

الحواشي:

  1. تعبر جميع الأشكال أعلاه عن قيم عينة موقعة. ويطلق على تنسيق 8 بت عادة "غير الموقعة"، ولكنه في الواقع قيمة الموقعة مع انحياز 0.10000000 .
  2. Q0.23 يمكن تعبئتها في 24 بت (ثلاثة بايت 8 بتات صغيرة) ، أو تفريغها في 32 بت. في حالة فك العبوات ، تكون البتات المهمة إما مبررة لليمين تجاه LSB مع حشوة تمديد الإشارة باتجاه MSB (Q8.23) ، أو مبررة لليسار تجاه MSB مع تعبئة صفرية باتجاه LSB (Q0.31). يسمح Q0.31 نظريًا بما يصل إلى 32 بتًا كبيرًا ، لكن واجهات الأجهزة التي تقبل Q0.31 نادرًا ما تستخدم كل البتات.
  3. تحتوي النقطة العائمة أحادية الدقة على 23 بتًا صريحًا بالإضافة إلى بت مخفي واحد وبت تسجيل ، مما ينتج عنه إجمالي 25 بتًا كبيرًا. أرقام Denormal لها بت كبيرة أقل.
  4. يمكن أن تعبر النقطة العائمة أحادية الدقة عن قيم تصل إلى ± 1.7e + 38 ، وهو ما يفسر مساحة الرأس الكبيرة.
  5. النطاق الديناميكي الموضح هو للقائم حتى القيمة القصوى الاسمية ± 1.0. علما بأن بعض الهندسة المعمارية محددة تطبيقات النقطة العائمة مثل NEON لا تدعم denormals.

التحويلات

يناقش هذا القسم التحويلات البيانات بين مختلف التمثيل.

تحويلات النقطة العائمة

لتحويل قيمة من Q م. ن تهيئة إلى النقطة العائمة:

  1. حول القيمة إلى النقطة العائمة كما لو كانت عددًا صحيحًا (بتجاهل النقطة).
  2. ضرب من قبل 2 - ن.

على سبيل المثال ، لتحويل قيمة داخلية Q4.27 إلى نقطة عائمة ، استخدم:

float = integer * (2 ^ -27)

تتبع التحويلات من النقطة العائمة إلى النقطة الثابتة القواعد التالية:

  • النقطة العائمة أحادية الدقة لها نطاق اسمي قدره ± 1.0 ، لكن النطاق الكامل للقيم الوسيطة هو ± 1.7e + 38. التحويل بين النقطة العائمة والنقطة الثابتة للتمثيل الخارجي (مثل الإخراج إلى الأجهزة الصوتية) سيأخذ في الاعتبار النطاق الاسمي فقط ، مع تثبيت القيم التي تتجاوز هذا النطاق. على وجه الخصوص ، عند تحويل +1.0 إلى تنسيق ذي نقطة ثابتة ، يتم تثبيته على +1.0 ناقص واحد LSB.
  • يُسمح بالظواهر الشاذة (subnormals) وكلاهما +/- 0.0 في التمثيل ، ولكن يمكن تحويلها بصمت إلى 0.0 أثناء المعالجة.
  • ستمر اللانهايات إما من خلال العمليات أو ستقتصر بصمت على +/- 1.0. بشكل عام ، يكون الأخير للتحويل إلى تنسيق النقطة الثابتة.
  • سلوك NaN غير معرف: قد ينتشر NaN باعتباره NaN متطابقًا ، أو قد يتم تحويله إلى NaN افتراضي ، وقد يقتصر بصمت على +/- 1.0 ، أو يتم تحويله بصمت إلى 0.0 ، أو ينتج عنه خطأ.

تحويلات النقطة الثابتة

التحويلات بين مختلف Q م. ن الأشكال تتبع هذه القواعد:

  • عند زيادة م، علامة تمتد الجزء صحيح في اليسار.
  • عندما انخفضت م، المشبك الجزء صحيح.
  • عندما ن يتم زيادة صفر تمديد الجزء الكسري على اليمين.
  • عندما ن وانخفض، إما ارتجف، الجولة، أو اقتطاع أجزاء كسور الزائدة على اليمين.

على سبيل المثال ، لتحويل قيمة Q4.27 إلى Q0.15 (بدون dither أو التقريب) ، قم بإزاحة قيمة Q4.27 إلى اليمين بمقدار 12 بتًا ، وقم بتثبيت أي نتائج تتجاوز نطاق 16 بت الموقّع. هذا يوازي نقطة تمثيل Q.

لتحويل Q7.24 Q7.23 ل، القيام الفجوة التي وقعتها 2، أو مكافئ إضافة بت تسجيل لكمية Q7.24 صحيح، ومن ثم تحول الحق الذي وقعه 1. لاحظ أنه بسيط وقعت تحول الحق لا يعادل قسمة موقعة على 2.

تحويلات ضياع وضياع

التحويل هو ضياع إذا كان للانعكاس : تحويل من A إلى B إلى C النتائج في A = C . وإلا فإن التحويل الضياع .

التحويلات ضياع تسمح ذهابا وإيابا تحويل الشكل .

التحويلات من تمثيل النقطة الثابتة مع 25 بت أو أقل إلى النقطة العائمة تكون بلا خسارة. التحويلات من النقطة العائمة إلى أي تمثيل مشترك للنقطة الثابتة تكون ضائعة.