|
||||
|
||||
במחשבה שנייה, אני חוזר בי. יש מניעה מעשית, ואכן עדיף לעבוד קודם ב24 ביט. כשכתבתי את ההודעה שלי קודם, הנחתי שיש לך את האות האנלוגי מראש, ואז אתה מחליט איך לעשות את הקוונטייזר (ה A/D שלך). אבל בעצם בסאונד זה בעייתי, כי שאתה מקליט אתה לא יודע מראש את פילוג האות שלך, ולא יכול להחליט על קוונטיזציה אופטימלית. וכל מדיה של שמירה אנלוגית תוסיף בעצמה עוד רעש. כך שבאמת עדיף קודם לשמור הכל ב24 ביט, שבהשוואה ל16 ביט זה אות כמעט רציף, ואז להחליט איך לעבד. |
|
||||
|
||||
האות לא סתם *מוקלט* - הוא גם צריך לעבור *עיבוד*. ופונקציות העיבוד עובדות טוב יותר ברזולוציה גבוהה יותר. חשוב על כך באופן זה: נניח שקיימים שני ערוצים וצריך לבצע מיקס (ראה בעניין זה הודעתי מלמעלה). נניח שבמיקס אתה מעוניין להנמיך את אחד הערוצים. מה פירוש להנמיך, במדיום הדיגיטלי? נכון - להוריד את מספר הביטים, את הרזולוציה. אופס! נניח, לחילופין, שאתה מעוניין להגביר תדר כלשהו (לבצע EQ). כדי לעשות זאת אתה חייב Headroom, אחרת תקבל Clipping. וב-24BIT יש לך הרבה יותר Headroom. |
|
||||
|
||||
כן, למרות שדווקא את כל פעולות עיבוד האות דווקא עדיף (מבחינת טיב) לעשות באנלוגי. קודם לעבד ואז לדגום. כמובן, שמחינה פרקטית עיבוד דיגיטלי הרבה יותר גמיש, ולא תלוי בפרמטרים של המעבד האנלוגי שבנית (גיל הרכיבים, אצוות הייצור וכד'), כך שבוחרים בו, אבל זה לא עניין של טיב. |
|
||||
|
||||
שאלת תם: יש איזה סיבה שעובדים בדיגיטיזציה FIXED POINT ולא FLOATING POINT ? נקודה צפה תפתור את הבעיות של התחום הדינמי, לא? |
|
||||
|
||||
וודאי שיש. הרי כשאתה בא לייצג משהו דיגיטלי, ובוא ניקח תמונת רמות אפור לשם הפשטות, הרי שראשית אתה אמור להחליט על טווח הייצוג - מה זה ''לבן'' ומה זה ''שחור''. אם הטווח שלך לא חסום, אז אין לך לבן (מקובל שלבן זה הערך העליון). |
|
||||
|
||||
אם אני מבין נכון, לבן זה כמות האור המקסימלית שהמסך יכול להנפיק. באודיו זה כמו האמפליטודה המקסימלות של הרמקולים(?) . האם הבעיה היא לזהות מהו הערך הזה ולכייל את המדידות כך ש 24^2 זה הערך הזה? אני חשבתי שהבעיה היא שאפילו אם זה ידוע, רוב האקשן זה בערכים הרבה יותר נמוכים ( כמו למשל 12^2 ) ולכן מפסידים רזולוציה? אם צריך כאן קורס שלם בחקר אותות אז אני מוותר, אבל אם יש הסבר יחסית קצר, אשמח לקבלו. |
|
||||
|
||||
אני חושב שהבעייה היא שלי. הייתי צריך לברר למה אתה מתכוון בנקודה צפה מול לא. כשאני אומר "נקודה צפה" אני מתכוון שעם מספר ביטים (בדרך כלל 32) אפשר לייצג ערך לא חסום (כמעט) ע"ח הדיוק. למה זה אמור לעזור לך יותר מהערך הרגיל של הביטים הללו? מספר הקומבינציות של אחדים ואפסים נשאר קבוע. בעייה של דגימה, בניסוח מתמטי, היא בעייה של העתקה מקטע ממשי, נאמר [0,1], למספר סופי של רמות, נאמר 256. בבעייה כזו, אתה צריך להחליט שני דברים - איפה מחליטים לעבור רמה, ומה מייצגת כל רמה כזו. לדוגמא, עבור דגימת תמונת רמות אפור לביט בודד, בצורה נאיבית, היית יכול לבחור שכל הערכים עד חצי עוברים לאפס, וכל הערכים מחצי לאחד עוברים לאחד. בנוסף היית יכול לומר שאפס פרושו רמת אפור של 0 (שחור), ו1 פרושו הצגה של 1 (לבן), נגיד. אבל אז תקבל תמונה מאד חדה, ולא נעימה לעין, אז אולי עדיף להחליט ש0 פרושו 1/4 (אפור כהה) ו1 פרושו 3/4 (אפור בהיר)? אולי יש לך מעט מאד נקודות עם רמת אפור גבוהה מ1/2, ולכן עדיף להחליט שכל מה שגבוה מ0.4 הוא דווקא 1, כדי לקבל תמונה ברורה יותר? והמשחק הזה הוא המשחק שמשחק הדוגם שלך. אם יש לך הרבה נקודות בערכים נמוכים, פשוט תקדיש להם הרבה רמות החלטה, ולא תהיה בעייה של רזולוציה. אבל, כל זה נכון רק אם אתה יודע מראש איך מפולג האות (איפה האקשן), ולכן עדיף לך לשמור אותו קודם ב24 ביט, בלי לשחק משחקים, ולקוות שאתה לא מאבד הרבה, ואז למצוא את הייצוג הטוב ביותר. |
|
||||
|
||||
אנחנו מסכימים בדבר ההגדרה של נקודה צפה- X ביטים מגדירים את המעריך והשאר, 32 - X, מתאר את המנטיסה. היופי בנקודה צפה זה שהדיוק היחסי נשאר לכל אורך הסקלה- בשיטת הנקודה הקבועה , אם עובדים ברזולוציה של 24 ביט ליד הקצה התחתון, ומודדים ערך של 5 , כל שגיאת עיגול תקפיץ את האות ב 20% ( 6 ל5 ). לעומת זאת, בנקודה צפה, הדיוק היחסי הוא כגודל המנטיסה לכל אורך הסקלה. נכון הדבר שבנקודה צפה אינך יכול להבדיל בין מיליון ומליון ואחד, אבל למי איכפת? לפחות אפשר להבחין בין אחד לשניים. אני עדיין חושד שהסיבה היא יותר פרוזאית - החומרה לעיבוד אות עובד ב אינטיגר. |
|
||||
|
||||
אז לא התנסחתי בבהירות מספקת. נעבוד שנייה ב8 ביט. החלטנו כבר שFF זה לבן, ו00 שחור.אף אחד לא אמר שההבדל שתראה בין 00 ו01 זהה להבדל בין 01 ו02 - ייתכן ש01 מייצג שחור-פחות-קצת, אבל 02 מייצג שחור-פחות-שלוש-קצת. פשוט כי אין המון "אקשן" ליד השחור, אז החלטנו לוותר על רזולוציה. ייתכן שליד הלבן כבר יש לנו קפיצות של קצת חצי, או קצת רבע, פשוט כי שם היה הרבה מידע. כך שאם יש לך 32 ביט, יש לך אפשרות לייצג 32^2 רמות, בלי קשר למשמעות שאתה מייחס להן - גם כך וגם כך אתה צריך לענות על השאלה מה כל קומבינציה אומרת. |
|
||||
|
||||
הבנתי שאתה אתה אומר שבפועל נקודה צפה(כמו שאני הגדרתי) זה מקרה פרטי של ההחלטת המיפוי. נזכרתי שבאמת יש שני תקנים, אירופאי ואמריקאי, למיפוי אמפליטודה של דיבור ל 8 ביט באופן כמעט לוגריתמי( חוק מו וחוק A ?). |
|
||||
|
||||
רגע, אם אני רוצה להכפיל חלק מהדגימות פי 2, אני צריך לקחת כל דגימה, לבדוק במפה מה זה אומר 1e3222 (נגיד שזה אומר 9), להכפיל פי 2 (קיבלנו 18) ואז לבדוק איזה ערך במיפוי שווה ל- 18 (אה, 200318). ואת זה אני עושה לכל דגימה בנפרד. לעומת זאת בנקודה צפה הכל נשאר ליניארי (מקסימום צריך להגדיל/להקטין את האקספוננט). הניחוש שלי ללמה משתמשים בנקודה קבועה הוא פשוט כי לא צריך יותר מכך. שבבי DSP של נקודה צפה יקרים יותר ואיטיים יותר מאחיהם בני הנקודה הקבועה. אם אפילו לא התעורר עדיין הצורך ב- 32 ביט, כנראה שהעסק עובד מספיק טוב גם כך. |
|
||||
|
||||
הממירים (A2D,D2A) עובדים עם שלמים. קשה לייצג פורמט נקודה צפה באמצעות חומרה, בייטים מתרגמים ישירות לאות חשמלי ואילו מידע FP יומר קודם לערך שהממיר יוכל לעבוד איתו. FP יועיל בדיוק פנימי של המעבד, בהקטנת שגיאות מצטברות וכו' |
|
||||
|
||||
החלק הראשון נכון (אבל למה שתרצה לעשות כזו פעולה מוזרה?), אבל מה פתאום שבנקודה צפה הכל ישאר לינארי? אתה עדיין צריך לתת פירוש לכל קומבינציה של ביטים, או שאתה נשאר עם מיפוי בקפיצה אחידה (שהוא לא כל כך רע, ומשתמשים בו במספר פורמטים. בעיקר אלה שתופסים מעט מקום). |
|
||||
|
||||
למה שארצה? נניח שאני רוצה להגביר חלק מהאות? נשמעת לי פעולה די נפוצה. בנקודה צפה אתה מקבל את כל היתרונות שבמיפוי לוגריתמי (ויותר!). המחיר הוא מרחב (עוד ביטים לייצוג האקספוננט בהנחה שהערך נשאר 24 ביט) וזמן (פעולות נקודה-צפה איטיות יותר). אמנם אתה לא מקבל בחינם כל מיפוי מוזר שתעלה על דעתך אך בהנחה שלרוב עובדים עם מיפוי סביר (כלומר חלק), אתה תהיה בסדר. אמנם אתה נשאר עם מיפוי בקפיצה אחידה, אבל הקפיצה היא הרבה יותר קטנה (ביחס של האקספוננט הקטן ביותר שאתה יכול לייצג). |
|
||||
|
||||
כשרוצים להגביר חלקים מהאות רוצים להגביר חלק מה*תדרים* שלו, לא חלק מהתמונה. מה שאתה הצעת זו פשוט הבהרה של חלק מהתמונה, בלי להשיג כל שיפור בקונטרסט, פעולה שלא תעזור לאף אחד. אבל שוין, זה סתם באופן צדדי. באשר לפסקה השנייה שלך, אתה פשוט משווה לא נכון. לא משווים בין הצגה של 24 ביט והצגה של 24 ביט + 8 ביט לאקספוננט, אלא בין זה לבין הצגה של 32 ביט, לעומתה אין שום שיפור. ברור שאם תוסיף עוד מקום לייצוג תוכל להשיג שיפור, על כך אין שום ויכוח. |
|
||||
|
||||
זה פשוט לא נכון. לפעמים אתה רוצה לבצע פעולות בזמן ולפעמים בתדר (אתה כל הזמן מדבר על תמונות, מה עושה מסנן הגברת קונטרסט בתוכנת הצפיה החביבה עליך?). גם פעולת תדר תעשה לעתים על ידי קונבולוציה בזמן הדורשת כפלים. בקשר לפסקה השניה שלך, מותר לי להשוות בין מה שאני רוצה. שים לב שהמסקנה שלי היא שכרגע בשיקול מעשי 24 ביט בנקודה קבועה עדיפים על 24+8 בנקודה צפה בגלל זמן העיבוד ומחיר החומרה. בנוסף, ל- 32 ביט בנקודה קבועה יש חסרונות גם ביחס ל- 24+8 (מה קורה כשדגימה אחת היא 0x10000000.0 והשניה היא 0x0.00000001?). על הפסקה האחרונה שלך באמת אין ויכוח. |
|
||||
|
||||
כשאתה מגביר קונטרסט אתה עושה שיוויון היסטוגרמה - אוסף את כל הפיקסלים לגרף, ומותח אותו על כל הציר. זה דומה לקוונטיזציה מחדש. בנוסף, להזכירך, בתמונות אתה לא עושה פעולות בזמן, רק במרחב. עכשיו, אתה באמת יכול להשוות בין מה שבא לך, השאלה היא אם אתה עונה על השאלה, ומה מקבלים מההשוואה שלך. מה שהקורא הנבוך שאל היה בקשר לטיב המתקבל, ובמובלע על שימוש בנקודה צפה וקבועה באותו מספר ביטים. מבחינת טיב, עדיף נקודה צפה של 32 ביט על קבועה של 24, למרות שאתה כמובן צודק בקשר לשיקולי המחיר והזמן. מה שלא נכון הוא שיש לך חסרונות לנקודה קבועה מול צפה במפר ביטים שווה - אתה כל הזמן מניח קוונטיזציה במרווח קבוע שלא לצורך. אם יש לך שתי נקודות כפי שהצגת, כנראה שאחת תצא שחורה, והשנייה לבנה, תלוי במפה שלך ובאלגוריתם הקווינטוט. |
|
||||
|
||||
היה לנו איש סאונד, היה לנו מעבד אותות, ועכשיו הזמן גם למחשבים. עיבודים ב-Floating Point לרוב גורמים לכאב לב לא קטן כשאתה מנסה לחבר מספרים גדולים למספרים קטנים. הם גם יגרמו לך לצער רב כשתנסה להשוות מספרים אחד לשני. לפעמים 3 פחות 3 זה לא 0, אלה 10 בחזקת מינוס 8. שזה אכן קרוב ל-0, אבל 0 זה לא. או בקיצור - אם ידוע לך טווח הדיוק, תקשור את הנקודה לעמוד ואל תיתן לה לצוף סתם ככה. נקודות צפות יש רק באגד. |
|
||||
|
||||
השאלה שהתכוונתי לשאול היתה : האם מקודדים אמפליטודות באופן לינארי או באופן לוגריתמי. אני מודה ששאלתי באופן עקום, אבל בהמשך הפתיל הנושא התבהר. מכיוון שבתשובתך אתה מציין את הנוחות של חיבור מספר גדול וקטן, הרי שכנראה אתה בדעה שעדיף להשתמש בקידוד לינארי. בזאת אתה עונה תשובה הפוכה ל תגובה 145985 שאומרת (למיטב הבנתי) שמשתמשים ב"נקודה צפה" אבל במובלע. על הדאגה שלא תוכל להבחין בין שני מספרים קרובים כבר עניתי שכל זמן שהשגיאה היחסית קטנה לא נראה לי שיש כאן ביג דיל. כמו כן, זכרוני החלש כל הזמן לוחש לי G.711 . אמנם זה רק טלפוניה ולא מוסיקה, אבל לפחות מישהו(ITU) חושב שיש טעם בקידוד לוגריתמי. |
|
||||
|
||||
תשובה מאוחרת לפתיל ארוך שהוצף מחדש ע"י האייל החדש: הקישור שבור, אולם למיטב זכרוני אחד השיקולים לטובת השימוש בקידוד לוגריתמי ב<wiki G.711> הוא עמידות טובה יותר בפני רעש לעומת הקידוד הלינארי הפשוט (16 סיביות, לעומת 8 בקידוד הלוגריתמי). מקטינים את הגודל פי 2 וגם זה משהו. אבל כשצריך לעשות איזשהו עיבוד לאות (לדוגמה: הגברה) ממירים אותו לקידוד לינארי, עושים מה שעושים, ומקודדים חזרה בקידוד לוגריתמי. שתי פעולות הקידוד הללו הן פשוטות למדי: חיפוש במערך של 256 בתים (מלוגריתמי ללינארי) או 65536 בתים (מלינארי ללוגריתמי). |
|
||||
|
||||
עיבוד מסוים מתבצע על האות לפני כניסתו למכשיר ההקלטה, ושאר העיבוד מתבצע לאחר מכן. באולפנים גדולים ויקרים, כמובן, יש עדיין אפשרות להקליט באופן אנלוגי מלא ולדגום למחשב רק לאחר המיקס. בכל אופן, קיימים סוגי עיבוד אותם לא ממש מעשי לבצע באופן אנלוגי. כל עיבוד הדורש Look-ahead או התייחסות לכל המידע על הערוץ (להבדיל מ-Realtime), למשל. |
חזרה לעמוד הראשי | המאמר המלא |
מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים | |
RSS מאמרים | כתבו למערכת | אודות האתר | טרם התעדכנת | ארכיון | חיפוש | עזרה | תנאי שימוש | © כל הזכויות שמורות |