Alleen een succesvol videovoorbeeld is onvoldoende bewijs voor een stabiele opname van onbewerkte beelden in de beoogde gebruiksmodus. Weergavesoftware gebruikt mogelijk een lagere resolutie, een gecomprimeerde stream, overgeslagen frames of een ander bufferbeleid. Registreer de bedrijfsmodi en meetgrenzen en houd deze constant voordat u het probleem lokaliseert in de wachtrij van het apparaat, het transport, de driver of de applicatie.
Definieer de laag waar frames verloren gaan
| Locatie | Waarneembare velden | Onderscheiding om te behouden |
|---|---|---|
| Apparaat en transport | Apparaatframe-ID's, status en overdrachtsfouten | Niet gegenereerd, niet ontvangen en ongeldig zijn verschillende gebeurtenissen |
| Ontvangst van de gastheer | Aantal ontvangen, geldige lengte, formaat en fouten | Een ontvangen buffer is niet noodzakelijkerwijs een geldig beeld |
| Adapter en wachtrij | Redenen voor in de wachtrij plaatsen, uit de wachtrij halen, wachten, bezetting en weggooien | Voor opzettelijke bemonstering en onbedoeld verlies zijn aparte tellers nodig |
| Verwerking en uitvoer | Start, voltooiing, time-outs en resultaat-ID's | Een ontbrekend resultaat kan duiden op een mislukking of opzettelijk overslaan |
Wanneer opeenvolgende apparaatframevolgnummers ontbreken, controleer dan ook het opnieuw verbinden, resetten en counter wraparound (terugkeren naar het begin van het nummerbereik). Door de host gegenereerde frame-ID's beschrijven de volgorde die door de host wordt ontvangen; ze kunnen niet onafhankelijk vaststellen dat het apparaat geen frames heeft verloren.
Zorg voor een minimale reproductie met onbewerkte frames
Neem de camera, firmware, kabel, host, driver, SDK, resolutie, formaat en framesnelheid op. Begin met een programma dat onbewerkte frames ontvangt en controleert. Voeg conversie, gevolgtrekking, opslag en weergave afzonderlijk toe terwijl u fouten en bronnen vergelijkt. Registreer leveranciersvoorbeelden afzonderlijk van bedrijfsapplicaties in plaats van verschillende modi rechtstreeks te vergelijken.
Controleer buffers en eigendom
Bepaal wanneer SDK-buffers leesbaar blijven, wanneer ze moeten worden geretourneerd en of callbacks langdurig eigendom mogelijk maken. Registreer de lengte van de wachtrij en de wachttijd. Als oude frames mogen worden weggegooid, bewaar dan de redenen en tellingen voor weggooien. Als elk frame moet worden opgeslagen, ontwerp dan voor doorvoer en tegendruk. Een grotere wachtrij alleen biedt geen oplossing.
Timing en herstel
Definieer klokbronnen en maak onderscheid tussen belichtings-, ontvangst-, wachtrij- en voltooiingstijden. Voor opnieuw verbinden specificeert u het opnieuw toepassen van parameters, het wissen van de buffer en het opnieuw starten van de reeks. Zonder apparaattiming of een onafhankelijke referentie zorgen hosttijdstempels niet voor belichtingssynchronisatie of volledige end-to-end-respons.
Test de normale werking en het herstel onder overeengekomen voorwaarden, gelijktijdigheid en duur. Lever configuratie, tellerdefinities, onbewerkte logboeken en reproductiestappen. Gerelateerde diensten: ontwikkeling van beeldopname En SDK's voor vision-apparaten.