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:

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:

Zobacz też

  • linuksowy bufor ramki
  • RAMDAC