[go: up one dir, main page]

FR3034220A1 - Amelioration d'emission de flux multimedia - Google Patents

Amelioration d'emission de flux multimedia Download PDF

Info

Publication number
FR3034220A1
FR3034220A1 FR1552617A FR1552617A FR3034220A1 FR 3034220 A1 FR3034220 A1 FR 3034220A1 FR 1552617 A FR1552617 A FR 1552617A FR 1552617 A FR1552617 A FR 1552617A FR 3034220 A1 FR3034220 A1 FR 3034220A1
Authority
FR
France
Prior art keywords
multimedia
stream
processor
mdev
audio
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1552617A
Other languages
English (en)
Other versions
FR3034220B1 (fr
Inventor
Damien Plisson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to FR1552617A priority Critical patent/FR3034220B1/fr
Priority to EP16718407.6A priority patent/EP3274830A1/fr
Priority to US15/558,079 priority patent/US20180052786A1/en
Priority to JP2017549809A priority patent/JP2018520398A/ja
Priority to PCT/FR2016/050653 priority patent/WO2016156702A1/fr
Publication of FR3034220A1 publication Critical patent/FR3034220A1/fr
Application granted granted Critical
Publication of FR3034220B1 publication Critical patent/FR3034220B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

L'invention se rapporte notamment à un procédé d'émission de flux multimédia (MUS, MOV) vers un périphérique multimédia (MDEV) d'un ordinateur (PC), l'ordinateur (PC) comprenant un processeur (MP) apte à fonctionner en mode utilisateur et en mode superviseur, l'ordinateur (PC) comprenant un support de stockage (HDD) lisible par le processeur (MP) et stockant un module multimédia (MM), le procédé d'émission comprenant une mise en œuvre, par le module multimédia (MM) exécuté par le processeur (MP) en mode superviseur, d'une allocation, d'une réception et d'une émission. L'invention concerne également un programme d'ordinateur, un dispositif de stockage et un système mettant en œuvre un tel procédé.

Description

1 AMÉLIORATION D'ÉMISSION DE FLUX MULTIMÉDIA L'invention concerne l'amélioration de l'émission de flux multimédia, notamment des flux audio. L'accroissement de la puissance des micro- ordinateurs, des ordinateurs portables et des tablettes a permis le développement du traitement en temps réel des enregistrements audio dont le but principal est de corriger les défauts dus à la technique de lecture et d'enregistrement sur les supports CD et SACD et d'améliorer la pureté du son par l'élimination des parasites dus à la numérisation elle-même et aux interférences introduites par les différents composants de la chaîne d'enregistrement et de reproduction. Les sociétés qui ont créé des matériels et des logiciels pour cela, sont arrivées à obtenir un saut qualitatif dans la clarté et la pureté du son restitué. Les améliorations complémentaires qui restent à apporter aux meilleurs matériels et logiciels sont relativement faibles tant que n'est pas apportée une solution au problème physique des parasites générés par les composants utilisés lors de la lecture du signal audio. Le niveau de parasites est lié au mode de fonctionnement de ces composants, et donc de celui du logiciel les contrôlant.
Les solutions les plus avancées mises en oeuvre jusqu'à ce jour pour les logiciels de lecture de musique dématérialisée sont réalisées au niveau applicatif du système d'exploitation utilisé dans ces systèmes. Dans les solutions connues, seul le pilote du périphérique audio tourne dans le mode privilégié, le mode noyau (appelé également mode superviseur).
La qualité d'émission de flux multimédia des solutions existantes est imparfaite. L'invention vient améliorer la situation. Un aspect de l'invention se rapporte à un procédé d'émission de flux multimédia vers un périphérique multimédia d'un ordinateur, l'ordinateur 30 comprenant un processeur apte à fonctionner en mode utilisateur et en mode 3034220 2 superviseur, l'ordinateur comprenant un support de stockage lisible par le processeur et stockant un module multimédia, le procédé d'émission comprenant une mise en oeuvre, par le module multimédia exécuté par le processeur en mode superviseur : 5 /a/ d'une allocation, en espace noyau, d'une mémoire tampon agencée pour contenir au moins dix secondes de flux multimédia ; /b/ d'une réception d'un flux multimédia, et de son stockage dans la mémoire tampon ; /c/ d'une émission d'un flux multimédia stocké dans la mémoire tampon 10 vers le périphérique multimédia. Ce procédé est avantageux notamment en ce qu'il permet d'améliorer la qualité du son et/ou de la vidéo compris dans un flux multimédia émis par un tel procédé. En mettant en oeuvre l'exécution du module multimédia en mode superviseur, le procédé lui donne une très haute priorité pour la gestion en 15 temps réel du flux multimédia. Par ailleurs, en lui allouant une mémoire tampon de taille non conventionnelle car très importante (au moins dix secondes) et en plaçant cette mémoire tampon dans l'espace noyau (accessible seulement en mode superviseur), le procédé permet d'assurer une plus grande continuité dans l'émission du flux multimédia, qui a moins de 20 chances d'être interrompu (même pour des périodes très courtes), assurant ainsi également une plus grande qualité d'émission. De plus, le recours à l'espace noyau implique notamment (par rapport à un recours à l'espace utilisateur) une utilisation réduite de ressources mémoire et processeur, car il nécessite moins de recopies de zones mémoire et moins de changements de 25 contexte du processeur, qui sont susceptibles de générer des interférences électriques et électromagnétiques lors de l'émission d'un flux multimédia. Un autre aspect de l'invention se rapporte à un programme d'ordinateur comprenant une série d'instructions qui, lorsqu'elles sont exécutées par un processeur, mettent en oeuvre un procédé selon un aspect de l'invention. Un autre aspect de l'invention se rapporte à un support de stockage non 3034220 3 transitoire lisible par ordinateur, comprenant un programme d'ordinateur selon un aspect de l'invention. Un autre aspect de l'invention se rapporte à un système d'émission de 5 flux multimédia, comprenant un ordinateur et un périphérique multimédia, l'ordinateur comprenant un processeur apte à fonctionner en mode utilisateur et en mode superviseur, l'ordinateur comprenant un support de stockage lisible par le processeur et stockant un module multimédia, le module multimédia étant agencé pour être exécuté par le processeur en mode superviseur, le 10 système d'émission comprenant : - un circuit d'allocation, en espace noyau, d'une mémoire tampon agencée pour contenir au moins dix secondes de flux multimédia ; - un circuit de réception d'un flux multimédia, agencé pour recevoir ledit flux multimédia et le stocker dans la mémoire tampon ; 15 - un circuit d'émission d'un flux multimédia stocké dans la mémoire tampon vers le périphérique multimédia. Ce système est avantageux en ce qu'il est particulièrement adapté pour la mise en oeuvre d'un procédé selon l'invention, et permet ainsi d'améliorer la qualité du son et/ou de la vidéo compris dans un flux multimédia lors de 20 l'émission de ce dernier. D'autres aspects, buts et avantages de l'invention apparaîtront à la lecture de la description de quelques uns de ses modes de réalisation. L'invention sera également mieux comprise à l'aide des dessins, sur 25 lesquels : - la figure 1 illustre un système d'émission de flux multimédia selon un mode de réalisation; - la figure 2 illustre schématiquement le contenu d'une mémoire MEM selon un mode de réalisation; 30 - la figure 3 illustre un procédé d'émission de flux multimédia selon un mode de réalisation; 3034220 4 - la figure 4 illustre l'architecture d'un système selon un mode de réalisation; - la figure 5 illustre une procédure d'initialisation d'un procédé selon un mode de réalisation; 5 - la figure 6 illustre une lecture audio selon un mode de réalisation; - la figure 7 illustre une mise en pause automatique selon un mode de réalisation; - la figure 8 illustre un procédé de détection et de traitement de fin d'émission d'un morceau de musique selon un mode de réalisation; 10 - la figure 9 illustre un procédé d'arrêt d'émission d'un morceau de musique selon un mode de réalisation; - la figure 10 illustre une mémoire tampon en espace noyau, selon un mode de réalisation.
15 Dans les figures décrites ci-dessous, les modes de réalisation se rapportent souvent à une flux audio, mais ces modes de réalisation s'appliquent également à d'autres types de flux. La figure 1 illustre un ordinateur PC comprenant un disque dur HDD, un 20 périphérique multimédia MDEV et une carte mère. Selon une variante, le périphérique multimédia MDEV peut être intégré à la carte mère. Le périphérique multimédia MDEV comprend un convertisseur numérique analogique DAC, par exemple pour convertir une donnée numérique issue d'un flux multimédia MUS (codant de la musique, qui peut être la partie audio 25 d'un flux vidéo) en une tension électrique apte à commander un haut parleur (afin de restituer à l'aide du haut parleur la musique encodée dans le flux multimédia MUS, le cas échéant après amplification par un amplificateur). Les dispositifs de fixation du disque dur HDD et du périphérique multimédia ne sont pas représentés.
30 La carte mère est équipée d'un processeur MP (dont le système de refroidissement n'est pas représenté) et d'au moins une barrette de mémoire vive MEM (par exemple une barrette DIMM de DDR3 SDRAM).
3034220 5 La carte mère est également équipée de cinq circuits AL_C, REC_C, EM_C, RES_C et SND_C. Ces circuits sont représentés sous forme de composants électroniques discrets distincts. Cependant, selon une mise en oeuvre possible, les fonctions de ces cinq circuits sont remplies par un seul 5 circuit assurant ces différentes fonctions. Selon une mise en oeuvre possible les cinq circuits sont mis en oeuvre par un circuit consistant en la réunion du processeur MP et de la mémoire MEM contenant des programmes spécifiques, d'une manière décrite plus précisément dans la suite de la description.
10 La carte mère comprend également un connecteur de stockage (SATA, SCSI ou IDE par exemple), non représenté, pour connecter le disque dur HDD, et un connecteur de cartes d'extensions (par exemple un connecteur PCI, PCI Express ou AGP), non représenté, pour connecter notamment le périphérique multimédia MDEV.
15 Un bus (non représenté) relie les différents composants de la carte mère (notamment le microprocesseur MP, la mémoire MEM, le périphérique multimédia MDEV, le disque dur HDD, et les différents circuits AL_C, REC_C, EM_C, RES_C et SND_C).
20 La figure 2 illustre schématiquement le contenu d'une mémoire MEM selon un mode de réalisation possible. La mémoire représentée est adressée en mode 32-bit (ce qu'illustre l'adresse initiale 0x00000000), mais peut bien sûr être adressée en 64-bit ou selon tout autre adressage approprié. La mémoire MEM contient, à partir d'une première adresse physique, un code 25 exécutable correspondant à un lecteur multimédia MPL implémenté sous forme logicielle. La mémoire MEM contient, à partir d'une deuxième adresse physique, un code exécutable correspondant à un module multimédia MM. Ce module multimédia MM contient une interface INT, qui peut prendre la forme d'une API, à savoir un ensemble normalisé de classes, de méthodes ou de 30 fonctions qui sert de façade par laquelle un logiciel offre des services à d'autres logiciels. La mémoire MEM contient, à partir d'une troisième adresse physique, un code exécutable correspondant à une mémoire tampon BUF. Le 3034220 6 noyau étant normalement chargé avant les applications utilisateur, la mémoire nécessaire pour le module multimédia MM et son interface INT est en principe allouée avant la mémoire nécessaire pour le lecteur multimédia MPL. Il est donc possible que l'adresse physique du bloc mémoire contenant le module 5 multimédia MM soit inférieure à l'adresse physique du bloc mémoire contenant le lecteur multimédia MPL (les positions relatives des blocs mémoire sur la figure 2, qui montrent une configuration inverse, ne sont qu'illustratives). Les trois plages mémoire stockant les informations précitées sont représentées chacune comme étant des plages continues. Cependant, en pratique elles ne 10 le sont pas nécessairement. Ainsi, si la mémoire tampon est généralement allouée de façon continue, en un seul bloc (c'est-à-dire que toute adresse correspondant à une donnée de la mémoire tampon est immédiatement voisine d'au moins une autre adresse contenant une donnée de la mémoire tampon), ce n'est souvent pas le cas en ce qui concerne le module multimédia 15 MM ou le lecteur multimédia MPL, qui peuvent chacun être chargés dans un ensemble de plusieurs blocs mémoire non contigus (espacés par des zones de mémoire non allouées, ou allouées à d'autres applications). Par ailleurs, la figure 2 représente des informations stockées en fonction de leurs adresses physiques. Les adresses virtuelles (qui sont habituellement distribuées par un 20 MMU intégré au processeur et qui permettent de faire abstraction des adresses physiques) peuvent être différentes des adresses physiques (et le sont habituellement). La figure 3 illustre un procédé d'émission de flux multimédia selon un 25 mode de réalisation possible. Lors d'une étape de réservation exclusive RES, un module multimédia MM effectue une réservation exclusive d'un périphérique multimédia MDEV. Une flèche est dirigée symboliquement du module multimédia MM vers le périphérique multimédia MDEV. Selon une mise en oeuvre possible, le 30 périphérique multimédia reçoit ainsi une requête qu'il traite par exemple à l'aide d'un microcontrôleur intégré au périphérique multimédia. Mais la réservation exclusive n'atteint pas nécessairement le périphérique multimédia.
3034220 7 Selon une mise en oeuvre possible, la requête est par exemple dirigée vers un pilote de périphérique du périphérique multimédia, qui gère la réservation exclusive du périphérique multimédia et peut même ne pas informer le périphérique multimédia de sa réservation exclusive. A l'issue de l'émission 5 d'un flux multimédia pris dans son ensemble (par exemple un film entier), le module multimédia peut procéder automatiquement à une libération du périphérique multimédia (afin de faire cesser la réservation exclusive). Lors d'une étape AL d'allocation (pouvant suivre ou précéder l'étape RES de réservation exclusive), le module multimédia MM effectue une allocation 10 d'une mémoire tampon BUF de grande taille en espace noyau. Lors d'une étape REC de réception de flux multimédia, le module multimédia MM reçoit (sous forme de bloc de données) un extrait de flux multimédia (par exemple quelques secondes de musique MUS ou de vidéo MOV) de la part d'un lecteur multimédia MPL. Il enregistre cet extrait dans la 15 mémoire tampon BUF. Il reçoit le cas échéant de tels extraits tant que la mémoire tampon n'est pas remplie. Lors d'une étape EM d'émission de flux multimédia, le module multimédia MM émet (sous forme de bloc de données) un extrait de flux multimédia contenu dans la mémoire tampon BUF vers le périphérique multimédia MDEV.
20 Dès que, la mémoire tampon ayant été remplie, une partie de son contenu a ainsi été émise, le module multimédia MM est agencé pour recevoir à nouveau des extraits de flux multimédia tant que la mémoire tampon n'est pas à nouveau remplie. Les parties de flux multimédia émises ne coïncident pas nécessairement exactement avec les parties de flux multimédia reçues. Il est 25 par exemple possible de recevoir un flux multimédia par blocs de 3 kilooctets et de les émettre par blocs de 2 kilooctets. La taille des blocs reçus et émis n'est d'ailleurs pas nécessairement constante. Ainsi, bien que le flux reçu et le flux émis soient globalement identiques, leur découpage (en blocs de données pour la réception et en blocs de données pour l'émission) ne l'est pas 30 nécessairement. Par commodité d'écriture, il sera fait référence à des parties de flux de multimédia par l'expression "flux multimédia". En effet, une partie de flux 3034220 8 multimédia reste un flux multimédia. Lors d'une étape d'envoi SND, le lecteur multimédia (MPL) communique, via une interface (INT) du module multimédia MM, une demande de sélection d'une position de lecture quelconque dans la mémoire tampon (BUF). Malgré 5 la grande taille de la mémoire tampon, il est ainsi possible d'effectuer par exemple une avance rapide sans qu'il ne soit nécessaire d'attendre la lecture de la mémoire tampon (à défaut il conviendrait d'attendre l'émission de la totalité du flux contenu dans la mémoire tampon) ni de charger de nouvelles données dans la mémoire tampon.
10 La figure 4 illustre l'architecture d'un système selon un mode de réalisation. Une application audio MPL qui est chargée au niveau applicatif (en espace utilisateur) lit une grande quantité de données représentant un morceau de musique depuis une source de données audio (DVD, serveur 15 distant, fichier local, etc.). Elle transfère alors ces données sous forme de petits paquets dans une mémoire tampon BUF d'un lecteur audio MM (un type particulier de module multimédia) qui est chargé au niveau du noyau (en espace noyau). Elle opère ce transfert de données via une interface INT, qui lui sert également à envoyer des commandes au lecteur audio du noyau MM 20 et à recevoir de sa part des notifications. Le lecteur audio du noyau MM transfère à son tour ces données à un pilote de périphérique DRV d'un périphérique audio MDEV. Le pilote de périphérique DRV est soit externe au lecteur audio du noyau MM soit directement intégré au lecteur audio du noyau MM. Les données sont alors transférées à une interface d'entrée/sortie 10, 25 puis au périphérique audio MDEV. La figure 5 illustre une procédure d'initialisation d'un procédé selon un mode de réalisation. Une application audio MPL exécutée en espace utilisateur envoie une 30 requête HQ_MOD à un lecteur audio MM du noyau (exécuté en espace noyau) pour passer en mode de lecture audiophile (mode haute qualité). Si 3034220 9 nécessaire, l'application audio MPL charge préalablement le lecteur audio du noyau MM en espace noyau. Le lecteur audio du noyau MM envoie une requête S_RES de réservation exclusive d'un périphérique audio MDEV à un service audio du noyau. Cette 5 requête conduit à une déconnexion du reste du système audio afin de neutraliser toute autre demande adressée au périphérique audio MDEV et ne venant pas du lecteur audio du noyau. Le service audio du noyau répond au lecteur audio du noyau MM en transmettant une notification S_RES_OK indiquant que la réservation exclusive a été correctement effectuée.
10 Le lecteur audio du noyau MM envoie une requête REQ_F au périphérique audio MDEV afin qu'il lui communique les différents formats qu'il supporte (fréquence d'échantillonnage à 44,1kHz pour une qualité CD, à 96 kHz, nombre de canaux supportés, etc.). Ce dernier répond en envoyant les formats supportés dans un message SND_F.
15 Le lecteur audio du noyau MM effectue alors une allocation AL d'une mémoire tampon BUF utilisée pour les données audio. Cette mémoire tampon est une mémoire tampon de grande taille (au moins dix secondes de données audio). Le lecteur audio du noyau MM signale alors à l'application audio MPL, à 20 l'aide d'un message HQ_MOD_OK, que le passage en mode audiophile a été correctement effectué. La figure 6 illustre un procédé de lecture audio selon un mode de réalisation.
25 Afin de diffuser un morceau de musique MUS, une application audio MPL commence par envoyer un message de configuration CONF1 à un lecteur audio du noyau MM. Le contenu de ce message peut être déterminé lors d'une procédure d'initialisation telle que représentée sur la figure 5. Le message de configuration CONF1 peut ainsi préciser par exemple que le morceau de 30 musique qui sera transmis est échantillonné sur 24 bits, à une fréquence de 96 kHz, et qu'il est stéréophonique. Bien entendu, d'autres formats peuvent être 3034220 10 employés. Le lecteur audio du noyau MM transmet à son tour un message de configuration CONF2 à un périphérique audio MDEV. Ce message CONF2 peut reprendre les éléments reçus dans le message CONF1, et peut le cas échéant faire l'objet d'un traitement préalable. Une fois la configuration 5 effectuée, le périphérique audio MDEV répond que celle-ci s'est bien déroulée par un message OK2 à destination du lecteur audio du noyau MM qui en informe à son tour l'application audio MPL à l'aide d'un message OK1. L'application audio MPL procède alors (étape LD) à un chargement de données audio dans la mémoire tampon BUF du lecteur audio du noyau MM.
10 Dès que suffisamment de données ont été chargées (par exemple une quantité de données correspondant à au moins une seconde de musique), l'application audio MPL envoie un message RD1 au lecteur audio du noyau MM afin de lui demander de démarrer la lecture des données audio (c'est-à-dire leur émission à destination du périphérique audio MDEV en vue de sa 15 diffusion sur des hauts parleurs). Le lecteur audio du noyau MM démarre la lecture en envoyant un message RD2 au périphérique audio MDEV. Le procédé de lecture déclenche alors une boucle qui se répète en principe jusqu'à ce que la fin des données audio du morceau de musique à jouer soit atteinte (c'est-à-dire jusqu'à ce que tout le morceau de musique ait 20 été traité). Cette boucle comprend l'envoi, par le périphérique audio MDEV au lecteur audio du noyau MM, d'une requête RQ_PK demandant l'envoi d'un paquet de données audio. Le lecteur audio répond en envoyant le paquet demandé à l'aide d'un message SND_PK, et incrémente (à une étape INC) la position de lecture dans la mémoire tampon du noyau BUF afin que la lecture 25 suivante dans cette mémoire tampon du noyau corresponde au début du paquet suivant. Les paquets transmis sont construits à partir des données extraites de la mémoire tampon. Selon une mise en oeuvre possible les paquets comprennent d'autres informations (telles qu'un en-tête indiquant par exemple une taille de paquet, un code de redondance cyclique, etc.). Selon 30 une variante, aucune requête RQ_PK n'est envoyée, et le périphérique audio MDEV comprend un convertisseur numérique analogique DAC fonctionnant de façon synchrone. Le lecteur audio du noyau MM est alors agencé pour 3034220 11 envoyer les données audio sans requête, en décidant de lui même de la fréquence d'envoi, en fonction des paramètres du périphérique audio MDEV. Périodiquement (par exemple toutes les secondes), le lecteur audio du noyau MM notifie l'application audio MPL de la position de lecture à l'aide d'un 5 message NOT_POS. Alternativement (ou en complément, lorsque cela s'avère utile), l'application audio MPL peut elle-même accéder à cette information par exemple à l'aide de l'interface INT du lecteur audio du noyau (sans attendre de recevoir une notification). L'application audio MPL, en fonction des notifications NOT_POS qu'elle a 10 reçues et/ou des informations de flux qu'elle a lues directement (sans recourir à de telles notifications), remplit (étape CONT_LD) la mémoire tampon du noyau BUF (tant que le morceau de musique n'a pas été complètement diffusé).
15 La figure 7 illustre une mise en pause automatique en cas d'attente de données, selon un mode de réalisation. Le lecteur audio du noyau MM est agencé pour détecter que la position de lecture par le lecteur audio du noyau MM dans la mémoire tampon du noyau BUF atteint une position correspondant à la fin des données audio 20 chargées, mais qui n'est ni la position de la fin du morceau, ni celle de la fin de la mémoire tampon. Il opère par exemple cette détection par la détection d'un événement EMPTY_BUF (événement déclenché lorsque l'incrémentation INC de la position de lecture illustrée à la figure 6 atteint la position de fin des données audio dans la mémoire tampon), ou d'une interruption logicielle, ou 25 par une boucle de test en continu effectuée par un thread séparé (un thread est parfois appelé une "tâche" ou un "fil d'exécution" en français). Le lecteur audio du noyau envoie alors au périphérique audio MDEV une requête RQ_PSE de mise en pause (afin que le périphérique audio cesse de solliciter des paquets audio). Le périphérique audio MDEV répond par un 30 message PSE_OK que la mise en pause s'est bien déroulée. Le lecteur audio du noyau MM notifie alors l'application audio MPL, par une notification 3034220 12 NOT PSE, que le périphérique audio MDEV s'est mis en pause faute de données. Selon une mise en oeuvre alternative, au lieu d'envoyer une requête RQ_PSE de mise en pause au périphérique audio MDEV, le lecteur audio du noyau MM lui envoie des paquets de "silence" (c'est-à-dire des paquets 5 contenant des échantillons constants représentant un signal nul, correspondant à du silence) jusqu'à ce que la mémoire tampon BUF ait à nouveau suffisamment de données. Cette alternative présente l'avantage d'une interopérabilité accrue avec tout type de périphérique audio (le périphérique audio ne se rendant pas compte de la mise en pause, qui est 10 simulée). Le lecteur audio du noyau continue pendant ce temps de vérifier le contenu de la mémoire tampon du noyau par un mécanisme analogue à celui qui lui permet de détecter qu'il n'y a plus de données dans cette mémoire tampon du noyau. Dès qu'une quantité suffisante de données est détectée, par 15 exemple à l'aide d'un événement BUF_FILL, le lecteur du noyau transmet un message RES_RD au périphérique audio MDEV afin que celui-ci reprenne la lecture. Le périphérique audio MDEV répond à l'aide d'un message RES _ RD _OK qu'il a bien repris la lecture, ce que le lecteur audio du noyau MM notifie à l'application audio MPL à l'aide d'une notification NOT_RD.
20 La figure 8 illustre un procédé de détection et de traitement de fin d'émission d'un morceau de musique selon un mode de réalisation. Un lecteur audio du noyau MM est agencé pour détecter que la position de lecture par le lecteur audio du noyau MM dans une mémoire tampon du 25 noyau BUF atteint une position correspondant à la fin de cette mémoire tampon, ou à la fin d'un morceau joué. Il opère par exemple cette détection par la détection d'un événement REACH END, par une interruption logicielle, ou par une boucle de test en continu effectuée par un thread séparé. Le lecteur audio du noyau envoie alors à une application audio MPL une 30 notification NOT_END de fin de lecture de la mémoire tampon du noyau ou de fin de lecture du morceau 3034220 13 L'application audio MPL vérifie alors (étape TST_MORE_DAT) si des données audio sont présentes après cette position, ou dans une mémoire tampon suivante (lorsqu'il y a plusieurs mémoires tampon). Si c'est le cas, elle continue la lecture à partir de la mémoire tampon courante ou suivante, selon 5 le cas (étape CONT_RD). Sinon (étape NO_MORE_DAT), le lecteur audio du noyau envoie au périphérique audio MDEV une requête PSE de mise en pause (afin que le périphérique audio cesse de solliciter des paquets audio). Le périphérique audio MDEV répond par un message OK_PSE que la mise en pause s'est bien déroulée. Le lecteur audio du noyau MM notifie alors 10 l'application audio MPL, par une notification NOTIF_P, que le périphérique audio MDEV s'est mis en pause faute de données. Selon une mise en oeuvre alternative, au lieu d'envoyer une requête PSE de mise en pause au périphérique audio MDEV, le lecteur audio du noyau MM lui envoie des paquets de silence, de la manière précédemment indiquée.
15 Ceci permet notamment de passer automatiquement de la lecture de la fin d'un morceau à la lecture du début d'un morceau suivant. La figure 9 illustre un procédé d'arrêt d'émission d'un morceau de musique selon un mode de réalisation.
20 Une application audio MPL requiert d'un lecteur audio du noyau MM qu'il arrête la lecture d'un morceau de musique par un périphérique audio MDEV, à l'aide d'une requête RQ_STP1. Le lecteur audio du noyau MM requiert du périphérique audio MDEV qu'il arrête la lecture du morceau de musique, à l'aide d'une requête RQ_STP2.
25 Le périphérique audio MDEV répond au lecteur audio du noyau MM qu'il a arrêté la lecture à l'aide d'un message STP2_0K. Le lecteur audio du noyau MM notifie l'application audio MPL qu'il a arrêté la lecture à l'aide d'un message STP1_OK. L'application audio MPL demande alors au lecteur audio MM, à l'aide 30 d'un message RQ_NM, qu'il revienne en mode normal (non audiophile). Le lecteur audio du noyau MM demande à un service audio du noyau, à 3034220 14 l'aide d'une requête RQ_RECONF1, une reconfiguration du périphérique audio MDEV. Le service audio du noyau demande au périphérique audio MDEV, à l'aide d'une requête RQ_RECONF2, la reconfiguration requise. Le périphérique audio MDEV répond au service audio du noyau, à l'aide d'une 5 notification RECONF2_OK qu'il s'est bien reconfiguré. Le service audio du noyau notifie le lecteur audio du noyau MM, à l'aide d'une notification RECONF1 OK que le périphérique audio MDEV est bien reconfiguré (et prêt à être utilisé de nouveau). Le lecteur audio du noyau MM demande alors au service audio du noyau, 10 à l'aide d'une requête RQ_FR, qu'il fasse cesser la réservation exclusive du périphérique audio MDEV. Le service audio du noyau répond à l'aide d'une notification FR OK qu'il a bien fait cesser cette réservation exclusive. Le lecteur audio du noyau MM en notifie l'application audio MPL. Le lecteur audio du noyau MM peut alors être déchargé du noyau, et il 15 peut auparavant libérer la mémoire tampon en mode noyau (étape UNLD). Le contrôle du périphérique audio MDEV peut alors être rendu au système d'exploitation. La figure 10 illustre une mémoire tampon en espace noyau, selon un 20 mode de réalisation. La mémoire tampon illustrée comprend des données audio en cours de lecture. La position de lecture courante est identifiée par un pointeur RD_POS. La fin des données audio chargées dans la mémoire tampon est identifiée par un pointeur POS_END_LD_AU. La position de fin du morceau (à supposer qu'elle se situe dans la mémoire tampon) est identifiée 25 par un pointeur POS_END_AU. La position de fin de mémoire tampon est identifiée par un pointeur POS_END_BUF. Un premier mode de réalisation se rapporte à un procédé d'émission de flux multimédia (tel qu'un flux de musique MUS, ou de vidéo MOV) via un 30 périphérique multimédia MDEV d'un ordinateur PC.
3034220 15 Selon une mise en oeuvre possible, le périphérique multimédia, qui est un dispositif matériel (par exemple une carte son, une carte graphique, ou encore la combinaison des deux), fait partie intégrante de l'ordinateur. Selon une mise en oeuvre alternative, le périphérique multimédia est extérieur à l'ordinateur et 5 lui est simplement connecté (par lien filaire ou sans fil). L'ordinateur est par exemple un ordinateur personnel (portable ou de bureau), mais il peut également s'agir par exemple d'un téléphone portable, d'une tablette, d'un lecteur MP3, d'une montre connectée, d'un serveur ou encore d'un lecteur réseau. Selon une mise en oeuvre possible, un tel lecteur 10 réseau constitue tout ou partie d'un boîtier intégré contenant à la fois une partie ordinateur (apte à lire un flux multimédia depuis un stockage interne et/ou depuis un réseau informatique) et une partie Hifi apte à restituer un flux multimédia d'une manière perceptible par une oreille humaine. L'ordinateur comprend au moins un processeur MP apte à fonctionner en 15 mode utilisateur et en mode superviseur (il peut s'agir d'un processeur multicceur ou monocceur). En mode utilisateur, le processeur vérifie de manière assez stricte (sous le contrôle du système d'exploitation) l'accès au ressources (mémoire, périphériques, etc.), ce qui permet d'éviter notamment qu'un logiciel (exécuté dans ce mode utilisateur) accapare des ressources, 20 provoque un plantage de l'ordinateur, ou obtienne des accès à des informations confidentielles auxquelles il n'est pas censé accéder. Ce mode utilisateur est donc le mode par défaut utilisé par les logiciels. Cependant, le fait que le mode utilisateur soit sujet à des contrôles accrus signifie que ce mode utilisateur est plus lent et moins réactif. Lorsque de la mémoire est 25 allouée par un logiciel exécuté en mode utilisateur, elle est allouée dans l'espace utilisateur (un espace dans lequel la mémoire des autres logiciels et du système d'exploitation n'est pas accessible). Lorsque de la mémoire est allouée en mode superviseur, elle est allouée dans l'espace noyau, qui est un espace dans lequel toutes les ressources sont visibles. Dans l'espace noyau, il 30 est ainsi possible de consulter les portions de mémoire physique utilisées par tous les logiciels exécutés par l'ordinateur, et même d'y apporter des modifications (effacer des informations, les remplacer, etc.), ce qui peut s'avérer très dangereux. En mode superviseur (dit également mode noyau), le 3034220 16 processeur a ainsi un accès quasiment illimité aux ressources de l'ordinateur, notamment à sa mémoire. Le mode noyau est donc en principe réservé au noyau du système d'exploitation, noyau qui gère des fonctions bas niveau (pilotes de périphériques, accès au matériel, etc.).
5 Selon le premier mode de réalisation, l'ordinateur comprend un support de stockage (tel qu'un disque dur magnétique HDD, ou encore un SSD, parfois appelé disque électronique, composé de mémoire telle que de la mémoire flash, ou toute autre type de support de stockage) lisible par le processeur et stockant un module multimédia MM. Le module multimédia MM est par 10 exemple le résultat de la compilation d'un programme écrit dans un langage assurant des performances assez élevées (par contraste avec certains langages interprétés par exemple), tel que le langage C ou C++. Le module multimédia peut même être le résultat de l'assemblage d'un logiciel écrit directement en assembleur, ce qui peut permettre une optimisation 15 supplémentaire des performances. Le module multimédia peut aussi être mixte, au sens où il peut résulter de la compilation d'un programme écrit pour partie dans un langage tel que le langage C mais dont certaines parties (critiques du point de vue de la performance) sont écrites directement en assembleur.
20 Le module multimédia MM est conçu pour être exécuté par le processeur MP en mode superviseur. Ce module multimédia est par exemple intégré au noyau d'un système d'exploitation installé sur l'ordinateur, qui peut être un système d'exploitation conventionnel, par exemple du type Microsoft Windows, Linux, OS X, Android, iOS, Windows Phone, BlackBerry, Symbian, etc. Ce 25 module multimédia peut par exemple être intégré à un pilote de périphérique, notamment à un pilote de périphérique gérant le périphérique multimédia MDEV. Ce module multimédia peut alternativement être installé au même niveau qu'un tel pilote de périphérique (sans y être intégré). Le module multimédia peut également être intégré dans une extension du noyau chargée 30 dynamiquement (à la demande), ou être intégré directement à l'intérieur d'un noyau monolithique (il est ainsi possible de compiler un noyau spécialement pour cet usage). L'exécution du module multimédia en mode superviseur lui confère des performances accrues. Il peut en particulier jouir d'une priorité sur 3034220 17 d'autres modules exécutés en parallèle mais en mode utilisateur. L'exécution en mode superviseur permet d'améliorer la vitesse de réponse à des sollicitations du périphérique multimédia (qui peut notamment émettre des requêtes pour recevoir la suite d'un flux multimédia qu'il est en train de jouer).
5 Ceci améliore la précision temporelle du signal porté par le flux multimédia, grâce à la priorité du module multimédia sur tous les modules exécutés en mode utilisateur, d'autant plus que l'exécution du processus de réponse ne nécessite pas dans ce cas d'appeler des routines présentes en mode utilisateur. L'activité nécessaire à l'émission du flux multimédia en mode 10 superviseur étant inférieure à l'activité nécessaire à l'émission du flux multimédia en mode utilisateur, elle permet de réduire les parasites (notamment électromagnétiques) liés à cette activité. Le procédé d'émission comprend une mise en oeuvre, par le module multimédia, d'une allocation, en espace noyau, d'une (ou, alternativement, de 15 plusieurs) mémoire(s) tampon BUF agencée(s) pour contenir (collectivement, s'il y en a plusieurs) au moins dix secondes de flux multimédia. Cette mémoire tampon, en plus de se situer en espace noyau, a ainsi une taille beaucoup plus élevée que dans l'art antérieur ce qui permet d'assurer une continuité lors de l'émission d'un flux multimédia.
20 Le flux multimédia émis par le module multimédia vers le périphérique multimédia prend la forme de données, qui sont, avant d'atteindre le périphérique multimédia, susceptibles de transiter par plusieurs éléments intermédiaires, notamment par un pilote de périphérique du périphérique multimédia et par des modules d'un noyau d'un système d'exploitation de 25 l'ordinateur. De nouvelles données sont régulièrement stockées dans la mémoire tampon (susceptible d'être utilisée par de tels modules du noyau) afin d'assurer la continuité de l'émission du flux multimédia. L'utilisation d'une taille non conventionnelle (correspondant à au moins dix secondes de flux multimédia) pour cette mémoire tampon permet notamment de réaliser des 30 transferts de données (depuis une source de flux multimédia, telle qu'un lecteur multimédia, vers le module multimédia) de taille unitaire bien plus importante, et donc de réduire fortement le nombre de ces transferts pendant 3034220 18 l'émission des données multimédia vers le périphérique multimédia. Cela limite donc fortement l'activité supplémentaire générée pour requérir de nouvelles données et les transmettre. Ceci réduit corrélativement les interférences électromagnétiques générées par cette activité supplémentaire.
5 La grande taille de la mémoire tampon est ainsi avantageuse en ce qu'une perturbation quelconque empêchant temporairement l'obtention de données depuis une source multimédia peut être compensée pendant une durée pouvant aller jusqu'à dix secondes au minimum. Selon une mise en oeuvre possible, le seuil de dix secondes n'est pas 10 strict et doit s'entendre comme signifiant : environ dix secondes (à titre d'exemple, neuf secondes peuvent suffire). La durée des mémoires tampon de l'art antérieur est inférieure à une seconde, et celle de la mémoire tampon selon l'invention s'en distingue en ce qu'elle est beaucoup plus longue (au minimum dix fois plus longue).
15 Une telle durée (au minimum une dizaine de secondes) paraît suffisante pour contrer les effets sur l'émission d'un flux multimédia de phénomènes susceptibles de ralentir ou perturber fortement mais très temporairement l'ordinateur. De tels phénomènes peuvent être liés par exemple à un manque temporaire de mémoire vive. Dans une telle hypothèse, il est courant de 20 recourir à une mémoire virtuelle complétant la mémoire vive insuffisante. Cette mémoire virtuelle s'appuie sur un support de stockage de masse, beaucoup plus lent que la mémoire vive mais de capacité beaucoup plus importante (typiquement, un disque dur). Si une portion de flux multimédia à émettre se trouve en mémoire virtuelle, il est nécessaire pour y accéder d'effectuer une 25 opération dite de "swap mémoire" (le mot "swap" signifiant "échange" en anglais) au cours de laquelle les données représentant la portion de flux multimédia stockées en mémoire de masse (par exemple sur un disque dur) sont chargées en mémoire vive en remplacement de données qui s'avèrent ne pas avoir été utilisées depuis longtemps. Cette opération de "swap mémoire", 30 qui peut être longue, peut alors provoquer (dans le cadre des solutions antérieures) une coupure dans l'émission du flux multimédia. Le recours à une mémoire tampon de taille importante permet d'absorber des opérations de 3034220 19 "swap mémoire" ponctuellement requises sans interruption dans l'émission du flux multimédia. De tels phénomènes peuvent également être liés à des phases préparatoires à l'exécution automatique de tâches de fond. Ils peuvent être dus notamment à un logiciel antivirus, à un logiciel d'archivage 5 automatique de données (copiant les données nouvellement inscrites sur un disque dur de l'ordinateur vers un support d'archivage), à une maintenance automatique de disque dur (telle qu'une défragmentation), à une recherche automatique de mises à jour de logiciels installés sur l'ordinateur, etc. Ces phases préparatoires, même si elles ne conduisent pas à dépasser les 10 capacités de la mémoire vive, peuvent conduire à solliciter le processeur de manière importante. Le fait d'opérer en mode superviseur permet alors de garantir une disponibilité du processeur supérieure à celle qui serait accordée à un module exécuté en mode utilisateur, et de réduire ainsi la probabilité que l'émission du flux multimédia soit affectée. Par ailleurs, même si la source du 15 flux multimédia (qui peut le cas échéant mettre en oeuvre des modules exécutés en mode utilisateur) est temporairement tarie par une telle phase préparatoire, la mémoire tampon de taille importante permet de compenser un tel tarissement pendant au moins dix secondes. Le procédé d'émission comprend une mise en oeuvre, par le module 20 multimédia, d'une réception d'un flux multimédia (par exemple depuis un serveur distant, via un réseau, ou encore depuis un stockage local tel qu'un disque dur local ou une clé USB), et de son stockage dans la mémoire tampon. Ce flux multimédia est entendu comme une portion de flux multimédia correspondant aux capacités de la mémoire tampon. Ainsi, il est possible de 25 conserver en continu au moins dix secondes de flux multimédia, et au fur et à mesure que le contenu de la mémoire tampon est émis, il est remplacé par une portion suivante de flux multimédia, reçue de manière analogue à la réception précitée, de manière à remplir en permanence autant que possible la mémoire tampon.
30 Le procédé d'émission comprend une mise en oeuvre, par le module multimédia, d'une émission d'un flux multimédia stocké dans la mémoire tampon BUF vers le périphérique multimédia. Selon une mise en oeuvre possible, cette émission s'opère par transmission de petits paquets de flux 3034220 20 multimédia issus de la mémoire tampon BUF, la taille desdits paquets étant fixée par périphérique multimédia MDEV. Le flux multimédia peut provenir de toute origine. Il peut provenir d'un fichier stocké dans l'ordinateur, mais il peut également provenir d'une entité 5 externe, par exemple d'un serveur distant (par exemple à l'aide d'une technique dite de "streaming", parfois appelée en français flux direct, diffusion en flux, lecture en continu, lecture en transit ou encore diffusion en mode continu).
10 Selon un deuxième mode de réalisation, un procédé d'émission de flux multimédia selon le premier mode de réalisation comprend une mise en oeuvre, par le module multimédia MM, d'une réservation exclusive RES du périphérique multimédia MDEV pendant l'émission du flux multimédia. Ainsi, aucun autre logiciel n'est susceptible d'interférer avec le module multimédia 15 MM lorsque (tant que) ce dernier émet un flux à destination du périphérique multimédia MDEV en sollicitant un accès concurrent à ce même périphérique multimédia. Par exemple, dans l'hypothèse où le périphérique multimédia est une carte son, la réception d'un email dans un logiciel de messagerie électronique ne sera pas susceptible de déclencher un son intempestif de 20 nature non seulement à se superposer avec (ou à interrompre) l'émission du flux multimédia, mais aussi de nature à perturber une telle émission (par exemple en générant des parasites liés au fait que le logiciel de messagerie tente d'accéder au même périphérique multimédia et consomme ainsi des ressources de ce périphérique multimédia).
25 Selon une mise en oeuvre possible, l'émission de flux multimédia est continue (sauf intervention d'un utilisateur requérant par exemple une pause), et la réservation reste exclusive jusqu'à la fin de l'émission de la totalité du flux multimédia considéré (par exemple jusqu'à la fin de la diffusion complète d'un film entier). Ainsi, la réservation exclusive peut s'opérer comme préalable à la 30 diffusion du flux multimédia entier (juste avant le début d'un film par exemple), et subsister pendant tout le film (qui comprend de nombreuses réceptions de parties de flux multimédias et émission de parties de flux multimédias), sans 3034220 21 qu'il ne soit nécessaire d'effectuer à nouveau un réservation exclusive à chaque réception d'une nouvelle partie de flux multimédia (la réservation exclusive initiale perdure). Selon une mise en oeuvre possible, la réservation exclusive s'opère au 5 niveau du noyau d'un système d'exploitation installé sur l'ordinateur. Cette mise en oeuvre comprend le remplacement d'un pilote du périphérique multimédia ou d'un module du noyau contrôlant le périphérique multimédia par un nouveau pilote de périphérique (respectivement un nouveau module du noyau) intégrant une fonction permettant de refuser toute connexion d'une 10 application autre qu'une source multimédia déterminée. La source multimédia est par exemple un lecteur multimédia (prenant la forme d'un module applicatif), seul ce module applicatif étant autorisé par le nouveau pilote de périphérique (respectivement driver). Selon une mise en oeuvre possible, la fonction prend en paramètre d'entrée un identifiant de la source multimédia 15 ainsi qu'un bit dont une valeur indique qu'une réservation exclusive est requise, et l'autre valeur indique que la réservation exclusive n'est plus requise. Selon une mise en oeuvre possible, cette fonction est sécurisée, par exemple en prédéfinissant la ou les sources multimédia habilitée(s) à requérir une réservation exclusive et en interdisant à toute application autre que 20 figurant dans la liste d'applications autorisées ainsi prédéfinies d'effectuer une réservation exclusive. Selon une mise en oeuvre possible, il n'y a qu'une source autorisée, et la fonction ne prend pas en paramètre d'entrée l'identifiant de cette source. Selon une mise en oeuvre possible, l'ensemble (ou alternativement une partie) des fonctions du pilote de périphériques 25 (respectivement du module du noyau) se rapportant à l'émission de flux multimédia est modifié pour que ces fonctions renvoient un code d'erreur lorsqu'une réservation exclusive a été effectuée et lorsqu'elle identifient que le module applicatif appelant n'est pas celui pour lequel une réservation exclusive a été demandée.
30 Selon une autre mise en oeuvre possible, la réservation exclusive s'opère au niveau du noyau d'un système d'exploitation installé sur l'ordinateur, de la façon suivante. Un module d'interface qui réalise l'interface entre des modules 3034220 22 applicatifs et des pilotes de périphérique multimédia au niveau du noyau est remplacé par un nouveau module d'interface intégrant une fonction permettant de refuser toute connexion d'une application autre qu'une source multimédia déterminée, d'une manière similaire à celle indiquée au paragraphe précédent.
5 Selon une autre mise en oeuvre possible, la réservation exclusive s'opère au niveau applicatif d'un système d'exploitation installé sur l'ordinateur. Le système d'exploitation fournit une fonction pour réserver un accès exclusif au périphérique multimédia. Une source multimédia telle que le lecteur multimédia applicatif appelle cette fonction du système d'exploitation afin d'opérer une 10 réservation exclusive. Selon une mise en oeuvre possible, la mémoire tampon est une mémoire tampon cyclique. Le module multimédia maintient un pointeur de début de flux multimédia (pointant sur une partie de flux multimédia contenue dans la 15 mémoire tampon cyclique et sur le point d'être émise) et un pointeur de fin de flux multimédia (pouvant être identique au pointeur de début de flux multimédia si la mémoire tampon cyclique est pleine). Selon une convention de notation possible, on attribue la valeur zéro au pointeur de début de flux multimédia (indépendamment de l'adresse mémoire 20 correspondant au début de flux multimédia). Par exemple, considérons une mémoire tampon cyclique de 1764000 octets (soit Ox1AEAA0 octets en notation hexadécimale), occupant une zone mémoire comprise de l'adresse 0x03000000 à l'adresse Ox031AEA9F. Une telle mémoire tampon cyclique peut ainsi contenir dix secondes de flux audio stéréo échantillonné à 16 bits 25 par canal, à une fréquence de 44,1kHz. Le début de flux multimédia peut ainsi se situer à n'importe quelle adresse comprise entre 0x03000000 et Ox031AEA9F (par exemple, l'adresse Ox0305ABE6). Mais quelle que soit l'adresse @DFM de début de flux multimédia, on attribue conventionnellement la valeur zéro au pointeur sur ce début de flux multimédia. La valeur associée 30 à tout autre pointeur pointant sur une adresse @Q quelconque située à l'intérieur de la mémoire tampon cyclique est alors définie conventionnellement comme étant égale à (@Q + SZBUF - @DFM) Mod SZBUF, SZBUF désignant 3034220 23 la taille de la mémoire tampon (par exemple 1764000 dans l'exemple ci-dessus). Si les deux pointeurs de début et de fin de flux multimédia ont des valeurs différentes, le module multimédia essaye de recevoir davantage de flux multimédia dans la mémoire tampon cyclique jusqu'à ce que les deux 5 pointeurs aient une valeur identique. Bien que l'adresse mémoire correspondant au pointeur de début de flux multimédia ne cesse de changer au fur et à mesure de l'émission du contenu de la mémoire tampon, et ce de manière cyclique, on peut selon cette convention de notation lui attribuer en permanence la valeur de référence zéro.
10 Bien entendu, toute autre convention de notation est possible. Selon un troisième mode de réalisation, le module multimédia MM d'un procédé d'émission de flux multimédia selon le premier ou deuxième mode de réalisation comprend une interface INT accessible depuis un lecteur 15 multimédia MPL exécuté par le processeur MP en mode utilisateur, le procédé d'émission comprenant un envoi SND au module multimédia MM, par le lecteur multimédia MPL, via ladite interface INT, d'une demande de sélection d'une position de lecture quelconque dans la mémoire tampon BUF. Ainsi, le module multimédia permet de sélectionner une position de lecture à une 20 position arbitraire dans la mémoire tampon, et non simplement une position prédéfinie telle que le début de la mémoire tampon. Ceci est particulièrement avantageux compte-tenu de la taille de la mémoire tampon. Une telle sélection ne présente pas d'intérêt avec une mémoire tampon d'une taille conforme à celle des mémoires tampon de l'état de l'art, qui sont si courtes que 25 sélectionner une position de lecture arbitraire n'a pas d'utilité. Selon une autre mise en oeuvre, la mémoire tampon est une mémoire tampon cyclique selon la mise en oeuvre précitée, le module multimédia maintenant donc un pointeur de début de flux multimédia et un pointeur de fin de flux multimédia. La demande de sélection d'une position de lecture 30 quelconque opère alors sur un troisième pointeur dont la valeur est comprise entre la valeur du pointeur de début de flux multimédia et la valeur du pointeur de fin de flux multimédia (lorsque les valeurs de ces pointeurs sont définies selon la convention de notation précitée). L'émission de flux multimédia depuis 3034220 24 la mémoire tampon cyclique s'opère alors à partir de l'adresse définie par ce troisième pointeur (lorsque la sélection est opérée) et non à partir du pointeur de début de flux multimédia. Ainsi, il est possible d'effectuer des avances rapides puis des reculs rapides sans avoir à être en mesure de recevoir 5 davantage de flux multimédia, tant que ces avances et reculs rapides se cantonnent au contenu de la mémoire tampon cyclique. Sans ce troisième pointeur mettant en oeuvre la sélection d'une position de lecture quelconque, une avance rapide suivie d'un recul rapide impliquerait, à défaut de fonctions particulières, un nouveau téléchargement. En effet, une fois le pointeur de 10 début de flux multimédia déplacé pour une avance rapide, il n'est pas possible de le déplacer dans l'autre sens afin d'effectuer un recul rapide si l'on n'est pas en mesure de savoir quel contenu se trouve avant le pointeur de début de flux multimédia (le contenu précédent a pu être écrasé par la réception d'un autre contenu).
15 Selon une mise en oeuvre possible, le module multimédia est agencé pour déclencher une temporisation à réception par l'interface INT d'une demande de sélection d'une position de lecture. Selon une mise en oeuvre possible, la durée de la temporisation est du même ordre de grandeur que la durée maximale de flux multimédia que peut contenir la mémoire tampon.
20 Cette temporisation est interrompue par toute nouvelle réception par l'interface INT d'une autre demande de sélection d'une position de lecture, réception qui déclenche à nouveau une telle temporisation (comme s'il n'y en avait pas eu précédemment). Durant la temporisation, le module multimédia s'interdit d'écraser une zone glissante (de la mémoire tampon cyclique) précédant 25 initialement la nouvelle position sélectionnée (et se déplaçant par la suite au fur et à mesure que le contenu de la mémoire tampon cyclique est émis, de façon à précéder immédiatement l'échantillon courant qui est émis). Cette zone glissante contient initialement des données non émises du fait de la sélection d'une nouvelle position de lecture. Par la suite, au cours de la 30 temporisation, cette zone glissante contient de moins en moins de données non émises et de plus en plus de données déjà émises (mais qui pourraient devoir être réémises, selon les instructions de l'utilisateur du procédé d'émission). Plus précisément, le module multimédia cherche à remplir la 3034220 25 mémoire tampon à son maximum mais sans écrire, pendant la temporisation, dans la zone de mémoire tampon ainsi protégée. Selon une mise en oeuvre, la taille maximale de cette zone protégée est fixée à une durée correspondant à la moitié de la durée maximale de flux multimédia comprise dans la mémoire 5 tampon cyclique totale, soit par exemple cinq secondes. Toute autre durée supérieure à une seconde mais substantiellement inférieure à la taille de la mémoire tampon cyclique (par exemple 80% de la taille de la mémoire tampon cyclique) peut également être choisie. Par exemple, considérons une mémoire tampon cyclique d'une minute, 10 une durée de temporisation de deux minutes, et une taille maximale de zone à préserver de trente secondes. Supposons que la mémoire tampon est pleine (cas normal durant l'émission d'un flux multimédia, à moins qu'il y ait un problème ponctuel ou que l'on atteigne la fin du flux multimédia total). Si l'utilisateur du procédé d'émission souhaite avancer de vingt secondes (par 15 exemple si le flux multimédia courant l'ennuie ou le choque et s'il souhaite le passer), l'interface INT reçoit une instruction aboutissant à avancer de vingt secondes. Au lieu d'écraser immédiatement (du moins dans la mesure ou le débit le permet) les données correspondant au vingt secondes non jouées, la temporisation permet de les préserver. Plus précisément, au tout début de 20 l'avance rapide, le module multimédia ne peut pas préserver trente secondes puisqu'il ne dispose que des vingt dernières secondes (en raison de l'avance de vingt secondes) et il ne peut donc rien écrire pendant dix secondes. Puis pendant une minute et cinquante secondes, il s'assure de préserver les trente dernières secondes, et passé ce délai il remplit à nouveau complètement la 25 mémoire tampon cyclique sans chercher à préserver les trente secondes précédant l'instant présent dans le flux multimédia. Dans la m êm e configuration, si l'utilisateur souhaite cette fois-ci avancer de quarante secondes au lieu de vingt secondes, le module multimédia peut immédiatement (dans la mesure où le débit le permet) écraser dix secondes 30 de flux multimédia enregistré correspondant à un flux antérieur de plus de trente secondes à l'instant courant, et maintenir ensuite un minimum de trente secondes pendant les deux minutes suivantes. Une finalité de cette fonction est par exemple de permettre à un utilisateur qui a effectué une avance par 3034220 26 mégarde ou qui se rend compte qu'il a avancé davantage qu'il ne le souhaitait réellement d'avoir une garantie de pouvoir revenir en arrière instantanément même en cas de mauvaise liaison avec la source du flux multimédia, en particulier en présence d'une liaison très irrégulière, qui assure un débit moyen 5 satisfaisant mais avec des interruptions très fréquentes. Selon un quatrième mode de réalisation, le flux multimédia d'un procédé d'émission de flux multimédia selon l'un des modes de réalisation précédents est un flux audio MUS, et le périphérique multimédia MDEV comprend un 10 convertisseur numérique analogique DAC. Ce mode de réalisation permet une émission audio de haute qualité (de type Hifi). Selon un cinquième mode de réalisation, un programme d'ordinateur comprend une série d'instructions qui, lorsqu'elles sont exécutées par un 15 processeur, mettent en oeuvre un procédé selon l'un des modes de réalisation précédents. Ce programme d'ordinateur peut être écrit notamment en langage C, en langage C++, et ou en langage assembleur. Selon un sixième mode de réalisation, un support de stockage non 20 transitoire lisible par ordinateur (par exemple un disque dur HDD ou une mémoire non volatile, telle qu'une mémoire Flash ou EEPROM) comprend un programme d'ordinateur selon le cinquième mode de réalisation. Selon un septième mode de réalisation, un système d'émission de flux 25 multimédia comprend un ordinateur PC et un périphérique multimédia MDEV, l'ordinateur PC comprenant un processeur MP apte à fonctionner en mode utilisateur et en mode superviseur, l'ordinateur comprenant un support de stockage HDD lisible par le processeur MP et stockant un module multimédia MM, le module multimédia MM étant agencé pour être exécuté par le 30 processeur MP en mode superviseur. Le système d'émission comprend un circuit électronique d'allocation AL_C, en espace noyau, d'une mémoire tampon BUF agencée pour contenir au moins dix secondes de flux multimédia. Selon une mise en oeuvre possible, 3034220 27 le circuit d'allocation comprend un processeur et une mémoire, ladite mémoire contenant un programme d'ordinateur agencé pour mettre en oeuvre l'allocation de la mémoire tampon BUF d'au moins dix secondes en espace noyau. Le processeur peut être un processeur central de l'ordinateur (qui peut 5 être partagé avec d'autres circuits) ou un processeur dédié. La mémoire peut être une mémoire centrale de l'ordinateur (qui peut être partagée avec d'autres circuits) ou une mémoire dédiée. Il peut s'agir d'une mémoire non transitoire. Le système d'émission comprend un circuit électronique de réception REC C d'un flux multimédia, agencé pour recevoir ledit flux multimédia et le 10 stocker dans la mémoire tampon BUF. Selon une mise en oeuvre possible, le circuit de réception comprend un processeur et une mémoire, ladite mémoire contenant un programme d'ordinateur agencé pour recevoir ledit flux multimédia et le stocker dans ladite mémoire tampon BUF. Le processeur peut être un processeur central de l'ordinateur (qui peut être partagé avec d'autres 15 circuits) ou un processeur dédié. La mémoire peut être une mémoire centrale de l'ordinateur (qui peut être partagée avec d'autres circuits) ou une mémoire dédiée. Il peut s'agir d'une mémoire non transitoire. Le système d'émission comprend un circuit électronique d'émission EM C d'un flux multimédia stocké dans la mémoire tampon BUF vers le 20 périphérique multimédia MDEV. Selon une mise en oeuvre possible, le circuit d'émission comprend un processeur et une mémoire, ladite mémoire contenant un programme d'ordinateur agencé pour émettre le flux multimédia stocké dans la mémoire tampon BUF vers le périphérique multimédia MDEV. Le processeur peut être un processeur central de l'ordinateur (qui peut être 25 partagé avec d'autres circuits) ou un processeur dédié. La mémoire peut être une mémoire centrale de l'ordinateur (qui peut être partagée avec d'autres circuits) ou une mémoire dédiée. Il peut s'agir d'une mémoire non transitoire. Selon un huitième mode de réalisation, un système d'émission de flux 30 multimédia selon le septième mode de réalisation comprend un circuit électronique de réservation exclusive RES_C du périphérique multimédia MDEV pendant l'émission du flux multimédia. Selon une mise en oeuvre possible, le circuit d'émission comprend un processeur et une mémoire, ladite 3034220 28 mémoire contenant un programme d'ordinateur agencé pour réserver de façon exclusive le périphérique multimédia MDEV pendant l'émission du flux multimédia. Le processeur peut être un processeur central de l'ordinateur (qui peut être partagé avec d'autres circuits) ou un processeur dédié. La mémoire 5 peut être une mémoire centrale de l'ordinateur (qui peut être partagée avec d'autres circuits) ou une mémoire dédiée. Il peut s'agir d'une mémoire non transitoire. Selon un neuvième mode de réalisation, le module multimédia MM d'un 10 système d'émission de flux multimédia selon le septième ou huitième mode de réalisation comprend une interface INT accessible depuis un lecteur multimédia MPL exécuté par le processeur MP en mode utilisateur, le système d'émission comprenant un circuit électronique d'envoi SND_C de demande de sélection d'une position de lecture quelconque dans la mémoire tampon BUF 15 au module multimédia MM par le lecteur multimédia MPL via ladite interface INT. Selon une mise en oeuvre possible, le circuit d'envoi SND_C comprend un processeur et une mémoire, ladite mémoire contenant un programme d'ordinateur agencé pour envoyer une demande de sélection d'une position de lecture quelconque dans la mémoire tampon BUF au module multimédia MM 20 par le lecteur multimédia MPL via ladite interface INT. Le processeur peut être un processeur central de l'ordinateur (qui peut être partagé avec d'autres circuits) ou un processeur dédié. La mémoire peut être une mémoire centrale de l'ordinateur (qui peut être partagée avec d'autres circuits) ou une mémoire dédiée. Il peut s'agir d'une mémoire non transitoire.
25 Un dixième mode de réalisation se rapporte à un système d'émission de flux multimédia selon l'un des septième au neuvième modes de réalisation, dans lequel le flux multimédia est un flux audio MUS et dans lequel le périphérique multimédia MDEV comprend un convertisseur numérique 30 analogique DAC. Bien entendu, la présente invention ne se limite pas à la forme de réalisation décrite ci-avant à titre d'exemple ; elle s'étend à d'autres variantes.
3034220 29 Les caractéristiques décrites vis-à-vis des procédés selon l'invention se transposent aux systèmes correspondants selon l'invention, et réciproquement. Les modes de réalisation décrits pour des morceaux de musique se transposent à d'autres types de flux multimédia, notamment à des 5 flux vidéo, à des flux audio-vidéo, à des flux vidéo en réalité augmentée, voire à des flux d'informations commandant des dispositifs d'éclairage (projecteurs lumineux, lasers, etc.) ou des dispositifs électromécaniques (par exemple des flux pilotant des robots ou des servomoteurs reliés à des éléments d'une scène afin de réaliser des effets spéciaux dans le cadre d'un spectacle), dans 10 des cas où une synchronisation très précise est requise.

