v3.6.4#

v3.6.4 aggiunge una libreria video-server RTSP, corregge completamente le modalità di imaging dell”OV5640 (Grayscale / RGB565 / Bayer / JPEG a ogni risoluzione), raddoppia gli FPS del sensore con un driver ottimizzato e corregge un lotto di bug di encoding Bayer / JPEG. image.get_pixel() sulle immagini Bayer e la rotazione automatica del sensore sono cambiate — leggi le modifiche incompatibili più sotto.

In evidenza#

  • RTSP — una nuova libreria video-server RTSP con un esempio.

  • OV5640 — Grayscale / RGB565 / Bayer / JPEG ora funzionano a tutte le risoluzioni, con un trasferimento JPEG massimo più grande e readout ad alta risoluzione raddoppiato.

  • FPS raddoppiati — il driver del sensore è stato ottimizzato per un frame rate ~2×.

  • Correzioni — Bayer edge/vflip, JPEG software (1-bpp e scala di grigi YCbCr) e problemi di buffer overflow.

  • Incompatibile: image.get_pixel() ora esegue il debayering delle immagini Bayer e la rotazione automatica ora viene riapplicata su sensor.reset() — vedi le modifiche incompatibili.

Nuove funzionalità#

  • RTSP — aggiunta una libreria rtsp e un esempio rtsp_video_server.py per lo streaming video RTSP.

Altre modifiche e miglioramenti#

  • Ottimizzato il driver del sensore per circa il doppio del frame rate, raddoppiato il readout ad alta risoluzione dell’OV5640 per Bayer/Grayscale/JPEG, aumentata la dimensione massima di trasferimento delle immagini JPEG e aggiornato cascade_convert.py per funzionare con Python 3.

Correzioni di bug#

Camera e imaging:

  • Corrette le modalità di imaging dell’OV5640 affinché Grayscale / RGB565 / Bayer / JPEG funzionino correttamente a tutte le risoluzioni, il vflip Bayer su OV7725 / OV7690, l’errore di conversione Bayer sul bordo destro, l’encoding JPEG software delle immagini a 1-bpp e della scala di grigi YCbCr (la sottrazione di −128), i dati in coda alle immagini JPEG e i problemi di buffer overflow.

Modifiche incompatibili delle API#

Modifiche incompatibili visibili all’utente tra la v3.6.3 e la v3.6.4. Ambito: moduli C Python in modules/ e librerie Python in scripts/libraries/.

Entrambe le modifiche incompatibili sono modifiche di behavior (stessa API, risultati diversi) — ricontrolla gli script interessati. Ogni hash di commit rimanda al suo diff su GitHub.

image.get_pixel() esegue il debayering delle immagini Bayer (behavior)#

image.get_pixel() su un’immagine in formato Bayer ora esegue il debayering e restituisce una tupla (r, g, b) invece del valore Bayer grezzo a singolo canale. Gli script che leggevano i valori Bayer grezzi tramite get_pixel() riceveranno ora tuple RGB interpolate e devono essere aggiornati.

Commit: bf16b6a4f

La rotazione automatica viene riapplicata su sensor.reset() (behavior)#

La rotazione automatica del sensore viene ora (ri)attivata su sensor.reset(). Gli script che chiamavano sensor.reset() dopo aver configurato l’orientamento, aspettandosi che lo stato di rotazione persistesse o non venisse riapplicato, potrebbero vedere un orientamento diverso e dovrebbero essere ricontrollati.

Commit: 0d13a214b

Checklist di migrazione#

Aggiorna il codice che leggeva i valori Bayer grezzi tramite image.get_pixel() affinché si aspetti una tupla (r, g, b) (la modifica a get_pixel) e ricontrolla l’orientamento del sensore attorno a sensor.reset() (la modifica alla rotazione automatica). Tutti gli altri script funzionano senza modifiche.