בתשובה לNY, 11/05/03 21:38
לא הבנתי את השאלה. 145892
אני לא בטוח שאתה צודק. קיצוץ לא מוצלח של חומר מ-‏24 סיביות לחומר של 16 סיביות יישמע גרוע יותר מאשר חומר שהוקלט היישר ל-‏16 סיביות.

קלייב קסלר (כתב ב-Stereophile) תהה כיצד ייתכן שקלטות שהועתקו מתקליטורים נשמעו טוב יותר בווקמן שלו מעאלו שהועתקו מתקליטי ויניל. ההסבר שלו: התקליט הכיל מידע מורכב יותר ש"העמיס" על הקלטת לעומת המידע הפשוט יותר שבא מהתקליטור.
רק כדי להבהיר: 145908
אני מוסיקאי ואיש סאונד, ואני עוסק בהקלטות באופן מקצועי. כשאני מדבר כאן על הנושא, אני מדבר מנסיון.
כעת: קיצוץ לא מוצלח אכן ישמע רע, ולכן דואגים לעשות קיצוץ *מוצלח*. תוצאותיו של הקיצוץ המוצלח נשמעות יותר טוב מחומר שעובד כולו ב-‏16BIT. זו לא דעה - זו *עובדה*.
באשר להשערתו של מר קסלר, הרי שאני מוצא אותה אידיוטית במקרה הטוב. קלטת, בדיוק כתקליט, היא אמצעי אחסון *אנלוגי*. הקלטות שהועתקו מתקליטורים ישמעו טוב יותר בגלל אחת מהסיבות הבאות:
א. תקליטים שחוקים
ב. פטיפון מאיכות נמוכה
ג. מגבר פטיפון מאיכות נמוכה
ד. אי התאמה בין הפטיפון/מגבר הפטיפון למגבר הסטראו או לטייפ
ה. עוצמה - בדרך כלל, בהעברה ל-CD, משתדלים להגביר את עוצמת הצליל ככל האפשר. אם מר קסלר השתמש באותו ווליום הקלטה לגבי תקליט ולגבי CD, הרי שההקלטות מה-CD ישמעו חזקות יותר ועל כן "טובות" יותר.

זהו. לא עומס ולא בטיח. יתכבד מר קסלר ויקנה לעצמו פטיפון משובח וגם, אם אפשר, מוח משומש במצב טוב.
רק כדי להבהיר: 145912
אני אמנם לא איש סאונד, אבל איש עיבוד אותות אני כן, ואם מה שאתה אומר זו עובדה, אז המדובר בסתם מגבלה הנובעת מהפרקטיקה ההנדסית, לא מהתאוריה שלה.

הרי גם את ה24 ביט קיבלת מאות אנלוגי, ואם במקום לעשות את הדרך אנלוגי-> 24 ביט -> 16 ביט, היית עובר ישירות מאנלוגי ל16 ביט, והיית עובד נכון, הדרך השנייה עדיפה או שווה לראשונה, בכל מובן יחיד שתבחר.

כשאני כותב בכל מובן יחיד, הכוונה היא אם הקריטריון ל"מה זה טוב" שלך קבוע (לדוגמא, MMSE - מינימום שגיאה ריבועית, הוא קריטריון מקובל בעיבוד אות. פחות מקובל בעיבוד תמונה, ולא יודע איך זה בעיבוד צליל).

אולי יש היום איזה מגבלת ציוד, אבל אין שום מניעה תאורטית או מעשית להצליח ישירות ב16 ביט כל מה שאתה מצליח ב24 ביט ומעביר ל16.
רק כדי להבהיר: 145914
במחשבה שנייה, אני חוזר בי. יש מניעה מעשית, ואכן עדיף לעבוד קודם ב24 ביט.

