資源描述:
《關(guān)于屏幕捕捉程序中使用的壓縮算法描述》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、應(yīng)用技術(shù)研究基于窗口圖像的壓縮算法戚利[文章摘要]本文從分析DIB位圖數(shù)據(jù)入手,結(jié)合對(duì)屏幕顯示特征的分析,提出了一種針對(duì)程序界面的實(shí)用的圖象數(shù)據(jù)壓縮算法。該算法參照了RLE行程壓縮以及基于熵的Huffman壓縮理論,提出“以保留主色調(diào),模擬生成過(guò)渡顏色”為基本思路的壓縮算法。[關(guān)鍵詞]壓縮算法屏幕捕捉圖象處理RLE1作者簡(jiǎn)介:戚利男濟(jì)南鐵路局黨校講師應(yīng)用技術(shù)研究為了能在捕捉對(duì)方屏幕的時(shí)候得到最小的數(shù)據(jù)傳輸量,需要一種壓縮率極高、壓縮速度相對(duì)較快并且失真很小的算法。通過(guò)對(duì)常用程序界面的截圖像素進(jìn)行分析,本文提出了一種針對(duì)性很強(qiáng)的關(guān)于DIB位圖的高質(zhì)量的壓縮算法。一、窗口圖
2、象特征分析1、窗口界面的一致性由于WINDOWS操作系統(tǒng)軟件界面的一致性,導(dǎo)致了大量相同的顏色出現(xiàn)在將被壓縮的數(shù)據(jù)中。比如,捕捉的示例圖象中存在大面積的工具欄背景顏色(EC-E9-D8)。對(duì)于這種出現(xiàn)頻率極高的顏色我們可以通過(guò)使用更少的位數(shù)來(lái)表示,原來(lái)用3個(gè)字節(jié)來(lái)表示(EC-E9-D8),我們可以只用一個(gè)字節(jié)甚至一個(gè)位來(lái)表示(EC-E9-D8),這樣就大大減少了數(shù)據(jù)的冗余,達(dá)到壓縮的目的。2、顏色的連續(xù)性一般而言,在程序界面中存在顏色跳躍的幾率很小,大部分采用連續(xù)色或過(guò)渡色。這樣,就給我們提供了一個(gè)通過(guò)計(jì)數(shù)來(lái)還原顏色區(qū)域的方法。我們可以通過(guò)記錄連續(xù)色的數(shù)量來(lái)減少連續(xù)色占
3、據(jù)的空間。假設(shè)有一行全是一種顏色,那么這一行顏色一共占據(jù)了400*3=1200個(gè)字節(jié)的空間,我們可以使用RLE算法,通過(guò)記錄顏色個(gè)數(shù)來(lái)達(dá)到壓縮數(shù)據(jù)的目的。用一個(gè)字節(jié)記錄像素?cái)?shù),用另外一個(gè)字節(jié)記錄顏色在顏色表中的索引。于是,這一行數(shù)據(jù)就從存儲(chǔ)1200個(gè)字節(jié)減少到只存儲(chǔ)10個(gè)字節(jié)。這也許就是屏幕圖象壓縮部分最大的看點(diǎn)了。3、主色調(diào)的一致性各應(yīng)用系統(tǒng)為了保持與操作系統(tǒng)軟件之間界面的統(tǒng)一,在程序設(shè)計(jì)上基本使用了相同的主色調(diào)作為窗口的顏色分配方案。這樣,我們就能從一個(gè)窗口的圖象中分析出主色調(diào),并對(duì)主色調(diào)進(jìn)行單獨(dú)記錄,以保證整體色調(diào)不失真。同時(shí),使用主題色調(diào)來(lái)模擬其他非連續(xù)區(qū)域的顏
4、色,達(dá)到更有效地還原真實(shí)圖象目的。二、窗口圖象數(shù)據(jù)分析首先,在24位真彩下捕捉屏幕的一角(大小200*100),使用WINDOWS操作系統(tǒng)自帶的畫(huà)圖程序保存該圖片。便于研究。由于24位位圖中使用三個(gè)字節(jié)(RGB)來(lái)表示一個(gè)像素的顏色,因此,BMP文件圖象內(nèi)容的大小應(yīng)該為:200*100*3/1024=58.5K左右。這個(gè)大小在一般的網(wǎng)絡(luò)中傳輸是沒(méi)有問(wèn)題的。但為了能獲得動(dòng)態(tài)更新(通常定義為4幀/秒),也就是一秒鐘內(nèi)傳輸?shù)骄W(wǎng)絡(luò)的數(shù)據(jù)量為58.5*4=234K,這個(gè)數(shù)據(jù)量就相當(dāng)大了,如果捕捉發(fā)生在因特網(wǎng)上,我們就無(wú)法保證遠(yuǎn)程屏幕內(nèi)容會(huì)流暢地顯示出來(lái)。這就要求我們必須對(duì)該內(nèi)容進(jìn)
5、行實(shí)時(shí)高效地壓縮。以下是使用DEBUG工具獲得的BMP圖象數(shù)據(jù)最后四行共200*3*4=2400個(gè)字節(jié),部分?jǐn)?shù)據(jù)有所刪節(jié)。1作者簡(jiǎn)介:戚利男濟(jì)南鐵路局黨校講師應(yīng)用技術(shù)研究-d
1708:0100424D96EA00000000-0000360000002800BM........6...(.1708:01100000C80000006400-0000010018000000......d.........4應(yīng)用技術(shù)研究1708:0120000060EA00000000-0000000000000000..`.............1708:01300000000000
6、0099A8-AC99A8AC99A8AC99................1708:0140A8AC99A8AC99A8AC-99A8AC99A8AC99A8................1708:0150AC99A8AC99A8AC99-A8AC99A8AC99A8AC................1708:016099A8AC99A8AC99A8-AC99A8AC99A8AC99................1708:0170A8AC99A8AC99A8AC-99A8AC99A8AC99A8................-d
……1708:0300AC9
7、9A8AC99A8AC99-A8AC99A8AC99A8AC................1708:031099A8AC99A8AC99A8-AC99A8AC99A8AC99................1708:0320A8AC99A8AC99A8AC-99A8AC99A8AC99A8................1708:0330AC99A8AC99A8AC99-A8AC99A8AC99A8AC................1708:034099A8AC99A8AC99A8-AC99A8AC99A8AC99..........