Modérateurs: Modération Forum Home-Cinéma, Le Bureau de l’Association HCFR • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 27 invités

Tout ce qui ne rentrait pas dans les catégories ci dessus lors de la réorganisation ;)
Règles du forum
Avant de poster, merci de prendre connaissance des règles du forum : à lire avant de poster
Par ailleurs, il n'est pas possible de créer un nouveau sujet : merci de le faire dans un autre forum.

Petite étude sans prétention du resampling

Message » 04 Nov 2003 10:50

Je développe ds ce post qq résultats sur l'upsampling.

La procédure est tjrs la même : via un player je joue un signal test qui passe par le postprocessing de la 1010 puis le renderer. Ensuite le hard de la 1010 envoie ce signal sur un canal spécifique qui peut recevoir un mixage stéréo de tous les autres canaux gérés par la 1010. Comme je mute ts les canaux sauf celui qui joue le canal test, le mixer récupère donc uniquement le signal de test. Ensuite j'enregistre le résultat du mixer via cooledit.

Comme le mixer est la toute dernière étape avant les DAC, en visualisant le mixer, je visualise exactement le signal numérique envoyé au DAC. Je peux donc voir l'influence du renderer, du resampling, etc. tout en restant ds le domaine digital.

L'étude complète des renderers (directshow, waveout, kernel streaming, asio, reclock est dispo ici : http://www.homecinema-fr.com/forum/view ... t=29714658 ).

Pour l'upsampling j'ai comparé l'upsampling de la 1010 et celui de Foobar 0.7.

Sauf erreur de ma part, l'upsampling de la 1010 est un resampling hard. Il est effectué par des circuits spécialisés avant le mixer. Dans le panel "Hardware Settings", on peut sélectionner le "Codec Sample Rate" parmis 12 fréquences, dont les classiques 44.1, 48, 88.2 et 96 kHz. Ce faisant, tous les canaux sont rééchantillonnés en hard à la même fréquence (après rendering) et le mixer récupère le tout à cette même fréquence.

En pratique, ce principe permet de faire un mixage hard de différents signaux qui n'ont pas tous été échantillonnés avec la même fréquence. Pour cela, il suffit de choisir le Sample Rate voulu et de cocher "Rate Locked" pour forcer le resampling hard de tous les canaux à cette fréquence.

Si par exemple, je veux écouter un DVD avec la bande passante du téléphone, je sélectionne comme "Codec Sample Rate" 11025 Hz et je coche "Rate Locked". Tous les canaux sont alors resamplés en hard à 11025 Hz après le rendering (reclock, directsound, etc.). Le résultat est amusant : exactement comme si on écoutait un DVD au téléphone :) .

Le signal de test est une sinusoïde générée par CEP avec un échantillonnage à 44.1 kHz. La fréquence est de 1000 Hz. L'amplitude -20dB. Le fichier "1000 Hz -20 dB 44.1 kHz.png" montre la FFT de ce signal.

Le player utilisé pour jouer ce fichier est Foobar. Je n'ai pas utilisé ni KS, ni Asio car ces deux renderers refusent de s'exécuter si la fréquence "lockée" est différente de 44.1 kHz. J'ai donc utilisé "Directsound". Output data format est "24 bit padded to 32" et Dither n'est pas coché.

Pour l'enregistrement du mixer sous CEP, le format utilisé est évidemment le même que celui de la fréquence "lockée".

"1010 Codec Sample Rate 44.1 kHz.png" donne la FFT qu'en obtient après enregistrement si on ne force pas un rééchantillonnage. On obtient un résultat classique avec un bruit de fond qui remonte de qq petits dB sur tout le spectre.

"1010 Codec Sample Rate 48 kHz.png" donne la FFT si on force un rééchantillonnage à 48 kHz. Le résultat est très correct avec une remontée du bruit sur tout le spectre. On ne voit pas apparaitre d'harmoniques signe que les calculs sont menés avec une grande précision ds les circuits hardware.

"1010 Codec Sample Rate 88.2 kHz.png" donne la FFT si on force un rééchantillonnage à 88.2 kHz. On note 3 harmoniques à 3000, 5000 et 7000 Hz et qq pics bizarres au dessus de 30 kHz.

