Я знаю, как работают растровые изображения и как используются пиксели (двоичные 0 или 1). Я также знаю о RGB, но мне интересно, как GPU знают адрес каждого пикселя на экране с высоким разрешением и как GPU отправляет информацию пикселям. Кто-нибудь может ответить?
Как графический процессор знает адрес каждого пикселя на экране? Если да, то как он справляется с изображениями с высоким разрешением?
2 ответа
GPU имеет часть памяти, выделенную для вывода видео. Каждый пиксель имеет точный адрес. GPU визуализирует изображения и помещает их в этот буфер видео. Затем специальный аппаратный блок "сканирует" эту память и передает содержимое в видеопорт (VGA, HDMI, DVI, что угодно). Монитор получает и отображает эту информацию. Но разве эта информация не находится в свободном доступе на некоторых wiki?
Это делается так же просто, как копирование всего буфера памяти в выходной разъем с частотой обновления. То есть, на стандартном мониторе, подключенном к DVI, он будет отправлять 60 раз в секунду полные кадры 1920x1080 пикселей с 24 битами на пиксель (8-битная глубина RGB). Это много данных и требует высококачественных, коротких кабелей.
внутренне, это может стать намного сложнее. Обычно видео ОЗУ содержит 2 или 3 буфера данных изображения (двойная или тройная буферизация, чтобы уменьшить разрыв, что по существу означает, что буфер, отправляемый на выходной разъем, не изменяется драйверами ОС).
и оно может стать даже более осложненным: выходной разъем может быть сетноым-аналогов который значит что будет DAC который преобразовывает каждый сигнал к аналоговым сигналам. Или, ОЗУ может использовать более высокую разрядность, чем монитор (10 бит на цвет = 30 бит на пиксель), графические карты могут использовать временное сглаживание, когда выходное устройство имеет более низкую разрядность (поэтому ошибка 2 биты распределены к следующему кадру, который может привести к видимому, небольшому шуму, но дает лучшее затенение цвета).
и еще сложнее: некоторые видеокарты не устраивают их памяти так же, как он отображается на мониторе (строк пикселей от верхнего левого угла до нижнего правого), но расположить их в память в ячейки (прямоугольники изображения данных) - это должен быть преобразован, но может привести к более высокой производительности видеопамяти открыть, потому что одновременный доступ из ГПУ, ЦП и сигналов процессор лучше распределен между собой.
таким образом, в основах, это очень просто: данные просто копируются из буфера оперативной памяти в выходной разъем пиксель за пикселем, большую часть времени изменяя буфер изображения между копиями каждый раз, когда полный кадр был отправлен. Монитор такой же схеме передняя и рисует пиксели. Каждый кадр, таймеры будут resynced поэтому монитор начинает сверх на верхней левой стороне.
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]