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

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

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

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:

P = R x R y C , {\displaystyle P=Rx\cdot Ry\cdot C,}

gdzie:

P {\displaystyle P} – wielkość bufora ramki (w bajtach),
R x {\displaystyle Rx} – rozdzielczość pozioma karty,
R y {\displaystyle Ry} – rozdzielczość pionowa karty,
C {\displaystyle C} – liczba bajtów potrzebnych do zapisania liczby wyświetlanych przez kartę kolorów.

Na przykład dla ustawień karty: 800×600@16b:

P = 800 600 2   B = 937 , 5   KiB . {\displaystyle P=800\cdot 600\cdot 2\ {\textrm {B}}=937{,}5\ {\textrm {KiB}}.}

Zobacz też