Claims (10)

  1. REVENDICATIONS1. Procédé d'émission de flux multimédia (MUS, MOV) vers un périphérique multimédia (MDEV) d'un ordinateur (PC), l'ordinateur (PC) comprenant un processeur (MP) apte à fonctionner en mode utilisateur et en mode superviseur, l'ordinateur (PC) comprenant un support de stockage (HDD) lisible par le processeur (MP) et stockant un module multimédia (MM), le procédé d'émission comprenant au niveau du module multimédia (MM) exécuté par le processeur (MP) en mode superviseur : /a/ une allocation (AL), en espace noyau, d'une mémoire tampon (BUF) agencée pour contenir au moins dix secondes de flux multimédia (MUS, MOV) ; /b/ une réception (REC) d'un flux multimédia (MUS, MOV), et de son stockage 15 dans la mémoire tampon (BUF) ; /c/ une émission (EM) d'un flux multimédia stocké dans la mémoire tampon (BUF) vers le périphérique multimédia (MDEV).
  2. 2. Procédé d'émission de flux multimédia (MUS, MOV) selon la 20 revendication 1, comprenant une réservation exclusive (RES), par le module multimédia (MM), du périphérique multimédia (MDEV) pendant l'émission du flux multimédia.
  3. 3. Procédé d'émission de flux multimédia (MUS, MOV) selon la revendication 1 25 ou 2, le module multimédia (MM) comprenant une interface (INT) accessible depuis un lecteur multimédia (MPL) exécuté par le processeur (MP) en mode utilisateur, le procédé d'émission comprenant un envoi (SND) au module multimédia (MM), par le lecteur multimédia (MPL), via ladite interface (INT), d'une demande de sélection d'une position de lecture quelconque dans la 30 mémoire tampon (BUF).
  4. 4. Procédé d'émission de flux multimédia selon l'une des revendications précédentes, dans lequel le flux multimédia comprend un flux audio (MUS) et 3034220 31 dans lequel le périphérique multimédia (MDEV) comprend un convertisseur numérique analogique (DAC).
  5. 5. Programme d'ordinateur comprenant une série d'instructions qui, 5 lorsqu'elles sont exécutées par un processeur, mettent en oeuvre un procédé selon l'une des revendications précédentes.
  6. 6. Support de stockage non transitoire lisible par ordinateur (HDD), comprenant un programme d'ordinateur selon la revendication 5. 10
  7. 7. Système d'émission de flux multimédia (MUS, MOV) comprenant: - un ordinateur (PC) et - un périphérique multimédia (MDEV), l'ordinateur (PC) comprenant: - un processeur (MP) apte à fonctionner en mode utilisateur et en mode superviseur, ainsi que - un support de stockage (HDD) lisible par le processeur (MP) et stockant un module multimédia (MM), le module multimédia (MM) étant agencé pour être exécuté par le processeur 20 (MP) en mode superviseur, le système d'émission comprenant : - un circuit d'allocation (AL_C), en espace noyau, d'une mémoire tampon (BUF) agencée pour contenir au moins dix secondes de flux multimédia (MUS, MOV) ; 25 - un circuit de réception (REC_C) d'un flux multimédia (MUS, MOV), agencé pour recevoir ledit flux multimédia et le stocker dans la mémoire tampon (BUF) ; - un circuit d'émission (EM_C) d'un flux multimédia stocké dans la mémoire tampon (BUF) vers le périphérique multimédia (MDEV). 30
  8. 8. Système d'émission de flux multimédia (MUS, MOV) selon la revendication 7, comprenant un circuit de réservation exclusive (REC_C) du périphérique multimédia (MDEV) pendant l'émission du flux multimédia. 3034220 32
  9. 9. Système d'émission de flux multimédia (MUS, MOV) selon la revendication 7 ou 8, le module multimédia (MM) comprenant une interface (INT) accessible depuis un lecteur multimédia (MPL) exécuté par le 5 processeur (MP) en mode utilisateur, le système d'émission comprenant un circuit de d'envoi (SND_C) de demande de sélection d'une position de lecture quelconque dans la mémoire tampon (BUF) au module multimédia (MM) par le lecteur multimédia (MPL) via ladite interface (INT). 10
  10. 10. Système d'émission de flux multimédia selon l'une des revendications 7 à 9, dans lequel le flux multimédia comprend un flux audio (MUS) et dans lequel le périphérique multimédia (MDEV) comprend un convertisseur numérique analogique (DAC). 15
