Перейти до основного вмісту

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. API H264RtpUdpFromRaw(...) для 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.265 VideoSender об’єднується перед декодуванням без копіювання декодованого кадру в ЦП. Джерело, декодер і відправник повинні використовувати один і той самий кодек; у разі невідповідності пара залишається в окремих сегментах конвеєра. Встановіть для цього з’єднання значення 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.02.1.3.0Neat Library 0.4.0
0.3.02.1.2.3Neat Library 0.3.0
0.2.22.1.2.2Neat Library 0.2.2
0.2.12.1.2.1Neat Library 0.2.1
0.2.02.1.2Neat Library 0.2.0
0.1.02.0.0Neat Library 0.1.0