Neat Library Примітки до випуску
Примітки до випуску для SiMa.ai Neat Library.
Не опубліковано
Зміни, що порушують сумісність
- ABI для C++ Neat Library тепер має версію 4, а ім’я спільної бібліотеки (SONAME) —
libsima_neat.so.4. Тензори тепер містять семантичні метадані для вилучення ознак, загальнодоступні типи запитів/результатів GenAI містять метадані для завдання ASR, мови та зондування, аGraphLinkOptionsмістить обмеження для обробки в реальному часі. Перезберіть програми та плагіни C++ і встановіть відповідні пакети для середовища виконання та розробки. - Тепер для створення графа в реальному часі використовуються
GraphLinkOptions,Graph::connect()таGraph::build(). API для попереднього переглядуRealtimeGraphLinkOptions,connect_realtime(),build_fused_realtime_sources()/build_fused_realtime_source()таRealtimeEveryFrameByStreamбуло видалено. Збережені графи, що містятьrealtime_every_frame_by_stream, необхідно відтворити з використанням підтримуваної політики; див. З’єднайте фрагменти в реальному часі..
Зміни під час роботи (в середовищі виконання)
-
Підтримка апаратного декодування H.265/HEVC реалізована за допомогою
SimaDecodeіRtspDecodedInputреалізовано мовами C++ і Python.RtspEncodedInputнадає розпарсені блоки доступу H.265 без їх декодування. Вхідні дані H.265 повинні використовувати профіль HEVC Main, 8 біт, 4:2:0. Селектори кодеків приймають якH265, так іHEVC; селектори H.264 також приймаютьAVC.FormatTag/pyneat.Formatприймають однакові псевдоніми на межах кодованого графа і все ще с еріалізуються якH264іH265. -
VideoSenderпередає кодоване відео у форматах H.264 або H.265 як RTP через UDP без повторне кодування за допомогоюVideoSenderOptions::Passthrough(codec)/pyneat.VideoSenderOptions.passthrough(codec). H.265 за замовчуванням використовує тип корисного навантаження RTP 98; H.264 зберігає значення 96.H264RtpUdpFromEncoded()застарілий і замінений наPassthrough(RtspCodec::H264). -
Необроблений вхідний сигнал
VideoSenderтепер автоматично пропускає етап перетворення формату для підтверджено використання NV12 у системі або в пам’яті SiMaAI, коли встановлений кодек заявляє про це.input-layout-aware=true. Інші необроблені формати, невідомі формати/розміщення пам’яті та вхідні дані без надійного контракту щодо формату зберігають існуюче перетворення у формат NV12. APIH264RtpUdpFromRaw(...)для C++ і Python залишаються без змін. -
Вхідні дані RTSP визначають тип корисного навантаження RTP, використовуючи єдиний кодек, який не залежить від конкретного кодека. Поле
payload_typeуRtspEncodedInputOptionsтаRtspDecodedInputOptions:-1обирає кодек за замовчуванням (96 для H.264/H.265, 26 для MJPEG),0вимикає фільтрацію корисного навантаження, а додатне значення обирає конкретне корисне навантаження.RtspEncodedInputOptions::h264_payload_typeтаmjpeg_payload_typeзастаріли, і під час виконання програми буде виведено попередження один раз, коли вони змінюють визначене корисне навантаження. -
Звичайний
build()тепер автоматично вибирає об’єднане зниження для відповідних потоків, що підтримують багатоканальний вхід. Безпосередньо закодована гілка H.264 або H.265VideoSenderоб’єднується перед декодуванням без копіювання декодованого кадру в ЦП. Джерело, декодер і відправник повинні використовувати один і той самий кодек; у разі невідповідності пара залишається в окремих сегментах конвеєра. Встановіть для цього з’єднання значенняRealtimeLatestByStreamдля забезпечення перегляду в реальному часі, щоб повільний приймач відео замінював застарілі блоки доступу замість того, щоб створювати додаткове навантаження на гілку декодера. -
Додано документацію та навчальні матеріали для C++ і Python щодо
CameraInput, які охоплюють графи, що належать вихідному коду MIPI/libcamera, зокрема адаптивну передач у пам’яті SiMaAI перед маршрутизацією моделей CVU/MLA. -
MetadataSenderтепер обмежує розмір UDP-пакетів до 1200 байтів, розбиваючи більші пакети на частини. Повідомлення у форматі JSON. Оновіть Insight до версії, яка передбачає повторне складання фрагментів метаданих перед або одночасно з цією версією Neat Library; старіші версії Insight продовжують підтримувати незмінені корисні дані JSON обсягом до 1200 байтів.
Побудова та перевірка графа.
- Тепер при побудові графа один об’єкт Node розглядається як одна логічна вершина. Повторне вставлення та
спроби імпортувати фрагменти, що перекриваються, завершуються невдало, але повторні виклики
connect()використовують наявний вузол для розгалуження. - Тепер кожен створений сегмент конвеєра під час
build()перевіряє остаточні назви GStreamer; явний викликvalidate()не потрібен. У разі дублювання або відсутності імен виник ає помилка, і замість створення укороченого конвеєра з’являється повідомленняmisconfig.pipeline_shape. - Тепер спеціальні фрагменти відображають усі явні імена та одночасно трансформують іменовані посилання на блоки. оголошення. У разі виявлення конфліктів імен, система не перейменовує їх автоматично, а відхиляє.
| Випуск | Сумісний з Neat SDK. | Примітки |
|---|---|---|
| 0.4.0 | 2.1.3.0 | Neat Library 0.4.0 |
| 0.3.0 | 2.1.2.3 | Neat Library 0.3.0 |
| 0.2.2 | 2.1.2.2 | Neat Library 0.2.2 |
| 0.2.1 | 2.1.2.1 | Neat Library 0.2.1 |
| 0.2.0 | 2.1.2 | Neat Library 0.2.0 |
| 0.1.0 | 2.0.0 | Neat Library 0.1.0 |