FR1552617A 2015-03-27 2015-03-27 Amelioration d'emission de flux multimedia Expired - Fee Related FR3034220B1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FR1552617A FR3034220B1 (fr) 2015-03-27 2015-03-27 Amelioration d'emission de flux multimedia
EP16718407.6A EP3274830A1 (fr) 2015-03-27 2016-03-24 Amelioration d'emission de flux multimedia
US15/558,079 US20180052786A1 (en) 2015-03-27 2016-03-24 Improvement in sending of multimedia streams
JP2017549809A JP2018520398A (ja) 2015-03-27 2016-03-24 マルチメディアストリームの送信の改善
PCT/FR2016/050653 WO2016156702A1 (fr) 2015-03-27 2016-03-24 Amelioration d'emission de flux multimedia

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1552617A FR3034220B1 (fr) 2015-03-27 2015-03-27 Amelioration d'emission de flux multimedia

Publications (2)

Publication Number Publication Date
FR3034220A1 true FR3034220A1 (fr) 2016-09-30
FR3034220B1 FR3034220B1 (fr) 2017-03-10

Family

ID=53758324

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1552617A Expired - Fee Related FR3034220B1 (fr) 2015-03-27 2015-03-27 Amelioration d'emission de flux multimedia

Country Status (5)

Country Link
US (1) US20180052786A1 (fr)
EP (1) EP3274830A1 (fr)
JP (1) JP2018520398A (fr)
FR (1) FR3034220B1 (fr)
WO (1) WO2016156702A1 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10452339B2 (en) 2015-06-05 2019-10-22 Apple Inc. Mechanism for retrieval of previously captured audio
FR3054944B1 (fr) * 2016-08-04 2018-07-20 Damien Plisson Systeme de decodage et de lecture audio

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6209041B1 (en) * 1997-04-04 2001-03-27 Microsoft Corporation Method and computer program product for reducing inter-buffer data transfers between separate processing components
US20020032753A1 (en) * 1996-07-01 2002-03-14 Benjamin H. Stoltz Mixing and splitting multiple independent audio data streams in kernel space

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212574B1 (en) * 1997-04-04 2001-04-03 Microsoft Corporation User mode proxy of kernel mode operations in a computer operating system
US6646195B1 (en) * 2000-04-12 2003-11-11 Microsoft Corporation Kernel-mode audio processing modules
US8639830B2 (en) * 2008-07-22 2014-01-28 Control4 Corporation System and method for streaming audio
US8375137B2 (en) * 2008-07-22 2013-02-12 Control4 Corporation System and method for streaming audio using a send queue

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020032753A1 (en) * 1996-07-01 2002-03-14 Benjamin H. Stoltz Mixing and splitting multiple independent audio data streams in kernel space
US6209041B1 (en) * 1997-04-04 2001-03-27 Microsoft Corporation Method and computer program product for reducing inter-buffer data transfers between separate processing components

