v3.6.4

A v3.6.4 adiciona uma biblioteca de servidor de vídeo RTSP, corrige totalmente os modos de imagem do OV5640 (Grayscale / RGB565 / Bayer / JPEG em todas as resoluções), duplica os FPS do sensor com um driver otimizado, e corrige um lote de erros de codificação Bayer / JPEG. image.get_pixel() em imagens Bayer e a rotação automática do sensor foram alteradas — leia as alterações incompatíveis abaixo.

Destaques

  • RTSP — nova biblioteca de servidor de vídeo RTSP com um exemplo.

  • OV5640 — Grayscale / RGB565 / Bayer / JPEG funcionam agora em todas as resoluções, com uma transferência JPEG máxima maior e leitura em alta resolução duplicada.

  • FPS duplicados — o driver do sensor foi otimizado para ~2× na taxa de fotogramas.

  • Correções — aresta/vflip Bayer, JPEG por software (1-bpp e YCbCr grayscale), e problemas de overflow de buffer.

  • Incompatível: image.get_pixel() passa agora a desdither imagens Bayer e a rotação automática volta a aplicar-se em sensor.reset() — consulte as alterações incompatíveis.

Novas funcionalidades

  • RTSP — adicionada uma biblioteca rtsp e um exemplo rtsp_video_server.py para transmissão de vídeo RTSP.

Outras alterações e melhorias

  • Otimizado o driver do sensor para aproximadamente o dobro da taxa de fotogramas, duplicada a leitura em alta resolução do OV5640 para Bayer/Grayscale/JPEG, aumentado o tamanho máximo de transferência de imagem JPEG, e atualizado cascade_convert.py para funcionar com Python 3.

Correções de erros

Câmara 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 aresta direita, a codificação JPEG por software de imagens 1-bpp e YCbCr grayscale (a subtração de −128), dados finais em imagens JPEG, e problemas de overflow de buffer.

Alterações incompatíveis de API

Alterações de API visíveis pelo utilizador entre a v3.6.3 e a v3.6.4. Âmbito: módulos C Python em modules/ e bibliotecas Python em scripts/libraries/.

Ambas as alterações incompatíveis são alterações de behavior (mesma API, resultados diferentes) — re-verifique os scripts afetados. Cada hash de commit liga ao respetivo diff no GitHub.

image.get_pixel() desdither imagens Bayer (behavior)

image.get_pixel() numa imagem em formato Bayer passa agora a desdither e a devolver um tuplo (r, g, b) em vez do valor bruto Bayer de canal único. Scripts que liam valores Bayer brutos via get_pixel() passarão a receber tuplos RGB interpolados e devem ser atualizados.

Commits: bf16b6a4f

Rotação automática volta a aplicar-se em sensor.reset() (behavior)

A rotação automática do sensor passa agora a ser (re-)ativada 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 se reaplicasse, podem ver uma orientação diferente e devem ser re-verificados.

Commits: 0d13a214b

Lista de verificação de migração

Atualize o código que lia valores Bayer brutos via image.get_pixel() para esperar um tuplo (r, g, b) (a alteração de get_pixel), e re-verifique a orientação do sensor em torno de sensor.reset() (a alteração de rotação automática). Todos os outros scripts funcionam sem alterações.