v3.6.4

v3.6.4 เพิ่มไลบรารี RTSP video-server, แก้ไขโหมดการถ่ายภาพ OV5640 อย่างสมบูรณ์ (Grayscale / RGB565 / Bayer / JPEG ในทุกความละเอียด), เพิ่ม FPS เซนเซอร์เป็นสองเท่าด้วยไดรเวอร์ที่ปรับปรุง, และแก้ไขบัก Bayer / JPEG encode จำนวนมาก image.get_pixel() บนภาพ Bayer และ sensor auto-rotation เปลี่ยนแปลง — อ่านการเปลี่ยนแปลงที่ส่งผลกระทบด้านล่าง

ไฮไลต์

  • RTSP — ไลบรารี RTSP video-server ใหม่พร้อมตัวอย่าง

  • OV5640 — Grayscale / RGB565 / Bayer / JPEG ตอนนี้ทำงานได้ในทุกความละเอียด พร้อม JPEG transfer ขนาดใหญ่ขึ้นและ readout ความละเอียดสูงเป็นสองเท่า

  • FPS เป็นสองเท่า — ไดรเวอร์ sensor ได้รับการปรับปรุงเพื่อ frame rate ~2 เท่า

  • การแก้ไข — ขอบ Bayer/vflip, software JPEG (1-bpp และ YCbCr grayscale), และปัญหา buffer overflow

  • การเปลี่ยนแปลงที่ส่งผลกระทบ: image.get_pixel() ตอนนี้ทำ debayer กับภาพ Bayer และ auto-rotation ตอนนี้ถูก re-apply เมื่อ sensor.reset() — ดูการเปลี่ยนแปลงที่ส่งผลกระทบ

ฟีเจอร์ใหม่

  • RTSP — เพิ่มไลบรารี rtsp และตัวอย่าง rtsp_video_server.py สำหรับ RTSP video streaming

การเปลี่ยนแปลงและการปรับปรุงอื่น ๆ

  • ปรับปรุงไดรเวอร์ sensor เพื่อ frame rate ประมาณสองเท่า, เพิ่ม OV5640 high-resolution readout สำหรับ Bayer/Grayscale/JPEG เป็นสองเท่า, เพิ่มขนาด JPEG image transfer สูงสุด, และอัปเดต cascade_convert.py ให้ทำงานกับ Python 3

การแก้ไขบัก

กล้องและการประมวลผลภาพ:

  • แก้ไขโหมดการถ่ายภาพ OV5640 เพื่อให้ Grayscale / RGB565 / Bayer / JPEG ทำงานถูกต้องในทุกความละเอียด, Bayer vflip บน OV7725 / OV7690, ข้อผิดพลาดการแปลง Bayer ที่ขอบขวา, การ encode software JPEG ของภาพ 1-bpp และ YCbCr grayscale (การลบ −128), ข้อมูลท้ายบนภาพ JPEG, และปัญหา buffer overflow

การเปลี่ยนแปลง API ที่ส่งผลกระทบ

การเปลี่ยนแปลง API ที่มองเห็นได้ระหว่าง v3.6.3 และ v3.6.4 ขอบเขต: Python C-modules ใน modules/ และไลบรารี Python ใน scripts/libraries/

การเปลี่ยนแปลงที่ส่งผลกระทบทั้งสองอย่างเป็นการเปลี่ยนแปลง behavior (API เหมือนเดิม ผลลัพธ์ต่างกัน) — ตรวจสอบสคริปต์ที่ได้รับผลกระทบอีกครั้ง แต่ละ commit hash เชื่อมต่อไปยัง diff บน GitHub

image.get_pixel() ทำ debayer กับภาพ Bayer (behavior)

image.get_pixel() บนภาพรูปแบบ Bayer ตอนนี้ทำ debayer และคืนค่า tuple (r, g, b) แทนค่า Bayer single-channel ดิบ สคริปต์ที่อ่านค่า Bayer ดิบผ่าน get_pixel() จะได้รับ RGB tuple ที่ผ่าน interpolation แล้วและต้องได้รับการอัปเดต

Commits: bf16b6a4f

Auto-rotation ถูก re-apply เมื่อ sensor.reset() (behavior)

Sensor auto-rotation ตอนนี้ถูก (re-)trigger เมื่อ sensor.reset() สคริปต์ที่เรียก sensor.reset() หลังจากกำหนดค่า orientation โดยคาดว่าสถานะ rotation จะคงอยู่หรือไม่ถูก re-apply อาจเห็น orientation ที่แตกต่างกันและควรตรวจสอบอีกครั้ง

Commits: 0d13a214b

รายการตรวจสอบการย้าย

อัปเดตโค้ดที่อ่านค่า Bayer ดิบผ่าน image.get_pixel() ให้คาดหวัง tuple (r, g, b) (การเปลี่ยนแปลง get_pixel), และตรวจสอบ sensor orientation รอบ sensor.reset() อีกครั้ง (การเปลี่ยนแปลง auto-rotation) สคริปต์อื่น ๆ ทั้งหมดทำงานได้โดยไม่มีการเปลี่ยนแปลง