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 la préparation de la sortie

Le thread FastMixer d'AudioFlinger mesure automatiquement le préchauffage de la sortie et le signale dans le résultat 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 la durée de préchauffage audio en vérifiant la durée d'une abstraction matérielle La couche (HAL) write() prend pour stabiliser.

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. Activez le son des touches en sélectionnant Paramètres > Son > Sons des touches sur l'appareil.
  3. Assurez-vous que l'audio est désactivé pendant 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 la préparation de l'entrée 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
  • Retards 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 constaterez peut-être que il faut trouver un compromis entre une faible durée de préchauffage le manque d’éclatement lors des transitions de pouvoir.