FR 2524225 A1 19830930 FR 8304787 A 19830323 La présente invention concerne, d'une façon générale, les techniques de compression de données et elle a trait, plus particulièrement, à un procédé et à un système pour décoder un signal numérique échantillonné à une fréquence variable en fonction inverse de la fréquence instantanée du signal analogique. De nombreuses tentatives ont été faites jusqu'à présent pour réduire la quantité d'informations devant être emmaga- sinées dans un support d'enregistrement ou être transmises par l'intermédiaire de lignes téléphoniques à une extrémité éloignée La technique connue de compression de données comprend un procédé dans lequel l'amplitude des signaux ana- logiques est comprimée de façon logarithmique, et un procédé connu sous la désignation de "modulation deltas dans lequel la composante différentielle du signal analogique est détectée en vue d'une transmission et le signal est intégré en vue d'une restitution à l'extrémité réceptrice Dans l'un et l'autre de ces procédés connus, le signal analogique est échantillonné à une fréquence constante qui est au moins deux fois supérieure à la fréquence la plus élevée du signal ana- logique pour éviter une distorsion de mutation (dite "foldover" dans la technique anglo-saxonne) Toutefois, en raison de la fréquence d'échantillonnage constante, il se produit, dans le système connu de compression de données, un bruit quantique sur la largeur de la bande du signal restitué* Selon un système de compression de données, tel que celui représenté et décrit dans la publication de brevet japonais 56- 155998, l'intervalle d'échantillonnage est déterminé par la valeur de l'écart du signal original par rapport à la valeur analogique échantillonnée antérieurement de sorte que cet écart est plus petit qu'une valeur prédéterminée du rapport de la valeur d'origine à la valeur échantillonnée Bien que ce système de compression de données soit satisfaisant dans certaines conditions, il a pour inconvénient que des détails de la forme d'onde originale ne sont pas restitués de façon satisfaisante. La présente invention divulgue un système de compression de données qui élimine le problème du bruit que pose la compression de données Selon ce système, un signal analogique est échantillonné à des intervalles qui varient en fonction inverse de la fréquence instantanée du signal analogique original et une donnée d'échantillonnage représentant l'inter- valle d'échantillonnage est appariée à l'échantillon numérique associé en vue d'un enregistrement ou d'une transmission. La présente invention concerne un procédé et un système pour transformer en un signal analogique original un signal numérique comprenant une série d'ensembles de données compre- nant chacun une donnée d'échantillonnage indiquant un inter- valle d'échantillonnage qui varie en fonction inverse de la fréquence instantanée du signal analogique et une série d'échantillons numériques indiquant l'amplitude du signal analogique. Selon l'invention, en mode décodage ou lecture, les composantes de spectre de fréquence des échantillons numériques dont les fréquences sont supérieures à une valeur pouvant être établie préalablement sont éliminées de manière que l'on obtienne le signal analogique original La valeur de la fré- quence pouvant être établie préalablement est modifiée en fonction de la donnée d'échantillonnage de manière que la plage de fréquence du signal analogique obtenu soit inférieure à la moitié de la fréquence d'échantillonnage. De façon plus spécifique, un micro-calculateur est utilisé pour emmagasiner le signal numérique et pour trans- férer chaque série d'échantillons numériques et la donnée d'échantillonnage associée dans des premier et second conver- tisseurs numérique-analogique (N-A) respectivement Les sorties des premier et second convertisseurs N-A sont appliquées à un filtre passe-bas pour fréquence variable La fré- quence de coupure de ce filtre varie en réponse à la sortie du second convertisseur N-A et laisse passer jusqu'à un haut-parleur les composantes de la sortie du premier convertisseur N-A qui ont une fréquence inférieure a la moitié de la fréquence d'échantillonnage, grâce à quoi la plage de frequence du filtre varie en fonction de la fréquence d'échantillonnage. On va maintenant décrire la présente invention de façon plus détaillée en se référant aux dessins annexés, sur lesquels s la figure 1 est un schéma synoptique d'un système de compression de données selon la présente invention; les figures 2 a et Zb représentent un organigramme décrivant des phases d'instruction devant être exécutées par le micro-ordinateur fonctionnant en mode enregistrement; la figure 3 est un diagramme de forme d'onde utilisé pour décrire la présente invention; la figure 4 est un organigramme décrivant des instructions devant être exécutées par le micro-ordinateur dans un fonction- nement en mode lecture; la figure 5 est un schéma de principe du détail du convertisseur numérique-analogique de la figure 1 et d'un filtre passebas pour fréquence variable selon l'invention; et les figures 6 a et 6 b représentent un organigramme modifié destiné au micro-ordinateur. En se référant maintenant à la figure 1, on voit que l'on y a représenté un système de réduction de données réalisé selon la présente invention Le système de réduction de don- nées comprend, d'une façon générale, un micro-ordinateur 10 et un appareil d'enregistrement-lecture 20 L'appareil 20 peut comprendre une section d'enregistrement-lecture de bande et un tableau de commande 20 a comportant des commandes manuelles au moyen desquelles des signaux deo cormande sont envoyés au micro-ordinateur 10. Un signal vocal provenant d'un microphone 1 ou de toute autre source est appliqué à un filtre passe-bas 2 o les fréquences supérieures à 4000 Hz sent-éliminées La sortie du filtre passe-bas 2 est envoyée à un convertisseur analogique- numérique (ADC) ou codeur PCM 3 qui est synchronisé avec un signal d'horloge fourni par une base de temps 4 qui fait partie du micro-ordinateur 10 Le convertisseur À-N 3 échan- tillonne le signal à des intervalles ts qui correspondent à une fréquence de 8000 Hz et transforment la valeur échantil- lonnée en un échantillon numérique d'un code à 8 bits Comme on va l'expliquer de façon détaillée ci-après, le micro- ordinateur 10 est programmé de manière à recevoir le signal numérisé à des intervalles d'horloge et à le charger dans une mémoire tampon Ml ayant une capacité de mémorisation de 512 octets qui fait partie du micro-ordinateur et qui échantil- lonne, à des intervalles plus longs que ta déterminés par les instructions programmées, le signal numérisé emmagasiné en vue de son transfert a une mémoire vive M 2 de manière à réduire la quantité des bits de données devant être fournis - à l'appareil d'enregistrement-lecture ou mémoire extérieure La mémoire vive M 2, dont la capacité est de 64 K octets, emmagasine les signaux numériques échantillonnés avant de les transférer à l'appareil 20. En mode lecture, le signal numérique provenant de l'appareil 20 est envoyé à la mémoire vive M 2 à des inter- valles d'horloge puis, de là à des convertisseurs numérique- analogique DIC 1 et D C 2 La sortie du convertisseur N-A D C 1 est une représentation analogique des échantillons numériques et est appliquée à un filtre passe-bas 5 à fréquence variable. Le filtre 5 laisse passer des composantes du signal d'entrée jusqu'à un haut-parleur 6 qui se trouve en dessous d'une fréquence de coupure préréglable Cette fréquence de coupure peut varier en réponse à la donnée d'échantillonnage qui est convertie en signal analogique et qui provient de la sortie du convertisseur N-A DAC 2 de sorte que la fréquence de coupure du filtre est inférieure à la moitié de la fréquence d'échan- tillonnage (= 1/ts). Le tableau de commande comprend des interrupteurs B P et E On actionne l'interrupteur B pour déclencher l'opération d'enregistrement, l'interrupteur P pour déclencher l'opération de lecture et l'interrupteur E pour mettre fin soit à l'opéra- tion d'enregistrement soit à l'opération de lecture Lorsque l'on actionne l'interrupteur R, un signal d'horloge est fourni au convertisseur A-N 3 et le micro-ordinateur 10 déclenche l'exécution des instructions programmées. Les figures 2 a et 2 b sont des illustrations d'un organi- gramme décrivant les instructions du micro-ordinateur 10 programmé suivant l'invention en vue d'éliminer les incon- vénients du premier mode de réalisation. Lorsque l'on actionne l'interrupteur manuel R le programme commence avec une case 101 par une remise à zéro d'un compteur Y de cadres Dans la case 102, le micro- ordinateur remet à zéro les autres compteurs comprenant un compteur Z de croisement zéro, un compteur d'échantillonnage Si d'une capacité de 256 octets servant à compter le nombre d'échantillons numériques formant un cadre que l'on décrira par la suite, et un second compteur 52 d'échantillonnage servant à compter le nombre d'échantillons numériques devant être transférés de la mémoire tampon Ml à la mémoire vive M 2. Le compteur Z de croisement zéro est utilisé pour enregistrer le nombre de points de croisement zéro qui apparaissent dans l'intervalle de cadres Le compteur F de cadres sert à compter le nombre de cadres qui ont été formés Dans la case 103, un octet ou multiplet d'échantillon numérique est trans- féré du convertisseur A-N 3 dans la mémoire tampon Ml, cette case étant suivie par une case 104 dans laquelle le compteur d'échantillonnage 51 est incrémenté de " 1 " Un point de croisement zéro est détecté lorsque, dans un bit de signe du code à 6 bits transféré, apparaît un changement qui signifie l'apparition d'un point de croisement zéro du signal analogique d'entrée Cette détection de point de croisement zéro est effectuée dans la case 105 S'il n'y a aucun changement dans le bit de signe, le programme revient à la case 102 pour lire l'échantillon numérique suivant en incrémentant de " 1 N le compteur Q 1 Ce processus est répété jusqu'à ce qu'un point de croisement zéro soit détecté dans la case 105 Quand ceci se produit, le compteur Z de croise- ment zéro est incrémenté de " 11 " dans la case 106 dé manière que le programme avance jusqu'à une case 107 pour vérifier si 256 échantillons numériques ont été extraits de la mémoire Ml et, s'il en est ainsi, le programme revient de nouveau à la case 102 pour répéter le processus cidessus jusqu'à ce qu'un compte complet (= 256) soit atteint dans le compteur d'échantillonnage Si Le compteur F de cadres est incrémenté de " 1 " dans la case 108. Le fait que le compteur d'échantillonnage Sl contienne un compte complet est un signe indicateur qui définit un "cadre" Tf tel que représenté sur la figure 8 La valeur de compte du compteur Z de croisement zéro jusqu'à ce moment est une indication du nombre de points de croisement zéro du signal d'entrée qui apparaissent dans cet intervalle de cadre Selon l'invention, un intervalle d'échantillonnage Ts est déterminé pour chaque intervalle de cadre dans le but de transférer N échantillons numériques de la mémoire tampon Ml à la mémoire M 2 Ce résultat est obtenu en divisant le nombre de points d'échantillonnage (= 256) par le nombre de points de croisement zéro détectés Z qui est multiplié par un facteur K (K étant un nombre entier), comme indiqué dans la case 109 Une donnée N représentant le nombre d'échantil- lons numériques devant être chargés dans la mémoire M 2 est déterminé dans la case 110 de 256 par Ts. En utilisant une adresse déterminée par Ts, le micro- ordinateur procède à la lecture d'un échantillon numérique Ar (r= 1, 2, N) provenant de la mémoire Ml et le second compteur d'échantillonnage 52 est incrémenté de " 1 " Ces opérations sont exécutées dans les cases 111 et 112 Dans la case 113, le contenu du compteur 52 est vérifié pour voir s'il correspond à N et, dans le cas contraire, le programme revient à la case 111 pour extraire l'échantillon numérique suivant Ar+t, en incrémentant encore le compteur 52 dans la case 112 jusqu'à ce que 52 = N soit détecté dans la case 113, grâce à quoi les échantillons numériques Al à AN sont extraits de la mémoire Ml Les échantillons numériques AI à AN et les données F Ts et N sont combinés dans la case 114 de manière à former un ensemble de données (A 1 AN, F Ts, N) et sont emmagasinés dans la mémoire vive M 2 Lorsqu'un compte complet est atteint dans le compteur F de cadres (voir la case 115), les données emmagasinées dans la mémoire M 2 sont transférées à des inter- valles périodiques dans la mémoire extérieure ou système d'enregistrement 20 (case 116) Si un compte complet n'est pas atteint dans le compteur P, le programme revient à la case 102 de manière à répéter le processus cidessus en ce qui concerne les échantillons numériques qui forment le cadre suivant et il atteint le bloc 117 pour vérifier si ltinter- rupteur d'arrêt E a été actionné pour mettre fin au mode enregistrement. Si on suppose que K= 2, Z= 32 et que l'intervalle de cadres est de 32 millisecondes, Te est 256/( 32 X 2) = 4 intervalles d'horloge qui sont égaux à 0,5 millisecondes (= 4/8000) et, par conséquent, le nombre d'échantillons de données de chaque cadre se trouve réduit de 256 à 64 Si on utilise un filtre passe-bas ayant une fréquence de coupure de 750 Hz, aucun bruit n'est présent dans le signal reproduit Si, aux données F, N et Tu, on attribue respectivement 2, 1 et 64 octets ou multiplets et si le nombre moyen des échantillons de données contenusdans l'intervalle de cadres est égal à 32, il faut 68 octets ou multiplets d'informations pour chaque cadre et la mémoire vive M 2 d'une capacité de 64 K-octets ou multiplets est capable d'emmagasiner une durée d'inormaion vocale de secondes. On voit donc qu'il existe une réduction netable dans la quantité de données On peut supprimer le système de mémoire exterieure 20 si la capacité de mémoire intérieure 2 est suffisante pour emmagasiner les informations. En se référant à la figure 4, on voit que le mode lecture est déclenché en réponse à l'actionnement de l'inter- rupteur P, ce qui amène le micro-ordinateur 10 à exécuter les instructions des cases 200 et 201 par remise k zéro du compteur F de cadreset du compteur d'échantillonnage 52 Les données d'entrée sont transférées de l'appareil 20 dans la mémoire M 2 à des intervalles d'horloge par une routine ou sous-programme d'interruption 202 La donnée N de nombres d'échantillons d'un ensemble donné de données est extraite de la mémoire M 2 dans la case 203 et la donnée Ts d'intervalle d'échantillonnage de l'ensemble de données est transféré de la mémoire M 2 au convertisseur N-A DAC 2 (case 204) Un échantillon numérique Ar de l'ensemble de données est transféré de la mémoire M 2 au convertisseur N-A DAC 1 (case 205) Le compteur d'échantil- lonnage 52 est incrémenté de Ii" dans la case 206 apres le transfert de chaque échantillon numérique au convertisseur N-A DAC 1 Dans la case 207, un temps de retard est introduit de manière que le temps mis en jeu dans le traitement des cases 205 k 208 corresponde à l'intervalle d'échantillonnage Ts. Dans la case 208, la valeur de compte du compteur d'échantil- lonnage 52 est vérifiée pour voir si elle correspond à N et, dans le cas contraire, le programme revient à la case 205 pour transférer l'échantillon numérique suivant Ar+l de l'ensemble donné de données au convertisseur DAC 1 Par conséquent, les échantillons numériques A 1 à AN de l'ensemble donné de données sont transférés au convertisseur DAC 1 pendant chaque intervalle de cadre Le compteur F de cadres est incrémenté de " 1 "t dans ia case Z 09 Le programme passe par les cases A 10 et 211 et revient à la case 201 pour remettre à zéro le compteur d'échantillonnage de manière à répéter le processus ci-dessus jusqu'à ce que le compteur Y de cadres contienne un compte complet ou jusqu'à ce que l'interrupteur E soit actionné. La figure 5 est une illustration du détail du convertis- seur N-A DAC 2 et d'un filtre passe-bas 4 pour fréquence variable Le convertisseur N-A DAC 2 comprend un interrupteur analogique 30, un amplificateur opérationnel 31 et une pluralité de résistances,de rétro-action Rl, R 2, R 3 et R 4. L'interrupteur analogique 30 réagit aux données Ts d'inter- valle d'échantillonnage de manière à coupler sélectivement une ou plusieurs résistances entre les bornes de sortie et d'entrée d'inversion de l'amplificateur 31, de telle sorte que ce dernier ait un gain qui varie en fonction des données d'intervalle d'échantillonnage Le filtre passe-bas 5 pour fréquence variable comprend une paire de photocoupleurs F Cl et PC 2 dont les résistances variables VR 1, VR 2 sont montées en série entre la sortie du convertisseur N-A D Cl et l'entrée de non- inversion d'un amplificateur opérationnel 41 par l'intermédiaire de résistances R 5 et R 8 de détermination de haute fréquence, l'entrée d'inversion de cet amplificateur étant couplée par un condensateur Cl à la joncti Uo entre le résistances R 6 et R 7 de détermination de basse fréquence Un condensateur C 2 est couplé entre l'entrée de non-inversion de l'amplifi- cateur 41 et la masse Les condensateurs Cl et C 2 sont également utilisés pour déterminer les fréquences de coupure du filtre passe-bas 5 La sortie de l'amplificateur 41 est amplifiée en 42 et est appliquée au hautparleur 6 Les photodiodes PDI et PD 2 des photocoupleurs sont montées entre la sortie de l'amplificateur 31 et la masse. Les résistances R 2 et R 3 sont des résistances variables que l'on ajuste de manière que la fréquence de coupure du filtre passe-bas 5 puisse correspondre à l'intervalle d'échantillonnage L'amplificateur 30 assure aux photodiodes PD 1 et PD 2 une impédance qui varie en fonction de la valeur numérique 'ús Les valeurs d'impédance des résistances variables YR 1 et VR 2 varient en réponse à la variation de luminosité des photodiodes P Di, PD 2 de sorte qu'il existe les relations suivantes entre l'intervalle d'horloge d'échan- tillonnage Ts, la fréquence d'échantillonnage fs et la fréquence de coupure fc du filtre 40: Ta fs (k Hz) fe (klz) i 8 3 2 4 1 5 4 2 0,75 8 i 0,375 On voit que la fréquence de coupure du filtre 5 devient automatiquement égale à une valeur inférieure à la moitié de la fréquence d'échantillonnage variable et, par conséquent, aucun bruit quantique n'apparait dans le signal appliqué au haut-parleur 6. Les figures 6 a et 6 b représentent un organigramme montrant une variante du mode enregistrement Dans la case 300 est indiqué un sous-progamme ou routine d'interruption grâce auquel les échantillons numériques sont transférés du convertisseur A-N 3 à la mémoire MI à des intervalles d'horloge ts Le programme commence avec une case 301 dans laquelle le compteur F de cadresest remis à zéro Ensuite,-les compteurs d'échantillonnage Si et 52 sont remis à zéro dans la case 302. Un échantillon numérique est extrait de la mémoire Ml dans la case 303 et le premier compteur d'échantillonnage Si est incrémenté de "ln dans la case 304 Les cases 305 à 309 indiquent que les phases servant à détecter le nombre de composantes d'harmoniquesdes échantillons numériques qui apparaissent à l'intérieur d'un intervalle de cadre On utilise à cette fin une technique connue sous la désignation de 'Transforméede Fourier Rapide" (TFR) Bien que cette technique puisse 8 tre utilisée pour détecter un spectre de fréquence de tels échantillons numériques et pour engendrer il à partir de ces derniers un spectre d'énergie en les traitant simultanément dans un sous-programme unique, il est préférable que les échantillons numériques de chaque cadre soient divisés en huit groupes de 32 échantillons chacun et que la technique TFR soit appliquée en ce qui concerne chaque groupe d'échan- tillons Pour cette raison, une phase de décision est prévue dans la case 305 pour vérifier si le compteur Si a atteint un compte de 32 et, s'il en est ainsi, le programme est avancé jusqu'à la case 306 de manière à utiliser la technique TFR pour obtenir un spectre de fréquence à partir du groupe de 32 échantillons numériques qui viennent d'être extraits de la mémoire Ml Un spectre d'énergie est ensuite obtenu dans la case 307 à partir du spectre de fréquence Les cases 302 X 307 sont exécutées de façon répétée jusqu'à ce que les spec- tre d'énergie soient obtenus respectivement à partir de huit groupes de 32 échantillons numériques lorsque 5 I-256 est détecté au cours de la phase de décision de la case 308 * Dans la case 309, le micro-ordinateur obtient une valeur de crête ou valeur moyenne du spectre d'énergie à partir des spectres d'énergie des groupes individuels et avance jusqu'à la case 310 pour éliminer les composantes de fréquence plus élevées ayant des valeurs spectrale inférieures au 1/64 ième, par exemple, de la valeur de crête ou valeur moyenne détectée. Dans la case 311, l'ordre le plus élevé des composantes harmoniques du spectre d'énergie est détecté par vérification du spectre d'énergie dont ont été éliminées les composantes indésirables Cette valeur d'ordre d'harmonique est utilisée dans la case 312 pour déterminer un intervalle d'échantil- lonnage correspondant Ts à partir des relations suivantes: ia le rmonique Frequence déchan Intervalle d'horloge plus élevé tillonnage ' d'chantillonnage Ts -9 8 1 8 6 4 2 2 5 3 4 2 4 3 1,5 5 2 1 8 1 O _ __ i 16 Dans la case 313, on détermine le nombre d'échantillons numériques devant être extraits dr Ja m 6 moire il en divisant 256 par Ts et on règle sur 263/Ts le compteur N de nombre d'échantillonnage Les échantillons numériques Al a N sont extraits séquentiellement de la mémoire M 1 par exécution d'une boucle de programme comprenant les cases 314 à 316; dans la case 314, un échantillon numérique Ar est extrait de la mémoire M 1 et dans la case 315, le second compteur d'échan- tillonnage b 2 est incrémenté de " 1 " et dans la case 316, 52 =N? est vérifié Le compteur F de cadres est alors incré- menté dans la case 317 Un ensemble de données F, A 1 k AN, Ts et N est formé dans la case 318 et chargé dans la méoire M 2 Le programme revient par l'intermédiaire des cases 319 et 320 à la case 302 pour remettre à zéro les compteurs d'échantillonnage de manière b répéter le processus ci-dessus. REYENDICAT IONS 1 o Procédé pour transformer un signal numérique en un signal analogique original, caractérisé par le fait que ledit signal numérique comprend une série d'ensembles de données comprenant chacun une donnée d'échantillonnage indiquant un interval d'échantillonnage qui varie en fonction inverse de la fréquence instantanée dudit signal analogique et une série d'échantillons numériques indiquant chacun l'amplitude dudit signal analogique échantillonné auxdits intervalles et que l'on élimine en réponse à ladite donnée d'échantillonnage une composante de spectre de fréquence desdits échantillons numériques ayant une fréquence supérieure à une valeur varia- ble pouvant être établie préalablement. 2 Procédé suivant la revendication 1, caractérisé par le fait que l'on transforme lesdits échantillons numériques et ladite donnée d'échantillonnage en des premier et second signaux analogiques, respectivement, et que pour obtenir ledit signal analogique original, on élimine en fonction dudit second signal analogique les composantes dudit premier signal analogique dont les fréquences sont plus élevées que ladite valeur'pouvant être établie préalablement. 3 Procédé suivant la revendication 1, caractérisé par le fait que ledit ensemble de données comprend, en outre, une donnée indiquant le nombre desdits échantillons numériques contenus dans la série et que le procédé comprend les phases consistant t a) à compter chacun desdits échantillons numériques après que ladite composante a été éliminée; b) à introduire un temps de retard; et c) à répéter les phases (a) et (b) jusqu'à ce que ledit nombre soit compté. 4 Système pour transformer un signal numérique en un signal analogique original, caractérisé par le fait que ledit signal numérique comprend une série d'ensembles de données comprenant chacun une donnée d'échantillonnage indiquant un intervalle d'échantillonnage qui varie en fonction inverse de la fréquence instantanée dudit signal analogique et une série d'échantillons numériques indiquant l'amplitude dudit signal analogique et par le fait que le système comprend un moyen(D C 1 t DAC 2, 5) pour éliminer une composante de spectre de fréquence associée à une série desdits échantillons numé- riques ayant une fréquence supérieure à, une valeur variable pouvant être établie préalablement de manière à obtenir ledit signal analogique original, la valeur pouvant être établie préalablement variant en fonction de ladite donnée d'échan- tillonnage. Système suivant la revendication 4, caractérisé par le fait que ledit moyen d'élimination comprend un moyen (DàCl, DAC 2) pour convertir lesdits échantillons numériques et ladite donnée d'échantillonnage en des premier et second signaux analogiques, respectivement, et un filtre passe-bas ( 5) pour fréquence variable destiné au filtrage dudit premier signal analogique pour éliminer une composante ayant une fréquence supérieure à une fréquence de coupure qui varie en fonction dudit second signal analogique. 69 Système suivant la revendication 5, caractérisé en outre par le fait qu'il comprend une mémoire (M 2) et un micro-ordinateur ( 10) programmé de manière à exécuter les phases consistant t a) à emmagasiner une série desdits échantillons numéri- ques et ladite donnée d'échantillonnage dans ladite mémoire; b) à transférer les échantillons numériques et ladite donnée d'échantillonnage de ladite mémoire dans ledit moyen de conversion (DIC 1, D C 2); c) à introduire un temps de retard; et d) à répéter les phases (b) et (c).