Rozgrzewka dźwięku

„Rozgrzewka audio” to czas potrzebny na to, by obwód wzmacniacza dźwięku w urządzeniu być w pełni naładowane i osiągnąć normalny stan działania. Główni współtwórcy czas na rozgrzewkę audio to zarządzanie zasilaniem logika ustabilizowania obwodem dróg.

W tym dokumencie opisujemy, jak mierzyć czas nagrzewania się dźwięku i jak można go skrócić czas na rozgrzewkę.

Pomiar rozgrzewki danych wyjściowych

Wątek FastMixer AudioFlinger automatycznie mierzy rozgrzewkę i uwzględnia je w danych wyjściowych polecenia dumpsys media.audio_flinger. Na rozgrzewkę FastMixer wywołuje write() aż do uzyskania oczekiwanej wartości między dwoma wartościami write(). FastMixer określa rozgrzewkę audio, sprawdzając, jak długo trwa abstrakcja sprzętowa Warstwa (HAL) write() potrzebuje stabilizacji.

Aby zmierzyć rozgrzewkę audio, wykonaj te czynności w przypadku wbudowanego głośnika i słuchawek przewodowych i w różnych momentach po uruchomieniu. Czasy nagrzewania są zwykle inne dla każdego urządzenia wyjściowego i zaraz po uruchomieniu urządzenia:

  1. Sprawdź, czy narzędzie FastMixer jest włączone.
  2. Włącz dźwięki przy dotknięciu, wybierając Ustawienia > Dźwięk > Dźwięki przy dotknięciu na urządzeniu.
  3. Upewnij się, że dźwięk był wyłączony przez co najmniej 3 sekundy. Czas trwania co najmniej 5 sekund jest lepszy, ponieważ sam sprzęt może mieć własną logikę zasilania, która przekracza limit 3 sekund, jaką dysponuje AudioFlinger.
  4. Naciśnij Home. Powinno być słychać dźwięk kliknięcia.
  5. Uruchom następujące polecenie, aby otrzymać zmierzone dane rozruchowe:
    adb shell dumpsys media.audio_flinger | grep measuredWarmup
    

    Zostaną wyświetlone następujące dane wyjściowe:

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

    Wartość w polu measuredWarmup=X to X milisekund zajęło wykonanie pierwszego zestawu HAL write().

    warmupCycles=X to liczba wysłanych żądań zapisu HAL aż czas wykonania write() będzie zgodny z oczekiwaniami.

  6. Wykonaj pięć pomiarów i zapisz je wszystkie oraz średnią. Jeśli nie są mniej więcej takie same, wtedy pomiar jest prawdopodobnie nieprawidłowy. Jeśli na przykład nie będziesz czekać wystarczająco długo po wyłączeniu dźwięku, wartość czasu na rozgrzewkę jest krótsza niż średnia.

Pomiar rozgrzewki danych wejściowych

Obecnie nie są dostępne żadne narzędzia do pomiaru rozgrzewki wejściowego sygnału dźwiękowego. Jednak czas rozgrzewania danych wejściowych można oszacować, obserwując czas wymagany przez startRecording() zwrócić.

Skrócenie czasu na rozgrzewkę

Czas na rozgrzewkę można zazwyczaj skrócić na podstawie:

  • Dobry projekt obwodów
  • Dokładne opóźnienia w sterowniku urządzenia jądra
  • Przeprowadzanie niezależnych operacji rozgrzewania równocześnie, a nie sekwencyjnie
  • Pozostawienie włączonego obwodów i ponowne konfigurowanie zegarów (zwiększa zużycie energii podczas bezczynności)
  • Obliczone parametry w pamięci podręcznej

Uważaj jednak na nadmierną optymalizację. Może się okazać, że muszą znaleźć kompromis między krótkim czasem rozgrzewki i brak skoków w przejściach zasilających.