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