"1010 Codec Sample Rate 96 kHz.png" donne la FFT si on force un rééchantillonnage à 96 kHz. On obtient qqchose de similaire à 48 kHz mais avec une extension au dessus de 22 kHz à cause de la fréquence d'échantillonnage qui double.
Fichiers joints
1010 Codec Sample Rate 96 kHz.png
1010 Codec Sample Rate 96 kHz.png (13.84 Kio) Vu 1821 fois
1010 Codec Sample Rate 88.2 kHz.png
1010 Codec Sample Rate 88.2 kHz.png (13.58 Kio) Vu 1820 fois
1010 Codec Sample Rate 48 kHz.png
1010 Codec Sample Rate 48 kHz.png (13.6 Kio) Vu 1820 fois
1010 Codec Sample Rate 44.1 kHz.png
1010 Codec Sample Rate 44.1 kHz.png (13.13 Kio) Vu 1820 fois
1000 Hz -20 dB 44.1 kHz.png
1000 Hz -20 dB 44.1 kHz.png (12.48 Kio) Vu 1820 fois
Emmanuel Piat
Contributeur HCFR 2016
 
Messages: 10416
Inscription Forum: 10 Oct 2000 2:00
Localisation: Besançon, FRANCE
  • online

Message » 04 Nov 2003 10:55

Pour l'étude du resampling "by soft" de foobar, j'ai utilisé le kernel mixing et laissé "Rate Locked" non coché. Ce faisant, le signal fourni par foobar est récupéré tel quel par le mixer. Ds le Resampler de foobar, je n'ai pas coché "Slow mode".

"Foobar resampler 48 kHz.png" donne la FFT qu'on obtient avec un rééchantillonnage soft à 48 kHz. Honnêtement, le résultat est très très bon et je recommande chaudement ce rééchantillonnage pour tous ceux qui ont une SB avec la fréquence de sortie lockée à 48 kHz.

"Foobar resample 88.2 kHz.png" donne la FFT qu'on obtient avec un rééchantillonnage soft à 88.2 kHz. On note quelques petites harmoniques et un comportement bizarre au dessus de 22 kHz.

"Foobar resample 96 kHz.png" donne la FFT qu'on obtient avec un rééchantillonnage soft à 96 kHz. Très bon résultat. Aucune harmonique et rien de suspect au dessus de 22 kHz.

En conclusion, le resampling software de foobar semble supérieur en qualité par rapport au resampling hard de la 1010. Avec une source à 44.1 kHz, c'est le resampling à 88.2 kHz qui donne le moins bon résultat (ce qui est un peu surprenant à cause du ratio x2). Le resampling de foobar à 48 kHz est très bon, ce qui est tout bénef. pour les SB.
Fichiers joints
Foobar resample 96 kHz.png
Foobar resample 96 kHz.png (13.28 Kio) Vu 1812 fois
Foobar resample 88.2 kHz.png
Foobar resample 88.2 kHz.png (13.25 Kio) Vu 1811 fois
Foobar resampler 48 kHz.png
Foobar resampler 48 kHz.png (13.02 Kio) Vu 1812 fois
Emmanuel Piat
Contributeur HCFR 2016
 
Messages: 10416
Inscription Forum: 10 Oct 2000 2:00
Localisation: Besançon, FRANCE
  • online

Message » 04 Nov 2003 11:04

Pour finir, voici un petit exemple très naïf sur l'action d'un upsampling dans les aigus.

"16000 Hz -6dB 44.1 kHz.png" montre qu'à 16000 Hz, une période est définie par uniquement 3 points si le signal est échantillonnée à 44.1 kHz !!!

Si on fait un upsampling à 96 kHz via foobar (en soft) ou la 1010 (en hard), on obtient 6 points et donc une bien meilleure résolution :

16000 Hz - 1010 codec resampling to 96 kHz.png
16000 Hz - Foobar resampling to 96 kHz.png

Les FFT correspondantes sont :
16000 Hz - FFT - 1010 codec resampling to 96 kHz.png
16000 Hz - FFT - Foobar resampling to 96 kHz.png

Il est facile de voir sur ces FFT l'évidente supériorité de foobar en resampling.

Si on sait que le signal de départ est sinusoïdal, il suffit en théorie de 2 points par période pour reconstruire le signal, ce qui permet de monter à 22 kHz pour une fréquence d'échantillonnage de 44.1 kHz. On obtient alors la belle sinusoïde que trace CEP.

Par contre si en pratique le signal est variable et non sinusoïdal, les choses se gâtent sérieusement... Avec deux ou trois points, la reconstruction relève alors d'un parti pris. Dans ce cas, l'upsampling à 96 kHz permet d'améliorer les choses en introduisant des points supplémentaires. Néanmoins, il ne faut pas se leurer, l'upsampling relève AUSSI d'un parti pris puisqu'il AJOUTE de l'info. Simplement, le parti pris de l'upsampling peut être plus élaboré que celui de l'étage de sortie du DAC (généralement un simple filtre passe bas qui lisse les "escaliers" produit par le DAC) car l'upsampling a la possibilité d'analyser le signal en amont et en aval (si latence) et donc de proposer des interpolations plus fines.

