FrameBuffer
FrameBuffer
Framebuffer 是用一個視頻輸出設備從包含完整的幀數據的一個內存緩衝區中來驅動一個視頻顯示設備。
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(舊帪顯示一半,新帪顯示一半)。