v3.6.4

v3.6.4 adaugă o bibliotecă de server video RTSP, corectează complet modurile de imagistică ale OV5640 (Grayscale / RGB565 / Bayer / JPEG la orice rezoluție), dublează FPS-ul senzorului cu un driver optimizat și corectează un lot de erori de codare Bayer / JPEG. image.get_pixel() pe imagini Bayer și auto-rotația senzorului s-au modificat — citiți modificările incompatibile de mai jos.

Puncte importante

  • RTSP — o nouă bibliotecă de server video RTSP cu un exemplu.

  • OV5640 — Grayscale / RGB565 / Bayer / JPEG funcționează acum la toate rezoluțiile, cu un transfer JPEG maxim mai mare și readout de rezoluție înaltă dublat.

  • FPS dublu — driverul senzorului a fost optimizat pentru o rată de cadre de ~2×.

  • Corecturi — margine/vflip Bayer, JPEG software (1-bpp și tonuri de gri YCbCr) și probleme de buffer-overflow.

  • Incompatibil: image.get_pixel() debayerizează acum imaginile Bayer, iar auto-rotația se reaplică acum la sensor.reset() — consultați modificările incompatibile.

Funcționalități noi

  • RTSP — adăugate o bibliotecă rtsp și un exemplu rtsp_video_server.py pentru streaming video RTSP.

Alte modificări și îmbunătățiri

  • A fost optimizat driverul senzorului pentru aproximativ dublarea ratei de cadre, a fost dublat readout-ul de rezoluție înaltă al OV5640 pentru Bayer/Grayscale/JPEG, a fost mărită dimensiunea maximă de transfer a imaginii JPEG și a fost actualizat cascade_convert.py pentru a funcționa cu Python 3.

Corecturi de erori

Cameră și imagistică:

  • Au fost corectate modurile de imagistică ale OV5640 astfel încât Grayscale / RGB565 / Bayer / JPEG să funcționeze corect la toate rezoluțiile, vflip-ul Bayer pe OV7725 / OV7690, eroarea de conversie Bayer de la marginea dreaptă, codarea JPEG software a imaginilor 1-bpp și a tonurilor de gri YCbCr (scăderea −128), datele reziduale de pe imaginile JPEG și problemele de buffer-overflow.

Modificări incompatibile ale API-ului

Modificări incompatibile ale API-ului vizibile pentru utilizator între v3.6.3 și v3.6.4. Domeniu: module C Python din modules/ și biblioteci Python din scripts/libraries/.

Ambele modificări incompatibile sunt modificări de behavior (același API, rezultate diferite) — reverificați scripturile afectate. Fiecare hash de commit trimite la diff-ul său de pe GitHub.

image.get_pixel() debayerizează imaginile Bayer (behavior)

image.get_pixel() pe o imagine în format Bayer debayerizează acum și returnează un tuplu (r, g, b) în loc de valoarea Bayer brută cu un singur canal. Scripturile care citeau valori Bayer brute prin get_pixel() vor primi acum tupluri RGB interpolate și trebuie actualizate.

Commit-uri: bf16b6a4f

Auto-rotația se reaplică la sensor.reset() (behavior)

Auto-rotația senzorului este acum (re)declanșată la sensor.reset(). Scripturile care apelau sensor.reset() după configurarea orientării, așteptându-se ca starea de rotație să persiste sau să nu se reaplice, pot vedea o orientare diferită și ar trebui reverificate.

Commit-uri: 0d13a214b

Lista de verificare pentru migrare

Actualizați codul care citea valori Bayer brute prin image.get_pixel() pentru a se aștepta la un tuplu (r, g, b) (modificarea get_pixel) și reverificați orientarea senzorului în jurul sensor.reset() (modificarea auto-rotației). Toate celelalte scripturi rulează nemodificate.