v4.5.4

v4.5.4 เพิ่มการรองรับเซนเซอร์ PAG7920 และ YUV422 hardware JPEG บน STM32 พร้อม subsampling ที่ควบคุมได้, เพิ่มความเร็วการเข้ารหัส JPEG และ morphology และแก้ไขไลบรารี MQTT, RTSP และ BLE

Highlights

  • รองรับ image sensor PixArt PAG7920

  • YUV422 hardware JPEG บน STM32 พร้อม JPEG subsampling ที่ควบคุมได้

  • เร็วขึ้น สำหรับ JPEG YUV sub-sampling และ erode/dilate ที่เร่งด้วย SIMD

  • Breaking: การแยกวิเคราะห์อาร์กิวเมนต์ของ erode()/dilate()/binary() ได้รับการทำให้เป็นมาตรฐาน (ดูการเปลี่ยนแปลง breaking)

New features

  • STM32 YUV422 hardware JPEG — ตัวเข้ารหัส JPEG ด้วยฮาร์ดแวร์ตอนนี้รับอินพุต YUV422

  • การควบคุม JPEG subsampling — ตัวเลือกใหม่สำหรับควบคุม JPEG chroma subsampling

  • PAG7920 — เพิ่มการรองรับ image sensor PixArt PAG7920

Other changes and improvements

  • UV sub-sampling ของ JPEG YUV422/420 เร็วขึ้นและ erode() / dilate() ที่เร่งด้วย SIMD

  • ucryptolib (crypto/TLS) เปิดใช้งานใหม่บนพอร์ต i.MX RT (mimxrt)

  • ไลบรารี pid.py ตอนนี้ใช้ ticks_ms() แทน millis() ที่เลิกใช้แล้ว

Bug fixes

ไลบรารี:

  • แก้ไขพารามิเตอร์ MQTT SSL; แก้ไขไลบรารี RTSP ให้ทำงานกับ VLC

ระบบและเซนเซอร์:

  • แก้ไขอัตราบอด BLE ของ OpenMV RT1060 และการจัดการ CS ใน SPI slave-mode บน STM32 (พิน CS ไม่ถูกขับเคลื่อนในโหมด slave อีกต่อไป)

  • แก้ไข crash แบบ out-of-bounds ในการวาด set_pixel() แบบ anti-aliased

Hardware and board support

  • Image sensor PixArt PAG7920

  • Arduino GIGA — เปิดใช้งานพิน RESET/PEN ของกล้องและการหมุน GC2145

Breaking API changes

การเปลี่ยน API ที่มองเห็นได้ระหว่าง v4.5.3 และ v4.5.4

การเปลี่ยนแปลง breaking เพียงอย่างเดียวคือการแยกวิเคราะห์อาร์กิวเมนต์ที่เป็นมาตรฐานสำหรับเมธอด binary morphology

การแยกวิเคราะห์อาร์กิวเมนต์ของ erode / dilate / binary (behavior)

Image.erode(), Image.dilate() และ Image.binary() ถูกย้ายไปใช้ argument parser mp_arg_parse_all ที่เป็นมาตรฐาน การเรียกที่พึ่งพาลำดับ positional/keyword เดิมอาจต้องปรับ

Commits: f52360271, e63fbc7c2

Migration checklist

ตรวจสอบลำดับอาร์กิวเมนต์ในการเรียก erode() / dilate() / binary() อีกครั้ง (การเปลี่ยนแปลง morphology parsing) สคริปต์อื่นทั้งหมดทำงานได้โดยไม่ต้องเปลี่ยนแปลง