Also Published As

Publication number Publication date
EP3274830A1 (fr) 2018-01-31
FR3034220B1 (fr) 2017-03-10
JP2018520398A (ja) 2018-07-26
US20180052786A1 (en) 2018-02-22
WO2016156702A1 (fr) 2016-10-06

Similar Documents

Publication Publication Date Title
US9525893B2 (en) Methods and systems for managing storage of media program copies within a network digital video recording system
US8327009B2 (en) Method and system for providing real-time streaming media content
US20140189735A1 (en) Streaming media buffer points reflecting user behavior and interests
KR20140105298A (ko) 클라이언트에서 캐시를 이용하여 서버의 멀티 미디어 컨텐트를 스트리밍 재생하는 방법 및 이를 위한 장치
WO2019062391A1 (fr) Procédé et dispositif d'envoi d'informations de présentateur à un utilisateur
US11416208B2 (en) Audio metadata smoothing
CN112218115B (zh) 流媒体音视频同步的控制方法、装置、计算机设备
US11481142B2 (en) Method and device for downloading resources
CN114666652A (zh) 一种用于播放视频的方法、设备、介质及程序产品
US10755707B2 (en) Selectively blacklisting audio to improve digital assistant behavior
US20190265895A1 (en) Method and Device for Improving File System Write Bandwidth through Hard Disk Track Management
FR3034220A1 (fr) Amelioration d'emission de flux multimedia
KR102700120B1 (ko) 컴퓨팅 디바이스에서 애플리케이션 업데이트를 위한 메모리 효율적인 소프트웨어 패치하기
KR20100113758A (ko) 콘텐츠 다운로드 제어 장치 및 방법
US20120308200A1 (en) Contiguous media playback
US10565248B2 (en) Time-shifted playback for over-the-top linear streaming
FR2820846A1 (fr) Dispositif et procede de gestion d'acces a un support d'enregistrement
KR20150005576A (ko) 컨텐츠 다운로드를 위한 시스템 및 방법
US11558646B2 (en) Time shift buffer via flash memory
KR101269052B1 (ko) 가상 콘텐츠 파일을 이용하는 콘텐츠 재생시스템 및 그 방법
WO2014085712A1 (fr) Système d'archive intégré
CN116932318A (zh) 用于进行数据处理和传输的方法、装置及计算机可读介质
WO2024073110A1 (fr) Réseau sur le bord pour générer des paquets de cinéma numérique dynamique
FR3093885A1 (fr) procédé de gestion du téléchargement d’images associées à des sauts d’images susceptibles d’être réalisés lors d’une lecture accélérée d’un contenu multimédia.
KR20140052699A (ko) 방송 수신 장치 및 타임 쉬프트용 파일 관리 방법

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20160930

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

ST Notification of lapse

Effective date: 20241105