Reste que tous les DAC font aujourd'hui de l'oversampling et que je ne saisis pas bien la différence entre "oversampling" et "resampling". Si un spécialiste pouvait m'expliquer la chose ça m'intéresserait bcp.

Qu'en est-il en pratique à l'écoute ?

Si je génére avec CEP un signal sinusoïdal de 12000 Hz échantillonné à 44.1 ou 96 kHz, mon oreille est strictement incapable de faire la différence.

Maintenant, sur de très bons enregistrements de musique classique (via mon casque Sony CD2000 et mon ampli Pro Lake People G94) je perçois une différence évidente :

Avec un upsampling à 96 kHz, les aigus deviennent plus soyeux et on a globalement une écoute légèrement plus douce, comme si elle était affinée. Les intruments en arrière plan semblent aussi plus définis (cas typique d'un clavecin derrière des percussions et des instruments à vents qui gagne bien en définition). Par contre, j'ai personnellement tendance à trouver cette accentuation de la "douceur" dans l'écoute très légèrement frustrante. C'est comme s'il manquait un petit je ne sais quoi à l'instrument et je pense que je commence tout juste à saisir ce qu'un enregistrement en SACD doit produire en plus. Je pense aussi que des cables de modulation très résolvant sont à privilégier avec un upsampling à 96 kHz (mes cables symétriques DIY à base de 2xRG179 ont un rendu un peu plus étendu aux deux extrémité du spectre que mes 2xRG360, ce qui convient très bien).

En conclusion, j'ai adopté le resampling soft de foobar (à 96 kHz) + slow mode coché. Mon taux CPU tourne autour de 50% avec mon PIII.

@+
Emmanuel
Fichiers joints
16000 Hz - FFT - Foobar resampling to 96 kHz.png
16000 Hz - FFT - Foobar resampling to 96 kHz.png (11.62 Kio) Vu 1790 fois
16000 Hz - FFT - 1010 codec resampling to 96 kHz.png
16000 Hz - FFT - 1010 codec resampling to 96 kHz.png (12.17 Kio) Vu 1790 fois
16000 Hz - Foobar resampling to 96 kHz.png
16000 Hz - Foobar resampling to 96 kHz.png (56.46 Kio) Vu 430 fois
16000 Hz - 1010 codec resampling to 96 kHz.png
16000 Hz - 1010 codec resampling to 96 kHz.png (56.69 Kio) Vu 432 fois
16000 Hz -6dB 44.1 kHz.png
16000 Hz -6dB 44.1 kHz.png (56.62 Kio) Vu 432 fois
Emmanuel Piat
Contributeur HCFR 2016
 
Messages: 10416
Inscription Forum: 10 Oct 2000 2:00
Localisation: Besançon, FRANCE
  • online

Message » 04 Nov 2003 14:19

Tres interessant, je lirai ça à tête reposée :)
DTSman
Contributeur HCFR 2022
 
Messages: 30781
Inscription Forum: 08 Juil 2000 2:00
Localisation: Territoire de Belfort
  • online

Message » 04 Nov 2003 14:48

Très intéressant Emmanuel, merci pour cette étude ;)

L'upsampling de 44.1 Khz à 96 Khz n'est pas une mince affaire car les 2 fréquences ne sont pas multiples l'une de l'autre.

Effectiment, l'interpolation est critique et détermine le résultat final. Il n'est pas trop étonnant que Foobar s'en sorte mieux que le chip hardware car la plupart des méthodes d'interpolation (polynomes de lagrange par exemple) requièrement pas mal de mémoire pour stocker les coefficients des filtres, hors la mémoire c'est pas ce qui manque sur un PC, on peut donc pousser le nombre de coeff jusqu'a obtenir un résultat quasi-parfait.

Pour la différence entre les termes "oversampling" et "resampling", à priori c'est juste que le premier implique une up-conversion alors que le deuxième est plus large et peut aller dans les 2 sens (up/down).

Un petit article sur les algos de resampling dans une optique d'implémentation hardware VLSI :

http://www.guest.iis.ee.ethz.ch/~rota/diss.pdf
ajds
 
Messages: 11364
Inscription Forum: 02 Fév 2000 2:00
Localisation: Région Parisienne
  • online

Message » 04 Nov 2003 15:01

"Sauf erreur de ma part, l'upsampling de la 1010 est un resampling hard"

je ne pense pas que ce soit en "hard", d'ailleurs quel interet ?.. ton "codec sample rate" indique que ta carte fonctionne comme la mienne pour l'upsampling, avec un algorythme software....sauf erreur de ma part ;)
Nobo
 
