v3.6.4

v3.6.4 fügt eine RTSP-Videoserver-Bibliothek hinzu, behebt die OV5640-Bildmodi vollständig (Graustufen / RGB565 / Bayer / JPEG bei jeder Auflösung), verdoppelt die Sensor-FPS mit einem optimierten Treiber und behebt eine Reihe von Bayer- / JPEG-Encode-Fehlern. image.get_pixel() auf Bayer-Bildern und die automatische Sensor-Rotation wurden geändert — lies die nachfolgenden inkompatiblen Änderungen.

Highlights

  • RTSP — eine neue RTSP-Videoserver-Bibliothek mit einem Beispiel.

  • OV5640 — Graustufen / RGB565 / Bayer / JPEG funktionieren nun bei allen Auflösungen, mit einer größeren maximalen JPEG-Übertragung und verdoppeltem Hochauflösungs-Readout.

  • Doppelte FPS — der Sensortreiber wurde für ~2× Bildrate optimiert.

  • Fixes — Bayer-Edge/vflip, Software-JPEG (1-bpp und YCbCr-Graustufen) und Pufferüberlauf-Probleme.

  • Inkompatibel: image.get_pixel() debayert nun Bayer-Bilder und die automatische Rotation wird nun bei sensor.reset() erneut angewendet — siehe die inkompatiblen Änderungen.

Neue Funktionen

  • RTSP — eine rtsp-Bibliothek und ein rtsp_video_server.py-Beispiel für RTSP-Video-Streaming wurden hinzugefügt.

Weitere Änderungen und Verbesserungen

  • Der Sensortreiber wurde für etwa doppelte Bildrate optimiert, das OV5640-Hochauflösungs-Readout für Bayer/Graustufen/JPEG wurde verdoppelt, die maximale JPEG-Bildübertragungsgröße wurde erhöht und cascade_convert.py wurde aktualisiert, damit es mit Python 3 funktioniert.

Fehlerbehebungen

Kamera und Bildverarbeitung:

  • Behoben wurden: die OV5640-Bildmodi, sodass Graustufen / RGB565 / Bayer / JPEG bei allen Auflösungen korrekt funktionieren, der Bayer-vflip auf OV7725 / OV7690, der Bayer-Konvertierungsfehler an der rechten Kante, die Software-JPEG-Kodierung von 1-bpp-Bildern und YCbCr-Graustufen (die −128-Subtraktion), nachlaufende Daten bei JPEG-Bildern und Pufferüberlauf-Probleme.

Inkompatible API-Änderungen

Für Benutzer sichtbare API-Brüche zwischen v3.6.3 und v3.6.4. Umfang: Python-C-Module in modules/ und Python-Bibliotheken in scripts/libraries/.

Beide inkompatiblen Änderungen sind behavior-Änderungen (gleiche API, andere Ergebnisse) — betroffene Skripte erneut prüfen. Jeder Commit-Hash verlinkt auf seinen Diff auf GitHub.

image.get_pixel() debayert Bayer-Bilder (behavior)

image.get_pixel() auf einem Bild im Bayer-Format debayert nun und gibt ein (r, g, b)-Tupel anstelle des rohen Einzelkanal-Bayer-Werts zurück. Skripte, die rohe Bayer-Werte über get_pixel() ausgelesen haben, erhalten nun interpolierte RGB-Tupel und müssen aktualisiert werden.

Commits: bf16b6a4f

Automatische Rotation wird bei sensor.reset() erneut angewendet (behavior)

Die automatische Sensor-Rotation wird nun bei sensor.reset() (erneut) ausgelöst. Skripte, die sensor.reset() nach dem Konfigurieren der Ausrichtung aufgerufen haben und erwartet haben, dass der Rotationszustand erhalten bleibt oder nicht erneut angewendet wird, sehen möglicherweise eine andere Ausrichtung und sollten erneut geprüft werden.

Commits: 0d13a214b

Migrations-Checkliste

Aktualisiere Code, der rohe Bayer-Werte über image.get_pixel() ausgelesen hat, sodass er ein (r, g, b)-Tupel erwartet (die get_pixel-Änderung), und prüfe die Sensor-Ausrichtung rund um sensor.reset() erneut (die Änderung der automatischen Rotation). Alle anderen Skripte laufen unverändert.