Bufor ramki
Bufor ramki (ang. frame buffer) – część pamięci RAM (zwykle karty graficznej) przeznaczona do przechowywania informacji o pojedynczej ramce obrazu. W buforze tym przechowywane są informacje o wartości każdego piksela tworzącego ramkę. Wartości pikseli zapisywane są na jednym lub większej liczbie bitów, w zależności od wybranego dla karty graficznej trybu koloru, a co za tym idzie, ilości możliwych do wyświetlenia na ekranie kolorów. Metoda wykorzystująca bufor ramki do przechowywania obrazu zdobyła popularność wraz z upowszechnieniem się minikomputerów i stacji roboczych.
Historia
[edytuj | edytuj kod]Pierwszy znany, eksperymentalny bufor ramki użyty w 1969 roku wyświetlał obraz w trzybitowej głębi koloru, czyli kolorów było zaledwie 8. W 1972 roku w laboratoriach Xerox PARC zbudowano bufor z 311 040 bajtami pamięci, zdolny do wyświetlania obrazu w rozdzielczości 640×480 pikseli z ośmiobitową głębią koloru, czyli 256 kolorami
Charakterystyka
[edytuj | edytuj kod]Najczęściej dla bufora ramki stosuje się następujące głębie koloru (liczby bitów na piksel):
- 1-bitowa – dla obrazu monochromatycznego,
- 4-bitowa,
- 8-bitowa – dla obrazu w 256 kolorach,
- 16-bitowa, tryb high color – dla obrazu z paletą 65,5 tys. kolorów,
- 24-bitowa, tryb true color – dla obrazu z paletą 16,7 mln kolorów.
Bufor ramki pracuje w jednym z dwóch trybów:
- Off-screen – informacje przechowywane w buforze ramki nie są wyświetlane na ekranie;
- On-screen – informacje przechowywane w buforze ramki i wszystkie ich modyfikacje w czasie rzeczywistym wyświetlane są na ekranie.
Rozmiar bufora
[edytuj | edytuj kod]Wielkość bufora ramki, tj. ilość pamięci RAM potrzebna do zapisania pojedynczej ramki obrazu, zależy od ustawień karty graficznej – od rozdzielczości poziomej i pionowej obrazu oraz od trybu koloru, w którym pracuje karta, określającego ilość kolorów (tzw. głębię koloru) możliwą do wyświetlenia na ekranie, a więc liczbę bitów potrzebnych do zapisania takiej liczby kolorów. Wielkość pamięci bufora ramki wyliczana jest według wzoru:
gdzie:
- – wielkość bufora ramki (w bajtach),
- – rozdzielczość pozioma karty,
- – rozdzielczość pionowa karty,
- – liczba bajtów potrzebnych do zapisania liczby wyświetlanych przez kartę kolorów.
Na przykład dla ustawień karty: 800×600@16b: