2012-05-01 09:30:45 +0000 2012-05-01 09:30:45 +0000
818
818

O ping transatlântico mais rápido do que enviar um pixel para o ecrã?

John Carmack tweeted ,

Posso enviar um pacote IP para a Europa mais rapidamente do que posso enviar um píxel para o ecrã. Como é que isso funciona?

E se isto não fosse John Carmack, eu arquivá-lo-ia sob “as teias entrelaçadas sendo bobo”.

Mas este é John Carmack.

Como pode isto ser verdade?

Para evitar discussões sobre o significado exacto do tweet, isto é o que eu gostaria de obter resposta:

** Quanto tempo demora, no melhor dos casos, a obter um único pacote IP enviado de um servidor nos EUA para algum lugar na Europa, medindo desde o momento em que um software desencadeia o pacote, até ao ponto em que é recebido por um software acima do nível do driver? **

** Quanto tempo demora, no melhor dos casos, para que um pixel seja apresentado no ecrã, medido a partir do ponto em que um software acima do nível do controlador altera o valor desse pixel? **


& Mesmo assumindo que a ligação transatlântica é o melhor cabo de fibra óptica que o dinheiro pode comprar, e que John está sentado mesmo ao lado do seu ISP, os dados ainda têm de ser codificados num pacote IP, passar da memória principal para o seu cartão de rede, dali através de um cabo na parede para outro edifício, irá provavelmente saltar através de alguns servidores (mas vamos supor que apenas necessita de um único relé), será fotonizado através do oceano, convertido de volta num impulso eléctrico por um fotossensor, e finalmente interpretado por outra placa de rede. Vamos parar por aí.

Quanto ao pixel, esta é uma simples palavra de máquina que é enviada através do slot expresso PCI, escrita num tampão, que é depois descarregada para o ecrã. Mesmo tendo em conta o facto de que “um único pixel” provavelmente resulta na transmissão de todo o buffer do ecrã para o ecrã, não vejo como isto pode ser mais lento: não é como se os bits fossem transferidos “um por um” - são antes impulsos eléctricos consecutivos que são transferidos sem latência entre eles (certo?).

Respostas (3)

1339
1339
1339
2012-05-01 14:24:00 +0000

O tempo para enviar um pacote para um anfitrião remoto é metade do tempo reportado pelo ping, que mede o tempo de uma viagem de ida e volta.

O visor que eu estava a medir era um Sony HMZ-T1 visor montado na cabeça ligado a um PC.

Para medir a latência do visor, tenho um pequeno programa que se senta num laço giratório sondando um controlador de jogo, fazendo uma limpeza a uma cor diferente e trocando buffers sempre que um botão é premido. Gravo vídeo mostrando tanto o controlador de jogo como o ecrã com uma câmara 240 fps, depois conto o número de fotogramas entre o botão a ser premido e o ecrã a começar a mostrar uma alteração.

O controlador de jogo actualiza a 250 Hz, mas não há forma directa de medir a latência no caminho de entrada (quem me dera ainda poder ligar as coisas a uma porta paralela e utilizar instruções in/out Sam). Como experiência de controlo, faço o mesmo teste num antigo visor CRT com um retrace vertical de 170 Hz. Aero e monitores múltiplos podem introduzir uma latência extra, mas em condições óptimas verá normalmente uma mudança de cor começando em algum ponto do ecrã (vsync desactivado) dois quadros de 240 Hz depois de o botão descer. Parece haver 8 ms ou mais de latência a passar pelo USB HID processamento, mas eu gostaria de pregar melhor no futuro.

Não é raro ver monitores LCD de secretária a levar 10+ 240 Hz frames para mostrar uma mudança no ecrã. A Sony HMZ tinha em média cerca de 18 frames, ou 70+ milissegundos no total.

Isto foi numa configuração multimonitor, pelo que algumas fotogramas são culpa do condutor.

Alguma latência é intrínseca a uma tecnologia. Os painéis LCD demoram 4-20 milissegundos a mudar de facto, dependendo da tecnologia. Um único chip LCoS os ecrãs devem guardar um frame de vídeo para converter de pixels embalados para planos de cor sequenciais. Os ecrãs laser raster precisam de alguma quantidade de buffer para converter de padrões de varrimento raster de volta para a frente e para trás. Um ecrã em 3D estéreo sequencial ou dividido por cima ou por baixo não pode actualizar metade do frame a meio do tempo. OLED os ecrãs devem estar entre os melhores, como demonstrado por um eMagin Z800 , que é comparável a um CRT de 60 Hz em latência, melhor do que qualquer outro CRT I não-CRT testado.

O mau desempenho na Sony deve-se a uma engenharia de software deficiente. Algumas características da TV, como a interpolação de movimento, requerem amortecimento de pelo menos um frame, e podem beneficiar de mais. Outras características, como menus flutuantes, conversões de formato, protecção de conteúdo, etc., poderiam ser implementadas de uma forma de streaming, mas a saída mais fácil é apenas o buffer entre cada subsistema, que pode empilhar até meia dúzia de frames em alguns sistemas.

Isto é muito infeliz, mas é tudo fixável, e espero apoiar-me mais nos fabricantes de expositores sobre a latência no futuro.

69
69
69
2012-05-01 10:26:17 +0000

Alguns monitores podem ter um atraso de entrada significativo

Contabilizando uma fantástica ligação à Internet em comparação com um monitor e uma combinação de placa de vídeo de porcaria o seu possível

Fontes: Console Gaming: The Lag Factor - Página 2

Assim, a 30FPS obtemos um desempenho de base de oito frames/133ms, mas no segundo clip onde o jogo caiu para 24FPS, há um claro atraso de 12 frames/200ms entre eu puxar o gatilho, e Niko iniciar a animação de disparo da caçadeira. Isso é 200ms mais o atraso adicional do seu ecrã. Ai.

A Display pode adicionar mais 5-10ms

Assim, uma consola pode ter até 210ms de atraso

E, de acordo com o comentário de David, o melhor caso deve ser cerca de 70ms para o envio de um pacote

37
37
37
2012-05-03 10:31:24 +0000

É muito simples demonstrar o atraso de entrada nos monitores, basta colar um lcd ao lado de uma crt e mostrar um relógio ou uma animação a encher o ecrã e gravá-lo. Pode-se ficar um segundo ou mais atrás. É algo que os fabricantes de LCD apertaram desde que os gamers, etc., notaram mais.

Ex. Youtube Video: Input Lag Test Vizio VL420M