v3.6.4#

v3.6.4 додає бібліотеку RTSP відео-сервера, повністю виправляє режими зображення OV5640 (Grayscale / RGB565 / Bayer / JPEG при будь-якій роздільній здатності), подвоює FPS датчика за рахунок оптимізованого драйвера, та виправляє пакет помилок кодування Bayer / JPEG. image.get_pixel() на зображеннях Bayer та автообертання датчика змінено — ознайомтеся зі змінами, що порушують зворотну сумісність.

Основні можливості#

  • RTSP — нова бібліотека RTSP відео-сервера з прикладом.

  • OV5640 — Grayscale / RGB565 / Bayer / JPEG тепер працюють при всіх роздільних здатностях, з більшим максимальним розміром передачі JPEG та подвоєним зчитуванням у високій роздільній здатності.

  • Подвоєний FPS — драйвер датчика оптимізовано для ~2× частоти кадрів.

  • Виправлення — Bayer edge/vflip, програмний JPEG (1-bpp та YCbCr grayscale), та проблеми переповнення буфера.

  • Несумісні зміни: image.get_pixel() тепер деbayerує зображення Bayer, а автообертання тепер повторно застосовується при sensor.reset() — дивіться зміни, що порушують сумісність.

Нові можливості#

  • RTSP — додано бібліотеку rtsp та приклад rtsp_video_server.py для RTSP відеотрансляції.

Інші зміни та вдосконалення#

  • Оптимізовано драйвер датчика приблизно для подвоєння частоти кадрів, подвоєно зчитування OV5640 у високій роздільній здатності для Bayer/Grayscale/JPEG, збільшено максимальний розмір передачі JPEG, та оновлено cascade_convert.py для роботи з Python 3.

Виправлення помилок#

Камера та обробка зображень:

  • Виправлено режими зображення OV5640, щоб Grayscale / RGB565 / Bayer / JPEG коректно працювали при всіх роздільних здатностях, Bayer vflip на OV7725 / OV7690, помилку перетворення Bayer на правому краї, програмне JPEG-кодування 1-bpp зображень та YCbCr grayscale (віднімання −128), кінцеві дані на JPEG-зображеннях, та проблеми переповнення буфера.

Несумісні зміни API#

Зміни API, помітні для користувача, між v3.6.3 та v3.6.4. Область застосування: C-модулі Python у modules/ та бібліотеки Python у scripts/libraries/.

Обидві несумісні зміни є поведінковими (той самий API, різні результати) — перевірте відповідні скрипти. Кожен хеш коміту веде до його diff на GitHub.

image.get_pixel() деbayerує зображення Bayer (поведінковий)#

image.get_pixel() на зображенні у форматі Bayer тепер деbayerує та повертає кортеж (r, g, b) замість необробленого однокомпонентного значення Bayer. Скрипти, що зчитували необроблені значення Bayer через get_pixel(), тепер отримуватимуть інтерпольовані RGB-кортежі та мають бути оновлені.

Коміти: bf16b6a4f

Автообертання повторно застосовується при sensor.reset() (поведінковий)#

Автообертання датчика тепер (повторно) запускається при sensor.reset(). Скрипти, що викликали sensor.reset() після налаштування орієнтації, очікуючи збереження стану обертання або його незастосування, можуть отримати іншу орієнтацію та мають бути перевірені.

Коміти: 0d13a214b

Контрольний список міграції#

Оновіть код, що зчитував необроблені значення Bayer через image.get_pixel(), для очікування кортежу (r, g, b) (зміна get_pixel), та перевірте орієнтацію датчика навколо sensor.reset() (зміна автообертання). Усі інші скрипти працюють без змін.