דף 1 מתוך 1
הסבר כללי וטכני על פרוטוקל ה SPDIF ובכלל מי נגד מי
נשלח: 13/02/2008 15:11
על ידי osherov
אני יחלק את הנושא לשלושה חלקים
א. מה זה בכלל SPDIF ?
ב. איך המחשב בכלל ואיך כרטיסי הקול בפרט מתמודדים עם SPDIF
ג. ספציפית איך כל זה מתחבר לנו להגדרות הקיימות בפילטר ה AC3Filter הכל כך המפורסם
חלק ראשון: מה זה בכלל SPDIF ?
הגדרה (חצי מילונית):
SPDIF (נכתב גם כ S/PDIF) – זהו פרוטוקול שנוצר לצורך העברת נתוני אודיו על תווך דיגיטלי. הפרוטוקול מגדיר את שכבת הקו
(Data Link Layer protocol) כלומר מגדיר ממש את מעבר הביטים בין שתי תחנות ומכך גם נגזרת הגדרה לשכבה הפיסקלית
(Physical layer) שכבר ממש מגדיר את הכבל לשימוש בפרוטוקול זה וכו
איך הכל התחיל:
בתחילת הדרך SPDIF (ראשי תיבות של Sony/Philips Digital Interconnect Format) נוצר רק כדי לתת פתרון של העברת 2 ערוצי אודיו (Stereo PCM) בצורה דיגיטלית ממכשיר אחד למכשיר אחר (לדוגמה העברת אודיו מנגן CD לרסיבר).
פרוטוקול זה מאוד פשוט ואמר בעצם שדגימות האודיו ישלחו בתדר קבוע, דגימה אחרי דגימה (ביט אחרי ביט).
כל דגימה כזאת היא בגודל של 32 ביט (4 בתים) כאשר 8 ביטים מתוך ה 32 משמשים לצורך סינכרון וכך 24 ביטים נשארים לדגימת הקול עצמה. ברוב המקרים הדגימה תהיה בגודל של 16 ביט. במקרה זה 8 הביטים הנוספים תמיד יהיו שווים ל 0 (זה תמיד יהיה ה Low Byte).
מצד אחד הגדרות אלו מאוד מגבילות (חובה על הביטרייט להיות קבוע, אין אפשרות לעשות סינכרוניזציה בין ערוצים וכו) ומהצד השני פרוטוקול זה מאוד נפוץ ויחסית מאוד זול לשימוש ומימוש.
ואז פתאום הגיע האודיו הרב ערוצי לקלנוע הביתי:
לכן ברגע שעולם הסראונד (מספר רב של ערוצי אודיו) נכנס לתחום הקולנוע הביתי ה SPDIF היה המעומד המתאים ביותר כדי להשתמש בו להעברת אודיו רב ערוצי בצורה דיגיטלית.כאן נוצרה בעייה. הממשק הנוכחי משתמש רק בדגימות 16 ביט PCM (נתונים לא דחוסים) אבל עכשיו צריך להעביר עד 6 ערוצים.
אז איך עושים את זה ?
בגלל הרצון לשמור על תמיכה לאחור הוחלט לא לשנות את הממשק אלא לשדר נתונים דחוסים של מספר ערוצי אודיו במקום שידור ה PCM הלא דחוס (שימו לב שלממשק הדיגיטלי זה לא משנה מה התוכן המשודר מכיוון שהוא סתאם משדר רצף של 0-ים ו 1-ים).
עכשיו מה שנשאר ליחידות הקצה לעשות (לדוגמה רסיברים) זה לזהות את הנתונים החדשים ולפענח אותם וכך נוצר סטנדרט חדש שתיאר איך נתונים דחוסים צריכים להיות משודרים ואיך יחידות הקצה יבדילו בין נתונים דחוסים לנתונים לא דחוסים (לדוגמה בין PCM ו AC3)
בגלל שהנתונים הדחוסים משודרים במקום נתוני ה PCM סטריאו הלא דחוסים הביטרייט חייב להישאר אותו הדבר.
שימו לב שרוב הערוצים הדחוסים צורכים פחות ביטרייט מאשר נתוני 16-ביט לא דחוסים !!
בגלל זה לנתונים הדחוסים לעיתים חייבים להוסיף 0-ים כדי שיהיו באותו קצב השידור.
הבעייה הגדולה:
במידה והנתונים הדחוסים הם בביטרייט גבוה יותר אין אפשרות לשדרם דרך שימוש ב SPDIF !!!
זאת הסיבה שכל פורמטי האודיו החדשים לא יכולים להשתמש בתווך ה SPDIF להעברת הערוץ ולכן חייבים למצוא תווך אחר (כגון HDMI)
לסיכום החלק ראשון:
ישנם שני ממשקי SPDIF:
1. העברת שני ערוצים לא דחוסים (PCM Stereo)
2. העברת מספר ערוצי אודיו דחוסים (כגון AC3 ו DTS)
יחידות הקצה שתומכות בכך יודעות לזהות האם הערוץ דחוס או לא ואז הם יודעות האם צריך לפענח את הערוץ או לא
נשלח: 13/02/2008 15:17
על ידי AviBiton
יפה מאד,כל הכבוד, מחכה להמשך...
נשלח: 13/02/2008 16:13
על ידי MetalliJoe
באמת כל הכבוד!

