v3.6.4¶
v3.6.4 adiciona uma biblioteca de servidor de vídeo RTSP, corrige completamente os modos de imagem do OV5640 (Grayscale / RGB565 / Bayer / JPEG em todas as resoluções), dobra o FPS do sensor com um driver otimizado e corrige um lote de bugs de codificação Bayer / JPEG. image.get_pixel() em imagens Bayer e a rotação automática do sensor mudaram — leia as mudanças incompatíveis abaixo.
Destaques¶
RTSP — uma nova biblioteca de servidor de vídeo RTSP com um exemplo.
OV5640 — Grayscale / RGB565 / Bayer / JPEG agora funcionam em todas as resoluções, com uma transferência máxima de JPEG maior e readout de alta resolução dobrado.
FPS dobrado — o driver do sensor foi otimizado para ~2× da taxa de quadros.
Correções — borda/vflip de Bayer, JPEG por software (1 bpp e escala de cinza YCbCr) e problemas de estouro de buffer.
Incompatível:
image.get_pixel()agora faz o debayer de imagens Bayer e a rotação automática agora é reaplicada emsensor.reset()— veja as mudanças incompatíveis.
Novos recursos¶
RTSP — adicionada uma biblioteca
rtspe um exemplortsp_video_server.pypara streaming de vídeo RTSP.
Outras mudanças e melhorias¶
Otimizado o driver do sensor para aproximadamente o dobro da taxa de quadros, dobrado o readout de alta resolução do OV5640 para Bayer/Grayscale/JPEG, aumentado o tamanho máximo de transferência de imagem JPEG e atualizado
cascade_convert.pypara funcionar com Python 3.
Correções de bugs¶
Câmera e imagem:
Corrigidos os modos de imagem do OV5640 para que Grayscale / RGB565 / Bayer / JPEG funcionem corretamente em todas as resoluções, o vflip Bayer no OV7725 / OV7690, o erro de conversão Bayer na borda direita, a codificação JPEG por software de imagens de 1 bpp e da escala de cinza YCbCr (a subtração de −128), os dados residuais em imagens JPEG e os problemas de estouro de buffer.
Mudanças incompatíveis de API¶
Quebras de API visíveis ao usuário entre v3.6.3 e v3.6.4. Escopo: C-modules Python em modules/ e bibliotecas Python em scripts/libraries/.
Ambas as mudanças incompatíveis são mudanças de behavior (mesma API, resultados diferentes) — reavalie os scripts afetados. Cada hash de commit aponta para o seu diff no GitHub.
image.get_pixel() faz o debayer de imagens Bayer (behavior)¶
image.get_pixel() em uma imagem no formato Bayer agora faz o debayer e retorna uma tupla (r, g, b) em vez do valor Bayer bruto de canal único. Scripts que liam valores Bayer brutos via get_pixel() agora receberão tuplas RGB interpoladas e devem ser atualizados.
Commits: bf16b6a4f
Rotação automática reaplicada em sensor.reset() (behavior)¶
A rotação automática do sensor agora é (re)acionada em sensor.reset(). Scripts que chamavam sensor.reset() após configurar a orientação, esperando que o estado de rotação persistisse ou não fosse reaplicado, podem ver uma orientação diferente e devem ser reavaliados.
Commits: 0d13a214b
Lista de verificação de migração¶
Atualize o código que lia valores Bayer brutos via image.get_pixel() para esperar uma tupla (r, g, b) (a mudança do get_pixel) e reavalie a orientação do sensor em torno de sensor.reset() (a mudança da rotação automática). Todos os outros scripts funcionam sem alterações.