專利名稱:基于通用視頻編碼標(biāo)準(zhǔn)的屏幕編碼系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是一種視頻圖像處理技術(shù)領(lǐng)域的系統(tǒng),具體是一種基于通用視頻編 碼標(biāo)準(zhǔn)的屏幕編碼系統(tǒng)。
背景技術(shù):
在計(jì)算機(jī)遠(yuǎn)程網(wǎng)絡(luò)教學(xué)、監(jiān)控系統(tǒng)、網(wǎng)絡(luò)會議等方面,計(jì)算機(jī)屏幕視頻壓縮是一種 重要的環(huán)節(jié),由于屏幕圖像分辨率較高,且內(nèi)容復(fù)雜,屏幕圖像對網(wǎng)絡(luò)帶寬要求較高。視頻 編碼是指把數(shù)字視頻流序列用更少的數(shù)據(jù)位進(jìn)行存放的方法,而屏幕視頻的編碼以下簡稱 屏幕編碼,是指數(shù)字視頻流序列由屏幕圖像產(chǎn)生。這一技術(shù)可以有效地減少需要傳輸?shù)臄?shù) 據(jù)量,從而降低對網(wǎng)絡(luò)的壓力。與普通視頻相比,屏幕視頻有著分辨率高,幀與幀之間變化不顯著等特點(diǎn)。而通用 視頻編碼標(biāo)準(zhǔn),考慮到一般視頻中,圖像內(nèi)容和物體運(yùn)動很復(fù)雜,通用視頻編碼標(biāo)準(zhǔn)提供了 豐富的壓縮工具,因此為了達(dá)到較好的壓縮效果,通常需要大量的計(jì)算。如果將通用視頻 編碼標(biāo)準(zhǔn)直接用于屏幕編碼,會占用大量的CPU時(shí)間,特別應(yīng)用于實(shí)時(shí)直播場景,這樣高的 CPU占用率是難以接受的。所以針對屏幕視頻壓縮,通常采樣專用的屏幕視頻編碼方法進(jìn)行壓縮。但屏幕編 碼方法對屏幕視頻內(nèi)容有著較大的局限性,當(dāng)屏幕圖像變化劇烈,特別是播放一段視頻時(shí), 壓縮效果就會變差。經(jīng)對現(xiàn)有技術(shù)的文獻(xiàn)檢索發(fā)現(xiàn),中國專利文獻(xiàn)號CN101014127A的專利普適環(huán)境 下的遠(yuǎn)程桌面同步方法提出了一種基于變化子區(qū)域的運(yùn)動預(yù)測和補(bǔ)償?shù)钠聊灰曨l編碼方 案,該方案具有一定優(yōu)點(diǎn),但屏幕圖像的持續(xù)變化劇烈變化會導(dǎo)致壓縮率會下降,使用有一 定局限性。
發(fā)明內(nèi)容
本發(fā)明針對現(xiàn)有技術(shù)存在的上述不足,提供一種基于通用視頻編碼標(biāo)準(zhǔn)的屏幕編 碼系統(tǒng),能夠有效降低CPU占用率。本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的,本發(fā)明包括屏幕信息獲取模塊、顏色空間轉(zhuǎn) 換模塊和改進(jìn)型通用編碼器,其中屏幕信息獲取模塊與顏色空間轉(zhuǎn)換模塊相連接并傳輸 原始屏幕圖像和變化區(qū)域信息,顏色空間轉(zhuǎn)換模塊與改進(jìn)型通用編碼器相連接并傳輸變化 區(qū)域信息以及編碼輸入圖像,改進(jìn)型通用編碼器輸出編碼壓縮后的數(shù)據(jù)。所述的編碼輸入圖像是指符合改進(jìn)型通用編碼器輸入圖像格式要求的圖像;所述的屏幕信息獲取模塊用于從計(jì)算機(jī)顯示子系統(tǒng)獲取當(dāng)前屏幕圖像信息以及 變化區(qū)域信息,其中變化區(qū)域信息是指由矩形的坐標(biāo)描述的當(dāng)前屏幕圖像與前一幀圖 像相比發(fā)生變化的像素組成的圖像區(qū)域的最小外接矩形所圍成的區(qū)域。所述的顏色空間轉(zhuǎn)換模塊用于將屏幕信息獲取模塊中獲取的原始屏幕圖像進(jìn)行 顏色空間轉(zhuǎn)換并輸出一幅符合改進(jìn)的基于通用視頻編碼標(biāo)準(zhǔn)的編碼器輸入圖像格式要求
3的圖像;所述的通用視頻編碼標(biāo)準(zhǔn)是指將圖像切分成指定大小的像素塊,即宏塊,以宏塊 為單位進(jìn)行編碼壓縮;并且支持以“跳過”的壓縮模進(jìn)行編碼,即當(dāng)已壓縮的前一幀圖像存 在與當(dāng)前宏塊內(nèi)容完全一致的宏塊,即預(yù)測宏塊,預(yù)測宏塊與當(dāng)前宏塊在圖像中位置相同, 當(dāng)壓縮該當(dāng)前宏塊時(shí)僅記錄預(yù)測宏塊的位置信息和“跳過”模式的標(biāo)志,不記錄其他關(guān)于當(dāng) 前宏塊的信息。所述的改進(jìn)型通用編碼器用于對編碼輸入圖像進(jìn)行編碼壓縮并輸出壓縮數(shù)據(jù),該 改進(jìn)型通用編碼器包括基于通用視頻編碼標(biāo)準(zhǔn)的編碼器和一個新增的內(nèi)嵌在通用視頻編 碼器中的“跳過”模式快速檢測單元,其中“跳過”模式快速檢測單元,用于對不在變化區(qū) 域內(nèi)的宏塊,即未變化宏塊,為其直接選擇“跳過”模式來進(jìn)行壓縮。本發(fā)明可解決當(dāng)屏幕中播放視頻時(shí),使用傳統(tǒng)的屏幕專用編碼方案壓縮效果較差 的問題,并且相比使用通用視頻編碼標(biāo)準(zhǔn)編碼器進(jìn)行屏幕編碼時(shí),該系統(tǒng)能夠有效降低CPU 占用率。本發(fā)明的系統(tǒng)可以廣泛地應(yīng)用于計(jì)算機(jī)遠(yuǎn)程網(wǎng)絡(luò)教學(xué)、監(jiān)控系統(tǒng)、網(wǎng)絡(luò)會議、計(jì)算 機(jī)遠(yuǎn)程控制系統(tǒng)等領(lǐng)域。
圖1是本發(fā)明系統(tǒng)結(jié)構(gòu)圖。圖2是實(shí)施例2中系統(tǒng)結(jié)構(gòu)圖。圖3是實(shí)施例2中顏色空間轉(zhuǎn)換模塊的操作示意圖。圖4是實(shí)施例2中改進(jìn)的h. 264通用視頻編碼器的操作流程圖。
具體實(shí)施例方式下面對本發(fā)明的實(shí)施例作詳細(xì)說明,本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行 實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施 例。實(shí)施例1如圖1所示,本實(shí)施例包括屏幕信息獲取模塊110、顏色空間轉(zhuǎn)換模塊120和改 進(jìn)型通用編碼器130,其中屏幕信息獲取模塊110與顏色空間轉(zhuǎn)換模塊120相連接并傳輸 原始屏幕圖像101和變化區(qū)域信息102,顏色空間轉(zhuǎn)換模塊與改進(jìn)型通用編碼器相連接,并 傳輸變化區(qū)域信息,以及一幅符合改進(jìn)型通用編碼器輸入圖像格式要求的圖像,以下簡稱 為編碼輸入圖像103,改進(jìn)型通用編碼器輸出編碼壓縮后的數(shù)據(jù)104。所述的屏幕信息獲取模塊110用于從計(jì)算機(jī)顯示子系統(tǒng)獲取當(dāng)前屏幕圖像信息 以及變化區(qū)域信息102,其中變化區(qū)域信息102是指由矩形的坐標(biāo)描述的當(dāng)前屏幕圖像 與前一幀圖像相比發(fā)生變化的像素組成的圖像區(qū)域的最小外接矩形所圍成的區(qū)域。所述的顏色空間轉(zhuǎn)換模塊120用于將屏幕信息獲取模塊110中獲取的原始屏幕圖 像進(jìn)行顏色空間轉(zhuǎn)換并輸出一幅符合改進(jìn)的基于通用視頻編碼標(biāo)準(zhǔn)的編碼器輸入圖像格 式要求的圖像,該通用視頻編碼標(biāo)準(zhǔn)是指首先將圖像切分成指定大小的像素塊,即宏塊, 以宏塊為單位進(jìn)行編碼壓縮,然后以“跳過”的壓縮模進(jìn)行編碼,即當(dāng)已壓縮的前一幀圖像 存在與當(dāng)前宏塊內(nèi)容完全一致的宏塊,即預(yù)測宏塊,且預(yù)測宏塊與當(dāng)前宏塊在圖像中位置相同,當(dāng)壓縮該當(dāng)前宏塊時(shí)僅記錄預(yù)測宏塊的位置信息和“跳過”模式的標(biāo)志,不記錄其他 關(guān)于當(dāng)前宏塊的信息。所述的改進(jìn)型通用編碼器130用于對編碼輸入圖像進(jìn)行編碼壓縮并輸出壓縮數(shù) 據(jù),該改進(jìn)型通用編碼器130包括基于通用視頻編碼標(biāo)準(zhǔn)的編碼器和一個新增的內(nèi)嵌在 通用視頻編碼器中的“跳過”模式快速檢測單元,其中“跳過”模式快速檢測單元,用于對 不在變化區(qū)域內(nèi)的宏塊,即未變化宏塊,為其直接選擇“跳過”模式來進(jìn)行壓縮。在基于通用編碼標(biāo)準(zhǔn)的屏幕編碼系統(tǒng)中,屏幕信息獲取模塊110首先獲取當(dāng)前屏 幕圖像以及變化區(qū)域等信息,將這些信息放入緩沖區(qū),而顏色空間轉(zhuǎn)換模塊120,從緩沖區(qū) 中取出屏幕圖像,根據(jù)變化區(qū)域信息102進(jìn)行顏色空間的轉(zhuǎn)換,輸出符合改進(jìn)的基于通用 視頻編碼標(biāo)準(zhǔn)的編碼器輸入格式要求的圖像,即所謂的編碼輸入圖像,改進(jìn)型通用編碼器 130利用變化區(qū)域?qū)幋a輸入圖像進(jìn)行壓縮。通用視頻編碼器中包含一個“跳過”模式快速 檢測裝置131,其作用是依據(jù)屏幕信息獲取模塊110提供的變化區(qū)域,快速判斷當(dāng)前宏塊是 否可用“跳過”模式進(jìn)行壓縮,即對于不在變化區(qū)域內(nèi)的宏塊,都應(yīng)該直接使用“跳過”模式。 最后,通用視頻編碼器將壓縮后的數(shù)據(jù)輸出。以上過程稱為屏幕錄制。實(shí)施例2如圖2所示的是基于通用編碼標(biāo)準(zhǔn)的屏幕編碼系統(tǒng)的一個實(shí)施例,該實(shí)施例系統(tǒng) 使用Windows操作系統(tǒng)下的Mirror Driver機(jī)制來獲取屏幕信息,采用通用視頻編碼標(biāo)準(zhǔn) h. 264對屏幕圖像序列形成的視頻進(jìn)行壓縮。h. 264標(biāo)準(zhǔn)將視頻圖像切割成大小為16女16 的宏塊進(jìn)行壓縮,并且包含一種P_Skip模式來表示當(dāng)前宏塊與預(yù)測宏塊內(nèi)容相同的情況。Windows操作系統(tǒng)屏幕圖像的格式為彩色位圖,稱為RGB格式;本實(shí)施例系統(tǒng)采用 h. 264的高級簡表high profile,該簡表支持的輸入圖像顏色格式為YUV,所以顏色空間轉(zhuǎn) 換模塊120,負(fù)責(zé)將RGB轉(zhuǎn)換成YUV。該實(shí)施例系統(tǒng)包括以下5個模塊Mirror driver屏幕信息獲取模塊221,RGB到 YUV轉(zhuǎn)換模塊222,改進(jìn)的h. 264通用視頻編碼器223,計(jì)時(shí)器224和用戶界面225。其中的 計(jì)時(shí)器,用于控制屏幕編碼系統(tǒng)根據(jù)指定的頻率進(jìn)行屏幕錄制,直到人為結(jié)束屏幕錄制過 程。其中的用戶界面,使用戶能夠指定屏幕編碼的參數(shù)以及控制屏幕錄制的開始和結(jié)束。首先,由Mirror driver屏幕信息獲取模塊221獲取屏幕信息,包括屏幕圖像,變 化區(qū)域,還包括當(dāng)前屏幕的分辨率和顏色格式。計(jì)算機(jī)屏幕的分辨率為1024女768或者更高,獲取屏幕圖像前,系統(tǒng)會自動將屏 幕的分辨率改為800 * 600,這是為了避免編碼過程中數(shù)據(jù)量太大,屏幕錄制結(jié)束時(shí),系統(tǒng) 會自動將分辨率調(diào)整回原來的值。獲取的顏色格式一般為32位RGB位圖,具體為32位 BGRA。實(shí)施例系統(tǒng)使用Mirror Driver獲取屏幕信息,Mirror Driver是Windows提供 一種虛擬顯示驅(qū)動器技術(shù),將實(shí)際的視頻設(shè)備如顯示屏上物理操作在一片內(nèi)存空間進(jìn)行模 擬。因此可以通過這一機(jī)制獲取屏幕圖像準(zhǔn)確的矩形變化區(qū)域。實(shí)施例系統(tǒng)將變化屏幕圖 像切分成4 * 4的16個矩形子區(qū)域,對每個矩形區(qū)域分別獲取最小的矩形變化區(qū)域,每個 矩形變化區(qū)域由左上角和右下角的坐標(biāo)表示,一共16組坐標(biāo)。實(shí)施例系統(tǒng)選用通用編碼器130是遵循的h. 264標(biāo)準(zhǔn)的開源編碼器x264,該編碼 器速度快,壓縮效果好,在視頻編碼領(lǐng)域被廣泛使用,該編碼器支持的輸入圖像顏色空間具體為YUV420。因此,RGB到Y(jié)UV轉(zhuǎn)換模塊將BGRA格式的屏幕圖像轉(zhuǎn)換成YUV420格式的編 碼輸入圖像。如圖3所示,操作時(shí),對變化區(qū)域內(nèi)的像素進(jìn)行顏色空間轉(zhuǎn)換圖3a,并將這些 像素復(fù)制到前一幀圖像的相應(yīng)位置圖3b,覆蓋因變化而無效的區(qū)域圖3c。χ. 264視頻編碼器包括以下幾個主要模塊1)宏塊切分裝置,用于將輸入圖像切分成16女16的像素宏塊。
2)幀類型判斷器,判斷待編碼圖像的幀類型。在x264中,有三種幀類型,關(guān)鍵幀 稱為I幀,單向預(yù)測幀稱為P幀,雙向預(yù)測幀B幀??紤]到本實(shí)施例主要面向?qū)崟r(shí)應(yīng)用,故 將B幀的功能關(guān)閉。其中,I幀中不能包括“跳過P_Skip”模式的模塊。X264根據(jù)圖像變 化程度scenecut和預(yù)設(shè)的圖片組長度G0P,判斷當(dāng)前圖像是否為關(guān)鍵I幀。本實(shí)施例系統(tǒng) 設(shè) scenecut = 40,GOP = 100。3)壓縮模式?jīng)Q策器,用于判斷當(dāng)前宏塊的壓縮模式。其中包含一個“跳過P_Skip” 模式快速檢測裝置,其作用是依據(jù)屏幕信息獲取模塊110提供的變化區(qū)域,快速判斷當(dāng)前 宏塊是否可用“跳過P_Skip”模式進(jìn)行壓縮,即對于不在變化區(qū)域內(nèi)的宏塊,都應(yīng)該直接使 用“跳過P_Skip”模式。4)壓縮器,用于根據(jù)選擇的預(yù)測模式進(jìn)行數(shù)據(jù)壓縮,并將壓縮后的數(shù)據(jù)寫成一個 視頻文件。如圖4所示,編碼輸入圖像進(jìn)行宏塊切分和幀類型判斷之后,由壓縮模式?jīng)Q策器 進(jìn)行壓縮模式的選擇,如果該幀不是關(guān)鍵幀,則首先由“跳過”模式快速檢測裝置根據(jù)變化 區(qū)域信息102,檢測當(dāng)前宏塊是否位于變化區(qū)域中,當(dāng)宏塊不在變化區(qū)域中,為其選擇“跳過 P_Skip”模式。對于變化區(qū)域中的宏塊,x264的宏塊壓縮模式?jīng)Q策器會為其選擇適當(dāng)?shù)膲?縮模式。對于關(guān)鍵幀,x264壓縮模式?jīng)Q策器將按照默認(rèn)的策略進(jìn)行模式?jīng)Q策。最后,壓縮 器根據(jù)壓縮模式進(jìn)行數(shù)據(jù)壓縮,并將壓縮后的數(shù)據(jù)寫成一個視頻文件。本實(shí)施例在通用視頻編碼器x264的基礎(chǔ)上,增加了一個“跳過P_Skip”模式快速 檢測模塊,該模塊利用變化區(qū)域信息102對無變化的宏塊進(jìn)行壓縮模式的快速決策。對于 顏色空間轉(zhuǎn)換模塊120,本實(shí)施例利用變化區(qū)域信息102,減少了需要進(jìn)行顏色空間轉(zhuǎn)換的 圖像區(qū)域。因此,本實(shí)施例系統(tǒng)相對于未使用變化區(qū)域信息102的一般基于通用編碼器130 的屏幕錄制系統(tǒng),運(yùn)算量有明顯的減小。在配置在CPU core 2duo2. OGHz,內(nèi)存IG的筆記本電腦上用vTune9. 0測試運(yùn)行該 屏幕錄制系統(tǒng)的CPU的使用情況。得到的數(shù)據(jù)顯示,利用變化區(qū)域進(jìn)行優(yōu)化后的顏色空間 轉(zhuǎn)換和編碼操作時(shí)間比起沒有優(yōu)化的操作時(shí)間,占用的CPU時(shí)鐘數(shù)分別減少了 99. 58%和 54. 84%,整個系統(tǒng)占用的CPU時(shí)鐘數(shù)減少了 62%。另外XP給出的,含“跳過”模式快速檢 測的基于x264屏幕錄制系統(tǒng)的CPU使用率,也從未改進(jìn)系統(tǒng)的的44%降低到25%。上述實(shí)驗(yàn)結(jié)果表明,基于通用視頻編碼標(biāo)準(zhǔn)的屏幕編碼系統(tǒng),相比于使用通用視 頻編碼標(biāo)準(zhǔn)編碼器進(jìn)行屏幕編碼時(shí),該系統(tǒng)能夠有效降低CPU占用率。
權(quán)利要求
一種基于通用視頻編碼標(biāo)準(zhǔn)的屏幕編碼系統(tǒng),其特征在于,包括屏幕信息獲取模塊、顏色空間轉(zhuǎn)換模塊和改進(jìn)型通用編碼器,其中屏幕信息獲取模塊與顏色空間轉(zhuǎn)換模塊相連接并傳輸原始屏幕圖像和變化區(qū)域信息,顏色空間轉(zhuǎn)換模塊與改進(jìn)型通用編碼器相連接并傳輸變化區(qū)域信息以及編碼輸入圖像,改進(jìn)型通用編碼器輸出編碼壓縮后的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的基于通用視頻編碼標(biāo)準(zhǔn)的屏幕編碼系統(tǒng),其特征是,所述的 編碼輸入圖像是指符合改進(jìn)型通用編碼器輸入圖像格式要求的圖像。
3.根據(jù)權(quán)利要求1所述的基于通用視頻編碼標(biāo)準(zhǔn)的屏幕編碼系統(tǒng),其特征是,所述的 屏幕信息獲取模塊用于從計(jì)算機(jī)顯示子系統(tǒng)獲取當(dāng)前屏幕圖像信息以及變化區(qū)域信息,其 中變化區(qū)域信息是指由矩形的坐標(biāo)描述的當(dāng)前屏幕圖像與前一幀圖像相比發(fā)生變化的 像素組成的圖像區(qū)域的最小外接矩形所圍成的區(qū)域。
4.根據(jù)權(quán)利要求1所述的基于通用視頻編碼標(biāo)準(zhǔn)的屏幕編碼系統(tǒng),其特征是,所述的 顏色空間轉(zhuǎn)換模塊用于將屏幕信息獲取模塊中獲取的原始屏幕圖像進(jìn)行顏色空間轉(zhuǎn)換并 輸出一幅符合改進(jìn)的基于通用視頻編碼標(biāo)準(zhǔn)的編碼器輸入圖像格式要求的圖像。
5.根據(jù)上述任一權(quán)利要求所述的基于通用視頻編碼標(biāo)準(zhǔn)的屏幕編碼系統(tǒng),其特征是, 所述的通用視頻編碼標(biāo)準(zhǔn)是指將圖像切分成指定大小的像素塊,即宏塊,以宏塊為單位進(jìn) 行編碼壓縮;并且支持以“跳過”的壓縮模進(jìn)行編碼,即當(dāng)已壓縮的前一幀圖像存在與當(dāng)前 宏塊內(nèi)容完全一致的宏塊,即預(yù)測宏塊,預(yù)測宏塊與當(dāng)前宏塊在圖像中位置相同,當(dāng)壓縮該 當(dāng)前宏塊時(shí)僅記錄預(yù)測宏塊的位置信息和“跳過”模式的標(biāo)志,不記錄其他關(guān)于當(dāng)前宏塊的 fn息ο
6.根據(jù)權(quán)利要求1或2所述的基于通用視頻編碼標(biāo)準(zhǔn)的屏幕編碼系統(tǒng),其特征是,所述 的改進(jìn)型通用編碼器用于對編碼輸入圖像進(jìn)行編碼壓縮并輸出壓縮數(shù)據(jù),該改進(jìn)型通用編 碼器包括基于通用視頻編碼標(biāo)準(zhǔn)的編碼器和一個新增的內(nèi)嵌在通用視頻編碼器中的“跳 過”模式快速檢測單元,其中“跳過”模式快速檢測單元,用于對不在變化區(qū)域內(nèi)的宏塊,即 未變化宏塊,為其直接選擇“跳過”模式來進(jìn)行壓縮。
全文摘要
一種視頻圖像處理技術(shù)領(lǐng)域的基于通用視頻編碼標(biāo)準(zhǔn)的屏幕編碼系統(tǒng),包括屏幕信息獲取模塊、顏色空間轉(zhuǎn)換模塊和改進(jìn)型通用編碼器,屏幕信息獲取模塊與顏色空間轉(zhuǎn)換模塊相連接并傳輸原始屏幕圖像和變化區(qū)域信息,顏色空間轉(zhuǎn)換模塊與改進(jìn)型通用編碼器相連接并傳輸變化區(qū)域信息以及編碼輸入圖像,改進(jìn)型通用編碼器輸出編碼壓縮后的數(shù)據(jù)。本發(fā)明能夠有效降低CPU占用率。
文檔編號H04N7/26GK101977322SQ20101053927
公開日2011年2月16日 申請日期2010年11月10日 優(yōu)先權(quán)日2010年11月10日
發(fā)明者張智強(qiáng), 謝偉凱, 金磊, 魯晨平 申請人:上海交通大學(xué)