簡介
Framebuffer 是用一個視頻輸出設備從包含完整的幀數據的一個記憶體緩衝區中來驅動一個視頻顯示設備。
在記憶體緩衝區中標準上包含了螢幕上每個像素的色彩值組成。色彩值通常存儲成1-bit(黑白色彩),4-bit調色版,8-bit調色版,16-bit高色彩,24-bit真色彩格式。一個額外的alpha通道有時用來保存像素透明度信息。
幀緩衝設備提供了顯示卡的抽象描述。他同時代表了顯示卡上的顯存,應用程式通過定義好的接口可以訪問顯示卡,而不需要知道底層的任何操作。該設備使用特殊的設備節點,通常位於/dev目錄,如/dev/fb*
頁交換
(Page flipping)
因為framebuffer經常用來設計處理不止一個解析度,所以他們經常包含更多的記憶體,用來在低分辯率顯示單獨的幀。既然這個記憶體在大小上足夠大,於是就發明一個方法來允許新的幀寫入視頻記憶體,並且不干擾正在顯示的內容。 這個概念工作原理是告訴framebuffer用一塊特殊的記憶體來顯示當前幀。當記憶體中的顯示出來後,一個單獨完整的部分記憶體用來添裝下一幀。一旦第二幀填充完成,framebuffer被命令找到第二個buffer替代。此時主buffer變成了第二buffer.第二buffer也就變成了主buffer. 這個操作通常在垂直回歸期(vertical blanking interval)完成,來防止螢幕tearing(舊帪顯示一半,新帪顯示一半) 。