Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


Видеопамять. Сколько ее нужно и для чего (ликбез).

Видеопамять. Сколько ее нужно и для чего (ликбез).

                Для работы видеокарте требуется довольно много памяти: это пара буфе­ров экрана (во время отображения одного буфера в другом строится новый кадр), Z-буфер, a-буфер (может вписываться в видеопамять), и память для хранения текстур (да еще и во многих экземплярах для mip map).  В режимах 8, 16 и 24 бит на пиксел также используется линейная органи­зация, но каждый байт (слово или три байта) отвечает уже за цвет одного пиксела. Многоплоскостная организация здесь уже была бы неэффективной. Вышеописанные варианты организации видеопамяти  -  и линейный, и мно­гоплоскостной  -  представляют собой отображение матрицы пикселов экрана на биты видеопамяти  -  Bit Mapping. Растровый формат хранения изображений, при котором биты так или иначе отображают пикселы, называется битовой кар­той (BitMap). С точки зрения плотности хранения графической информации этот формат не самый эффективный, но в видеопамяти растрового дисплея вследствие высокого темпа вывода информации при регенерации изображения иной формат неприемлем. Объем видеопамяти (в битах), требуемый для хранения образа экрана, оп­ределяется, как произведение количества пикселов в строке на количество строк и на количество бит на пиксел. Если физический объем видеопамяти превышает необходимый для отображения матрицы всего экрана, видеопамять можно разбить на страницы. Страница  -  это область видеопамяти, в которой умещается образ целого экрана. При многостраничной организации видеопамя­ти только одна из них может быть активной -  отображаемой на экран.

Скорость, с которой информация поступает на экран, и количество информации, которое выходит из видеоадаптера и передается на экран - все это зависит от трех факторов:

 - разрешение вашего монитора;

 - количество цветов, из которых можно выбирать при создании изображения;

 - частота, с которой происходит обновление экрана.

