Table of Contents
תכנון אפקטים אודיו בתדר נמוך הוא קריטי עבור יישומים אודיו מקצועיים, מערכות ביצועים חיים, וסביבות עיבוד סאונד בזמן אמת.כל מיקרו השני של עיכוב יכול לחדד את החוויה של המבצע או לשבור את האיכות החמקמקה של אודיו אינטראקטיבי. מעבדי אותות דיגיטליים (DSPs) הם תכליתיים לעמוד בדרישות התזמון המחמירות הללו על ידי ביצוע פעולות מתמטיות מורכבות צינורות ייעודיים.
אדריכלות: DSP Processor Architecture
מעבדי DSP שונים ממעבדים למטרות כלליות במספר דרכים חשובות. הם בדרך כלל תכונה אדריכלות הרווארד עם תוכניות נפרדות אוטובוסים זיכרון נתונים, המאפשרים הוראה בו זמנית להביא גישה לנתונים.רבים כוללים מכפילים חומרה ו accumulators (MAC) המסוגלים למחזור יחיד של פעולות כפולות-מצטברות.חלק DSPs מודרניים משלבים SIMD (Sle הוראה מרובים נתונים), יחידות כפולות-precision צפה ותכונות חיוניות עבור ביצועים קידודיים אלה.
היתרונות המרכזיים והשפעתם על הטיות
רכיבי הליבה המשפיעים ישירות על השקיפות כוללים את יחידת ההיגיון של ⁇ (ALU), מכפיל, accumulator, ואת מערכת ההפעלה זיכרון.שלבי ביצוע פירעון מאפשרים שיעורי שעון גבוהים, אבל גם מציגים עיכובים צפויים. bucular מטפל בסימולציות עיכובים יישום קו אימות. Direct Memory Access (DMA) מטיסים נתונים בין העברת זיכרון ופריפריה, צמצום המעבדים המשולבים עם צמצם של DSD2D) כגון חתומי תקשורת ישירה (D2D) צמצם (D) צמצם את הפחתת צמצם את הפחתת צמצם (DIpIpIp) כמו צמצם את הפחתת צמצם את הפחתת צמצם את הפחתת צמצם את הפחתת צמצם את הפחתת צמצם (D2D) עם צמצם את הפחתת צמצם את הפחתת צמצם את הפחתת צמצם (D2DpIpIpIpIpating) עם צמצם קבצים מחדש של קבצים (D) כמו התנגשויות קישור צמצם קבצים מחדש של צמצם קבצים (DFIRFIRFIRFIRF) עם צמצם (D) פחת (DMA) צמצם נתונים בין העברות נתונים בין העברות נתונים בין העברות
שלב קבוע מול Floating-Point Processors
DSPs קבוע להשתמש בקידוד IEEE עם דרוג אימפולסיבי, אשר יכול להיות יותר ⁇ ויעיל אנרגיה. הם מצטיינים יישומים שבהם באמצעותput הוא רב, כגון אפקטים אודיו בזמן אמת במכשירים משובצים. מעבדים נקודתיים פלורינג, לעומת זאת, מציעים טווח דינמי רחב יותר ופיתוח אלגוריתם קל יותר. עבור אודיו נמוך, קבוע זוכה לעתים קרובות בשל דרישות סבירות ו-54 עבור ביצועים נמוכים יותר.
שלב 1: Define Your Audio Effect
התחל על ידי כתיבת מפרט של ההשפעה שאתה מתכוון ליישם.חשב לא רק את ההשפעה האקוסית (למשל, reverb זנב אורך, סינון חיתוך, עיוות עקומת עיוות) אבל גם את תקציב השקיפות, קצב הדגימה, ומעט עומק.אפקט אודיו משותף עם דרישות DSP נפרדות כוללים:
- (ב) ,0) ,Reverbibph:1: נדרש מהפכת או מסננים מקיפים באמצעות קווי עיכוב גדולים.
- (ב) ⁇ : ⁇ ⁇ : ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (FLT:0)EqualizationFLT:1: שימוש במסננים IIR biscaded biquadratic או FIR מבנים יעילים אבל יכול להציג עיוות שלב; מסננים FIR מציעים שלב ליניארי אבל דורש יותר ברזים.
- (ב) ⁇ :0) ,(DistortionFLT:1: Non-Liron wave function that can be computed Fish by Sample with low latency).
הגנה על הכדאיות המקסימלית הצפויה לכל אפקט.לדוגמה, קונסולת מערבולת של צ'אט חיה עשויה לסבול רק 1-2 מ's רוחב עגול, בעוד אפקט שליטה מחוץ לקו יכול לאפשר 10 מ'.
שלב 2: לפתח אלגורית אלגורית
יעילות Algorithm היא הגורם הקריטי ביותר בהשגת שקיפות נמוכה.כל ריבוי ותוספת לוקח מספר סופי של מחזורי שעון, כך צמצום הספירה לדגימה באופן ישיר מפחית את העיכוב.
IIR vs. FIR פילטרים
עבור שוויון ו-spectral design, תגובה אימפולס אינסופית (IIR) מסננים משתמשים פחות ברז מאשר תגובה אימפולס סופי (FIR) אבל יכול להיות לא יציב בפקודות מסנן גבוהות. IIR biquad (הסדר השני) חלקים הם בלוק בניין סטנדרטי.כאשר משתמשים במתמטיקה קבועה נקודה, ליישם מסננים BQuad עם מבנה ישר transposed כדי להפחית את השגיאה ולהימנע מעל פני זרימתם.
מהפכת ה-Reerb
חדר reverb לעתים קרובות משתמש במהפכת עם תגובה אימפולסית (IR) אלפי דגימות זמן. מהפכת Direct ידרשו מיליוני MACs לדגימה, הרבה יותר מתקציבי שקיפות נמוכה (IR) חלוקת טכניקות מהפכת ה- IR לחלקים קטנים ומעבד אותם עם ספירת רצף של שימוש FFT. עבור שימוש בזמן אמתי, חלוקת התפלגות אחידה (UPv) עם קיבולת בגודל של מספר קיבולת נמוכה מאוד (FRET) עבור מספר מקוצרת קצר יותר) עבור שימוש ב-Fact-Fact).
טבלאות ונספחים
פונקציות טריגונומטריות ופונקטיביות רבות הנדרשות לעיוות, tremolo, או העברת סטטון ניתן לסווגן בטבלה. על DSPs קבוע, מבטים בטבלה מהירים יותר מאשר לקרוא ספריות מתמטיות.לגילוי המעטפה, להשתמש מסנן קל הראשון מסדר נמוך (smoothing) ולא חישוב RMS על חלון גדול.
שלב 3: אופטימיזציה של Buffer Sizes
גודל Buffer קובע את עיכוב הקבוצה של שרשרת השמע. A buffer של דגימות N בדגימה Fs מציג מהירויות מינימום של N / F שניות מ קלט לתפוקה.לדוגמה, bumple 64-sample ב 48 k מניב 1.33 מ"ס, בעוד 256-sample buffer נותן 5.33 מ"מ.
בחירת גודל החילוף הנכון הוא מעשה איזון: קטן מדי מוביל עומס CPU גבוה בשל תכופה של servicing; גדול מדי גורם עצלות בלתי מתקבלת על הדעת.הגודל האופטימלי תלוי בהשפעת, יכולות DSP של DMA, ואת מערכת ההפעלה בזמן אמת (אם בכלל).
כפול Buffering ו- Ping-Pong Buffers
השתמש בשחיקה כפולה (ping-pong) כדי לפענח קלט / קידוד מעיבוד. בעוד DSP מעבד חיץ אחד, ממשק אודיו ממלא או מרוקן את השני.זה מונע שחיתות נתונים או מתחת לזרימה. עבור עצלות תת-מילית שנייה, לשקול כיפוף משולש או ממירים מדגם מסונכרוני (ASRC) המאפשר עיבוד קטן יותר תוך שמירה על קיבולת נמוכה יותר / IOtency.
גודל Buffer מותאמים ב Multi-Effect chains
כאשר חיפוי אפקטים מרובים, הכדאיות הכוללת היא תוספת.אם כל אפקט משתמש ב-buffer שלו, הסכום יכול לעלות על המטרה. במקום זאת, השפעות שרשרת בתוך בלוק עיבוד יחיד.לדוגמה, ליישם EQ, ולאחר מכן דחוס, ולאחר מכן reverb לאותו bu לפני פיזור.זה מקטין את מספר ה-buffer flushes.
שלב 4: יישום עיבוד בזמן אמת
עיבוד בזמן אמת דורש ביצוע חקוני.DSP חייב לסיים חישובים בתוך חלון הזמן המוגדר על ידי תקופת החילוף.כישלון גורם glitches או טיפות.
נקודה קבועה Arithmetic ו- bit-Exactness
השתמש בקידוד קבוע בכל מקום אפשרי.DSPs רבים לספק הוראות MAC רוויות כי להימנע מזרימה ללא בדיקות מותניות. for reverb, ליישם לולאות משוב עם קודים קבועים באמצעות מספרי Q-format מאוזנים (למשל, Q1.15 עבור 16 סיביות שבריריות) לוודא שכל חישובים מייצרים תוצאות זהות על פני ריצות (bitact) על ידי פירוק נקודות קצה צף ו-התאמת באמצעות קווי LTDRRAFacting).
שירות אינטררופוטין (ISRs) ו-Context Switching
עיבוד אודיו בתוך שגרות שירות להפריע (ISRs) מופעל על ידי השלמת אודיו היקפי DMA. ISRs חייב להיות קצר - באופן עצמאי פחות מ 50% מתקופת החיץ - כדי להכיל משימות אחרות (למשל, ממשק משתמש, MIDI) להשתמש בכיסוי / אדריכלות ⁇ : ISR כותב דגימות ל-buffer כפול, ורקע מטפל במשימות לא קריטיות, עבור משימות דואליות שנייה לחלוטין, בעוד ISRD.
זיכרון אללוקו וניהול Cache
מראש לבטל את כל הציצים וטבלאות coefficient ב- ריצוף. להימנע הקצאת זיכרון דינמי (malloc, חדש) במהלך עיבוד בזמן אמת; זה מציג עיכובים בלתי צפויים. Place לעתים קרובות גישה לנתונים (למשל, מדינות מסנן, מעכבות נקודות קו) בתוך SRAM פנימי ולא DDR חיצוני.אם DSP יש cache, מנעו את קוד עיבוד אודיו והנתונים קריטיים לתוך caches כדי למנוע קיצוץ של חומר חיצוני (למשל DDR).
שלב 5: מבחן וסירוב
בדיקת אפקטים של אודיו בתדר נמוך דורש גם מדידה כמותית וגם הקשבה סובייקטיבית. השתמש במתודולוגיה הבאה:
המונחים: Latency Measurement
(למשל, גל מרובע) ל- ADC קלט ולתפוס את הפלט DAC. Measure the time between קלט andפלט Edge Edges באמצעות oscilloscope או מנתח לוגיקה. Subtracting צינורות ידוע מעכב את ה- DSP לעיבוד הגמישות בפועל. Alternatively, השתמש במבחן לולאה עם סימון ידוע (למשל, 1 kHz התקנים).
זמן ההוצאה להורג הגרוע ביותר (WCET)
מדדו את זמן הביצוע של ISR בתנאים הגרועים ביותר של קלט מזוודה.לדוגמה, ל-Reverb עם מקדם משוב גבוה יהיה עדכונים פנימיים יותר מאשר אחד עם משוב נמוך.פרופיל כל נתיב באמצעות סימולטור מחזור של DSP או מסמן על לוח הזמנים.לוודא כי WCET בתוספת שולי בטיחות (10-20%) לא עולה על 80% של תקופת ה- buffer כדי להפריע ל-NAM.
בדיקות הקשבה וזיהוי אמנותי
Latency הוא לא רק איכות פרמטר. Watch עבור פריטים מתכתיים בזנבים reverb בשל קוונטיזציה יעילה ירודה, zipper רעש בפרמטר בזמן אמת משתנה, ו aliasing in עיוות אפקטים. השתמש במבחן אפס: להשוות את הפלט DSP נגד התייחסות תוכנה גבוהה דיוק כפול (למשל, 64 סיביות כפול דיוק) ולבחון את כל אנרגיה מעל -96Suding פוטנציאל אלגוריתמים מוסיף דיוק נמוך יותר.
טכניקות אופטימיזציה מתקדמות
SIMD ו- Vectorization
DSPs מודרניים (למשל, SHARC+, C66x, Tensilica HiFi) כוללים יחידות SIMD אשר מעבדות דגימות אודיו מרובות בהוראה אחת.עבור אלגוריתמים של אפקט כמו FIR סינון או שינויים ברווח מבוסס בלוק, וקטוריזציה יכולה להפחית ספירת מחזור על ידי 4 × 8 × . Enable להרכיב דגלים או לכתוב intrinsic Note כי לעתים קרובות מרמזים על ידי אוטובוסים.
צ'רלי Buffers עם תמיכה קשה
אפקטים עיכובים להסתמך על buffers מעגלי.DSPs רבים יש יחידות דור כתובת ייעודי (AGUs) עם טיפול Modulo. במקום לכתוב קוד נקודת מפנה ידני, להשתמש בתכונה טיפול מודולולו.זה מבטל סניפים מותניים בתוך הלולאה אודיו, שיפור יכולת החיזוי ו- Throughput. On Texas Instruments C55x מעבדים, לדוגמה, אתה יכול להגדיר את ה-Cbuffer מעגלי להתחיל ולסיים להתחיל ולאפשר תוספות.
דוגמאות-Rate Conversion forמעורבות בעיבוד
אם אלגוריתם ההשפעה הוא יקר חישובי (למשל, convolution reverb), לשקול הדגימה את אודיו לשיעור פנימי גבוה יותר ו- down-sampling בחזרה.זה מאפשר עיבוד בלוקים גדולים יותר בקצב הגבוה יותר, אבל הדגימה עצמה מוסיפה לטיות. רק להשתמש בטכניקה זו אם המשאבים החישוביים של DSP מתוחים בגדלים נמוכים של Asynous.
דוגמה אמיתית לעולם: עיצוב של כומר נמוך-לא-לא-העוצמה
כדי להמחיש את הגישה של צעד אחר צעד, לשקול reverb stereo עבור ערבוב דיגיטלי מיקוד 2 מ's מקסימום קיבולת ב 48 kHz (96 דגימות לבלוק) אנו בוחרים revervolution מופץ באמצעות מחיצות שאינן חד-מיניפוריות: החלוקה הראשונה היא 128 מ"ר (2.67 מ"מ), אשר עולה על תקציב הגמישות אם מעובד ישירות במקום, אנו משתמשים בגישה היברידית של 64-Fde (Fde) באמצעות עיצוב ישיר יותר מתואם) ו-64-33-R הראשון הוא קודם לכן, הוא קודם לכן, הוא קודם לכן, הוא קודם לכן, הוא קודם לכן, הוא קודם לכן, כלומר, הוא 64-R.
האלגוריתם מויישמת על DSP קבוע (Analog מכשירים ADSP-21489) באמצעות דיוק 32 סיביות עבור קווי עיכוב ו 16 סיביות עבור שולחנות coefficient כדי להציל זיכרון. Double buffering עם ping-pong מצביע על כך ש- I/O. ISR לוקח 35 מיקרו-מטר לבלוק 64-sample, גם בתוך חלון 1.33 מ"מ לאחר הבדיקה, הגרועה ביותר, אינו מגיע ל-270 גרם ל- תצפיות, והוא אינו מגובה של סגסוגת.
מסקנה
תכנון אפקטים אודיו נמוכים עם מעבדי DSP דורש גישה שיטתית כי מאזן יעילות אלגוריתמית, ניהול חיץ, ושיקולי יישום בזמן אמת. על ידי הבנת הארכיטקטורה של המטרה DSP, בחירת מבנים מסנן מתאימים אסטרטגיות convolution, אופטימיזציה דפוסי גישה זיכרון, ובדיקה קפדנית הן latency והן איכות אודיו, מפתחים יכולים להשיג עיבוד תת-ימי מתאים עבור יישומים מקצועיים תובעניים ביותר לספק כאן טכניקות אודיו מורכבות.