專利名稱:一種顯示控制器的像素幀緩存處理系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機顯示系統(tǒng)的系統(tǒng)芯片(System on a Chip,SoC)技術(shù)領(lǐng)域,特別是涉及一種計算機顯示系統(tǒng)中的顯示控制器的像素幀緩存處理系統(tǒng)及方法。
背景技術(shù):
計算機顯示系統(tǒng)是臺式機、筆記本電腦、智能手機等幾乎所有計算機系統(tǒng)的重要組成部分。
現(xiàn)有技術(shù)中,如IXD顯示器需要以60Hz或者更高的頻率進行刷新,因此顯示控制器(Liquid Crystal Display Controller, LCDC)也需要以相同的頻率掃描幀緩沖區(qū)讀取像素。掃描幀緩沖區(qū)所產(chǎn)生的存儲器訪問操作不僅是系統(tǒng)總線帶寬開銷的重要組成部分, 同時也成為計算機系統(tǒng)功耗的重要來源。在一些嵌入式系統(tǒng)中該部分功耗可占整個系統(tǒng)功耗的20%以上。
在多數(shù)應用場合,尤其是人機交互過程中,顯示屏幕更新的速度通常低于顯示控制器(LCDC)掃描幀緩沖區(qū)的速度,這意味著在一定時間段內(nèi),顯示控制器(LCDC)重復訪問幀緩沖區(qū)內(nèi)相同的數(shù)據(jù)。因此利用幀緩沖區(qū)壓縮(Frame BufferCompression,FBC)可以減少顯示控制器(LCDC)對存儲器的訪問次數(shù),從而降低顯示系統(tǒng)功耗。目前該技術(shù)已經(jīng)在一些計算機系統(tǒng),尤其是那些使用LCD顯示器的嵌入式設(shè)備中得到應用。
在現(xiàn)有技術(shù)"A compressed frame buffer to reduce display powerconsumption in mobile systems"; [C]//Proceedings of the 2004 Asia andSouth Pacific Design Automation Conference. Piscataway :IEEE Press, 2004 :818-823, H Shim, N Chang, M Pedram.中,其提出一種幀緩沖區(qū)游程編碼(RunLength Encoding, RLE) 格式一RLE16編碼,其如
圖1所示,采用基于RGB565色彩編碼格式的32位編碼,前16位原樣保存了 RGB565的色彩值,后16位保存這個色彩值的游程,從而最多可將連續(xù)65536個相同像素壓縮為32比特。但是,RLE16壓縮編碼的像素的游程長度占據(jù)了額外的存儲空間, 并且,采用RLE16編碼進行幀緩沖區(qū)壓縮,不排除壓縮后幀緩沖區(qū)體積反而增大的情況發(fā)生。該現(xiàn)有技術(shù)文獻中還同時提供另一種改進的幀緩沖區(qū)游程編碼格式——ARLE16編碼, 如圖2a、圖2b所示,其仍然采用基于RGB565色彩編碼的格式,但僅在幀緩沖區(qū)中連續(xù)出現(xiàn)多個相同像素的情況下才進行編碼,從而保證了壓縮后幀緩沖區(qū)的體積不超過壓縮前。同時其將RGB565格式的綠色分量長度由6位減至5位,并增添了指示當前編碼是否帶有游程的指示位。這樣,ARLE16犧牲了綠色分量的精度,使本來的無損壓縮變成了有損壓縮。另外ARLE16壓縮數(shù)據(jù)中包含32位(圖2a)和16位(圖2b)兩種長度的編碼格式,這種編碼長度不一致的缺陷會導致解碼器不論一拍取多少數(shù)據(jù),都有可能只取到某一編碼的顏色值卻取不到它的游程,該技術(shù)中,為保證解碼實時性,就必須設(shè)計更加復雜的解碼邏輯,從而產(chǎn)生更大的硬件開銷。發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種顯示控制器的幀緩存處理系統(tǒng)及方法,其有效地降低計算機顯示系統(tǒng)功耗。為實現(xiàn)本發(fā)明目的而提供的一種顯示控制器的幀緩存處理系統(tǒng),包括顯示控制器,還包括LFBC控制裝置,壓縮裝置,幀壓縮緩存區(qū),解壓裝置,其中所述LFBC控制裝置,用于對準備輸出到顯示控制器的新的像素,根據(jù)預設(shè)的閾值,控制以正常模式或者壓縮模式處理所述新的像素;當以正常模式處理時,獲取所述新的像素并直接發(fā)送到顯示控制器;當以壓縮模式處理所述新的像素時,則將所述獲取的新的像素輸入到壓縮裝置進行編碼壓縮輸入到幀壓縮緩存區(qū)得到壓縮編碼像素數(shù)據(jù),并控制解壓裝置將所述幀壓縮緩存區(qū)中的壓縮編碼像素數(shù)據(jù)解碼并輸出到顯示控制器;所述壓縮裝置,用于對準備輸出到顯示控制器的需要壓縮的新的像素進行編碼并得到壓縮游程計數(shù)值和壓縮編碼色彩值,并經(jīng)過處理輸出到幀壓縮緩存區(qū)得到編碼壓縮像素數(shù)據(jù);所述幀壓縮緩存區(qū),用于存儲被壓縮裝置壓縮后的編碼壓縮像素數(shù)據(jù);所述解壓裝置,用于從幀壓縮緩存區(qū)讀取編碼壓縮像素數(shù)據(jù),根據(jù)編碼壓縮像素數(shù)據(jù)得到解碼游程計數(shù)值和解碼色彩值進行解碼,得到顯示控制器的像素,輸出給顯示控制器進行顯示。較優(yōu)地,所述的像素幀緩存處理系統(tǒng),還包括DMA模塊;所述LFBC控制裝置從所述 DMA模塊獲取所述新的像素;所述進處理,為按預設(shè)的LFBC游程編碼格式進行處理;所述進行解碼為按預設(shè)的 LFBC游程編碼格式進行解碼;所述預設(shè)LFBC游程編碼格式為利用阿爾法分量的位置來保存當前像素的游程長度的游程編碼格式;所述預設(shè)LFBC游程編碼格式數(shù)據(jù)結(jié)構(gòu)中原阿爾法分量保存位置保存8 位游程長度,剩余M位保存壓縮編碼色彩值,其中,紅、綠、藍色彩值分量分別為8位;所述幀壓縮緩存區(qū)為計算機顯示控制器的內(nèi)存的一段數(shù)據(jù)緩存區(qū)。較優(yōu)地,所述LFBC控制裝置,包括一個飽和計數(shù)器,計分模塊,其中所述計分模塊,用于對當前時間段內(nèi)DMA模塊的幀緩存區(qū)的內(nèi)容更新的頻率進行計分,得到計分值;所述飽和計數(shù)器,用于存儲所述計分值。較優(yōu)地,所述壓縮裝置,包括編碼模塊;所述編碼模塊,用于將準備輸入到顯示控制器的新的像素的色彩值,與當前像素的色彩值進行比較,根據(jù)比較結(jié)果進行編碼并得到壓縮游程計數(shù)值和壓縮編碼色彩值,并按預設(shè)的LFBC游程編碼格式,對所述壓縮游程計數(shù)值和壓縮編碼色彩值進行壓縮處理后輸出到幀壓縮緩存區(qū)中得到編碼壓縮像素數(shù)據(jù)。 較優(yōu)地,所述編碼模塊,包括第一拍比較子模塊,第二拍壓縮子模塊,壓縮游程計數(shù)寄存器,壓縮編碼色彩值寄存器,壓縮緩沖區(qū),其中 所述第一拍比較子模塊,用于在編碼的第一拍中,將新的像素的像素色彩值與壓縮編碼色彩值作比較;若相同,壓縮游程計數(shù)寄存器中的壓縮游程計數(shù)值將自加1 ;若不同,則將壓縮游程計數(shù)寄存器中的壓縮游程計數(shù)值和壓縮編碼色彩值寄存器中的壓縮編碼色彩值寫入壓縮緩沖區(qū)中,并將新的像素的色彩值鎖存在壓縮編碼色彩值寄存器中作為新的壓縮編碼色彩值,壓縮游程計數(shù)寄存器清零;
所述第二拍壓縮子模塊,用于在編碼的第二拍中,若壓縮游程計數(shù)寄存器中壓縮游程計數(shù)值不為零,則不做任何操作并返回;若壓縮游程計數(shù)寄存器中壓縮游程計數(shù)值為零,則一段編碼結(jié)束,從壓縮緩沖區(qū)中讀取壓縮游程計數(shù)值和壓縮編碼色彩值,按預設(shè)的 LFBC游程編碼格式,壓縮寫入幀壓縮緩存區(qū)得到壓縮編碼像素數(shù)據(jù);
所述壓縮游程計數(shù)寄存器,用于保存壓縮游程計數(shù)值;
所述壓縮編碼色彩值寄存器,用于保存壓縮編碼色彩值;
所述壓縮緩沖區(qū),用于按預設(shè)的LFBC游程編碼格式,緩存壓縮游程計數(shù)值和壓縮編碼色彩值。
較優(yōu)地,在所述編碼模塊中,還包括判斷子模塊,用于在控制壓縮游程計數(shù)值將自加1后,判斷壓縮游程計數(shù)值是否等于256 ;如果是,則將壓縮游程計數(shù)寄存器中的壓縮游程計數(shù)值和壓縮編碼色彩值寄存器中的壓縮編碼色彩值寫入壓縮緩沖區(qū)中,壓縮游程計數(shù)寄存器清零。
較優(yōu)地,所述解壓裝置包括讀取模塊和解碼模塊,解碼游程計數(shù)寄存器,解碼色彩值寄存器。
其中,所述讀取模塊,用于從幀壓縮緩沖區(qū)讀取新的編碼壓縮像素數(shù)據(jù),將編碼壓縮象素數(shù)據(jù)分成兩部分,分別寫入解碼游程計數(shù)寄存器作為解碼游程計數(shù)值和寫入解碼色彩值寄存器作為當前像素的解碼色彩值;
所述解碼模塊,用于根據(jù)第二游程計數(shù)值和當前像素的色彩編碼值,按預設(shè)的 LFBC游程編碼格式解碼得到顯示控制器的像素,輸出給顯示控制器;并在解壓過程中,判斷解碼游程計數(shù)值是否為0 ;如果是,則控制讀取模塊在下一拍中從幀壓縮緩存區(qū)讀取一個新的編碼壓縮像素數(shù)據(jù);否則繼續(xù)進行解碼;
所述解碼游程計數(shù)寄存器,用于保存解碼游程計數(shù)值;
所述解碼色彩值寄存器,用于保存當前像素的解碼色彩值。
較優(yōu)地,所述解壓裝置,還包括采樣模塊,用于在解碼的每一拍,均對解碼色彩值寄存器中的當前像素的解碼色彩值進行采樣。
為實現(xiàn)本發(fā)明目的還提供一種顯示控制器的像素幀緩存處理方法,包括如下步驟
步驟S100,對準備輸出到顯示控制器的新的像素,根據(jù)預設(shè)的閾值,控制以正常模式或者壓縮模式處理所述新的像素;當以正常模式處理時,獲取所述新的像素并直接發(fā)送到顯示控制器;當以壓縮模式處理所述新的像素時,則轉(zhuǎn)入步驟S200 ;
步驟S200,對準備輸出到顯示控制器的需要壓縮的新的像素進行編碼并得到壓縮游程計數(shù)值和壓縮編碼色彩值,并經(jīng)過處理輸出到幀壓縮緩存區(qū)得到編碼壓縮像素數(shù)據(jù);
步驟S300,存儲被壓縮裝置壓縮后的編碼壓縮像素數(shù)據(jù);
步驟S400,從幀壓縮緩存區(qū)讀取編碼壓縮像素數(shù)據(jù),根據(jù)編碼壓縮像素數(shù)據(jù)得到解碼游程計數(shù)值和解碼色彩值并進行解碼,得到顯示控制器的像素,輸出到顯示控制器進行顯不。
較佳地,所述步驟S200,包括如下步驟
步驟S210,在編碼的第一拍中,將新的像素的色彩值與壓縮編碼色彩值作比較;
步驟S220,若相同,壓縮游程計數(shù)寄數(shù)器中的壓縮游程計數(shù)值將自加1 ;若不同, 則將壓縮游程計數(shù)寄存器中的壓縮游程計數(shù)值和壓縮編碼色彩值寄存器中的壓縮編碼色彩值寫入壓縮緩沖區(qū)中,并將新的像素的色彩值鎖存在壓縮編碼色彩值寄存器中作為壓縮編碼色彩值,壓縮游程計數(shù)寄存器清零;步驟S230,在編碼的第二拍中,若壓縮游程計數(shù)寄存器中壓縮游程計數(shù)值不為零, 則不做任何操作并返回;若壓縮游程計數(shù)寄存器中壓縮游程計數(shù)值為零,則一段編碼結(jié)束, 從壓縮緩沖區(qū)中讀取壓縮游程計數(shù)值和壓縮編碼色彩值,利用預設(shè)的LFBC游程編碼格式, 壓縮寫入幀壓縮緩存區(qū)得到壓縮編碼像素數(shù)據(jù)。較優(yōu)地,所述步驟S220還包括如下步驟步驟S220’,在控制壓縮游程計數(shù)值將自加1后,判斷壓縮游程計數(shù)值是否等于 256 ;如果是,則將壓縮游程計數(shù)寄存器中的壓縮游程計數(shù)值和壓縮編碼色彩值寄存器中的壓縮編碼色彩值寫入壓縮緩沖區(qū)中,壓縮游程計數(shù)寄存器清零。較優(yōu)地,所述步驟S400,包括如下步驟步驟S410,從幀壓縮緩沖區(qū)讀取新的編碼壓縮像素數(shù)據(jù),將編碼壓縮象素數(shù)據(jù)分成兩部分,分別寫入解碼游程計數(shù)寄存器作為解碼游程計數(shù)值和寫入解碼色彩值寄存器作為當前像素的解碼色彩值;步驟S420,根據(jù)解碼游程計數(shù)值和當前像素的解碼色彩值,按預設(shè)的LFBC游程編碼格式數(shù)據(jù),解碼得到顯示控制器的像素,輸出給顯示控制器;并在解碼過程中,判斷解碼游程計數(shù)值是否為0 ;如果是,則控制讀取模塊在下一拍中從幀壓縮緩存區(qū)讀取一個新的編碼壓縮像素數(shù)據(jù);否則繼續(xù)進行解碼。本發(fā)明的有益效果本發(fā)明的顯示控制器的幀緩沖區(qū)壓縮處理系統(tǒng)及方法,通過幀壓縮緩存區(qū)內(nèi)數(shù)據(jù)量的大小,減少計算機顯示控制器掃描幀緩沖區(qū)過程中所產(chǎn)生的存儲器訪問操作數(shù)量,從而達到降低計算機顯示系統(tǒng)功耗的目的。說明書附1為現(xiàn)有技術(shù)中的一種RLE16游程編碼數(shù)據(jù)結(jié)構(gòu)示意圖;圖加為現(xiàn)有技術(shù)中的一種ARLE16游程編碼數(shù)據(jù)結(jié)構(gòu)(當游程大于1時)示意圖;圖2b為現(xiàn)有技術(shù)中的一種ARLE16游程編碼數(shù)據(jù)結(jié)構(gòu)(當游程等于1時)示意圖;圖3為本發(fā)明實施例顯示控制器的像素幀緩存處理系統(tǒng)結(jié)構(gòu)示意圖;圖4為ARGB8888色彩編碼數(shù)據(jù)結(jié)構(gòu)示意圖;圖5為本發(fā)明LFBC游程編碼格式數(shù)據(jù)結(jié)構(gòu)示意圖;圖6為圖5中壓縮裝置工作過程示意圖;圖7為圖5中解壓裝置工作過程示意圖;圖8為用本發(fā)明實施例的顯示控制器的幀緩存處理系統(tǒng)及方法改進龍芯IGSoC顯示控制器設(shè)計前后顯示系統(tǒng)功耗的對比示意圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明的顯示控制器的幀緩存處理系統(tǒng)及方法進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖3所示,本發(fā)明的顯示控制器的像素幀緩存處理系統(tǒng),包括顯示控制器3, LFBC (Loongson Frame Buffer Compression)控制裝置1,壓縮裝置2,幀壓縮緩存區(qū)5,解壓裝置4,其中
所述LFBC控制裝置1,用于對準備輸出到顯示控制器3的新的像素,根據(jù)預設(shè)的閾值T,控制以正常模式或者壓縮模式處理所述新的像素;當以正常模式處理時,獲取所述新的像素并直接發(fā)送到顯示控制器3 ;當以壓縮模式處理所述新的像素時,則將所述獲取的新的像素輸入到壓縮裝置2進行編碼壓縮輸入到幀壓縮緩存區(qū)5得到壓縮編碼像素數(shù)據(jù); 并控制解壓裝置4將所述幀壓縮緩存區(qū)5中的壓縮編碼像素數(shù)據(jù)解碼并輸出到顯示控制器 3。
所述壓縮裝置2,用于對準備輸出到顯示控制器3的需要壓縮的新的像素進行編碼并得到壓縮游程計數(shù)值和壓縮編碼色彩值,并經(jīng)過處理輸出到幀壓縮緩存區(qū)5得到編碼壓縮像素數(shù)據(jù)。
所述幀壓縮緩存區(qū)5,用于存儲被壓縮裝置2壓縮后的編碼壓縮像素數(shù)據(jù)。
較佳地,作為一種可實施方式,所述幀壓縮緩存區(qū)5可以是計算機顯示系統(tǒng)內(nèi)存 (未示出)的一段數(shù)據(jù)緩存區(qū)。
所述解壓裝置4,用于從幀壓縮緩存區(qū)5讀取編碼壓縮像素數(shù)據(jù),根據(jù)編碼壓縮像素數(shù)據(jù)得到解碼游程計數(shù)值和解碼色彩值進行解碼,得到顯示控制器3的像素,輸出給顯示控制器3進行顯示。
較佳地,作為一種可實施方式,本發(fā)明實施例的所述的像素幀緩存處理系統(tǒng),還包括DMA (Direct Memory Access,直接內(nèi)存存取)模塊6 ;所述LFBC控制裝置從所述DMA模塊獲取所述新的像素;
較佳地,作為一種可實施方式,本發(fā)明實施例中,所述處理為按預設(shè)的LFBC游程編碼格式進行處理;所述進行解碼為按預設(shè)的LFBC游程編碼格式進行解碼。
現(xiàn)代計算機顯示系統(tǒng)往往要求像素在幀緩沖區(qū)內(nèi)以ARGB8888數(shù)據(jù)格式進行存儲,如圖4所示。ARGB8888數(shù)據(jù)格式中的阿爾法(Alpha)分量在圖形處理過程中有重要的用途(alpha混合、alpha測試等)。但在顯示控制器3讀取像素并發(fā)送到顯示接口的過程中,該分量被直接拋棄。因此,作為一種可實施方式,本發(fā)明實施例中,所述預設(shè)LFBC游程編碼格式為利用阿爾法(Alpha)分量的位置來保存當前像素的游程長度的游程編碼格式。 作為一種可實施方式,本發(fā)明實施例中,所述預設(shè)LFBC游程編碼格式,其數(shù)據(jù)結(jié)構(gòu)如圖5所示,其中8位(原Alpha分量保存位置)保存游程長度,剩余M位保存壓縮編碼色彩值(在壓縮裝置中)或者解碼色彩值(在解碼裝置中),其中,紅、綠、藍色彩值分量分別為8位。 本發(fā)明實施例中,預設(shè)的LFBC游程編碼的8位游程可表示O 255無符號整數(shù),因此可將最多256個連續(xù)相同像素壓縮到原來1個像素的長度(32比特)。
較佳地,作為一種可實施方式,下面詳細描述本發(fā)明實施例的LFBC控制裝置1。
LFBC控制裝置1控制顯示控制器(IXDC)在正常模式和壓縮模式之間的切換。
所述LFBC控制裝置1對準備輸出到顯示控制器3的新的像素,根據(jù)預設(shè)的閾值T, 控制以正常模式或者壓縮模式處理所述新的像素;當以正常模式處理時,從DMA模塊獲取所述新的像素并直接發(fā)送到顯示控制器3 ;當以壓縮模式處理所述新的像素時,則將所述新的像素輸入到壓縮裝置2進行編碼壓縮得到壓縮編碼像素數(shù)據(jù)輸入幀壓縮緩存區(qū)5 ;并控制解壓裝置4將所述幀壓縮緩存區(qū)5中的壓縮編碼像素數(shù)據(jù)解壓并輸出到顯示控制器3。較佳地,作為一種可實施方式,本發(fā)明實施例的LFBC控制裝置1,包括一個飽和計數(shù)器11,計分模塊12。所述計分模塊12,用于對當前時間段內(nèi)DMA模塊6的幀緩存區(qū)的內(nèi)容更新的頻率進行計分,得到計分值。所述飽和計數(shù)器11,用于存儲所述計分值。每當顯示控制器3 (LCDC)完成一次幀緩沖區(qū)掃描,計分模塊的計分值(分數(shù))就修改一次若上次掃描過程中幀緩沖區(qū)的內(nèi)容被更新,則計分值增加η ;若上次掃描過程中幀緩沖區(qū)的內(nèi)容沒有更新,則計分值自減1。依照此計分方法,若幀緩沖區(qū)內(nèi)容更新的時間間隔大于完成η次掃描的時間,則飽和計數(shù)器的值會逐漸上升,反之就逐漸下降。記T為閾值,則當飽和計數(shù)器分數(shù)高于閾值T時,表明當前應用不適合進行幀緩沖區(qū)壓縮;反之則適合進行幀緩沖區(qū)壓縮。當以正常模式處理時,將所述新的像素直接輸入到顯示控制器3 ;當以壓縮模式處理所述新的像素時,則將所述新的像素輸入到壓縮裝置2進行編碼壓縮得到壓縮編碼像素數(shù)據(jù)輸入到幀壓縮緩存區(qū)5 ;并控制解壓裝置4將所述幀壓縮緩存區(qū)5中的壓縮編碼像素數(shù)據(jù)解壓并輸出到顯示控制器3。更佳地,為了兼顧控制模塊的反應速度,作為一種可實施方式,本發(fā)明實施例中, 所述飽和計數(shù)器11的位數(shù)為4位,即滿分15 ;所述閾值T為8 ;所述η為2。較佳地,作為一種可實施方式,如圖6所示,本發(fā)明實施例的壓縮裝置2,包括編碼模塊。所述編碼模塊,用于對準備輸入到顯示控制器3的新的像素的色彩值 anputPixel),將所述新的像素的色彩值(Input Pixel)與當前像素的色彩值進行比較,根據(jù)比較結(jié)果進行編碼并得到壓縮游程計數(shù)值(Pixel Count)和壓縮編碼色彩值,并按預設(shè)的LFBC游程編碼格式,對所述壓縮游程計數(shù)值和壓縮編碼色彩值進行處理后輸出到幀壓縮緩存區(qū)5中。較佳地,作為一種可實施方式,所述編碼模塊,包括第一拍比較子模塊21,第二拍控制子模塊22,壓縮游程計數(shù)寄存器23,壓縮編碼色彩值寄存器M,壓縮緩沖區(qū)25,其中所述第一拍比較子模塊21,用于在編碼的第一拍中,將新的像素的像素色彩值 (Input Pixel)與壓縮編碼色彩值(Current Pixel)作比較;若相同,控制壓縮游程計數(shù)寄存器23中的壓縮游程計數(shù)值將自加1 ;若不同,則將壓縮游程計數(shù)寄存器23中的壓縮游程計數(shù)值和壓縮編碼色彩值寄存器M中的壓縮編碼色彩值寫入壓縮緩沖區(qū)25中,并將新的像素的色彩值鎖存在壓縮編碼色彩值寄存器M中作為新的壓縮編碼色彩值,壓縮游程計數(shù)(Pixel Count)寄存器23清零。所述第二拍壓縮子模塊22,用于在編碼的第二拍中,若壓縮游程計數(shù)寄存器23中壓縮游程計數(shù)值不為零,則不做任何操作并返回;若壓縮游程計數(shù)寄存器23中壓縮游程計數(shù)值為零,則一段編碼結(jié)束,從壓縮緩沖區(qū)25中讀取壓縮游程計數(shù)值和壓縮編碼色彩值,按預設(shè)的LFBC游程編碼格式,寫入幀壓縮緩存區(qū)(Compress Buffer) 5得到壓縮編碼像素數(shù)據(jù),完成編碼壓縮過程。
所述壓縮游程計數(shù)寄存器23,用于保存壓縮游程計數(shù)值。作為一種現(xiàn)有的技術(shù),該壓縮游程寄存器23在顯示系統(tǒng)啟動初始化時,初始化其初始值為0。
所述壓縮編碼色彩值寄存器對,用于保存壓縮編碼色彩值。
所述壓縮緩沖區(qū)25,用于按預設(shè)的LFBC游程編碼格式,緩存壓縮游程計數(shù)值 (Pixel Count)和壓縮編碼色彩值。
作為一種可實施方式,本發(fā)明實施例中,所述壓縮裝置2的工作過程如下
對新的像素色彩值(Input Pixel),對所述新的像素色彩值(Input Pixel)比較, 進行編碼并得到壓縮游程計數(shù)值和壓縮編碼色彩值,并壓縮后寫入到幀壓縮緩存區(qū)中。
較佳地,作為一種可實施方式,如圖6所示,編碼壓縮過程需要兩個時鐘周期,即編碼像素流水線包括兩拍編碼像素流水線的第一拍和第二拍。
本發(fā)明實施例中,作為一種可實施方式,較佳地,為了不增加額外的訪存請求,編碼像素流水線第一拍和第二拍可以同時讀取像素,即第一拍與第二拍同時處理像素編碼。
其中,作為一種可實施方式,在編碼像素流水線第一拍,新的像素的色彩值(Input Pixel)與壓縮編碼色彩值(Current Pixel)作比較;若相同,壓縮游程計數(shù)值(Pixel Count)將自加1 ;若不同,則將壓縮游程計數(shù)寄存器23中的壓縮游程計數(shù)值和壓縮編碼色彩值寄存器M中的壓縮編碼色彩值寫入壓縮緩沖區(qū)25中,并將新的像素的色彩值鎖存在壓縮編碼色彩值寄存器M中作為新的壓縮編碼色彩值,壓縮游程計數(shù)寄存器23清零。
在編碼像素流水線第二拍,若壓縮游程計數(shù)寄存器23中的壓縮游程計數(shù)值不為零,則不做任何操作并返回,等待讀取下一個新的像素并進行新的第一拍和第二拍操作;若壓縮游程計數(shù)(Pixel Count)寄存器23中的壓縮游程計數(shù)值為零,則一段編碼結(jié)束,從壓縮緩沖區(qū)25中讀取壓縮游程計數(shù)值和壓縮編碼色彩值,利用預設(shè)的LFBC游程編碼格式,進行壓縮寫入得到壓縮編碼數(shù)據(jù)。
然后,經(jīng)過壓縮寫入的壓縮編碼數(shù)據(jù)最終由AXI (Advanced eXtensiblelnterface)總線接口模塊7以闖入(Burst)的方式寫入幀壓縮緩存區(qū) (CompressFrame Buffer)5。
像素更佳地,所述編碼模塊,還包括判斷子模塊沈,用于在控制壓縮游程計數(shù)值將自加1后,判斷壓縮游程計數(shù)值是否等于256 ;如果是,則將壓縮游程計數(shù)寄存器23中的壓縮游程計數(shù)值和壓縮編碼色彩值寄存器M中的壓縮編碼色彩值寫入壓縮緩沖區(qū)25中,壓縮游程計數(shù)(Pixel Count)寄存器23清零。
較佳地,作為一種可實施方式,如圖7所示,本發(fā)明實施例的解壓裝置4包括讀取模塊41和解碼模塊42,解碼游程計數(shù)寄存器43,解碼編碼色彩值寄存器44。
其中,所述讀取模塊41,用于從幀壓縮緩沖區(qū)讀取新的編碼壓縮像素數(shù)據(jù),將編碼壓縮象素數(shù)據(jù)分成兩部分,分別寫入解碼游程計數(shù)寄存器作為解碼游程計數(shù)值和寫入解碼色彩值寄存器作為當前像素的解碼色彩值;。
所述解碼模塊42,用于根據(jù)解碼游程計數(shù)值和當前像素的解碼色彩值,按預設(shè)的 LFBC游程編碼格式,解碼得到顯示控制器的像素輸出給顯示控制器3 ;并在解壓過程中,判斷解碼游程計數(shù)值是否為0,如果是,則控制讀取模塊在下一拍中從幀壓縮緩存區(qū)讀取一個新的編碼壓縮像素數(shù)據(jù);否則繼續(xù)進行解碼。作為一種可實施方式,在解壓過程中,若解碼游程計數(shù)(Pixel Count)寄存器中解碼游程計數(shù)值為0,則在下一拍從幀壓縮緩存區(qū)讀取一個新的32位編碼壓縮像素數(shù)據(jù)。所述解碼游程計數(shù)寄存器43,用于保存解碼游程計數(shù)值。所述解碼色彩值寄存器44,用于保存解碼色彩值。更佳地,所述解壓裝置,還包括采樣模塊,用于在解壓像素流水線每一拍,均對解碼色彩值(Current Pixel)寄存器中的當前像素的解碼色彩值進行采樣。下面詳細說明本發(fā)明實施例中解壓裝置的工作過程如圖7所示,讀取模塊從幀壓縮緩沖區(qū)讀取新的編碼壓縮像素數(shù)據(jù),將編碼壓縮象素數(shù)據(jù)分成兩部分,分別寫入解碼游程計數(shù)寄存器作為解碼游程計數(shù)值和寫入解碼色彩值寄存器作為當前像素的解碼色彩值;解碼模塊根據(jù)解碼游程計數(shù)值和當前像素的解碼色彩值,按預設(shè)的LFBC游程編碼格式,解碼得到顯示控制器的像素輸出給顯示控制器3 ;在解壓過程中,若解碼游程計數(shù)(Pixel Count)寄存器中解碼游程計數(shù)值為0,則在下一拍從幀壓縮緩存區(qū)讀取一個新的32位編碼壓縮像素數(shù)據(jù),輸出到解碼模塊。其中,32位編碼壓縮像素數(shù)據(jù)的高8位作為解碼游程計數(shù)值保存在解碼游程計數(shù) (Pixel Count)寄存器中,低M位作為M位色彩值保存在解碼色彩寄存器中;在解壓過程中,若解碼游程計數(shù)(Pixel Count)寄存器不為0,則解碼游程計數(shù) (Pixel Count)寄存器中解碼游程計數(shù)值在下一拍自減1得到新的解碼游程計數(shù)值,解碼色彩編碼寄存器的壓縮編碼色彩值保持不變,解碼得到顯示控制器的像素,輸出給顯示控制器3。相應地,本發(fā)明還提供一種顯示控制器的像素幀緩存處理方法,包括如下步驟步驟S100,對準備輸出到顯示控制器的新的像素,根據(jù)預設(shè)的閾值T,控制以正常模式或者壓縮模式處理所述新的像素;當以正常模式處理時,獲取所述新的像素并直接發(fā)送到顯示控制器;當以壓縮模式處理所述新的像素時,則轉(zhuǎn)入步驟S200 ;步驟S200,對準備輸出到顯示控制器的需要壓縮的新的像素的色彩值進行編碼并得到壓縮游程計數(shù)值和壓縮編碼色彩值,并經(jīng)過處理輸出到幀壓縮緩存區(qū)得到編碼壓縮像素數(shù)據(jù);步驟S300,存儲被壓縮裝置壓縮后的編碼壓縮像素數(shù)據(jù);步驟S400,從幀壓縮緩存區(qū)讀取編碼壓縮像素數(shù)據(jù),根據(jù)編碼壓縮像素數(shù)據(jù)得到解碼游程計數(shù)值和解碼色彩值并進行解碼,得到顯示控制器的像素,輸出給顯示控制器進行顯不。較佳地,所述步驟S200,作為一種可實施方式,包括如下步驟步驟S210,在編碼過的第一拍中,將新的像素的色彩值(Input Pixel)與壓縮編碼色彩值(Current Pixel)作比較;步驟S220,若相同,壓縮游程計數(shù)(Pixel Count)寄數(shù)器中的壓縮游程計數(shù)值將自加1 ;若不同,則將壓縮游程計數(shù)寄存器23中的壓縮游程計數(shù)值和壓縮編碼色彩值寄存器M中的壓縮編碼色彩值寫入壓縮緩沖區(qū)25中,并將新的像素的色彩值鎖存在壓縮編碼色彩值(Current Pixel)寄存器中作為新的壓縮編碼色彩值,壓縮游程計數(shù)(Pixel Count)寄存器清零;
步驟S230,在編碼的第二拍中,若壓縮游程計數(shù)(Pixel Count)寄存器中的壓縮游程計數(shù)值不為零,則不做任何操作并返回;若壓縮游程計數(shù)(PixelCoimt)寄存器中的壓縮游程計數(shù)值為零,則一段編碼結(jié)束,從壓縮緩沖區(qū)25中讀取壓縮游程計數(shù)值和壓縮編碼色彩值,利用預設(shè)的LFBC游程編碼格式,寫入幀壓縮緩存區(qū)得到壓縮編碼像素數(shù)據(jù)。
更佳地,所述步驟S220還包括如下步驟
步驟S220’,在控制壓縮游程計數(shù)值將自加1后,判斷壓縮游程計數(shù)值是否等于 256 ;如果是,則將壓縮游程計數(shù)寄存器23中的壓縮游程計數(shù)值和壓縮編碼色彩值寄存器 M中的壓縮編碼色彩值寫入壓縮緩沖區(qū)25中,壓縮游程計數(shù)(Pixel Count)寄存器23清零。
較佳地,所述步驟S400,作為一種可實施方式,包括如下步驟
步驟S410,從幀壓縮緩沖區(qū)讀取新的編碼壓縮像素數(shù)據(jù),將編碼壓縮象素數(shù)據(jù)分成兩部分,分別寫入解碼游程計數(shù)寄存器作為解碼游程計數(shù)值和寫入解碼色彩值寄存器作為當前像素的解碼色彩值;步驟S420,根據(jù)解碼游程計數(shù)值和當前像素的解碼色彩值,按預設(shè)的LFBC游程編碼格式,解碼得到顯示控制器的像素輸出給顯示控制器;并在解碼過程中,判斷解碼游程計數(shù)值是否為0 ;如果是,則控制讀取模塊在下一拍中從幀壓縮緩存區(qū)讀取一個新的編碼壓縮像素數(shù)據(jù);否則繼續(xù)進行解碼。
本發(fā)明實施例的顯示控制器的幀緩存處理方法的方法步驟與本發(fā)明實施例的顯示控制器的幀緩存處理系統(tǒng)工作過程相同,因此,在本發(fā)明實施例中,不再一一詳細描述。
下面進一步通過實驗數(shù)據(jù)說明本發(fā)明的顯示控制器的幀緩存處理系統(tǒng)及方法。
在龍芯IG SoC(System on a Chip)上使用本發(fā)明顯示控制器的幀緩存處理系統(tǒng)及方法前后,顯示控制器在同一時間段內(nèi)掃描幀緩沖區(qū)產(chǎn)生的訪存操作數(shù)量對比如表1所示。
表1顯示控制器模塊改進前后的訪存功耗
權(quán)利要求
1.一種顯示控制器的像素幀緩存處理系統(tǒng),包括顯示控制器,其特征在于,還包括 LFBC控制裝置,壓縮裝置,幀壓縮緩存區(qū),解壓裝置,其中所述LFBC控制裝置,用于對準備輸出到顯示控制器的新的像素,根據(jù)預設(shè)的閾值,控制以正常模式或者壓縮模式處理所述新的像素;當以正常模式處理時,獲取所述新的像素并直接發(fā)送到顯示控制器;當以壓縮模式處理所述新的像素時,則將所述獲取的新的像素輸入到壓縮裝置進行編碼壓縮輸入到幀壓縮緩存區(qū)得到壓縮編碼像素數(shù)據(jù);并控制解壓裝置將所述幀壓縮緩存區(qū)中的壓縮編碼像素數(shù)據(jù)解壓并輸出到顯示控制器;所述壓縮裝置,用于對準備輸出到顯示控制器的需要壓縮的新的像素進行編碼并得到壓縮游程計數(shù)值和壓縮編碼色彩值,并經(jīng)過處理輸出到幀壓縮緩存區(qū)得到編碼壓縮像素數(shù)據(jù);所述幀壓縮緩存區(qū),用于存儲被壓縮裝置壓縮后的編碼壓縮像素數(shù)據(jù);所述解壓裝置,用于從幀壓縮緩存區(qū)讀取編碼壓縮像素數(shù)據(jù),根據(jù)編碼壓縮像素數(shù)據(jù)得到解碼游程計數(shù)值和解碼色彩值并進行解碼,得到顯示控制器的像素,輸出給顯示控制器進行顯示。
2.根據(jù)權(quán)利要求1所述的像素幀緩存處理系統(tǒng),其特征在于,還包括DMA模塊;所述 LFBC控制裝置從所述DMA模塊獲取所述新的像素;所述處理,為按預設(shè)的LFBC游程編碼格式進行處理;所述進行解碼為按預設(shè)的LFBC游程編碼格式進行解碼;所述預設(shè)LFBC游程編碼格式為利用阿爾法分量的位置來保存當前像素的游程長度的游程編碼格式;所述預設(shè)LFBC游程編碼格式數(shù)據(jù)結(jié)構(gòu)中原阿爾法分量保存位置保存8位游程長度,剩余M位保存壓縮編碼色彩值,其中,紅、綠、藍色彩值分量分別為8位;所述幀壓縮緩存區(qū)為計算機顯示系統(tǒng)內(nèi)存的一段數(shù)據(jù)緩存區(qū)。
3.根據(jù)權(quán)利要求2所述的像素幀緩存處理系統(tǒng),其特征在于,所述LFBC控制裝置,包括一個飽和計數(shù)器,計分模塊,其中所述計分模塊,用于對當前時間段內(nèi)DMA模塊的幀緩存區(qū)的內(nèi)容更新的頻率進行計分,得到計分值;所述飽和計數(shù)器,用于存儲所述計分值。
4.根據(jù)權(quán)利要求3所述的像素幀緩存處理系統(tǒng),其特征在于,每當顯示控制器完成一次幀緩沖區(qū)掃描,所述計分模塊的計分值就修改一次若上次掃描過程中幀緩沖區(qū)的內(nèi)容被更新,則計分值增加η ;若上次掃描過程中幀緩沖區(qū)的內(nèi)容沒有更新,則計分值自減1。
5.根據(jù)權(quán)利要求4所述的像素幀緩存處理系統(tǒng),其特征在于,所述飽和計數(shù)器的位數(shù)為4位;所述閾值T為8 ;所述η為2。
6.根據(jù)權(quán)利要求1所述的像素幀緩存處理系統(tǒng),其特征在于,所述壓縮裝置,包括編碼模塊;所述編碼模塊,用于將準備輸入到顯示控制器的新的像素的色彩值,與當前像素的色彩值進行比較,根據(jù)比較結(jié)果進行編碼并得到壓縮游程計數(shù)值和壓縮編碼色彩值,并利用預設(shè)的LFBC游程編碼格式,對所述壓縮游程計數(shù)值和壓縮編碼色彩值進行處理后輸出到幀壓縮緩存區(qū)中得到編碼壓縮像素數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的像素幀緩存處理系統(tǒng),其特征在于,所述編碼模塊,包括第一拍比較子模塊,第二拍壓縮子模塊,壓縮游程計數(shù)寄存器,壓縮編碼色彩值寄存器,壓縮緩沖區(qū),其中所述第一拍比較子模塊,用于在編碼的第一拍中,將新的像素的像素色彩值與壓縮編碼色彩值作比較;若相同,控制壓縮游程計數(shù)寄存器中的壓縮游程計數(shù)值將自加1 ;若不同,則將壓縮游程計數(shù)寄存器中的壓縮游程計數(shù)值和壓縮編碼色彩值寄存器中的壓縮編碼色彩值寫入壓縮緩沖區(qū)中,并將新的像素的色彩值鎖存在壓縮編碼色彩值寄存器中作為新的壓縮編碼色彩值,壓縮游程計數(shù)寄存器清零;所述第二拍壓縮子模塊,用于在的第二拍中,若壓縮游程計數(shù)寄存器中壓縮游程計數(shù)值不為零,則不做任何操作并返回;若壓縮游程計數(shù)寄存器中壓縮游程計數(shù)值為零,則一段編碼結(jié)束,從壓縮緩沖區(qū)中讀取壓縮游程計數(shù)值和壓縮編碼色彩值,按預設(shè)的LFBC游程編碼格式,寫入幀壓縮緩存區(qū)得到壓縮編碼像素數(shù)據(jù);所述壓縮游程計數(shù)寄存器,用于保存壓縮游程計數(shù)值; 所述壓縮編碼色彩值寄存器,用于保存壓縮編碼色彩值;所述壓縮緩沖區(qū),用于按預設(shè)的LFBC游程編碼格式,緩存壓縮游程計數(shù)值和壓縮編碼色彩值。
8.根據(jù)權(quán)利要求7所述的像素幀緩存處理系統(tǒng),其特征在于,所述編碼模塊還包括判斷子模塊,用于在控制壓縮游程計數(shù)值將自加1后,判斷壓縮游程計數(shù)值是否等于256 ;如果是,則將壓縮游程計數(shù)寄存器中的壓縮游程計數(shù)值和壓縮編碼色彩值寄存器中的壓縮編碼色彩值寫入壓縮緩沖區(qū)中,壓縮游程計數(shù)寄存器清零。
9.根據(jù)權(quán)利要求1所述的像素幀緩存處理系統(tǒng),其特征在于,所述解壓裝置包括讀取模塊,解碼模塊,解碼游程計數(shù)寄存器,解碼色彩值寄存器;其中,所述讀取模塊,用于從幀壓縮緩沖區(qū)讀取新的編碼壓縮像素數(shù)據(jù),將編碼壓縮象素數(shù)據(jù)分成兩部分,分別寫入解碼游程計數(shù)寄存器作為解碼游程計數(shù)值和寫入解碼色彩值寄存器作為當前像素的解碼色彩值;所述解碼模塊,用于根據(jù)解碼游程計數(shù)值和當前像素的解碼色彩值,按預設(shè)的LFBC游程編碼格式,解碼得到顯示控制器的像素,輸出給顯示控制器;并在解壓過程中,判斷解碼游程計數(shù)值是否為0,如果是,則控制讀取模塊在下一拍中從幀壓縮緩存區(qū)讀取一個新的編碼壓縮像素數(shù)據(jù);否則繼續(xù)進行解碼;所述解碼游程計數(shù)寄存器,用于保存解碼游程計數(shù)值; 所述解碼色彩值寄存器,用于保存當前像素的解碼色彩值。
10.根據(jù)權(quán)利要求9所述的像素幀緩存處理系統(tǒng),其特征在于,所述解壓裝置還包括采樣模塊,用于在解壓的每一拍,均對解碼色彩值寄存器中的當前像素的解碼色彩值進行采樣。
11.一種顯示控制器的像素幀緩存處理方法,其特征在于,包括如下步驟步驟S100,對準備輸出到顯示控制器的新的像素,根據(jù)預設(shè)的閾值,控制以正常模式或者壓縮模式處理所述新的像素;當以正常模式處理時,獲取所述新的像素并直接發(fā)送到顯示控制器;當以壓縮模式處理所述新的像素時,則轉(zhuǎn)入步驟S200 ;步驟S200,對準備輸出到顯示控制器的需要壓縮的新的像素進行編碼并得到壓縮游程計數(shù)值和壓縮編碼色彩值,并經(jīng)過處理輸出到幀壓縮緩存區(qū)得到編碼壓縮像素數(shù)據(jù);步驟S300,存儲被壓縮裝置壓縮后的編碼壓縮像素數(shù)據(jù);步驟S400,從幀壓縮緩存區(qū)讀取編碼壓縮像素數(shù)據(jù),根據(jù)編碼壓縮像素數(shù)據(jù)得到解碼游程計數(shù)值和解碼色彩值并進行解碼,得到顯示控制器的像素,輸出到顯示控制器進行顯示。
12.根據(jù)權(quán)利要求11所述的顯示控制器的像素幀緩存處理方法,其特征在于,所述步驟S200,包括如下步驟步驟S210,在編碼過程的第一拍中,將新的像素的色彩值與壓縮編碼色彩值作比較;步驟S220,若相同,壓縮游程計數(shù)寄數(shù)器中的壓縮游程計數(shù)值將自加1 ;若不同,則將壓縮游程計數(shù)寄存器中的壓縮游程計數(shù)值和壓縮編碼色彩值寄存器中的壓縮編碼色彩值寫入壓縮緩沖區(qū)中,并將新的像素的色彩值鎖存在壓縮編碼色彩值寄存器中作為新的壓縮編碼色彩值,壓縮游程計數(shù)寄存器清零;步驟S230,在編碼的第二拍中,若壓縮游程計數(shù)寄存器中壓縮游程計數(shù)值不為零,則不做任何操作并返回;若壓縮游程計數(shù)寄存器中壓縮游程計數(shù)值為零,則一段編碼結(jié)束,從壓縮緩沖區(qū)中讀取壓縮游程計數(shù)值和壓縮編碼色彩值,利用預設(shè)的LFBC游程編碼格式,壓縮寫入壓縮緩沖區(qū)得到壓縮編碼像素數(shù)據(jù)。
13.根據(jù)權(quán)利要求11所述的顯示控制器的像素幀緩存處理方法,其特征在于,所述步驟S220還包括如下步驟步驟S220’,在控制壓縮游程計數(shù)值將自加1后,判斷壓縮游程計數(shù)值是否等于256 ;如果是,則將壓縮游程計數(shù)寄存器中的壓縮游程計數(shù)值和壓縮編碼色彩值寄存器中的壓縮編碼色彩值寫入壓縮緩沖區(qū)中,壓縮游程計數(shù)寄存器清零。
14.根據(jù)權(quán)利要求11至13任一項所述的顯示控制器的像素幀緩存處理方法,其特征在于,所述步驟S400,包括如下步驟步驟S410,從幀壓縮緩沖區(qū)讀取新的編碼壓縮像素數(shù)據(jù),將編碼壓縮象素數(shù)據(jù)分成兩部分,分別寫入解碼游程計數(shù)寄存器作為解碼游程計數(shù)值和寫入解碼色彩值寄存器作為當前像素的解碼色彩值;步驟S420,根據(jù)解碼游程計數(shù)值和當前像素的解碼色彩值,按預設(shè)的LFBC游程編碼格式,解碼得到顯示控制器的像素輸出給顯示控制器;并在解碼過程中,判斷解碼游程計數(shù)值是否為0 ;如果是,則控制讀取模塊在下一拍中從幀壓縮緩存區(qū)讀取一個新的編碼壓縮像素數(shù)據(jù);否則繼續(xù)進行解碼。
全文摘要
本發(fā)明提供一種顯示控制器的像素幀緩存處理系統(tǒng)及方法。該系統(tǒng)包括LFBC控制裝置,壓縮裝置,幀壓縮緩存區(qū),解壓裝置,其中壓縮裝置,用于對準備輸出到顯示控制器的需要壓縮的新的像素進行編碼并得到壓縮游程計數(shù)值和壓縮編碼色彩值,并經(jīng)過處理輸出到幀壓縮緩存區(qū)得到編碼壓縮像素數(shù)據(jù);解壓裝置,用于從幀壓縮緩存區(qū)讀取編碼壓縮像素數(shù)據(jù),根據(jù)編碼壓縮像素數(shù)據(jù)得到解碼游程計數(shù)值和解碼色彩值并進行解碼,得到顯示控制器的像素,輸出給顯示控制器進行顯示。其有效地降低計算機顯示系統(tǒng)功耗。
文檔編號G09G3/36GK102522069SQ20111043095
公開日2012年6月27日 申請日期2011年12月20日 優(yōu)先權(quán)日2011年12月20日
發(fā)明者李軼夫, 王超, 蔣毅飛 申請人:龍芯中科技術(shù)有限公司