נשלח: 13/02/2008 19:32
על ידי InbarHovav
OK, אבל בפועל לא הבנתי אם יש הבדל בין כרטיס SPDIF 5.1 לבין SPDIF 7.1,
ומה ההבדל בין 16 ביט ל24 ביט?
האם כרטיס שכתוב עליו 5.1 16 ביט SPDIF, בעצם שווה ערך ל24 ביט 7.1 SPDIF - כי שניהם הם SPDIF והתקן יכול להעביר כל דבר?
נשלח: 13/02/2008 19:55
על ידי truejoker
כול הכבוד , אבל אם אפשר להוסיף גם , למה בעצם אתה צריך סינכרוניזציה אם ה8 ביטים מהווים את השעון של הDATA ? הרי אם אני דוגם בשבריר שניה X והמספר הוא למשל :שעה:דקה:שניה:מילישניה , אזי למעשה יש לי ביט אחד של צד ימין , אני צריך לקבל ביט אחר של צד שמאל עם אותו זמן , ואז אני שולח אותם לDAC/מפענח שיכול לסנכרן אותם לשעון הפנימי או שיכול להשתמש בשעון המובנה .
אז אם כך למה בDAC למשל צריך לסנכרן עם המחשב ?
או ששמא לא הבנתי משהו
נשלח: 13/02/2008 22:09
על ידי osherov
אתם מקדימים את המאוחר:
truejoker כתב:
למה בעצם אתה צריך סינכרוניזציה אם ה8 ביטים מהווים את השעון של הDATA ? הרי אם אני דוגם בשבריר שניה X והמספר הוא למשל :שעה:דקה:שניה:מילישניה , אזי למעשה יש לי ביט אחד של צד ימין , אני צריך לקבל ביט אחר של צד שמאל עם אותו זמן , ואז אני שולח אותם לDAC/מפענח שיכול לסנכרן אותם לשעון הפנימי או שיכול להשתמש בשעון המובנה .
...
לא רציתי לצלול כל כך עמוק לפרוטוקול אבל אין ברירה
ה 8 ביטים עליהם דיברתי (לצורך סנכרון) לא מעבירים דגימת שעון !
מה שעוד יותר מעניין זה שבשום מקום בפרוטוקול בכלל לא מוגדר מהו קצב השידור ולכן נתון זה לא משודר בכלל !! (ראה הערה בסוף)
אם נצלול קצת לעומק ה 8 ביטים האלה ממוקמים בשתי מקומות בדגימת האודיו (תזכרו שהיא בגודל 32 ביט)
-ביטים 1-4 (ה 4 ביטים הראשונים בדגימה) : אחראים על שידור של רצף מוגדר של ביטים שתלויים בדגימות הקודמות וזה נעשה לצורך זיהוי תחילת הדגימה וזיהוי יציאה מסנכרון
-ביט 29-32 (ה 4 ביטים האחרונים בדגימה) : שכל אחד מהם מעביר סטטוס לגבי הדגימה
כגון ביט parity לזיהוי תקלות וביט validity שמגדיר ליחידה המפענחת האם ניתן לקודד דגימה זאת או לא וכו
כדי לבלבל עוד יותר אז העסק קצת יותר מסובך משליחה של דגימה אחרי דגימה אלא
יש הפרדה לאלמנטים שנקראים frames (יש 192 בבלוק אחד) ובכל פריים יש הפרדה ל 2 אלמנטים שנקראים channels (הימני והשמאלי) וכל channel כזה מכיל את אותם 32 ביטים עליהם אנחנו מדברים (כמו שאמרתי פשוט להבנה זה לא)
הערה:
כמו שנאמר יחידת הקצה (כגון הרסיבר) אמורה לזהות את קצב השידור (שממנו נגזר מהו קצב הדגימות לשנייה) וזה נושא מרתק בפני עצמו (שאני אומנם פחות מתמצא בו) והוא איך מזהים מהו קצב השידור האמיתי ע"י מציאת מעברים של 0 ו 1 על הסיגנל (ב SPDIF יש שימוש בקידוד שנקרא biphase mark code שמאפשר עזרה, תיקון וזיהוי הקצב האמיתי של השידור)
אם יש פה מישהו שמכיר את זה אני אשמח לשמוע הסבר מלומד על איך זה בדיוק עובד
(אני מקווה שכל הקוראים לא נרדמו באמצע

)
נשלח: 13/02/2008 22:38
על ידי osherov
אתם מקדימים את המאוחר והורסים לי את החלק השני של המאמר שאמור לטפל ולדבר על איך כרטיסי הקול מטפלים ב SPDIF
עכשיו ברצינות:
InbarHovav כתב:OK, אבל בפועל לא הבנתי אם יש הבדל בין כרטיס SPDIF 5.1 לבין SPDIF 7.1,
ומה ההבדל בין 16 ביט ל24 ביט?
האם כרטיס שכתוב עליו 5.1 16 ביט SPDIF, בעצם שווה ערך ל24 ביט 7.1 SPDIF - כי שניהם הם SPDIF והתקן יכול להעביר כל דבר?
...
אין לי תשובה חד משמעית מכיוון שכמדומני (שמישהו יתקן אותי אם אני טועה) SPDIF לא מגדיר ולא רושם בשום מקום מהם כמות הערוצים בנתונים דחוסים (כגון AC3, DTS וכנראה גם DTS-ES) הוא רק מגדיר שהנתונים הם דחוסים ולכן הכרטיס פשוט אמור להעביר אותם הלאה לרסיבר. זה קצת יותר טריקי כי חלק מכרטיסי הקול מוגבלים בקצב הדגימות ביציאת ה SPDIF ולכן לעיתים הם לא יצליחו להעביר בכלל ערוץ מקודד (לדוגמא כרטיס קול שתומך רק בשידור 48KHz מקבל ערוץ מקודד של AC3 שמוגדר כולו בקצב של 44.1KHz ! במקרה זה הכרטיס לא יהיה מסוגל לשדר את הערוץ ליחידת הקצה)
לכן על פניו אני לא מבין מה זה משנה לכרטיס שאתה מעביר ערוץ מקודד של 5.1 או 7.1 או 100.1 ?! זה אמור לעניין רק את יחידת הקצה באם היא מסוגלת לפענח את התוכן המקודד
כנ"ל לגבי 16 ביט או 24 ביט (למרות שכאן כמובן יש חשיבות לגודל הדגימה במידה ואתה משתמש ביציאות והכניסות האנלוגיות של הכרטיס שזה אמור לשפר את איכות הקול !!)
אני חייב לציין שאני אף פעם לא שידרתי יותר מ 5.1 דרך יציאת ה SPDIF ולכן אני אשמח לקבל דגימה של DTS-ES כדי לבדוק עניין זה ולראות אולי האם יש פה משהו שאני מפספס או לא מכיר
אגב ענבר כמו שרשמת תקן ה SPDIF באמת יכול להעביר כל דבר במידה ואין חריגה מקצב השידור המקסימלי
נשלח: 13/02/2008 23:01
על ידי Catskinner
InbarHovav כתב:OK, אבל בפועל לא הבנתי אם יש הבדל בין כרטיס SPDIF 5.1 לבין SPDIF 7.1,
ומה ההבדל בין 16 ביט ל24 ביט?
האם כרטיס שכתוב עליו 5.1 16 ביט SPDIF, בעצם שווה ערך ל24 ביט 7.1 SPDIF - כי שניהם הם SPDIF והתקן יכול להעביר כל דבר?
...
ההבדל בין 16 ל 24 ביט הוא ש S/PDIF מאפשר 16bit עבור מוזיקה מ CD או DVD במקצבים של 44.1 או 48Khz ועד ל 24bit 96Khz - שזה טוב בעיקר למי שיוצר מוזיקה כי זה תומך רק בשני ערוצים.
המבוכה שלך אולי נגרמת מכך שכרטיסי קול מפרסמים את כל התכונות שלהם בסל אחד. אם תעייני במקרה בספר המשתמש של כרטיס מהדור האחרון - נקח לדוגמה את ה Auzentech Explosion 7.1 DTS Connect , תוכלי לראות שהוא אומנם מסוגל להוציא 7.1 ערוצים ב S/PDIF אבל רק אם הם באים מקודדים מראש ב DTS-ES או PLIIx שאלו הם ערוצי matrix או שהוא מבצע את הקידוד בעצמו דרך DTS Connect שזה גם שיטה של Matrix. בקיצור - ההבדל הוא בעיקר במעבד של הכרטיס שאם הוא חזק מספיק הוא גם מאפשר כתיבת דרייברים מתוחכמים יותר שיכולים לזהות ולהעביר פרוטוקולים מתקדמים דרך ה S/PDIF או לבצע קידוד Matrix בחומרה. כרטיסים זולים ופשוטים יותר בד"כ יוגבלו ל Passthrough בלבד ולפורמטים של DD ו DTS הרגילים.
ההבדל האחר בין כרטיסים שמציגים את עצמם כ 7.1 לעומת ה 5.1 בכלל לא קשור ל S/PDIF אלא ליציאות האנלוגיות שלהם. בכרטיסים 7.1 תמצאי עוד זוג יציאות לחיבור הרמקולים האחוריים.
נשלח: 13/02/2008 23:55
על ידי zovirax
יש לי שאלה.
קיימים הפילטרים כמו ה AC3FILTER ו FFDSHOW שהם דואגים להעביר ליציאת SPDIF את ה DATA בביטים (נכון?)
האם הפילטרים האלה מבצעים איזה עיבוד מסויים שמשפיע על הסאונד?
נשלח: 14/02/2008 9:42
על ידי osherov
עכשיו כבר אתה מקדים את היותר מאוחר והורס לי את החלק
השלישי של המאמר שאמור לטפל ולדבר על איך הפילטר AC3Filter מטפל ב SPDIF
zovirax כתב:יש לי שאלה.
קיימים הפילטרים כמו ה AC3FILTER ו FFDSHOW שהם דואגים להעביר ליציאת SPDIF את ה DATA בביטים (נכון?)
האם הפילטרים האלה מבצעים איזה עיבוד מסויים שמשפיע על הסאונד?
...
ככה כדי להשאיר משהו להמשך אני אומר בקצרה ש:
יש שלושה דרכים בהם הפילטר מטפל ב SPDIF (נניחAC3ׂ):
1. SPDIF passthrough mode - הנתונים המקודדים נשלחים בלי שום שינוי בתוכן המקודד ולכן אין במקרה זה שום עיבוד על הסאונד (אפילו שינוי ווליום לא אפשרי)
2. SPDIF encode mode - במקרה זה הנתונים המקודדים
מפוענחים ע"י הפילטר ואז נתונים המפוענחים עוברים עיבודי קול כאלה ואחרים (תלוי בהגדרות) ואז
מקודדים מחדש (נניח ל AC3) וכך בם נשלחים ליציאת ה SPDIF (בשימוש כרטיס הקול).
במקרה זה יש כמבן עיבוד של קול וגם יכולה להיות פגיעה במקור !
3. SPDIF encode mode PCM - במקרה זה הנתונים המקודדים
מפוענחים ע"י הפילטר ואז נתונים המפוענחים עוברים עיבודי קול כאלה ואחרים (תלוי בהגדרות) ואז מתבצע
המרה ל Stereo והנתונים נשלחים על ה SPDIF כנתוני PCM לא דחוסים
(אגב זאת התלונה העיקרית של אנשים שאומרים "אני מנגן 5.1 AC3 או DTS אבל ברסיבר אני מקבל PCM Stereo".
הסבר מעמיק יותר על איך ה AC3Filter עובד ומה משמעות ההגדרות שם אני ירחיב בחלק השלישי של המאמר
נשלח: 14/02/2008 11:05
על ידי MetalliJoe
osherov,
שוב כל הכבוד.
לגבי passthrough - רשמת שאין אפשרות לבצע כל עיבוד, כולל שינוי ווליום, אבל אצלי ה-AC3FILTER נמצא במצב הזה, ובכל זאת ניתן לשלוט בגובה הווליום דרך הנגן (לא שאני משתמש בזה, אבל בכל זאת). איך זה מסתדר?
נשלח: 14/02/2008 12:19
על ידי osherov
MetalliJoe כתב:osherov,
שוב כל הכבוד.
לגבי passthrough - רשמת שאין אפשרות לבצע כל עיבוד, כולל שינוי ווליום, אבל אצלי ה-AC3FILTER נמצא במצב הזה, ובכל זאת ניתן לשלוט בגובה הווליום דרך הנגן (לא שאני משתמש בזה, אבל בכל זאת). איך זה מסתדר?
...
תנסה לשחק עם הווליום של ה AC3Filter בזמן ניגון סרט (נניח דרך ה GraphEdit) ותראה האם יש השפעה על הווליום אצלך ברסיבר (כמובן תוודא שהרסיבר רושם שהוא מקבל DD או DTS)
במידה ואין שינוי בווליום אז משמע שמתבצע passthrough מלא מהפילטר של AC3Filter (מקרה 1 שתיארתי בהודעה הקודמת)
במידה ואתה כן מצליח לשמוע את שינוי הווליום אז בהכרח נעשה קידוד מחדש ע"י הפילטר (מצב זה פחות מומלץ)
וזה יכול לנבוע מ 4 סיבות (שאני לפחות מכיר):
1. לא מוגדר passthrough בפילטר לערוץ המקודד (AC3, DTS וכו)
2. קובץ המקור לא מקודד ב AC3 או DTS (נניח שאתה משמיע שיר WAV רגיל) ואז במידה וסימנת את השדה “Use AC3 encoder”
ולא סימנת שדה “Do not encode stereo PCM” במקרה זה יבצע קידוד של נתוני האודיו הלא דחוסים (PCM) ל AC3
3. ה AC3Filter פילטר בודק האם כרטיס הקול מסוגל לשדר את המקור המקודד (האם הוא תומך בתדר הדגימה) במידה ולא אז הוא יכול לבצע קידוד מחדש כדי להמיר את הערוץ המקודד לתדר בו הכרטיס הקול תומך. דוגמה:
הפילטר מקבל ערוץ דחוס של AC3 בתדר של 44.1kHz בבדיקה שהפילטר עושה מול כרטיס הקול הכרטיס מדווח שהוא יודע לשלוח רק תדר של 48kHz במקרה זה (ובמידה וזה מסומן בהגדרות של הפילטר) יתבצע קידוד מחדש מ 44.1kHz ל 48kHz
4. מקרה אחרון שיכול להתרחש קשור לערוץ מקודד שחורג מהביטרייט המוגדר ל SPDIF ואז שוב יתכן קידוד מחדש (שוב זה יכול לקרות ממספר סיבות שאני יפרט אותם בחלק 3)
לסיכום
מצד אחד ל AC3Filter פילטר יש המון אופציות והוא מסוגל לטפל בהמון מקרים (לטעמי הוא הרבה יותר חזק ויעיל מהטיפול של FFDSHOW בכל מה שנוגע לסאנד) מצד שני לעיתים קורא שמתבצעים דברים שאתה לא מבין אותם ואז בלי להיכנס לעובי הקורה קשה לפתור זאת
(ומכאן בדר"כ נובעים כל הבעיות)
אגב,
מקרה 3 הוא הבעייתי ביותר כי במקרה זה קיימת מגבלה של הכרטיס קול !!!
נשלח: 14/02/2008 12:59
על ידי MetalliJoe
1. מוגדר passthrough.
2. מקודד ב-DD/DTS.
3. איך בודקים את יכולת ההעברה של כרטיס הקול (on-board)?
4. קצב שידור רגיל של DD/DTS.
נשלח: 14/02/2008 13:47
על ידי mikele
למה לא לפרסם זאת כמאמר לכל דבר ?
נשלח: 14/02/2008 14:03
על ידי osherov
MetalliJoe כתב:1. מוגדר passthrough.
2. מקודד ב-DD/DTS.
3. איך בודקים את יכולת ההעברה של כרטיס הקול (on-board)?
4. קצב שידור רגיל של DD/DTS.
...
3. במידה והפילטר מוציא ערוץ מקודד והרסיבר רושם שהוא מקבל ערוץ מקודד (נניח AC3 או DTS) אז בהכרח כרטיס הקול העביר את השידור בצורה תקינה אבל צריך לוודא שמקרה 3 אותו תיארתי בהודעה הקודמת לא מתבצע בטעות:
3. ה AC3Filter פילטר בודק האם כרטיס הקול מסוגל לשדר את המקור המקודד (האם הוא תומך בתדר הדגימה) במידה ולא אז הוא יכול לבצע קידוד מחדש כדי להמיר את הערוץ המקודד לתדר בו הכרטיס הקול תומך. דוגמה:
הפילטר מקבל ערוץ דחוס של AC3 בתדר של 44.1kHz בבדיקה שהפילטר עושה מול כרטיס הקול הכרטיס מדווח שהוא יודע לשלוח רק תדר של 48kHz במקרה זה (ובמידה וזה מסומן בהגדרות של הפילטר) יתבצע קידוד מחדש מ 44.1kHz ל 48kHz
...
כדי לבדוק את זה צריך להוריד את הסימון “Check output format support” שאומר לפילטר אל תבדוק בכלל האם כרטיס הקול תומך בקצב הדגימות הרלוונטי
עכשיו באם יש עדיין יש סאונד ברסיבר אז הכל תקין אם אין אז....זה כבר נשאיר לפעם הבאה
נשלח: 14/02/2008 14:04
על ידי osherov
mikele כתב:
למה לא לפרסם זאת כמאמר לכל דבר ?
...
זה התכנון

נשלח: 14/02/2008 14:59
על ידי OferL
יופי של מאמר!
מחכה בקוצר רוח להמשך

נשלח: 14/02/2008 15:55
על ידי truejoker
osherov כתב:לא רציתי לצלול כל כך עמוק לפרוטוקול אבל אין ברירה
ה 8 ביטים עליהם דיברתי (לצורך סנכרון) לא מעבירים דגימת שעון !
מה שעוד יותר מעניין זה שבשום מקום בפרוטוקול בכלל לא מוגדר מהו קצב השידור ולכן נתון זה לא משודר בכלל !! (ראה הערה בסוף)
(אני מקווה שכל הקוראים לא נרדמו באמצע

)
...
אני כן נרדמתי

, אבל לא הבנתי משהו ,אתה יכול להסביר לי מה הרעיון הדפוק הזה גם לא לתת זמן וגם לא לתת קצב ?
osherov כתב:כדי לבלבל עוד יותר אז העסק קצת יותר מסובך משליחה של דגימה אחרי דגימה אלא
יש הפרדה לאלמנטים שנקראים frames (יש 192 בבלוק אחד) ובתוכם יש יש הפרדה ל 2 אלמנטים שנקראים channels (הימני והשמאלי) וכל channel כזה מכיל את אותם 32 ביטים עליהם אנחנו מדברים (כמו שאמרתי פשוט להבנה זה לא)
...
אז איך אתה יודע שאתה מקבל צ'אנל ימין עם צ'אנל שמאל ? כלומר אין לך דגימת שעון , אין לך מיספור של הדגימה, אז מהיכן אתה יודע שבמיליסקונד הזו הימין הזה שווה לשמאל הזה כדי לקבל סטריאו ? אולי הצד הימני מקדים את השמאלי במיליסקונד ?
אני לא מצליח להבין מה כן יש במילה הדפוקה שהם לא מצליחים לתת את המידע הכי נחוץ , הרי מה שצריך זה את הדגימה שזה 16 ביט , את הצ'אנל , ואת הזמן שזה 8 ביט אתה מגיע כך ל 16+8+2=26 עוד 2 למכווץ עוד 2 לשיטת כיווץ ו2 לבדיקת נכונות , אז למה הם לא עשו את זה ומה לכול הרוחות הם כן עשו ?
נשלח: 14/02/2008 16:34
על ידי osherov
אני כן נרדמתי , אבל לא הבנתי משהו ,אתה יכול להסביר לי מה הרעיון הדפוק הזה גם לא לתת זמן וגם לא לתת קצב ?
...
הרי אם קיים מנגנון ביחידת הקצה שידוע לזהות את הקצב אז אין שום סיבה להעביר נתון זה כחלק מהפרוטוקול (שים לב שזה חוסך מקום !!)
אז איך אתה יודע שאתה מקבל צ'אנל ימין עם צ'אנל שמאל ? כלומר אין לך דגימת שעון , אין לך מיספור של הדגימה, אז מהיכן אתה יודע שבמיליסקונד הזו הימין הזה שווה לשמאל הזה כדי לקבל סטריאו ? אולי הצד הימני מקדים את השמאלי במיליסקונד ?
...
כמו שרשמתי יש הפרדה לאלמנטים שנקראים frames (יש 192 בבלוק אחד) ובתוכם לכל פריים יש הפרדה ל 2 אלמנטים שנקראים channels (הימני והשמאלי) וכל channel כזה מכיל את אותם 32 ביטים עליהם אנחנו מדברים
עכשיו נניח שאני יחידת הקצה (רסיבר) ואני כבר גיליתי מהו הקצב ואני מתחיל לקבל פריים, אחרי פריים ובכל פריים אני יודע שיש הפרדה של של שני channels ולכן אני יודע שה 32 ביטים הראשנים שייכים לערוץ A (ערוץ שמאל) ואח"כ מגיעים 32 ביטים נוספים ששייכים לערוץ B (ערוץ ימין) וכך אני פשוט מנגן דגימה מערוץ שמאל ודגימה מערוץ ימין אחד אחרי השני
כמו שאתה רואה אין ליחידת הקצה שום בעייה לפענח את הערוצים ומכיוון שהפרוטוקול כן מגדיר את בפריים את סדר הדגימות (אם אני לא טועה זה שמאל ואח"כ ימין)
אז אין שום בעייה לזהות לאיזה ערוץ שייכת איזה דגימה !!