Я знаю, как работают растровые изображения и как используются пиксели (двоичные 0 или 1). Я также знаю о RGB, но меня интересует, как графические процессоры узнают адрес каждого пикселя на экране высокого разрешения и как графический процессор отправляет информацию в пиксели. Кто-нибудь может ответить на это?

2 ответа2

0

У графического процессора есть часть памяти, предназначенная для вывода видео. Каждый пиксель имеет точный адрес. Графический процессор отображает изображения и помещает их в этот видеобуфер. Затем выделенный аппаратный блок "сканирует" эту память и передает содержимое в видеопорт (VGA, HDMI, DVI и т.д.). Монитор получает и отображает эту информацию. Но разве эта информация не доступна свободно на некоторых вики?

0

Это делается так же просто, как копирование всего буфера памяти в выходной разъем с частотой обновления. То есть на стандартном мониторе, подключенном к DVI, он будет передавать полные кадры 60 раз в секунду с разрешением 1920x1080 пикселей и 24 битами на пиксель (глубина 8GB RGB). Это много данных и требует качественных, коротких кабелей.

Внутренне это может стать намного сложнее. Обычно видеопамять содержит 2 или 3 буфера данных изображения (двойная или тройная буферизация, чтобы уменьшить разрыв, что по сути означает, что буфер, отправляемый на выходной разъем, не изменяется драйверами ОС).

И это может стать еще более сложным: выходной разъем может быть аналоговым, что означает наличие ЦАП, который преобразует каждый сигнал в аналоговые сигналы. Либо ОЗУ может использовать более высокую битовую глубину, чем монитор (10 бит на цвет = 30 бит на пиксель), графические карты могут использовать временное сглаживание, когда устройство вывода имеет меньшую битовую глубину (поэтому ошибка в 2 бита распространяется на следующую кадр, который может привести к заметному, небольшому шуму, но дает лучшую цветную заливку).

И даже более сложный: некоторые графические процессоры не размещают свою память таким же образом, как она отображается на мониторе (строки пикселей сверху слева направо вниз), а скорее размещают свою память в ячейках (прямоугольники данных изображения) - это имеет подлежит преобразованию, но может привести к более высокой производительности доступа к VRAM, поскольку одновременный доступ с графического процессора, процессора и процессора сигналов лучше распределен по отношению друг к другу.

Итак, в общих чертах это очень просто: данные просто копируются из буфера ОЗУ в выходной соединитель попиксельно, большую часть времени изменяя буфер изображения между копиями при каждой отправке полного кадра. Монитор следует тому же шаблону синхронизации и рисует пиксели. В каждом кадре таймеры будут повторно синхронизироваться, поэтому монитор запускается в верхнем левом углу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .