v3.6.4

v3.6.4 新增了 RTSP 視訊伺服器函式庫,徹底修正了 OV5640 的成像模式(在所有解析度下的 Grayscale / RGB565 / Bayer / JPEG),透過最佳化的驅動程式將感測器 FPS 翻倍,並修正了一批 Bayer / JPEG 編碼錯誤。Bayer 影像上的 image.get_pixel() 與感測器自動旋轉有所變更 — 請閱讀下方的破壞性變更。

重點摘要

  • RTSP — 全新的 RTSP 視訊伺服器函式庫,並附有範例。

  • OV5640 — Grayscale / RGB565 / Bayer / JPEG 現在可在所有解析度下運作,並提供更大的最大 JPEG 傳輸量與翻倍的高解析度讀出。

  • FPS 翻倍 — 感測器驅動程式已最佳化,達到約 2 倍的影格率。

  • 修正 — Bayer 邊緣/垂直翻轉、軟體 JPEG(1-bpp 與 YCbCr 灰階),以及緩衝區溢位問題。

  • 破壞性變更: image.get_pixel() 現在會對 Bayer 影像進行去馬賽克(debayer),且自動旋轉現在會在 sensor.reset() 時重新套用 — 請參閱破壞性變更。

新功能

  • RTSP — 新增 rtsp 函式庫與 rtsp_video_server.py 範例,用於 RTSP 視訊串流。

其他變更與改進

  • 將感測器驅動程式最佳化以達到約兩倍的影格率,將 OV5640 的高解析度讀出(Bayer/Grayscale/JPEG)翻倍,增加最大 JPEG 影像傳輸大小,並更新 cascade_convert.py 使其可在 Python 3 上運作。

錯誤修正

相機與影像處理:

  • 修正了 OV5640 的成像模式,使 Grayscale / RGB565 / Bayer / JPEG 在所有解析度下都能正確運作、OV7725 / OV7690 上的 Bayer 垂直翻轉、右緣 Bayer 轉換錯誤、1-bpp 影像與 YCbCr 灰階的軟體 JPEG 編碼(−128 減法)、JPEG 影像上的尾隨資料,以及緩衝區溢位問題。

破壞性 API 變更

v3.6.3 與 v3.6.4 之間使用者可見的 API 破壞性變更。範圍:modules/ 中的 Python C 模組與 scripts/libraries/ 中的 Python 函式庫。

兩項破壞性變更皆為 behavior 變更(相同 API,不同結果)— 請重新檢查受影響的指令碼。每個 commit 雜湊值皆連結至其在 GitHub 上的 diff。

image.get_pixel() 會對 Bayer 影像進行去馬賽克 (behavior)

對 Bayer 格式影像呼叫 image.get_pixel() 現在會進行去馬賽克並回傳 (r, g, b) 元組,而非原始的單通道 Bayer 值。原本透過 get_pixel() 讀取原始 Bayer 值的指令碼現在會收到內插後的 RGB 元組,必須加以更新。

Commits: bf16b6a4f

自動旋轉會在 sensor.reset() 時重新套用 (behavior)

感測器的自動旋轉現在會在 sensor.reset() 時(重新)觸發。在設定方向後才呼叫 sensor.reset()、並預期旋轉狀態會持續存在或不會重新套用的指令碼,可能會看到不同的方向,應重新檢查。

Commits: 0d13a214b

遷移檢查清單

更新原本透過 image.get_pixel() 讀取原始 Bayer 值的程式碼,使其改為預期 (r, g, b) 元組(get_pixel 變更),並重新檢查 sensor.reset() 前後的感測器方向(自動旋轉變更)。所有其他指令碼皆可不變運作。