У графического процессора есть часть памяти, предназначенная для вывода видео. Каждый пиксель имеет точный адрес. Графический процессор отображает изображения и помещает их в этот видеобуфер. Затем выделенный аппаратный блок «сканирует» эту память и передает содержимое в видеопорт (VGA, HDMI, DVI и т. Д.). Монитор получает и отображает эту информацию. Но разве эта информация не доступна свободно на некоторых вики?
Как графический процессор узнает адрес каждого пикселя на экране? Если да, то как он справляется с изображениями высокого разрешения?
Я знаю, как работают растровые изображения и как используются пиксели (двоичные 0 или 1). Я также знаю о RGB, но меня интересует то, как графические процессоры узнают адрес каждого пикселя на экране высокого разрешения и как графический процессор отправляет информацию в пиксели. Кто-нибудь может ответить на это?
2 ответа на вопрос
Это делается так же просто, как копирование всего буфера памяти в выходной разъем с частотой обновления. То есть на стандартном мониторе, подключенном к DVI, он будет передавать полные кадры 60 раз в секунду с разрешением 1920x1080 пикселей и 24 битами на пиксель (глубина 8GB RGB). Это много данных и требует качественных, коротких кабелей.
Внутренне это может стать намного сложнее. Обычно видеопамять содержит 2 или 3 буфера данных изображения (двойная или тройная буферизация, чтобы уменьшить разрыв, что по сути означает, что буфер, отправляемый на выходной разъем, не изменяется драйверами ОС).
И это может стать еще более сложным: выходной разъем может быть аналоговым, что означает наличие ЦАП, который преобразует каждый сигнал в аналоговые сигналы. Либо ОЗУ может использовать более высокую битовую глубину, чем монитор (10 бит на цвет = 30 бит на пиксель), графические карты могут использовать временное сглаживание, когда устройство вывода имеет меньшую битовую глубину (поэтому ошибка в 2 бита распространяется на следующую кадр, который может привести к заметному, небольшому шуму, но дает лучшую цветную заливку).
И даже более сложный: некоторые графические процессоры не размещают свою память таким же образом, как она отображается на мониторе (строки пикселей сверху слева направо вниз), а скорее размещают свою память в ячейках (прямоугольники данных изображения) - это имеет подлежит преобразованию, но может привести к более высокой производительности доступа к VRAM, поскольку одновременный доступ с графического процессора, процессора и процессора сигналов лучше распределен по отношению друг к другу.
Итак, в общих чертах это очень просто: данные просто копируются из буфера ОЗУ в выходной соединитель попиксельно, большую часть времени изменяя буфер изображения между копиями при каждой отправке полного кадра. Монитор следует тому же шаблону синхронизации и рисует пиксели. В каждом кадре таймеры будут повторно синхронизироваться, поэтому монитор запускается в верхнем левом углу.
Похожие вопросы
-
2
Как мне использовать мой графический процессор для ускорения кодирования видео?
-
3
Как я могу определить шрифты на изображении?
-
1
Могу ли я SLI 8800GTX и 9600GT?
-
-
3
Почему графические процессоры работают быстрее, чем процессоры?
-
6
Насколько широко распространены битые пиксели?
-
2
Как определить самую высокую версию DirectX с поддержкой графического процессора?
-
2
Поддерживает ли Silverlight или Flash аппаратное ускорение?
-
1
Безопасная температура графического процессора
-
3
Насколько важен шаг пикселя монитора при редактировании видео / фото?
-
1
Принудительный проигрыватель Windows Media использует EVR через GPU для декодирования файлов в кодир...