Configurações do registro de estabilização de vídeo
O valor MaxPixelsPerSecond definido pelo OEM na chave do Registro VideoStabilization permite que os OEMs definam as configurações de estabilização de vídeo em um dispositivo e a apliquem a um vídeo no momento da captura. A configuração leva em consideração a resolução de gravação do dispositivo, juntamente com seus recursos de hardware e software.
Visão geral
O valor MaxPixelsPerSecond da chave de Registro VideoStabilization é usado para especificar os recursos máximos de estabilização de vídeo em um dispositivo, em circunstâncias ideais. Todos os aplicativos podem ler a chave do Registro e evitar tentativas de uso injustificado da estabilização de vídeo.
O valor inserido em MaxPixelsPerSecond define o limite além do qual o MFT não tentará ativar a estabilização de vídeo, mesmo que um aplicativo a habilite. A chave do Registro precisa indicar a maior resolução e taxa de quadros em que um dispositivo pode executar a estabilização de vídeo. Se o valor MaxPixelsPerSecond não estiver definido, o MFT de estabilização de vídeo usará um valor de fallback. Por fim, se isso também falhar, a estabilização de vídeo usará sua lógica interna para desligar, a fim de evitar uma experiência inadequada ao usuário.
Requisitos de estabilização de vídeo
Um dispositivo é considerado capaz de executar a estabilização de vídeo quando há possibilidade de que todos os itens a seguir ocorram:
A estabilização de vídeo está ativada e não está no modo de passagem
A gravação está ativada
A visualização está ativa
Nenhum ruído ou quadros perdidos são encontrados na visualização
Nenhum ruído ou quadros perdidos são encontrados no vídeo gravado
Definir a chave do Registro de estabilização de vídeo
Formato da chave do Registro VideoEstabilization:
Os OEMs devem definir um valor QWORD MaxPixelsPerSecond que estabeleça o valor de corte para o número de pixels por segundo, além do qual a estabilização de vídeo será forçada a executar no modo de passagem, mesmo que seja habilitada por um aplicativo.
MaxPixelsPerSecond é definido da seguinte maneira:
MaxPixelsPerSecond = width * height * frame-rate
Por exemplo, para resolução de 1080p a 30 fps, MaxPixelsPerSecond seria definido como 1920 * 1080 * 30 = 62208000.
Local da chave do Registro VideoStabilization:
Os OEMs devem criar e definir a chave do Registro VideoStabilization para estabilização de vídeo no seguinte local:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\Platform\VideoStabilization
Para definir o valor MaxPixelsPerSecond da chave do Registro VideoStabilization em um computador de 32 bits, use o seguinte comando em um prompt de comando com privilégios elevados:
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\Platform\VideoStabilization" /v "MaxPixelsPerSecond" /t REG_QWORD /d 62208000 /f
Em computadores de 64 bits, os OEMs também devem criar e definir a mesma chave no caminho Wow6432Node:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows Media Foundation\Platform\VideoStabilization
Para definir o valor MaxPixelsPerSecond da chave do Registro VideoStabilization em um computador de 64 bits, use o seguinte comando em um prompt de comando com privilégios elevados:
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Windows Media Foundation\Platform\VideoStabilization" /v "MaxPixelsPerSecond" /t REG_QWORD /d 62208000 /f
Quando definida, a chave do Registro VideoStabilization ficará visível para o MFT de estabilização de vídeo e aplicativos próprios e de terceiros.
Se o valor MaxPixelsPerSecond estiver definido, o MFT de estabilização de vídeo nunca tentará estabilizar taxas de quadros ou resoluções acima do limite. Em vez disso, ele entrará no modo de passagem, mesmo que o aplicativo solicite estabilização de vídeo. O MFT de estabilização de vídeo tem um mecanismo para recomendar taxa de quadros e resolução para o aplicativo de determinado dispositivo. Os aplicativos podem escolher a recomendação para evitar essa passagem nos dispositivos que têm a chave do Registro preenchida.
Se o valor MaxPixelsPerSecond não estiver definido, o MFT de estabilização de vídeo tentará estabilizar até o valor padrão, não acima dele.
O valor padrão é 62208000 pixels por segundo, que é 1920 pixels x 1080 pixels x 30 fps. Quando a estabilização de vídeo tenta estabilizar, mas não consegue manter a estabilização em tempo real dos quadros de vídeo, a lógica interna muda a estabilização de vídeo para o modo de passagem (desativando a estabilização de vídeo) sem descartar nenhum quadro.
Se a estabilização de vídeo foi desativada na sessão anterior, o MFT tentará iniciar a estabilização de vídeo no modo normal para cada nova sessão, antes de decidir mudar para o modo de passagem. Isso ocorre porque ele não pode contar com o modo anterior para tomar decisões futuras, pois o dispositivo pode ficar sob estresse depois de operado pela última vez.
Requisitos de teste de estabilização de vídeo
Os OEMs precisam verificar os recursos de ponta a ponta de seus dispositivos com a estabilização de vídeo em funcionamento. Eles precisam verificar uma experiência aceitável na maior resolução de pixels por segundo.
Os OEMs devem verificar o seguinte:
A lógica interna de estabilização de vídeo está desabilitada no local da chave do Registro fornecido pela Microsoft. Desabilitar a lógica interna garante que a estabilização de vídeo não entre no modo de passagem durante o teste se encontrar uma situação de estresse.
A estabilização de vídeo pode ser executada sozinha, sem tarefas em segundo plano ou outros recursos
Renderização de visualização suave com estabilização de vídeo habilitada e lógica interna desabilitada
Gravação de vídeo suave com estabilização de vídeo habilitada e lógica interna desabilitada
Contagem de pixels por segundo desejada obtida na gravação estabilizada
Sem superaquecimento
Observação Os sistemas de varejo não devem descrever a chave do Registro para desabilitar a lógica interna de estabilização de vídeo nesta seção. No entanto, devem determinar a chave do Registro VideoStabilization com um valor MaxPixelsPerSecond por meio desse processo de teste.
Observação O valor VideoStabilization da chave do Registro MaxPixelsPerSecond funciona somente quando o atributo MF_LOW_LATENCY é definido no efeito. Quando o efeito de estabilização de vídeo fornecido é adicionado ao pipeline MediaCapture, o atributo é definido automaticamente. No entanto, se o efeito de estabilização de vídeo for inserido em um pipeline personalizado ou em um pipeline que não defina o atributo MF_LOW_LATENCY, a chave do Registro não terá efeito.