UVC significa aula de vídeo USB. Ele define uma maneira padronizada para os dispositivos de vídeo USB se comunicarem com um host. Uma câmera compatível com UVC muitas vezes pode ser reconhecida por sistemas operacionais que já incluem um driver de classe, e é por isso que o UVC é comum em webcams e módulos de câmera USB incorporados.
Para desenvolvedores de produtos, o principal benefício é a velocidade de integração. Em vez de criar um driver de vídeo USB totalmente personalizado, o aplicativo geralmente pode acessar a câmera por meio da estrutura de vídeo existente do sistema operacional. Isso é útil para protótipos, quiosques, PCs industriais e dispositivos Linux ou Windows embarcados onde a avaliação rápida é importante.
UVC não informa o sensor da câmera, lente, FOV, qualidade de imagem, resoluções suportadas ou taxas de quadros. Também não garante que todos os controles opcionais sejam implementados da mesma maneira. Duas câmeras UVC podem expor diferentes formatos, controles de exposição, funções de foco automático ou unidades de extensão.
Portanto, 'compatível com UVC' responde à questão da classe do driver, não à questão da compatibilidade total.
Um módulo UVC pode gerar MJPEG, YUY2 ou outros formatos. Isso cria diferentes requisitos de largura de banda e processamento. Por exemplo, uma taxa de quadros 4K aparentemente alta pode estar disponível apenas em MJPEG, enquanto o YUY2 não compactado é limitado a uma resolução ou taxa de quadros mais baixa.
Ao ler uma especificação, sempre combine a resolução com a taxa de quadros e o formato.
A maioria dos sistemas operacionais de desktop convencionais suporta UVC, mas os hosts incorporados ainda podem diferir na versão do kernel, no comportamento do controlador USB, na largura de banda disponível e na estrutura do aplicativo. Uma câmera pode enumerar corretamente, mas não consegue fornecer o modo desejado porque o host não consegue sustentá-lo.
Teste a placa-alvo e o sistema operacional exatos, especialmente para designs de alta resolução ou com várias câmeras.
Os controles UVC padrão podem incluir brilho, contraste, exposição ou foco, dependendo da câmera. Funções mais especializadas – trigger externo, configurações proprietárias do ISP ou registros de sensores – podem exigir controles específicos do fornecedor. Eles não estão disponíveis automaticamente simplesmente porque o dispositivo é UVC.
Confira cinco itens: versão da interface, resoluções suportadas, taxas de quadros, formatos de vídeo e controles disponíveis. Em seguida, verifique o sistema operacional host, o comprimento do cabo e se outros dispositivos USB compartilham o mesmo controlador. Isto dá uma visão realista do esforço de integração.
Um laptop Windows pode reconhecer uma câmera UVC imediatamente, enquanto uma placa Linux incorporada pode enumerar o mesmo dispositivo, mas não consegue fornecer o modo 4K solicitado devido a limitações do kernel, do controlador USB ou do decodificador. A câmera ainda é UVC em ambos os casos. Este é um lembrete útil de que o suporte ao driver de classe e o desempenho no nível do aplicativo são duas camadas separadas.
Para validação OEM, teste a descoberta de câmeras, negociação de modo, reconexão e a estrutura de captura exata que o aplicativo final usará.
O UVC padroniza o comportamento importante dos dispositivos de vídeo, mas os fornecedores podem expor diferentes controles e unidades de extensão. Gatilho externo, ajuste proprietário do ISP ou modos de sensor incomuns podem ficar fora dos controles padrão. Quando um projeto depende de uma função especial, pergunte como o host o acessa em vez de presumir que o UVC o cobre.
Geralmente reduz o trabalho do driver, mas o sistema operacional host exato, o controlador USB, o modo de vídeo e os controles opcionais ainda precisam de validação.
Não. UVC é uma classe de dispositivo; USB2.0 e USB3.x descrevem a interface de transporte e a largura de banda.
Sim, se o módulo incluir hardware de foco automático e expor os controles relevantes. O próprio UVC não requer foco automático.