Originariamente inviato da
UnixMan
È vero che il SABRE integra il ricevitore SPDIF, ed è vero che (anche lui) utilizza proprio un ASRC per farlo... ma è un caso alquanto atipico. Di norma la funzione di ricevitore SPDIF non è integrata nei DAC, ma è svolta da un chip apposito. Alcuni di questi chip utilizzano un PLL, altri un ASRC. Che non è certo una invenzione della ESS.
Ho l'impressione che tu consideri l'S/PDIF come se fosse una banale linea seriale digitale "locale"... ma non è esattamente così. Il segnale s/pdif è un
segnale modulato che combina un segnale digitale (lo stream di dati) con un segnale analogico (il clock). Tecnicamente un trasmettitore s/pdif è un MOdulatore, ed il ricevitore (comunque implementato) è un DEModulatore; le operazioni coinvolte -comunque realizzate- non sono del tutto banali né scevre da problemi e possibili "errori".
Gli ASRC hanno un gran numero di impieghi diversi, non servono solo per cambiare il sample-rate. Uno degli impieghi più comuni è proprio quello di "risincronizzare" uno stream (sincrono rispetto ad un "proprio" clock) con un clock diverso (asincrono rispetto a quello di partenza, per l'appunto). È il caso ad es. dei link audio USB (UAC1/UAC2) nella classica modalità isocrona, ma anche quello di molti ricevitori S/PDIF laddove si preferisca - o sia necessario - utilizzare un master clock diverso (asincrono) rispetto a quello ricostruito/ricostruibile a partire dal segnale s/pdif.
Una necessità del genere si ha ad es. proprio nelle schede audio, che devono poter sincronizzare tra loro diversi flussi di dati audio, di diversa provenienza, con un singolo "master clock" locale. Se/quando uno o più di questi flussi vengono ricevuti attraverso link sincroni (ad un proprio clock esterno), com'è il caso degli ingressi S/PDIF, deve necessariamente essere utilizzato un ASRC.
L'unica eccezione si può avere solo se/quando la scheda è in grado di sincronizzarsi con uno degli stream in ingresso, cioè di utilizzare come suo master clock locale proprio quello ricostruito a partire da (uno ed uno solo) degli stream in ingresso... ma di solito anche in questo caso l'ASRC resta (salvo che il resampling diventa "sincrono", in quanto i due clock sono per l'appunto sincroni tra loro).
Per altro, anche laddove il ricevitore S/PDIF impieghi un PLL, si ha sempre a che fare con un oscillatore locale (di solito un
VCXO), che viene "agganciato" (sincronizzato) per mezzo del loop di feedback del PLL al segnale di ingresso... (è proprio questo il meccanismo che permette di "ricostruire" il clock dello stream a partire dal segnale s/pdif).
In altre parole, in un link s/pdif i "dati" ed il "clock" non sono due cose completamente distinte ed indipendenti tra loro.