Messages: 10615
Inscription Forum: 25 Déc 2000 2:00
Localisation: nice
  • offline

Message » 04 Nov 2003 15:06

Oups, je confonds upsampling et dithering apparemment...j'avais en tete l'uv22 d'apogee integré dans wavelab pour convertir le 24 bit en 16 etc...;)
Nobo
 
Messages: 10615
Inscription Forum: 25 Déc 2000 2:00
Localisation: nice
  • offline

Message » 05 Nov 2003 11:24

>j'ai personnellement tendance à trouver cette accentuation de la "douceur"

J'ai fini par trouver d'où venait le pb : il faut impérativement décocher "slow mode" pour un upsampling à 96 kHz.
Le résultat est maintenant impeccable : ma femme m'a retrouvé en transe hier soir avec le casque sur la tête :wink:
Emmanuel Piat
Contributeur HCFR 2016
 
Messages: 10416
Inscription Forum: 10 Oct 2000 2:00
Localisation: Besançon, FRANCE
  • online

Message » 06 Nov 2003 14:49

juste un petit lien "sans pretention" mais qui a l'avantage d'avoir des petits tests audio qui permettent de bien "entendre" les differences entre echantillonage/filtrage et quantification, malheureusement pas d'exemple de surechantillonage :

http://www.tcom.ch/Tcom/Laboratoires/di ... lonage.htm

Tcha :)
WhyHey
 
Messages: 13943
Inscription Forum: 29 Avr 2002 12:31
Localisation: WhyCity
  • offline

Message » 07 Nov 2003 22:47

Je suis en train, pour un plug-in de sortie sous WinAmp de travailler sur le resampling. J'ai déjà mis au point plusieurs solutions, mais c'est long pour les tester toutes et trouver les meilleures d'un point de vue résultat...

Actuellement, je suis sur un FIR avec une MDCT, mais je suis en train de mettre au point une autre transformation...

Wait and See.

Pour en revenir au sujet principal, il faut savoir que la plupart des composants (resampling matériel) ont une limitation de type 4:1 / 1:4 pour Fo:Fi. Cela permet d'avoir une grande précision et peu de Jitter.
Avec les convertions au delà de x4 ou /4, ce jitter va croissant.
En plus de voir la distorsion, il faut également mesurer la durée réelle générée...

Image
Blade
 
Messages: 1092
Inscription Forum: 08 Nov 2002 22:43
Localisation: 84
  • offline

Message » 08 Nov 2003 9:11

Blade, tu devrais jeter un oeil sur la thèse dont ajds à donné le lien.

Apparement, ils ont trouvé un algo extrêmement performant.

J'ai fait un parcours très rapide (le traitement du signal n'est pas du tout mon domaine de recherche) mais d'après ce que j'ai compris, leur algo :

- est très très performant en BF et plus tu montes ds les aigus plus les perf. baissent mais c'est compensé par la perte de sensibilité de l'oreille humaine dans les aigus.

- n'est pas dégradé par le jitter.

@+
Emmanuel
Emmanuel Piat
Contributeur HCFR 2016
 
Messages: 10416
Inscription Forum: 10 Oct 2000 2:00
Localisation: Besançon, FRANCE
  • online

Message » 15 Nov 2003 3:08

Super lien et très instructif, je ne connaissais pas le nom de certaines méthode.

La thèse est très interressante. C'est un peu ce que je fait sauf qu'à la place d'un filtre d'entrée (FIR) j'utilise une MDCT. Cela a plusieurs avantages dont une faible demande en puissance de calcul. Le seul inconvénient, c'est l'imprécision que j'ai puisqu'elle est de Fech/2/NbPoints. Soit une largeur de bande de presque 47Hz à 48KHz. Le FIR offre l'avantage d'une précision accrue à ce niveau.

Actuellement, faut que je me refarcice ma démonstration sur ma MDCT car j'ai une erreur de traîtement.

Avec les travaux de Byeong Lee, je cherche un moyen par la DCT de faire la convertion dans le mode fréquentiel.

Par exemple, pour passer de 44100 à 48000Hz... C'est un peu tordu.
147 vers 160 éléments/fréquences...

Je ne sais pas si j'arriverais à avoir un résultat supérieur (d'un point de vue auditif) comparé à un convertisseur hard. C'est peut-être (probablement ?) une quète inutile...
Blade
 
Messages: 1092
Inscription Forum: 08 Nov 2002 22:43
Localisation: 84
  • offline


Retourner vers Archives

 
  • Articles en relation
    Dernier message