כשכתבתי את ההודעה שלי קודם, הנחתי שיש לך את האות האנלוגי מראש, ואז אתה מחליט איך לעשות את הקוונטייזר (ה A/D שלך). אבל בעצם בסאונד זה בעייתי, כי שאתה מקליט אתה לא יודע מראש את פילוג האות שלך, ולא יכול להחליט על קוונטיזציה אופטימלית. וכל מדיה של שמירה אנלוגית תוסיף בעצמה עוד רעש. כך שבאמת עדיף קודם לשמור הכל ב24 ביט, שבהשוואה ל16 ביט זה אות כמעט רציף, ואז להחליט איך לעבד.
נכון, ועוד דבר: 145926
האות לא סתם *מוקלט* - הוא גם צריך לעבור *עיבוד*. ופונקציות העיבוד עובדות טוב יותר ברזולוציה גבוהה יותר.
חשוב על כך באופן זה: נניח שקיימים שני ערוצים וצריך לבצע מיקס (ראה בעניין זה הודעתי מלמעלה). נניח שבמיקס אתה מעוניין להנמיך את אחד הערוצים. מה פירוש להנמיך, במדיום הדיגיטלי? נכון - להוריד את מספר הביטים, את הרזולוציה.
אופס!
נניח, לחילופין, שאתה מעוניין להגביר תדר כלשהו (לבצע EQ). כדי לעשות זאת אתה חייב Headroom, אחרת תקבל Clipping. וב-‏24BIT יש לך הרבה יותר Headroom.
נכון, ועוד דבר: 145946
כן, למרות שדווקא את כל פעולות עיבוד האות דווקא עדיף (מבחינת טיב) לעשות באנלוגי. קודם לעבד ואז לדגום. כמובן, שמחינה פרקטית עיבוד דיגיטלי הרבה יותר גמיש, ולא תלוי בפרמטרים של המעבד האנלוגי שבנית (גיל הרכיבים, אצוות הייצור וכד'), כך שבוחרים בו, אבל זה לא עניין של טיב.
נכון, ועוד דבר: 145948
שאלת תם:
יש איזה סיבה שעובדים בדיגיטיזציה FIXED POINT ולא FLOATING POINT ?

נקודה צפה תפתור את הבעיות של התחום הדינמי, לא?
נכון, ועוד דבר: 145951
וודאי שיש. הרי כשאתה בא לייצג משהו דיגיטלי, ובוא ניקח תמונת רמות אפור לשם הפשטות, הרי שראשית אתה אמור להחליט על טווח הייצוג - מה זה ''לבן'' ומה זה ''שחור''. אם הטווח שלך לא חסום, אז אין לך לבן (מקובל שלבן זה הערך העליון).
נכון, ועוד דבר: 145952
אם אני מבין נכון, לבן זה כמות האור המקסימלית שהמסך יכול להנפיק. באודיו זה כמו האמפליטודה המקסימלות של הרמקולים(?) . האם הבעיה היא לזהות מהו הערך הזה ולכייל את המדידות כך ש 24^2 זה הערך הזה? אני חשבתי שהבעיה היא שאפילו אם זה ידוע, רוב האקשן זה בערכים הרבה יותר נמוכים ( כמו למשל 12^2 ) ולכן מפסידים רזולוציה?

אם צריך כאן קורס שלם בחקר אותות אז אני מוותר, אבל אם יש הסבר יחסית קצר, אשמח לקבלו.
נכון, ועוד דבר: 145960
אני חושב שהבעייה היא שלי. הייתי צריך לברר למה אתה מתכוון בנקודה צפה מול לא. כשאני אומר "נקודה צפה" אני מתכוון שעם מספר ביטים (בדרך כלל 32) אפשר לייצג ערך לא חסום (כמעט) ע"ח הדיוק. למה זה אמור לעזור לך יותר מהערך הרגיל של הביטים הללו? מספר הקומבינציות של אחדים ואפסים נשאר קבוע.

בעייה של דגימה, בניסוח מתמטי, היא בעייה של העתקה מקטע ממשי, נאמר [0,1], למספר סופי של רמות, נאמר 256. בבעייה כזו, אתה צריך להחליט שני דברים - איפה מחליטים לעבור רמה, ומה מייצגת כל רמה כזו.

לדוגמא, עבור דגימת תמונת רמות אפור לביט בודד, בצורה נאיבית, היית יכול לבחור שכל הערכים עד חצי עוברים לאפס, וכל הערכים מחצי לאחד עוברים לאחד. בנוסף היית יכול לומר שאפס פרושו רמת אפור של 0 (שחור), ו1 פרושו הצגה של 1 (לבן), נגיד. אבל אז תקבל תמונה מאד חדה, ולא נעימה לעין, אז אולי עדיף להחליט ש0 פרושו 1/4 (אפור כהה) ו1 פרושו 3/4 (אפור בהיר)? אולי יש לך מעט מאד נקודות עם רמת אפור גבוהה מ1/2, ולכן עדיף להחליט שכל מה שגבוה מ0.4 הוא דווקא 1, כדי לקבל תמונה ברורה יותר? והמשחק הזה הוא המשחק שמשחק הדוגם שלך.

אם יש לך הרבה נקודות בערכים נמוכים, פשוט תקדיש להם הרבה רמות החלטה, ולא תהיה בעייה של רזולוציה.
אבל, כל זה נכון רק אם אתה יודע מראש איך מפולג האות (איפה האקשן), ולכן עדיף לך לשמור אותו קודם ב24 ביט, בלי לשחק משחקים, ולקוות שאתה לא מאבד הרבה, ואז למצוא את הייצוג הטוב ביותר.
נכון, ועוד דבר: 145980
אנחנו מסכימים בדבר ההגדרה של נקודה צפה- X ביטים מגדירים את המעריך והשאר, 32 - X, מתאר את המנטיסה.

היופי בנקודה צפה זה שהדיוק היחסי נשאר לכל אורך הסקלה-
בשיטת הנקודה הקבועה , אם עובדים ברזולוציה של 24 ביט ליד הקצה התחתון, ומודדים ערך של 5 , כל שגיאת עיגול תקפיץ את האות ב 20% ( 6 ל5 ).
לעומת זאת, בנקודה צפה, הדיוק היחסי הוא כגודל המנטיסה לכל אורך הסקלה.
נכון הדבר שבנקודה צפה אינך יכול להבדיל בין מיליון ומליון ואחד, אבל למי איכפת? לפחות אפשר להבחין בין אחד לשניים.

אני עדיין חושד שהסיבה היא יותר פרוזאית - החומרה לעיבוד אות עובד ב אינטיגר.
נכון, ועוד דבר: 145985
אז לא התנסחתי בבהירות מספקת.

נעבוד שנייה ב8 ביט. החלטנו כבר שFF זה לבן, ו00 שחור.אף אחד לא אמר שההבדל שתראה בין 00 ו01 זהה להבדל בין 01 ו02 - ייתכן ש01 מייצג שחור-פחות-קצת, אבל 02 מייצג שחור-פחות-שלוש-קצת. פשוט כי אין המון "אקשן" ליד השחור, אז החלטנו לוותר על רזולוציה. ייתכן שליד הלבן כבר יש לנו קפיצות של קצת חצי, או קצת רבע, פשוט כי שם היה הרבה מידע.

כך שאם יש לך 32 ביט, יש לך אפשרות לייצג 32^2 רמות, בלי קשר למשמעות שאתה מייחס להן - גם כך וגם כך אתה צריך לענות על השאלה מה כל קומבינציה אומרת.
עכשיו הבנתי. 145987
הבנתי שאתה אתה אומר שבפועל נקודה צפה(כמו שאני הגדרתי) זה מקרה פרטי של ההחלטת המיפוי.
נזכרתי שבאמת יש שני תקנים, אירופאי ואמריקאי, למיפוי אמפליטודה של דיבור ל 8 ביט באופן כמעט לוגריתמי( חוק מו וחוק A ?).
נכון, ועוד דבר: 146021
רגע, אם אני רוצה להכפיל חלק מהדגימות פי 2, אני צריך לקחת כל דגימה, לבדוק במפה מה זה אומר 1e3222 (נגיד שזה אומר 9), להכפיל פי 2 (קיבלנו 18) ואז לבדוק איזה ערך במיפוי שווה ל- 18 (אה, 200318). ואת זה אני עושה לכל דגימה בנפרד. לעומת זאת בנקודה צפה הכל נשאר ליניארי (מקסימום צריך להגדיל/להקטין את האקספוננט).

הניחוש שלי ללמה משתמשים בנקודה קבועה הוא פשוט כי לא צריך יותר מכך. שבבי DSP של נקודה צפה יקרים יותר ואיטיים יותר מאחיהם בני הנקודה הקבועה. אם אפילו לא התעורר עדיין הצורך ב- 32 ביט, כנראה שהעסק עובד מספיק טוב גם כך.
סיבה יותר בסיסית: 146056
הממירים (A2D,D2A) עובדים עם שלמים. קשה לייצג פורמט נקודה צפה באמצעות חומרה, בייטים מתרגמים ישירות לאות חשמלי ואילו מידע FP יומר קודם לערך שהממיר יוכל לעבוד איתו. FP יועיל בדיוק פנימי של המעבד, בהקטנת שגיאות מצטברות וכו'
נכון, ועוד דבר: 146082
החלק הראשון נכון (אבל למה שתרצה לעשות כזו פעולה מוזרה?), אבל מה פתאום שבנקודה צפה הכל ישאר לינארי? אתה עדיין צריך לתת פירוש לכל קומבינציה של ביטים, או שאתה נשאר עם מיפוי בקפיצה אחידה (שהוא לא כל כך רע, ומשתמשים בו במספר פורמטים. בעיקר אלה שתופסים מעט מקום).
נכון, ועוד דבר: 146223
למה שארצה? נניח שאני רוצה להגביר חלק מהאות? נשמעת לי פעולה די נפוצה.

בנקודה צפה אתה מקבל את כל היתרונות שבמיפוי לוגריתמי (ויותר!). המחיר הוא מרחב (עוד ביטים לייצוג האקספוננט בהנחה שהערך נשאר 24 ביט) וזמן (פעולות נקודה-צפה איטיות יותר). אמנם אתה לא מקבל בחינם כל מיפוי מוזר שתעלה על דעתך אך בהנחה שלרוב עובדים עם מיפוי סביר (כלומר חלק), אתה תהיה בסדר. אמנם אתה נשאר עם מיפוי בקפיצה אחידה, אבל הקפיצה היא הרבה יותר קטנה (ביחס של האקספוננט הקטן ביותר שאתה יכול לייצג).
אתה טועה בגישה 146732
כשרוצים להגביר חלקים מהאות רוצים להגביר חלק מה*תדרים* שלו, לא חלק מהתמונה. מה שאתה הצעת זו פשוט הבהרה של חלק מהתמונה, בלי להשיג כל שיפור בקונטרסט, פעולה שלא תעזור לאף אחד. אבל שוין, זה סתם באופן צדדי.

באשר לפסקה השנייה שלך, אתה פשוט משווה לא נכון. לא משווים בין הצגה של 24 ביט והצגה של 24 ביט + 8 ביט לאקספוננט, אלא בין זה לבין הצגה של 32 ביט, לעומתה אין שום שיפור.

ברור שאם תוסיף עוד מקום לייצוג תוכל להשיג שיפור, על כך אין שום ויכוח.
אתה טועה בגישה 146796
זה פשוט לא נכון. לפעמים אתה רוצה לבצע פעולות בזמן ולפעמים בתדר (אתה כל הזמן מדבר על תמונות, מה עושה מסנן הגברת קונטרסט בתוכנת הצפיה החביבה עליך?). גם פעולת תדר תעשה לעתים על ידי קונבולוציה בזמן הדורשת כפלים.

בקשר לפסקה השניה שלך, מותר לי להשוות בין מה שאני רוצה. שים לב שהמסקנה שלי היא שכרגע בשיקול מעשי 24 ביט בנקודה קבועה עדיפים על 24+8 בנקודה צפה בגלל זמן העיבוד ומחיר החומרה. בנוסף, ל- 32 ביט בנקודה קבועה יש חסרונות גם ביחס ל- 24+8 (מה קורה כשדגימה אחת היא 0x10000000.0 והשניה היא 0x0.00000001?).

על הפסקה האחרונה שלך באמת אין ויכוח.
אתה טועה בגישה 146803
כשאתה מגביר קונטרסט אתה עושה שיוויון היסטוגרמה - אוסף את כל הפיקסלים לגרף, ומותח אותו על כל הציר. זה דומה לקוונטיזציה מחדש. בנוסף, להזכירך, בתמונות אתה לא עושה פעולות בזמן, רק במרחב.

עכשיו, אתה באמת יכול להשוות בין מה שבא לך, השאלה היא אם אתה עונה על השאלה, ומה מקבלים מההשוואה שלך. מה שהקורא הנבוך שאל היה בקשר לטיב המתקבל, ובמובלע על שימוש בנקודה צפה וקבועה באותו מספר ביטים. מבחינת טיב, עדיף נקודה צפה של 32 ביט על קבועה של 24, למרות שאתה כמובן צודק בקשר לשיקולי המחיר והזמן.

מה שלא נכון הוא שיש לך חסרונות לנקודה קבועה מול צפה במפר ביטים שווה - אתה כל הזמן מניח קוונטיזציה במרווח קבוע שלא לצורך.

אם יש לך שתי נקודות כפי שהצגת, כנראה שאחת תצא שחורה, והשנייה לבנה, תלוי במפה שלך ובאלגוריתם הקווינטוט.
אז מה היה לנו? 147039
היה לנו איש סאונד, היה לנו מעבד אותות, ועכשיו הזמן גם למחשבים.

עיבודים ב-Floating Point לרוב גורמים לכאב לב לא קטן כשאתה מנסה לחבר מספרים גדולים למספרים קטנים. הם גם יגרמו לך לצער רב כשתנסה להשוות מספרים אחד לשני. לפעמים 3 פחות 3 זה לא 0, אלה 10 בחזקת מינוס 8. שזה אכן קרוב ל-‏0, אבל 0 זה לא.

או בקיצור - אם ידוע לך טווח הדיוק, תקשור את הנקודה לעמוד ואל תיתן לה לצוף סתם ככה. נקודות צפות יש רק באגד.
אז מה היה לנו? 147087
השאלה שהתכוונתי לשאול היתה : האם מקודדים אמפליטודות באופן לינארי או באופן לוגריתמי. אני מודה ששאלתי באופן עקום, אבל בהמשך הפתיל הנושא התבהר.

מכיוון שבתשובתך אתה מציין את הנוחות של חיבור מספר גדול וקטן, הרי שכנראה אתה בדעה שעדיף להשתמש בקידוד לינארי.

בזאת אתה עונה תשובה הפוכה ל תגובה 145985 שאומרת
(למיטב הבנתי) שמשתמשים ב"נקודה צפה" אבל במובלע.

על הדאגה שלא תוכל להבחין בין שני מספרים קרובים כבר עניתי שכל זמן שהשגיאה היחסית קטנה לא נראה לי שיש כאן ביג דיל.

כמו כן, זכרוני החלש כל הזמן לוחש לי G.711 . אמנם זה רק טלפוניה ולא מוסיקה, אבל לפחות מישהו(ITU) חושב שיש טעם בקידוד לוגריתמי.

אז מה היה לנו? 548604
תשובה מאוחרת לפתיל ארוך שהוצף מחדש ע"י האייל החדש:

הקישור שבור, אולם למיטב זכרוני אחד השיקולים לטובת השימוש בקידוד לוגריתמי ב<wiki G.711> הוא עמידות טובה יותר בפני רעש לעומת הקידוד הלינארי הפשוט (16 סיביות, לעומת 8 בקידוד הלוגריתמי). מקטינים את הגודל פי 2 וגם זה משהו.

אבל כשצריך לעשות איזשהו עיבוד לאות (לדוגמה: הגברה) ממירים אותו לקידוד לינארי, עושים מה שעושים, ומקודדים חזרה בקידוד לוגריתמי. שתי פעולות הקידוד הללו הן פשוטות למדי: חיפוש במערך של 256 בתים (מלוגריתמי ללינארי) או 65536 בתים (מלינארי ללוגריתמי).
מה שקורה בפועל הוא בדרך כלל פשרה. 145955
עיבוד מסוים מתבצע על האות לפני כניסתו למכשיר ההקלטה, ושאר העיבוד מתבצע לאחר מכן.
באולפנים גדולים ויקרים, כמובן, יש עדיין אפשרות להקליט באופן אנלוגי מלא ולדגום למחשב רק לאחר המיקס.
בכל אופן, קיימים סוגי עיבוד אותם לא ממש מעשי לבצע באופן אנלוגי. כל עיבוד הדורש Look-ahead או התייחסות לכל המידע על הערוץ (להבדיל מ-Realtime), למשל.

חזרה לעמוד הראשי המאמר המלא

מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים