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 край/vflip, программный JPEG (1-bpp и YCbCr-оттенки серого) и проблемы переполнения буфера.
Несовместимое изменение:
image.get_pixel()теперь дебайеризует изображения 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-оттенков серого (вычитание −128), хвостовые данные в JPEG-изображениях и проблемы переполнения буфера.
Несовместимые изменения API¶
Видимые пользователю изменения API между v3.6.3 и v3.6.4. Область: Python-модули на C в modules/ и библиотеки Python в scripts/libraries/.
Оба несовместимых изменения относятся к типу behavior (тот же API, другие результаты) — перепроверьте затронутые скрипты. Каждый хеш коммита ссылается на свой diff на GitHub.
image.get_pixel() дебайеризует изображения Bayer (behavior)¶
image.get_pixel() на изображении в формате Bayer теперь дебайеризует его и возвращает кортеж (r, g, b) вместо необработанного одноканального значения Bayer. Скрипты, читавшие необработанные значения Bayer через get_pixel(), теперь будут получать интерполированные RGB-кортежи и должны быть обновлены.
Коммиты: bf16b6a4f
Автоповорот повторно применяется при sensor.reset() (behavior)¶
Автоповорот датчика теперь (повторно) запускается при sensor.reset(). Скрипты, вызывавшие sensor.reset() после настройки ориентации и ожидавшие, что состояние поворота сохранится или не будет применено повторно, могут увидеть другую ориентацию и должны быть перепроверены.
Коммиты: 0d13a214b
Контрольный список миграции¶
Обновите код, читавший необработанные значения Bayer через image.get_pixel(), чтобы он ожидал кортеж (r, g, b) (изменение get_pixel), и перепроверьте ориентацию датчика вокруг sensor.reset() (изменение автоповорота). Все остальные скрипты работают без изменений.