Wie kann die Variabilität der Auslöseverzögerung der Android Kamera reduziert werden?

8

Bei einer bekannten periodischen Bewegung (z. B. Gehen) würde ich gerne einen Schnappschuss mit voller Auflösung am selben Punkt in der Bewegung machen (d. h. den gleichen Zeitversatz innerhalb verschiedener Perioden). Auf dem Nexus S (das derzeit unter OS 4.1.1 läuft, das gleiche gilt jedoch auch für frühere OS-Versionen) sehe ich eine so große Variabilität der Auslöseverzögerung, dass ich das Timing des Snapshots nicht genau planen kann. Hier ist ein Histogramm der Verschlusszeiten von 50 Fotografien. (Ich habe die Auslöseverzögerung mit einem System.nanoTime () kurz vor Camera.takePicture () und einem anderen System.nanoTime () zu Beginn des Auslöser-Rückrufs gemessen. Das Kameraobjektiv wurde konsequent abgedeckt, um jegliche Schwankungen aufgrund von Beleuchtung zu beseitigen.)

Was kann ich in der Anwendung tun, um die Auslöseverzögerung zu reduzieren? (In dieser Anwendung kann die mittlere Verzögerung irgendeine Dauer sein, aber die Standardabweichung muss klein sein ... viel kleiner als die Standardabweichung von 0,5 s der Verschlussverzögerungen, die im obigen Histogramm gezeigt wird.) Ich hoffe, dass jemand einen schlauen Vorschlag hat . Wenn ich keine Vorschläge bekomme, poste ich eine Feature-Anfrage im Android Bug Tracker.

UPDATE: Ich habe den Autofokus deaktiviert (indem ich den Fokus auf unendlich gestellt habe), indem ich dem Vorschlag von RichardC in Ссылка Es half, wie im folgenden Histogramm gezeigt. Irgendwelche Ideen, um die Auslöseverzögerung noch mehr zu reduzieren?

UPDATE 2: Ich habe die restlichen Auto-Parameter deaktiviert: Weißabgleich, Motivprogramm, Blitz. Das folgende Histogramm der Auslöseverzögerungszeit scheint ungefähr so ​​gut zu sein wie für ein Nexus S mit OS 4.1.1. Es wäre schön, viel weniger Variabilität in der Auslöseverzögerungszeit zu haben, vielleicht durch Angabe einer optionalen minimalen Auslöseverzögerungszeit in Camera.takePicture (), die den Verschluss verzögern würde, wenn er vor dem spezifizierten Minimum bereit wäre. Ich habe eine Feature-Anfrage an den Android Issue Tracker gesendet. Wenn Sie auch daran interessiert sind, das Feature zu bekommen, "Stern" es bei Ссылка

    
gregS 30.07.2012, 18:19
quelle

1 Antwort

0
  1. Was ist die x-Achse und was ist die y-Achse?

  2. Sie können Low-Level-Codierung (wie NDK / rendscript) anstelle von Java verwenden.

  3. Sie können möglicherweise die Einstellungen der Kamera ändern, um sie schneller zu machen.

android developer 30.07.2012 20:08
quelle

Tags und Links