Préchauffage audio

Il s'agit du temps nécessaire pour que le circuit de l'amplificateur audio de votre appareil est complètement alimentée et à son état de fonctionnement normal. Les principaux contributeurs à la durée de préchauffage audio sont la gestion de l'alimentation logique pour stabiliser le circuit.

Ce document explique comment mesurer le temps de préchauffage de l'audio et comment le réduire de préparation.

Mesurer le préchauffage des sorties

Le thread FastMixer d'AudioFlinger mesure automatiquement le préchauffage de la sortie et le signale dans la sortie de la commande dumpsys media.audio_flinger. Au moment de l'échauffement, FastMixer appelle write() jusqu'à ce que l'intervalle de temps entre deux write() corresponde à la valeur attendue. FastMixer détermine le préchauffage audio en vérifiant le temps nécessaire à la stabilisation d'une write() HAL (Hardware Abstraction Layer).

Pour mesurer le préchauffage audio, procédez comme suit pour le haut-parleur intégré et le casque filaire et à différents moments après le démarrage. Les temps de préchauffage sont généralement différents pour chaque périphérique de sortie et juste après avoir démarré l'appareil:

  1. Assurez-vous que FastMixer est activé.
  2. Pour activer les sons tactiles, sélectionnez Paramètres > Son > Sons tactiles sur l'appareil.
  3. Assurez-vous que le son est coupé depuis au moins trois secondes. Cinq secondes ou plus sont mieux, car le matériel lui-même peut avoir sa propre logique d'alimentation au-delà des trois secondes d'AudioFlinger.
  4. Appuyez sur "Accueil". Vous devriez entendre un clic.
  5. Exécutez la commande suivante pour recevoir la préparation mesurée:
    adb shell dumpsys media.audio_flinger | grep measuredWarmup
    

    Le résultat doit ressembler à ceci :

    sampleRate=44100 frameCount=256 measuredWarmup=X ms, warmupCycles=X
    

    measuredWarmup=X correspond à X millisecondes le premier ensemble de write() HAL est nécessaire.

    warmupCycles=X correspond au nombre de requêtes d'écriture HAL nécessaires jusqu'à ce que l'heure d'exécution de write() corresponde à ce qui est attendu.

  6. Prenez cinq mesures et enregistrez-les toutes, ainsi que la moyenne. S'ils ne sont pas tous à peu près identiques, il est probable qu'une mesure soit incorrecte. Par exemple, si vous n'attendez pas assez longtemps après que l'audio a été désactivé, vous constaterez un temps de préchauffage inférieur à la valeur moyenne.

Mesurer la préparation des entrées

Aucun outil n'est actuellement fourni pour mesurer le préchauffage de la saisie audio. Cependant, le temps de préchauffage des entrées peut être estimé en observant le temps nécessaire pour startRecording() à renvoyer.

Réduire le temps de préchauffage

La durée de préchauffage peut généralement être réduite en combinant les éléments suivants:

  • Un circuit bien conçu
  • Délais temporels précis dans le pilote de périphérique du noyau
  • Effectuer des opérations de préchauffage indépendantes simultanément plutôt que de manière séquentielle
  • Laisser les circuits allumés ou ne pas reconfigurer les horloges (augmenter la consommation d'énergie en cas d'inactivité)
  • Mettre en cache les paramètres calculés

Toutefois, soyez prudent en cas d'optimisation excessive. Vous devrez peut-être trouver un compromis entre un temps de préchauffage court et l'absence de clignotement lors des transitions d'alimentation.