Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dwie nowe kontrolki Cyfrowego Okna zapewniają mechanizm cyfrowego przesunięcia, pochylenia i przybliżenia dla kamer, które oferują wysokorozdzielcze natywne czujniki, dzięki czemu aplikacja może automatycznie skupić się selektywnie na obiektach, takich jak twarze lub tablice do pisania w sali konferencyjnej, zachowując optymalną wierność czujnika kamery.
Dzięki temu aplikacje mogą uzyskiwać bardziej szczegółowe obrazy takich obiektów bez konieczności zmieniania rozdzielczości multimediów. Kontrolki MSXU Cyfrowego Okna są zaprojektowane do kontrolowania całego czujnika kamery, a nie poszczególnych kanałów ani punktów końcowych.
Sterowanie Oknem Cyfrowym MSXU_CONTROL_DIGITALWINDOW
Kontrolka Okna Cyfrowego MSXU określa kąt widzenia i powiększenie kamery podczas transmisji strumieniowej. Ta kontrolka jest potencjalnym zamiennikiem funkcji Pan, Tilt i Zoom. Ta kontrola ma zastosowanie tylko wtedy, gdy kamera aktywnie transmituje strumień wideo.
Aby uzyskać szczegółowe informacje, zobacz Sekcję 2.2.2.11 Digital Window Control w rozszerzeniach firmy Microsoft do specyfikacji USB Video Class 1.5 .
Kontrola konfiguracji okna cyfrowego MSXU_CONTROL_DIGITALWINDOW_CONFIG
Kontrolka MSXU Digital Window Config określa limity skalowania aparatu, biorąc pod uwagę wszystkie dostępne rozdzielczości. Rozdzielczości są niezależne od typu nośnika, więc dwa typy nośników reklamujące tę samą rozdzielczość wyświetlania są łączone w jedną funkcję.
Aby uzyskać szczegółowe informacje, zobacz Sekcję 2.2.2.12 Digital Window Config Control w rozszerzeniach firmy Microsoft do specyfikacji USB Video Class 1.5 .
Omówienie implementacji
Na poniższej ilustracji przedstawiono typową scenę sali konferencyjnej przechwyconą przez kamerę.
Czujnik obrazu przechwytuje coś więcej niż obraz przesyłany strumieniowo do aplikacji klienckiej, wyświetlany w czerwonej ramce ograniczającej. Pomarańczowe pole ograniczenia ilustruje pole widoku przechwycone przez aparat, biorąc pod uwagę wybrany współczynnik proporcji. W przypadku kontrolki okna cyfrowego domyślne pole ograniczenia to to pomarańczowe pole. Współrzędne podane z boku pokazują granice tego pudełka. Sygnał wyjściowy czujnika jest przycinany i skalowany odpowiednio do rozdzielczości nośnika wyjściowego z tego modułu.
Tablica znacznikowa wywołana na obrazie jest obiektem zainteresowania. Jeśli aplikacja miała skupić się na tym obiekcie, może ustawić okno cyfrowe, aby je obejmowało.
Zielone pole ograniczenia jest ustawiane za pomocą kontrolki Okno cyfrowe w tym przykładzie. Obejmuje on podstawowy obiekt zainteresowania, tablicę znacznikową. Prostokąt może zawierać dane znajdujące się poza obiektem zainteresowania, ponieważ obiekt może nie być prostokątny lub może nie być wyświetlany z boku lub może nie mieć takiego samego współczynnika proporcji jak typ nośnika.
Okno cyfrowe utrzymuje współczynnik proporcji formatu wyjściowego, a kamera zwiększa wydajność czujnika w celu dopasowania. Określone współrzędne zawsze odnoszą się do oryginalnej, domyślnej ramki ograniczającej.
Relacja z kontrolką okna cyfrowego UVC 1.5
Nowe kontrolki MSXU okna cyfrowego poniżej wykonują funkcję niemal identyczną z CT_DIGITAL_WINDOW_CONTROL znalezioną w specyfikacji klasy UVC 1.5 w sekcji 4.2.2.1.19 Digital Window Control.
specification.pdfklasy UVC 1.5 można pobrać w witrynie internetowej specyfikacji klasy WIDEO USB.
Istnieją jednak pewne istotne różnice.
Rozciąganie
Określony CT_DIGITAL_WINDOW_CONTROL zezwala aplikacji na ustawienie okna na dowolny zestaw współrzędnych, które są ograniczone tylko przez wartości GET_MIN, GET_MAX i GET_RES. Aby dopasować to pole widoku w oknie danych wyjściowych, to zachowanie wymaga, aby aparat albo odrzucał poprawne żądania SET_CUR albo implementował ponowne próbkowanie lub skalowanie obrazu, które może potencjalnie zniekształcić obraz w poziomie lub w pionie, tj. zmienić proporcje obrazu.
Ponieważ zniekształcenie jest prawdopodobnie niepożądane, można go uniknąć w implementacji CT_DIGITAL_WINDOW_CONTROL, odrzucając takie żądania. Jednak zamiast wprowadzać taką niejednoznaczność, kontrolka MSXU okna cyfrowego utrzymuje pole widzenia w proporcji rozdzielczości wyjściowej. W związku z tym ponowne skalowanie nie jest funkcją ani opcją w tej kontrolce MSXU.
Automatyczne Face-Framing
CT_DIGITAL_WINDOW_CONTROL nie posiada funkcji śledzenia twarzy. Z drugiej strony CT_REGION_OF_INTEREST_CONTROL ma taką koncepcję, ale jest ona używana głównie do wykrywania, raportowania i potencjalnie aktualizowania regionu zainteresowania kontrolek 3A. Teoretycznie CT_REGION_OF_INTEREST_CONTROL można użyć, jeśli jest zaimplementowany jako kontrolka AutoUpdate, co pozwoliłoby sterownikowi kamery wykorzystać tę kontrolkę do przesuwania, przechylania lub powiększania CT_DIGITAL_WINDOW_CONTROL w sposób zsynchronizowany.
Ta nowa funkcja umożliwia bezpośrednie sterowanie śledzeniem twarzy w celu dostosowania pola widzenia przez pochylenie, przesuwanie lub powiększanie cyfrowe, aby twarz była jak najlepiej widoczna. Ponadto śledzenie twarzy używane w tej kontrolce pozostaje niezależne od dowolnego regionu kontroli zainteresowania.
Metoda śledzenia twarzy jest zależna od implementacji.
Metadane dla ramki
Oryginalny UVC 1.5 nie ma pojęcia metadanych dla każdej ramki. Firma Microsoft rozszerzyła specyfikację UVC, aby obsługiwać metadane osadzone w nagłówkach danych ramki. Włączenie tej obsługi można wykonać za pomocą kontrolki MSXU_CONTROL_METADATA.
Ponadto CT_DIGITAL_WINDOW_CONTROL nie określa, czy kontrola jest synchroniczna, czy asynchroniczna, czy aktualizuje się automatycznie. Ponadto sterowanie zawiera informacje krokowe używane do animacji zmiany przez kamerę. Oznacza to, że cyfrowe przesunięcie, przechylenie i powiększenie może zająć znaczną ilość czasu. Jednakże, ponieważ sterowanie zostałoby ustawione na nowe współrzędne, nie jest jasne, jak długo to potrwa i kiedy lub jak zgłosi się z powrotem, że przejście zostanie zakończone. Co gorsza, nie ma informacji o tym, skąd pochodzą bieżące ramki w polu widoku.
Tę niejednoznaczność można rozwiązać za pomocą metadanych dla każdej ramki wprowadzanych przez kamerę, ale nie można wymagać, aby CT_DIGITAL_WINDOW_CONTROL obsługiwał metadane dla każdej ramki bezpośrednio, ponieważ metadane dla każdej ramki wykraczają poza zakresem specyfikacji UVC.
Współczynniki proporcji
Nie jest jasne lub niezdefiniowane, jak CT_DIGITAL_WINDOW_CONTROL obsługuje różne współczynniki proporcji. Aby poprawnie przycinać pole widzenia, wartości GET_DEF i GET_CUR zgłaszane przez kontrolkę UVC 1.5 muszą zostać zmienione, aby dopasować się do bieżącego aspektu po każdorazowym sondowaniu i zatwierdzeniu. Aby obsłużyć to poprawnie, CT_DIGITAL_WINDOW_CONTROL powinien być kontrolką AutoUpdate, a sterownik nie musi buforować wyniku GET_DEF, ale zamiast tego wykonać zapytanie o tę wartość ponownie dla każdej rozdzielczości uwidocznionej przez aparat.
Ta złożoność może powodować problemy z odnajdywaniem podczas próby mapowania kontrolki okna cyfrowego na określoną rozdzielczość. Możesz nie wiedzieć z wyprzedzeniem, jakiej części pola czujnika widoku kamera będzie używać domyślnie, dopóki nie wykonasz sondy lub zatwierdzenia na wszystkich typach multimediów obsługiwanych przez aparat. Przedstawia to potencjalne problemy z ustalaniem wszelkich wartości granicznych dla danej rozdzielczości, ponieważ zależą one od pola widzenia czujnika zwykle używanego przez ten format w stosunku do całkowitego pola widzenia dostępnego na czujniku.
Funkcjonalność
Okno cyfrowe jest związane z kilkoma istniejącymi kontrolkami:
Pan
Przechył
Powiększenie
Jeśli aparat używa cyfrowych implementacji dla dowolnego z tych kontrolek, musi zmienić wartości zgłaszane przez okno cyfrowe, aby były zgodne z tym samym polem widoku. Podobnie okno cyfrowe musi zmienić wartości zgłaszane przez te kontrolki. Wszystkie implementacje cyfrowe tych kontrolek muszą aktualizować się, aby zachować synchronizację.
Firma Microsoft nie definiuje relacji między tymi kontrolkami i jedynie stwierdza, że ostatnia kontrolka w zestawie ma decydujące znaczenie.
Regiony zainteresowania
Ponieważ okno cyfrowe zmienia widoczne pole widzenia (FOV), współrzędne wybrane przez dowolny region zainteresowania (ROI) w kontrolce powinny być przywracane do wartości domyślnych za każdym razem, gdy zostanie wydana komenda SET dla tej kontrolki. Lista bieżących kontrolek ROI obejmuje:
KSPROPERTY_STEROWANIEKAMERĄ_OBSZAR_ZAINTERESOWANIA_PROPERTY_ID
KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_CONFIGCAPS/KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_ISPCONTROL
Ponadto te kontrolki obszaru zainteresowania określają swoje regiony względem okna wyświetlania, więc określone współrzędne zawsze tworzą prostokąt w bieżącym polu widoku. Ponieważ kontrolka Okna Cyfrowego zmienia bieżące pole widzenia, prostokąt Regionu Zainteresowania musi być ponownie przemapowany przez aparat, aby pasował do bieżącego Okna Cyfrowego. Jeśli na przykład bieżące okno cyfrowe ma wartość (OriginX, OriginY) z wartości (0.0, 0.0) i WindowSize 0.5 i jeśli region zainteresowania (0.0, 0.0), (0.5, 0.5) jest określony, aparat musi ponownie mapować prostokąt Region zainteresowania na piksele odpowiadające (0.0, 0.0), (0.25, 0.25) w domyślnym polu widoku. To powinno być zgodne z oczywistym zachowaniem elementów sterujących przesuwaniem, pochylaniem i powiększaniem, jak również z kontrolkami regionu zainteresowania.
Streaming
Ponieważ dostępne prawidłowe wartości okna cyfrowego są zależne od bieżącego współczynnika proporcji, aparat musi wybrać typ nośnika i interfejs przesyłania strumieniowego, aby wymusić wartość MinWindowSize.
Wartości informacyjne
Zgłoszona wartość NonUpscalingWindowSize jest również zgłaszana dla każdej rozdzielczości, ale ma charakter wyłącznie informacyjny dla aplikacji. Ta wartość informuje aplikację, jaką wartość należy ustawić jako WindowSize, aby nie uzyskać zwiększenia rozmiaru obrazu źródłowego. Dzięki temu aplikacja może przechwytywać obraz w granicach zakresu wierności czujnika aparatu.
Atrybuty metadanych
Jeśli kamera anonsuje MSXU_CONTROL_DIGITALWINDOW, MSXU_CONTROL_DIGITALWINDOW_CONFIG i ustawi niezerowy rozmiar bufora w MSXU_CONTROL_METADATA, kamera musi wysyłać atrybut MF_CAPTURE_METADATA_DIGITAL_WINDOW dla każdej ramki. Może to zapewnić za pośrednictwem protokołu MFT urządzenia lub przez dołączenie atrybutu MetadataId_DigitalWindow (wartość 7) w nieprzetworzonym buforze metadanych. Jak uwzględnić atrybuty metadanych, bardziej szczegółowo opisano w sekcji 2.2.3.1 Metadane w formacie Standardowym firmy Microsoft.
Te metadane służą do raportowania, jakie okno cyfrowe zostało zastosowane do bieżącego przykładu. Robi to, inicjując KSCAMERA_METADATA_ITEMHEADER wartością MetadataId_DigitalWindow oraz rozmiar struktury i kopiując zastosowane wartości OriginX, OriginY i WindowSize z kontrolki okna cyfrowego do skojarzonej struktury KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_SETTING.
Zobacz też
Sekcja 2.2.2.11 Digital Window Control
Sekcja 2.2.2.12 Digital Window Config Control
Sekcja 2.2.3.1 Metadane standardowego formatu Microsoft
KSPROPERTY_CAMERACONTROL_EXTENDED_DIGITALWINDOW_CONFIGCAPS
KSPROPERTY_CAMERACONTROL_EXTENDED_DIGITALWINDOW
KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_CONFIGCAPS
KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_CONFIGCAPSHEADER