Разрешение определяется количеством пикселов на линии и количеством самих линий. Поэтому, на дисплее, например, с разрешением 1024х768, изображение формируется каждый раз при обновлении экрана из 786432 пикселов информации.

                Обычно, частота обновления экрана имеет значение не менее 75Hz или циклов в секунду. Следствием мерцание экрана является зрительное напряжение и усталость глаз при длительном наблюдении за изображением. Для уменьшения усталости глаз и улучшения эргономичности изображения, значение частоты обновления экрана должно быть достаточно высоким, не менее 75 Hz.

                Число допускающих воспроизведение цветов или глубина цвета это десятичный эквивалент двоичного значения количества битов на пиксел. Так, 8 бит на пиксел эквивалентно 256 цветам, 16 битный цвет, часто называемый просто high-color, отображает более 65000 цветов, а 24 битный цвет, также известный, как истинный или true color, может представить 16.7 миллионов цветов. 32 битный цвет, с целью избежать путаницы, обычно означает отображение истинного цвета с дополнительными 8 битами, которые используются для обеспечения 256 степеней прозрачности. Так, в 32 битном представлении каждый из 16.7 миллионов истинных цветов имеет дополнительные 256 степеней доступной прозрачности. Такие возможности представления цвета имеются только в системах высшего класса и графических рабочих станциях.

                Так как компьютер все больше становится средсвом визуализации, с более лучшей графикой, а графический интерфейс пользователя становится стандартом, пользователи хотят видеть больше информации на своих мониторах. Мониторы с диагональю 17 дюймов становятся стандартным оборудованием и разрешение 1024х768 пикселов адекватно заполняет экран с таким размером. Некоторые пользователи используют разрешение 1280х1024 пикселов на 17 дюймовых мониторах и более.

                В обычной графической подсистеме для обеспечения разрешения 1024x768 требуется 1 Мегабайт памяти. Несмотря на то, что только три четверти этого объема памяти необходимо в действительности, графическая подсистема обычно хранит информацию о курсоре и ярлыках в буферной памяти дисплея (off-screen memory) для быстрого доступа. Пропускная способность памяти определяется соотношением того, как много мегабайт данных передаются в память и из нее за секунду времени. Типичное разрешение 1024х768, при 8 битной глубине представления цвета и частоте обновления экрана 75 Hz, требует пропускной способности памяти 1118 мегабайт в секунду. Добавление функций обработки 3D графики требует увеличения размера доступной памяти на борту видеоадаптера. Дополнительная память, сверх необходимой для создания изображения на экране, используется для z-буфера и хранения текстур.

                Z-буферизация - изначально эта технология применялась в системах автоматизирован­ного проектирования. В двумерном мире объекты не могут располагаться впереди или позади друг друга, поэтому нет проблем с перекрытием. Но в трехмерном мире один объект может находиться впереди другого. Обычно световые лучи не проникают через непрозрачные объекты, поэтому мы видим все, что находится впереди, и не видим того, что позади. Когда два объекта перекрываются, нужно выяснить, какой из них находится впереди, чтобы знать, какие пиксели объекта нужно показать на дисплее. Область, в которой пересекаются две фигуры,  можно описать, указав для каждого пиксела фигур величину расстояния от него до условного заднего плана. Если дополнить обычную видеопамять картой этих расстояний для каждого пикселя, то будет всегда известно, нужно ли закрашивать конкретный пиксель: если значение расстояния (или значение Z) у пикселя меньше, значит, он позади и его не нужно закрашивать.

                Эту идею можно реализовать аппаратно. Решение, состоит в создании параллельно с памятью дисплея другого массива памяти, называемого  Z-буфером. Каждый раз при записи пикселя вычисляется его значение Z. При этом записываются только пиксели с большими значениями Z и обновляются расстояния в Z-буфере. Все остальные пикселы игнорируются. Таким образом, в каждой ячейке Z-буфера хранится расстояние по оси Z (вглубь экрана) для рисуемого пиксела, поэтому легко проверить, затенен ли новый записываемый пиксель или нет.  Z-буфер требует дополнительной памяти, и, чем большая точность нужна для значений  Z, тем больше памяти нужно для запоминания значений Z. Если используется разрешающая способность 640х400 и значения Z в виде 16-разрядных (двухбайтовых) чисел, то нужно иметь 0,5 мегабайта памяти только для Z-буфера. С помощью Z-буфера можно легко решить, какие объекты расположены на переднем плане, но при этом понадобится вдвое больший объем видеопамяти. Почти все современные 3D-ускорители имеют 24-х или 32-битную Z-буферизацию, что в значительной мере повышает разрешающую способность и, как следствие, качество рендеринга.

                Текстуры высокого разрешения занимают ог­ромное место в памяти. Например, тек­стура размером 1024х1024 пиксела при глубине цветности 16 бит достига­ет объема 2 Мбайт. Учитывая широкое распространение игр с глубиной цвет­ности 32 бит (текстура 2048х2048, 32 бит, занимает 16 Мбайт), становится понятным, что никакой видеопамяти, при сложности сцены хотя бы в 10 000 полигонов, не хватит.

                Закрашивание поверхностей производится сразу, как только получен набор двумерных многоугольников. На поверхность каждого из них накладывается теневая карта текстуры. Схемотехника быстро развивалась и сегодня обычно обес­печивается разрешение 1600х1200 точек при 32-битном цвете на частоте 75-85 Гц. При 24-битном кодировании цвета от двойного слова (32 бит), выделяемого на пиксел для упрощения адреса­ции и ускорения обмена, как раз остается 8 бит. Эти биты используются для хранения 8-битного коэффициента прозрачности для каждого пиксела, который используется для модификации цвета пиксела видеопамяти (такой формат видеопамяти на­зывают RGBA).

                В общем случае существуют два значения цвета  - первый для того образа, который «ближе», и второй -  для того, что «дальше» (по Z-параметру). Результирующий цвет определяется обо­ими значениями и свойством «прозрачности» ближнего. Для получения нового значения цвета обычно используют так называемый альфа-блондина (Alpha-blending). Мерой прозрачности объекта является коэффициент а (0 < а < 1), еди­ница соответствует полной непрозрачности. Результирующий цвет пиксела вы­числяется по соответствующей формуле, причем за этой формулой сто­ит в три раза больше операций, поскольку цвет определяется тремя значениями базисных цветов (R, G и В). Для реализации дан­ного метода требуется и свой альфа-буфер с количеством ячеек, по меньшей мере, равным числу пикселов на экране.

                В архитектуре процессоров Skylake для встроенной графики была реализована новая (128 Мбайт и 512-битной шиной), полностью когерентная структура встроенной DRAM (eDRAM), или Memory Side Cache, способная кэшировать любые данные, включая варианты "некэшируемой памяти", без необходимости очистки для поддержания когерентности, и доступной для использования устройствами ввода-вывода и формирования выходного видеосигнала. Помимо этого графическая подсистема для достижения оптимальной производительности может выбрать режим кэширования определённых данных только в eDRAM без использования кэш-памяти L3. В отличие от предыдущей архитектуры, где примерно четверть кэш-памяти L3 (1) использовалась для доступа к eDRAM, и при этом eDRAM не имела возможности прямого взаимодействия с остальной системой (на слайде ниже, в верхней части), в архитектуре Skylake контроллер eDRAM переместился в модуль системного агента, освободив таким образом порядка 512 Кбайт ёмкости кэша L3 (2) и одновременно с этим облегчив доступ другим компонентам ядра к данным в eDRAM. Отныне Memory Side Cache может взаимодействовать с основной системной памятью напрямую, обеспечивая таким образом обновление экрана без необходимости вывода остальных компонентов процессора из ждущего режима. А процессоры Kaby Lake будут иметь eDRAM 256 Мбайт.

 

 

 


Лицензия