Acabei de fazer alguns cálculos rápidos:
No meu MacBook, tenho uma resolução de 2560x1440 multiplicada por 24 bits para cores, obtendo 11,05 MB para uma única imagem ou 663 MB por segundo a 60 qps .
Acho que há alguma compressão, mas, por exemplo, quando me movo com três dedos sobre o touchpad, isso é aleatório, o que acontece a seguir na tela e quase todos os pixels mudam. O mesmo que com quase todas as outras interações.
Por favor, explique se meus cálculos estão incorretos e como esses dados são transportados da minha placa de vídeo para a minha tela? Qual a largura dos barramentos entre minha placa de vídeo e minha tela? Talvez explique em poucas palavras como um monitor armazena pixels? Registros de turno? Cache?
communication
display
bus
graphics
Felix Crazzolara
fonte
fonte
Respostas:
Seus cálculos estão corretos em essência. Para um sinal de 1440p60Hz, você tem uma taxa de dados de 5,8Gbps depois de permitir o tempo de apagamento (borda de pixel não visível na saída da imagem).
Para HDMI / DVI, é usada uma codificação 10 / 8b, o que significa efetivamente, embora você tenha digitado 24 bits de dados em cores por pixel, na verdade 30 bits são enviados à medida que os dados são codificados e adicionadas palavras de controle de protocolo. Nenhuma compactação é feita, os dados brutos são enviados, o que significa que você precisa de 7,25 Gbps de largura de banda de dados.
Mais uma vez olhando para HDMI / DVI. Ele usa o padrão de sinalização "TDMS" para transferência de dados. O padrão HDMI V1.2 exige um máximo de 4,9 Gbps para um link único (3 linhas de dados seriais + 1 linha de relógio) ou, no caso do Dual-Link DVI, um máximo de 9,8 Gbps (6 linhas de dados seriais, eu acho) ) Portanto, há mais do que largura de banda suficiente para 1440p60 através de um DVI de link duplo, mas não através de um HDMI V1.2.
No padrão HDMI V1.3 (a maioria dos dispositivos realmente passou para a V1.4a, que é a mesma largura de banda de 1.3), a largura de banda dobrou para cerca de 10 Gbps, que suportaria 1440p60, e também é largura de banda suficiente para UHD a 30Hz (2160p30).
O DisplayPort, como outro exemplo, possui 4 fluxos de dados seriais, cada um com capacidade (na V1.1) de 2,16Gbps por fluxo (contabilizando a codificação); portanto, com um link V1.1, você pode fazer 1440p60 facilmente com todos os 4 fluxos. Eles também lançaram um novo padrão, o V1.2, que dobra para 4,32 Gbps / stream, permitindo UHD a 60Hz. Ainda existe uma versão mais recente, que eles aumentaram ainda mais para 6.4Gbps / stream .
Inicialmente, esses números parecem enormes, mas na verdade não muito quando se considera o USB 3.0. Foi lançado com uma taxa de dados de 5 Gbps em apenas um cabo (na verdade dois, um para TX, um para RX, mas discordo). O PCIe, que é usado internamente pela sua placa de vídeo hoje em dia, é de até 8 Gbps através de um único par diferencial, portanto, não é de surpreender que as interfaces de dados externas estejam atualizando.
Mas a questão permanece: como é feito? Quando você pensa em VGA, ele é composto de fios únicos para dados R, G e B, enviados em formato analógico. O analógico, como sabemos, é altamente suscetível a ruídos, e a taxa de transferência de DAC / ADCs também é limitada, de modo que limita enormemente o que você pode empurrá-los (tendo dito que você mal pode fazer 1440p60Hz sobre VGA se tiver sorte).
No entanto, com os padrões modernos, usamos padrões digitais que são muito mais imunes ao ruído (você só precisa distinguir alto ou baixo em vez de todos os valores intermediários) e também remove a necessidade de conversão entre analógico e digital.
Além disso, o advento do uso de padrões diferenciais em extremidade única ajuda significativamente, porque agora você está comparando o valor entre dois fios (diferença + ve = 1, diferença -ve = 0) em vez de comparar um único fio com algum limite. Isso significa que a atenuação é menos problemática porque afeta os dois fios igualmente e atenua até a tensão do ponto médio - o "olho" (diferença de tensão) fica menor, mas você ainda pode dizer se é + ve ou -ve mesmo se for apenas 100mV ou menos. Sinais de terminação única, uma vez que o sinal atenua, podem cair abaixo do seu limite e se tornar indistinguíveis, mesmo que ainda possua amplitude de 1V ou maior.
Ao usar um link serial em paralelo, também podemos obter taxas de dados mais rápidas, porque a inclinação deixa de ser um problema. Em um barramento paralelo, digamos 32 bits de largura, você precisa combinar perfeitamente as características de comprimento e propagação de 32 cabos para que os sinais não saiam de fase um do outro (inclinação). Em um link serial, você tem apenas um único cabo; portanto, a inclinação não pode acontecer.
TL; DR Os dados são enviados na taxa de bits total calculada (vários Gbps), sem compactação. Técnicas modernas de sinalização de links digitais serializados sobre pares diferenciais tornam isso possível.
fonte
Computadores modernos são surpreendentemente rápidos. As pessoas carregarão alegremente vídeos em alta definição a 30fps sem perceber que isso envolve bilhões de operações aritméticas por segundo. Os jogadores tendem a estar um pouco mais conscientes disso; um GTX 1060 fornece 4,4 TFLOPS ( trilhões de operações de ponto flutuante por segundo).
Outra resposta abordou a natureza de vários gigabits do HDMI, DisplayLink etc.
O próprio display armazena, em teoria, nenhum dado de imagem.
(Alguns monitores, especialmente televisores, armazenam um quadro ou dois para aplicar o processamento de imagem. Isso aumenta a latência e é impopular entre os jogadores.)
O subsistema gráfico de um computador armazena pixels na DRAM comum. Geralmente, não redesenha tudo do processador a cada quadro, mas entrega algumas das funcionalidades a subsistemas dedicados e a um compositor . Um compositor permitirá, por exemplo, que cada janela da área de trabalho seja armazenada como um conjunto distinto de pixels, que podem ser movidos, rolados ou ampliados pelo hardware dedicado. Isso se torna bastante óbvio com a rolagem em dispositivos móveis - você pode percorrer um curto caminho até ficar sem pixels pré-computados "fora da tela" e o software precisar parar e renderizar um pouco mais os buffers do compositor.
Os jogos são redesenhados a cada quadro, e há muita literatura sobre como uma cena é construída. Isso é incorporado em um buffer de quadros na placa de vídeo que é transmitido enquanto o próximo quadro é desenhado em um buffer diferente.
A decodificação de vídeo geralmente também é fornecida para hardware dedicado, especialmente o H.264.
fonte
O link entre a placa de vídeo e o painel LCD é transmitido por vários pares diferenciais de alta velocidade usando a sinalização TMDS , geralmente chamada de "faixas". Normalmente, são utilizadas quatro faixas, portanto, pode-se dizer que o barramento tem 4 bits de largura. Para mais detalhes, há uma resposta stackhexchange .
Cada modelo de painel LCD geralmente é produzido com várias encarnações de interface, portanto, é preciso ter cuidado e analisar os sufixos ao tentar substituir um painel quebrado. O link digital mais moderno (HDMI 1.4) possui 10,2 Gbps, ou apenas 2,5 Gbps por faixa. Nos seus cálculos (663 MBps), totaliza 1,2 Gbps por faixa (assumindo 4 faixas), o que não é muito (por exemplo, o SATA3 tem 6 Gbps).
ADIÇÃO em painéis LCD. O LCD de matriz ativa realmente tenta armazenar a imagem do quadro (dados de pixel) em capacitores associados a "Twisted Nematic Cells" (aquele que controla a polarização do filme). O problema é que o tamanho dos limites de armazenamento analógico deve ser uma troca entre o tempo de armazenamento e a velocidade da alternância de pixels. Portanto, não pode ser ampliado, perde o potencial armazenado rapidamente e, portanto, requer atualização periódica . Cada célula de pixel é conectada a linhas de dados e endereço por meio de um transistor (elemento "ativo"), consulte este artigo da Tomshardware . O controlador-controlador LCD multiplica as linhas de dados e endereço de maneira linha por linha, mantendo assim a imagem exibida. A própria imagem é armazenada em um buffer de quadro (RAM) dentro do controlador gráfico.
fonte