專利名稱:一種數(shù)據(jù)壓縮處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理,具體涉及一種數(shù)據(jù)壓縮處理方法。
技術(shù)背景目前顯示數(shù)據(jù)一般采用24位顏色,是指紅、綠、藍三中顏色都用一個字 節(jié)表示,每種顏色深度為256級。申請?zhí)枮?00510034435.9,名稱為"一種 基于服務(wù)器端/客戶端結(jié)構(gòu)遠程顯示處理方法"的中國專利公開了一種遠程顯 示處理方法,主要是在服務(wù)器端采用特殊的幀間增量壓縮和幀內(nèi)相鄰區(qū)位的數(shù) 據(jù)比較壓縮的技術(shù),然后再在客戶端采用增量刷新的方式進行圖像顯示的方 法,來提高刷新速度和降低計算機系統(tǒng)資源的占用率。是一種無損的快速數(shù)據(jù) 壓縮解壓辦法,對于靜止顯示數(shù)據(jù)比較多,而活動顯示數(shù)據(jù)比較少時非常有效。 對于活動顯示數(shù)據(jù)比較多時,該發(fā)明就顯得無能為力。如果采用MPEG2或MPEG4 等壓縮算法又要占用相當?shù)挠布蛙浖Y源,使應(yīng)用成本很高。因此,對現(xiàn)有技術(shù)進行改進,能夠提供一種在活動顯示數(shù)據(jù)較多情況下占 用計算機硬件軟件資源少、速度快的和壓縮效率高的壓縮解壓方法實為必要。發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題是為了克服現(xiàn)有技術(shù)中的上述缺點和不足,提供 一種簡單方便、效率高和資源占用少的數(shù)據(jù)壓縮處理方法。所述的數(shù)據(jù)壓縮處理方法,包括以下步驟(1) 在服務(wù)器端計算機的內(nèi)存中分出三個區(qū)塊,第一個區(qū)塊用 來存儲原始幀數(shù)據(jù),第二個區(qū)塊用來存儲當前生成的幀數(shù)據(jù),第三 個區(qū)塊用來存儲壓縮后將要傳輸?shù)臄?shù)據(jù);(2) 以當前圖像信號作為數(shù)據(jù)源,從中提取原始幀并保存在第 一個區(qū)塊;(3) 其后所提取的當前生成的幀數(shù)據(jù)保存在第二區(qū)塊,從第二幀開始進行當前幀與上一幀之間的一對一像素點數(shù)據(jù)比較,根據(jù)需 要,選定1% 30%之間的某個數(shù)值;如果像素點各顏色數(shù)據(jù)變化值小于所對應(yīng)選定的這個數(shù)值,則視為無變化,第一區(qū)塊的相應(yīng)數(shù)據(jù)不變;如果像素點各顏色數(shù)據(jù)變化值大于或等于所對應(yīng)選定的這個數(shù) 值,則視為該像素點數(shù)據(jù)發(fā)生變化,將該變化的幀數(shù)據(jù)覆蓋第一區(qū) 塊的相應(yīng)的幀數(shù)據(jù);然后,進行幀內(nèi)相鄰像素間的比較數(shù)據(jù)采集壓 縮編碼,并保存在第三區(qū)塊,所述的壓縮編碼時如果發(fā)現(xiàn)數(shù)據(jù)將要 超出規(guī)定的存儲容量,則停止壓縮,將變化的數(shù)據(jù)全部復制到第一 區(qū)塊,并傳送給客戶端,同時通知客戶端該數(shù)據(jù)為非壓縮數(shù)據(jù);(4) 將壓縮編碼的數(shù)據(jù)打包,然后傳輸?shù)娇蛻舳?,客戶端接?到來自服務(wù)器端的壓縮編碼數(shù)據(jù)后進行解壓并送到客戶端計算機內(nèi) 存,客戶端計算機收到解壓數(shù)據(jù)后,比較并對有變化的部分進行刷 新。其中,步驟(2)所述圖像信號可包括視頻信號或電腦RGB信號。 步驟(3 )所述各顏色數(shù)據(jù)變化值為|R「RQ|/ R。,其中R。為上 一幀各顏色數(shù)據(jù)的值,^為當前幀各顏色數(shù)據(jù)的值;所述選定1% 30%之間的某個數(shù)值,可以對紅綠藍三種顏色都統(tǒng)一選定 某一數(shù)值,例如,紅綠藍三種顏色都統(tǒng)一選定8%,也可以對紅綠藍三種顏色分 別選定某一值,例如,紅色8%,綠色9%,藍色10%;步驟(4)所述的傳輸為通過100M/1000M網(wǎng)絡(luò)、USB接口、無線通信或者專 用通信線路傳輸。步驟(3)所述數(shù)據(jù)采集壓縮包括采用如下方式采集壓縮A、 在比較過程中,增加判斷值以判斷是否發(fā)生了幀間的變化、相鄰像素 是否基本一樣;根據(jù)上述的判斷情況進行壓縮編碼;B、 在比較過程中,利用長度標示以判斷幀間連續(xù)沒有變化的數(shù)值個數(shù)、 幀內(nèi)連續(xù)基本一樣的像素個數(shù)。本發(fā)明所述的數(shù)據(jù)壓縮處理方法,在采集與壓縮編碼處理之間還可包括用 圖像偵測電路或圖像偵測模塊對圖像進行偵測,所述用圖像偵測電路或圖像偵 測模塊對圖像進行偵測包括以下步驟(1 )在圖像偵測電路或圖像偵測模塊的存儲器中分出兩個區(qū)塊, 第一個區(qū)塊用來存儲原始幀數(shù)據(jù),第二個區(qū)塊用來存儲當前生成的 幀數(shù)據(jù);(2) 把開始接收到的圖像信號幀數(shù)據(jù)保存在第一個區(qū)塊和/或 輸送給壓縮模塊;(3) 其后接收到的圖像信號幀數(shù)據(jù)與第一區(qū)塊之間相對應(yīng)位置 進行逐個比較,與此同時,如果需要,把該幀數(shù)據(jù)傳送給壓縮模塊; 或者,其后接收到的圖像信號幀數(shù)據(jù)存儲在第二區(qū)塊和/或傳送給壓 縮模塊,然后與第一區(qū)塊之間相對應(yīng)位置進行逐個比較;當圖像偵測電路或圖像偵測模塊發(fā)現(xiàn)圖像沒有實質(zhì)變化時,就通知壓縮模 塊暫停壓縮,也不輸出數(shù)據(jù);如果連續(xù)沒有實質(zhì)變化可以不要重復通知壓縮模 塊暫停壓縮;當圖像偵測電路或圖像偵測模塊發(fā)現(xiàn)圖像信號有實質(zhì)變化時,將該變化 的幀數(shù)據(jù)覆蓋第一區(qū)塊的相應(yīng)的幀數(shù)據(jù),并通知壓縮模塊重新啟動壓縮, 輸出壓縮結(jié)果數(shù)據(jù),或從網(wǎng)絡(luò)傳送出去,或者存儲到硬盤上;如果連續(xù)有實質(zhì) 變化可以不要重復通知壓縮模塊啟動壓縮。本發(fā)明所述的數(shù)據(jù)壓縮處理方法,所述采集與壓縮編碼處理之間還可用圖 像偵測電路或圖像偵測模塊對圖像進行偵測,所述用圖像偵測電路或圖像偵測 模塊對圖像進行偵測可采用如下方案-(1) 在圖像偵測模塊的存儲器中分出一塊或兩個區(qū)塊, 第一個區(qū)塊用來存儲原始幀數(shù)據(jù);當分出兩個區(qū)塊時,第二個區(qū)塊用來存儲當前生成的幀數(shù)據(jù);(2) 把開始接收到的圖像信號幀數(shù)據(jù)保存在第一個區(qū)塊和/或 輸送給壓縮模塊;(3) 其后接收到的圖像信號幀數(shù)據(jù)與第一區(qū)塊之間相對應(yīng)位置進行逐個比較,或者其后接收到的圖像信號幀數(shù)據(jù)存儲在第二區(qū)塊, 并與第一區(qū)塊之間相對應(yīng)位置進行逐個比較,當圖像偵測模塊發(fā)現(xiàn)圖像沒有實質(zhì)變化時, 則不把該幀數(shù)據(jù)傳送給壓縮模塊,或者把該幀數(shù)據(jù)傳送給壓縮模塊, 并通知壓縮模塊暫停壓縮,也不輸出數(shù)據(jù),如果連續(xù)沒有實質(zhì)變化可以不要 重復通知壓縮模塊暫停壓縮;當圖像偵測模塊發(fā)現(xiàn)圖像信號有實質(zhì)變化時, 則將該變化的幀數(shù)據(jù)覆蓋第一區(qū)塊的相應(yīng)的幀數(shù)據(jù),并傳輸給壓縮模 塊,然后通知壓縮模塊重新啟動壓縮,輸出壓縮結(jié)果數(shù)據(jù),或從網(wǎng)絡(luò)傳送出去, 或者存儲到硬盤上,如果連續(xù)有實質(zhì)變化可以不要重復通知壓縮模塊啟動壓縮;步驟(3)中以上方案的特點在于,圖像偵測模塊先偵測,然后在傳輸給 壓縮模塊。還可以采用以下方案,其特點在于,先將圖像數(shù)據(jù)傳輸給壓縮模塊,然后再由圖像偵測模塊進行偵測,其具體步驟如下其后接收到的圖像信號幀數(shù)據(jù)傳輸給壓縮模塊或者其后接收到 的圖像信號幀數(shù)據(jù)存儲在第二區(qū)塊并傳輸給壓縮模塊,然后再將其 后接收到的圖像信號幀數(shù)據(jù)與第一區(qū)塊之間相對應(yīng)位置進行逐個比 較,當圖像偵測模塊發(fā)現(xiàn)圖像沒有實質(zhì)變化時, 就通知壓縮模塊暫停壓縮,也不輸出數(shù)據(jù),如果連續(xù)沒有實質(zhì)變化可以不要重 復通知壓縮模塊暫停壓縮;當圖像偵測模塊發(fā)現(xiàn)圖像信號有實質(zhì)變化時,將該變化的幀數(shù)據(jù)覆蓋第一區(qū)塊的相應(yīng)的幀數(shù)據(jù),并通知壓縮模塊重新啟 動壓縮,輸出壓縮結(jié)果數(shù)據(jù),或從網(wǎng)絡(luò)傳送出去,或者存儲到硬盤上,如果連 續(xù)有實質(zhì)變化可以不要重復通知壓縮模塊啟動壓縮。本發(fā)明所述用圖像偵測模塊對圖像進行偵測,也可采用如下方案 (1)在圖像偵測模塊的存儲器中分出一個區(qū)塊,用來存儲原始幀卞/j 『.門數(shù)據(jù);(2 )外部輸入的圖像數(shù)據(jù)并行傳輸給圖像偵測模塊和壓縮模塊;(3) 圖像偵測模塊把開始接收到的圖像信號幀數(shù)據(jù)保存在其存儲 器被分出的區(qū)塊中;(4) 圖像偵測模塊其后所接收的圖像信號幀數(shù)據(jù)與該區(qū)塊之間相 對應(yīng)位置進行逐個比較,當圖像偵測模塊發(fā)現(xiàn)圖像沒有實質(zhì)變化時,就通知壓縮模塊暫停壓縮,也 不輸出數(shù)據(jù),如果連續(xù)沒有實質(zhì)變化可以不要重復通知壓縮模塊暫停壓縮;當圖像偵測模塊發(fā)現(xiàn)圖像信號有實質(zhì)變化時,將該變化的幀數(shù)據(jù)覆蓋 該區(qū)塊的相應(yīng)的幀數(shù)據(jù),并通知壓縮模塊重新啟動壓縮,輸出壓縮結(jié)果數(shù) 據(jù),或從網(wǎng)絡(luò)傳送出去,或者存儲到硬盤上,如果連續(xù)有實質(zhì)變化可以不要重 復通知壓縮模塊啟動壓縮。所述的圖像偵測電路包括主要由FPGA和DDRAM組成的電路。所述實質(zhì)變化是指下列情形之一A、 一幀圖像的像素總數(shù)的1% 20%有基本變化;B、 在1% 30%間選定某個數(shù)值,有大于或者等于這個數(shù)值的像素線;或者 在1% 30%間選定某個數(shù)值,每條像素線中有大于或等于這個數(shù)值的像素有基 本變化;所述的有基本變化,是在1% 30%之間選定某個值,一個像素的1^、 G和B三種顏色值變化的百分比的絕對值都大于或等于預先所選定的數(shù) 值。所述壓縮包括MPEG2、 H264、 MPEG4、 H264、 JPEG或者JPEG2000壓縮。 所述圖像偵測模塊與壓縮模塊的通信可以通過控制線或通信接口來實現(xiàn)。 與現(xiàn)有技術(shù)相比,本發(fā)明有如下有益效果 (1)與現(xiàn)有技術(shù)相比,本發(fā)明在比較變化時采用了如下方案如果被檢 測像素的每個顏色數(shù)值對比參考圖像對應(yīng)像素的每個顏色數(shù)值比較差別小于 預先設(shè)定變化范圍,就視同基本無變化。這時,就不要更新參考圖像的剛剛對 比像素的值。如果比較結(jié)果的差別變化超過這個范圍,則按照不相同的像素對 待,用新的像素值更新參考圖像的剛剛對比像素的值。這樣有利于利用有限的資源集中去解決局部活動的(有時是高速變化的)圖像數(shù)據(jù),對圖像傳輸具有 實用意義。(2) 本發(fā)明由于方法簡單,容易實現(xiàn);可以采用DSP或高性能的單片機來 代替PC機來完成數(shù)據(jù)壓縮。(3) 本發(fā)明還采用了增加偵測電路偵測圖像信號是否發(fā)生實質(zhì)變化,然 后確定啟動或暫停壓縮的技術(shù)方案。本方案可以大量節(jié)省存儲器或減少網(wǎng)絡(luò)負 擔。
圖1是實施例2中圖像信號經(jīng)過偵測電路的方法示意圖。 圖2是實施例2中圖像信號經(jīng)過偵測電路并同時輸送到壓縮模塊的方法 示意圖。
具體實施方式
以下結(jié)合實施例對本發(fā)明作進一步說明,但本發(fā)明的保護范圍并不僅限于此。實施例1(1) 在服務(wù)器端計算機的內(nèi)存中分出三個區(qū)塊,第一個區(qū)塊用 來存儲原始幀數(shù)據(jù),第二個區(qū)塊用來存儲當前生成的幀數(shù)據(jù),第三 個區(qū)塊用來存儲壓縮后將要傳輸?shù)臄?shù)據(jù);(2) 以當前圖像信號作為數(shù)據(jù)源,從中提取原始幀并保存在第 一個區(qū)塊;(3) 其后所提取的當前生成的幀數(shù)據(jù)保存在第二區(qū)塊,從第二 幀開始進行當前幀與上一幀之間的一對一像素點數(shù)據(jù)比較,選定變 化百分比數(shù)值紅色8%,綠色9%,藍色10%,如果像素點各顏色 數(shù)據(jù)變化值小于所對應(yīng)選定的這個數(shù)值,則視為無變化,第一區(qū)塊 的相應(yīng)數(shù)據(jù)不變;如果像素點各顏色數(shù)據(jù)變化值大于或等于所對應(yīng)選定的這個數(shù) 值,則視為該像素點數(shù)據(jù)發(fā)生變化,將該變化的幀數(shù)據(jù)覆蓋第一區(qū) 塊的相應(yīng)的幀數(shù)據(jù);然后,進行幀內(nèi)相鄰像素間的比較完成數(shù)據(jù)采集壓縮編碼,并保存在第三區(qū)塊,所述的壓縮編碼時如果發(fā)現(xiàn)數(shù)據(jù) 將要超出規(guī)定的存儲容量,則停止壓縮,將變化的數(shù)據(jù)全部復制到第一區(qū)塊,并傳送給客戶端,同時通知客戶端該數(shù)據(jù)為非壓縮數(shù)據(jù); (4)將壓縮編碼的數(shù)據(jù)打包,然后傳輸?shù)娇蛻舳?,客戶端接?到來自服務(wù)器端的壓縮編碼數(shù)據(jù)后進行解壓并送到計算機內(nèi)存,計 算機收到解壓數(shù)據(jù)后,只對有變化的部分進行刷新。步驟(4)所述的傳輸為通過100M/1000M網(wǎng)絡(luò)、USB接口、無線通信或者專 用通信線路傳輸。步驟(3)所述數(shù)據(jù)采集壓縮采用如下方式采集壓縮A、 在比較過程中,增加判斷值以判斷是否發(fā)生了幀間的變化、相鄰像素 是否基本一樣;根據(jù)上述的判斷情況進行壓縮編碼;B、 在比較過程中,利用長度標示以判斷幀間連續(xù)沒有變化的數(shù)值個數(shù)、 幀內(nèi)連續(xù)基本一樣的像素個數(shù)。本發(fā)明所述的數(shù)據(jù)壓縮處理方法,所述采集與壓縮編碼處理之間還可用圖 像偵測電路(主要由FPGA和DDRAM組成的電路)對圖像進行偵測,當偵測電 路發(fā)現(xiàn)圖像沒有實質(zhì)變化時,就暫停壓縮,也不輸出數(shù)據(jù);當偵測電路發(fā)現(xiàn)圖 像信號有實質(zhì)變化時,重新啟動壓縮,輸出壓縮結(jié)果數(shù)據(jù),或從網(wǎng)絡(luò)傳送出去, 或者存儲到硬盤上。所述的用圖像偵測電路對圖像進行偵測,可采用如下方案:(1) 在圖像偵測模塊的存儲器中分出一塊或兩個區(qū)塊, 第一個區(qū)塊用來存儲原始幀數(shù)據(jù);當分出兩個區(qū)塊時,第二個區(qū)塊用來存儲當前生成的幀數(shù)據(jù);(2) 把開始接收到的圖像信號幀數(shù)據(jù)保存在第一個區(qū)塊和/或 輸送給壓縮模塊;(3) 其后接收到的圖像信號幀數(shù)據(jù)與第一區(qū)塊之間相對應(yīng)位置 進行逐個比較,或者其后接收到的圖像信號幀數(shù)據(jù)存儲在第二區(qū)塊, 并與第一區(qū)塊之間相對應(yīng)位置進行逐個比較,當圖像偵測模塊發(fā)現(xiàn)圖像沒有實質(zhì)變化時, 則不把該幀數(shù)據(jù)傳送給壓縮模塊,或者把該幀數(shù)據(jù)傳送給壓縮模塊,并通知壓縮模塊暫停壓縮,也不輸出數(shù)據(jù),如果連續(xù)沒有實質(zhì)變化可以不要 重復通知壓縮模塊暫停壓縮;當圖像偵測模塊發(fā)現(xiàn)圖像信號有實質(zhì)變化時, 則將該變化的幀數(shù)據(jù)覆蓋第一區(qū)塊的相應(yīng)的幀數(shù)據(jù),并傳輸給壓縮模 塊,然后通知壓縮模塊重新啟動壓縮,輸出壓縮結(jié)果數(shù)據(jù),或從網(wǎng)絡(luò)傳送出去, 或者存儲到硬盤上,如果連續(xù)有實質(zhì)變化可以不要重復通知壓縮模塊啟動壓縮;步驟(3)中以上方案的特點在于,圖像偵測模塊先偵測,然后在傳輸給 壓縮模塊。還可以采用以下方案,其特點在于,現(xiàn)將圖像數(shù)據(jù)傳輸給壓縮模塊,然后 再由圖像偵測模塊進行偵測,其具體步驟如下其后接收到的圖像信號幀數(shù)據(jù)傳輸給壓縮模塊或者其后接收到 的圖像信號幀數(shù)據(jù)存儲在第二區(qū)塊并傳輸給壓縮模塊,然后再將其 后接收到的圖像信號幀數(shù)據(jù)與第一區(qū)塊之間相對應(yīng)位置進行逐個比 較,當圖像偵測模塊發(fā)現(xiàn)圖像沒有實質(zhì)變化時, 就通知壓縮模塊暫停壓縮,也不輸出數(shù)據(jù),如果連續(xù)沒有實質(zhì)變化可以不要重 復通知壓縮模塊暫停壓縮;當圖像偵測模塊發(fā)現(xiàn)圖像信號有實質(zhì)變化時, 將該變化的幀數(shù)據(jù)覆蓋第一區(qū)塊的相應(yīng)的幀數(shù)據(jù),并通知壓縮模塊重新啟動壓 縮,輸出壓縮結(jié)果數(shù)據(jù),或從網(wǎng)絡(luò)傳送出去,或者存儲到硬盤上,如果連續(xù)有 實質(zhì)變化可以不要重復通知壓縮模塊啟動壓縮。所述的用圖像偵測模塊對圖像進行偵測,也可采用如下方案 (1)在圖像偵測模塊的存儲器中分出一個區(qū)塊,用來存儲原始幀數(shù)據(jù);(2 )外部輸入的圖像數(shù)據(jù)并行傳輸給圖像偵測模塊和壓縮模塊; (3)圖像偵測模塊把開始接收到的圖像信號幀數(shù)據(jù)保存在其存儲 器被分出的區(qū)塊中;(4 )圖像偵測模塊其后所接收的圖像信號幀數(shù)據(jù)與該區(qū)塊之間相 對應(yīng)位置進行逐個比較,當圖像偵測模塊發(fā)現(xiàn)圖像沒有實質(zhì)變化時,就通知壓縮模塊暫停壓縮,也 不輸出數(shù)據(jù),如果連續(xù)沒有實質(zhì)變化可以不要重復通知壓縮模塊暫停壓縮;當圖像偵測模塊發(fā)現(xiàn)圖像信號有實質(zhì)變化時,將該變化的幀數(shù)據(jù)覆蓋 該區(qū)塊的相應(yīng)的幀數(shù)據(jù),并通知壓縮模塊重新啟動壓縮,輸出壓縮結(jié)果數(shù) 據(jù),或從網(wǎng)絡(luò)傳送出去,或者存儲到硬盤上,如果連續(xù)有實質(zhì)變化可以不要重 復通知壓縮模塊啟動壓縮。所述壓縮包括MPEG2、 MPEG4、 H264、 JPEG或者JPEG2000壓縮。所述圖像偵測模塊與壓縮模塊的通信可以通過控制線或通信接口來實現(xiàn)。 所述實質(zhì)變化是指下列情形之一A、 一幀圖像的像素總數(shù)的1% 20%有基本變化;B、 在1% 30%間選定某個數(shù)值,有大于或者等于這個數(shù)值的像素線;或者 在1% 30%間選定某個數(shù)值,每條像素線中有大于或等于這個數(shù)值的像素有基 本變化;所述的有基本變化,是在淺 3096之間選定某個值,一個像素的R、 G和B三種顏色值變化的百分比的絕對值都大于或等于預先所選定的數(shù) 值。實施例2(一) 顯示驅(qū)動在系統(tǒng)內(nèi)存中申請三塊內(nèi)存,該合計大小為 7077888字節(jié)(其中2359296字節(jié)用來存放顯示緩沖區(qū),2359296 字節(jié)用來存放比較緩沖區(qū),2359296字節(jié)空間用來存放壓縮數(shù)據(jù))(二) 桌面信號為1024x768 (24位色),取出第一幅圖像作為 原始幀存儲在比較緩沖區(qū)內(nèi),容量為2359296字節(jié);(三) 開始進行上一幀和當前幀的幀間一對一的像素點數(shù)據(jù)比 較和當前幀的幀內(nèi)相鄰像素點數(shù)據(jù)比較,完成數(shù)據(jù)采集壓縮編碼;數(shù)據(jù)采集壓縮編碼方式如下A)、在比較過程中,增加判斷值 以判斷是否發(fā)生了幀間的變化;幀內(nèi)相鄰像素點數(shù)據(jù)比較;具體編 碼舉例如下每一幀數(shù)據(jù),以一屏為一塊(1024x768),從左上角開始編碼到 右下角。壓縮端和解壓縮端,都保留了上一幀圖像,新的圖像都要在原來 的基礎(chǔ)上進行處理。如果沒有特別說明,所有的數(shù)據(jù)都以10進制表 示。如0x2F表示16進制的2F,相當于10進制的31。(1) 判斷幀間的不發(fā)生變化,幀間相同數(shù)據(jù)的編碼表示 經(jīng)過比較有K個連續(xù)像素基本沒有發(fā)生變化。當K-1一16,說明顯示緩沖區(qū)某連續(xù)1 一 16個像素與比較緩沖區(qū)的相對應(yīng)的1 一 16個像素相同或基本相 同,則分別用壓縮代碼0x00—0x0F表示;如果K^17 — 272,則分別用壓縮碼 0x2F, 0x00-0x2F, 0xFF;如果K大于等于273,則用0x2E, 0x00, 0x00, 0x00-0x2E, 0xFF, 0xFF, 0xFF表示,合計最多可以表示1600多萬像素。(2) 如果判斷某幀間發(fā)生變化,則判斷前后像素是否基本相同 (每個像素與第一個像素的R、 G、 B值相比變化范圍小于5%)的編碼表示假設(shè)基本相同的像素有K個。如果K二1一16,說明連續(xù)1一16個像 素與上一個像素相同或基本相同,則分別用壓縮代碼0xl0—0xlF表示;如果 K=17—272,則分別用壓縮碼0x2D,0x00-0x2D,0xFF;如果K大于等于273, 則用0x2C, 0x00, 0x00, 0x00-0x2C, 0xFF, 0xFF, 0xFF表示,合計最多可以表 示1600多萬像素。0x2A, 0x2B為保留,作為擴展用途。 對于幀間又沒有基本相同,又與前一個像素基本不相同 方法一、如果該像素的第一顏色值大于0x30,則保留該像素的原值; 方法二、如果一個或多個像素的第一顏色值小于0x30, 0x20—0x29分別表 示后續(xù)l 一 10個像素保持原值。0x2A,表示后續(xù)32個像素保持原值;0x2B,表示后續(xù)128個像素保持原值;如果第一個像素的第一顏色值小于0x30,跟隨的像素的第一顏色值不論是 否小于0x30,只要與比較緩沖區(qū)比較基本不同,就可以按照本方法進行原值保 存。如果發(fā)現(xiàn)壓縮的數(shù)據(jù)即將超出規(guī)定的存儲容量,則立即停止壓縮,把顯示 緩沖區(qū)的數(shù)據(jù)全部復制到比較緩沖區(qū),并傳送給Client端,同時通知 Client端該數(shù)據(jù)為非壓縮數(shù)據(jù)。(四)將需要傳送的數(shù)據(jù)進行打包壓縮,并傳送給Client端; 通訊協(xié)議可以是網(wǎng)絡(luò)協(xié)議、也可以是USB或i1394等協(xié)議。Client 端收到數(shù)據(jù)后以對應(yīng)的方式解壓,然后對于正在顯示的內(nèi)容進行增 量刷新,只刷新發(fā)生改變的地方。硬盤錄像機一般MPEG4或者H264進行視頻數(shù)據(jù)壓縮,壓縮率很高,1Mbps 的輸出碼流可以實現(xiàn)較好的壓縮還原效果。每天24小時需要10. 8GB存儲空間。增加一個視頻偵測電路(如該電路主要由FPGA和DDRAM組成)放在視頻 壓縮模塊前面(如圖1所示),當偵測電路發(fā)現(xiàn)視頻信號是基本固定不變化的, 就暫停壓縮模塊的壓縮,也不輸出數(shù)據(jù);當偵測電路發(fā)現(xiàn)視頻信號是實質(zhì)變化 時,重新啟動壓縮模塊的壓縮,輸出壓縮結(jié)果數(shù)據(jù),或從網(wǎng)絡(luò)傳送出去,或者 存儲到硬盤上;具體操作為(1 )在圖像偵測電路或圖像偵測模塊的存儲器中分出兩個區(qū)塊, 第一個區(qū)塊用來存儲原始幀數(shù)據(jù),第二個區(qū)塊用來存儲當前生成的 幀數(shù)據(jù);(2) 把開始接收到的圖像信號幀數(shù)據(jù)保存在第一個區(qū)塊和/或 輸送給壓縮模塊;(3) 其后接收到的圖像信號幀數(shù)據(jù)與第一區(qū)塊之間相對應(yīng)位置 進行逐個比較,與此同時,如果需要,把該幀數(shù)據(jù)傳送給壓縮模塊; 或者,其后接收到的圖像信號幀數(shù)據(jù)存儲在第二區(qū)塊和/或傳送給壓 縮模塊,然后與第一區(qū)塊之間相對應(yīng)位置進行逐個比較;當圖像偵測電路或圖像偵測模塊發(fā)現(xiàn)圖像沒有實質(zhì)變化時,就通知壓縮模塊暫停壓縮,也不輸出數(shù)據(jù);如果連續(xù)沒有實質(zhì)變化可以不要重復通知壓縮模 塊暫停壓縮;當圖像偵測電路或圖像偵測模塊發(fā)現(xiàn)圖像信號有實質(zhì)變化時,將該變化 的幀數(shù)據(jù)覆蓋第一區(qū)塊的相應(yīng)的幀數(shù)據(jù),并通知壓縮模塊重新啟動壓縮, 輸出壓縮結(jié)果數(shù)據(jù),或從網(wǎng)絡(luò)傳送出去,或者存儲到硬盤上;如果連續(xù)有實質(zhì) 變化可以不要重復通知壓縮模塊啟動壓縮。所述壓縮模塊也可以是MPEG2、 MPEG4、 JPEG、 JPEG2000等壓縮方法。圖1中所示的CMOS可用CCD、攝像頭、其他視頻或電腦信號代替。 圖像偵測電路也可設(shè)置成CMOS輸出的數(shù)據(jù)送到圖像偵測電路或圖像偵測 模塊的同時也傳遞給壓縮模塊(如圖2所示),具體操作為(1 )在圖像偵測電路或圖像偵測模塊的存儲器中分出 一個區(qū)塊, 用來存儲原始幀數(shù)據(jù);(2) 把開始接收到的圖像信號幀數(shù)據(jù)保存在該區(qū)塊;(3) 其后所接收的圖像信號幀數(shù)據(jù)與該區(qū)塊之間相對應(yīng)位置進 行逐個比較;CMOS輸出的數(shù)據(jù)送到圖像偵測電路或圖像偵測模塊的同時也傳遞給壓縮 模塊;當圖像偵測電路或圖像偵測模塊發(fā)現(xiàn)圖像沒有實質(zhì)變化時,就通知壓縮模 塊暫停壓縮,也不輸出數(shù)據(jù),如果連續(xù)沒有實質(zhì)變化可以不要重復通知壓縮模 塊暫停壓縮;當圖像偵測電路或圖像偵測模塊發(fā)現(xiàn)圖像信號有實質(zhì)變化時,將該變化 的幀數(shù)據(jù)覆蓋該區(qū)塊的相應(yīng)的幀數(shù)據(jù),并通知壓縮模塊重新啟動壓縮, 輸出壓縮結(jié)果數(shù)據(jù),或從網(wǎng)絡(luò)傳送出去,或者存儲到硬盤上;如果連續(xù)有實質(zhì) 變化可以不要重復通知壓縮模塊啟動壓縮。圖2中所示的CMOS可用CCD、攝像頭、其他視頻或電腦信號代替。 在比較過程中,如果有基本變化,則將該變化的數(shù)據(jù)覆蓋存儲區(qū)塊相 應(yīng)的數(shù)據(jù)。以上的偵測處理過程可以不需要專門的電路,可在視頻壓縮模塊中嵌入該 偵測功能,這樣可以節(jié)省硬件成本。對于PAL制,分辨率為720*576,每幀414720像素,對第N幀(對比幀) 和第N+1幀的每個像素進行比較,每個像素3種(紅、綠和藍)顏色之每個 顏色數(shù)字變化都小于10% (可根據(jù)需要選擇1%—30%中的其他值),則認為該 像素基本沒有變化。而且有變化的總數(shù)小于5% (可根據(jù)需要選擇1%—30%中 的其他值),和/或沒有100行(1一288可選)每行超過100個(1一360可選) 像素的變化,則認為這2幀之間沒有變化。這里我們認為即使100X100個像素 (占一幀像素的2.4%)有全部變化,我們也看不清楚是什么東西,更看不清 楚是什么人。我們認為這是攝像頭拍攝數(shù)據(jù)的正常波動,或者有小動物的在拍 攝范圍內(nèi)活動。如果N與N+1幀基本沒有實質(zhì)變化,則下一次比較N與N+2 幀的數(shù)據(jù)……,直到N與N+i幀比較才發(fā)現(xiàn)有實質(zhì)變化。N與N+i幀比較的 目的是避免累積變化。如有人慢慢地進入監(jiān)視區(qū)域時,也能夠被發(fā)現(xiàn)。這時從 N+i幀開始啟動壓縮存儲功能。下一次就把N+i幀作為對比幀。并繼續(xù)偵測 圖像變化情況,只要連續(xù)2幀之間有基本變化的總數(shù)小于5%就暫停壓縮存儲 或壓縮傳輸功能。本實施例的應(yīng)用場合工廠監(jiān)控,辦公室監(jiān)控經(jīng)常發(fā)現(xiàn)沒有任何物體的運 動,特別是在下班。無人在家時家居視頻監(jiān)控看到的都是不變的視頻。即使在 上班時,也不是每個地方或每時每刻都有變化的視頻。而辦公場所一般一天只 有8小時上班,所以一天24小時中視頻有變化的時候一般不到1/3的時間, 平均值估計1/5以下。在門口、樓梯、路面等地方一般情況下視頻有變化的時 間不足1/10的時間。即使發(fā)現(xiàn)視頻沒有變化,可選某固定間斷時間(如每秒鐘、每分鐘、每 10秒)拍攝一幀,這樣可以讓使用者清楚知道被觀測的環(huán)境確實沒有動靜。所以,我們采用這種壓縮控制,可以大大節(jié)約硬盤的存儲空間,或者大大 節(jié)約對網(wǎng)絡(luò)的占用。變的視頻。即使在上班時,也不是每個地方或每時每刻都 有變化的視頻。而辦公場所一般一天只有8小時上班,所以一天24小時中視 頻有變化的時候一般不到1/3的時間,平均值估計l/5以下。在門口、樓梯、路面等地方一般情況下視頻有變化的時間不足1/10的時間。即使發(fā)現(xiàn)視頻沒有變化,可選某固定間斷時間(如每秒鐘、每分鐘、每10秒)拍攝一幀,這樣可以讓使用者清楚知道被觀測的環(huán)境確實沒有動靜。所以,我們采用這種壓縮控制,可以大大節(jié)約硬盤的存儲空間,或者大大 節(jié)約對網(wǎng)絡(luò)的占用。
權(quán)利要求
1、一種數(shù)據(jù)壓縮處理方法,其特征在于,包括以下步驟(1)在服務(wù)器端計算機的內(nèi)存中分出三個區(qū)塊,第一個區(qū)塊用來存儲原始幀數(shù)據(jù),第二個區(qū)塊用來存儲當前生成的幀數(shù)據(jù),第三個區(qū)塊用來存儲壓縮后將要傳輸?shù)臄?shù)據(jù);(2)以當前圖像信號作為數(shù)據(jù)源,從中提取原始幀并保存在第一個區(qū)塊;(3)其后所提取的當前生成的幀數(shù)據(jù)保存在第二區(qū)塊,從第二幀開始進行當前幀與上一幀之間的一對一像素點數(shù)據(jù)比較,根據(jù)需要,選定1%~30%之間的某個數(shù)值,如果像素點各顏色數(shù)據(jù)變化值小于所對應(yīng)選定的這個數(shù)值,則視為無變化,第一區(qū)塊的相應(yīng)數(shù)據(jù)不變;如果像素點各顏色數(shù)據(jù)變化值大于或等于所對應(yīng)選定的這個數(shù)值,則視為該像素點數(shù)據(jù)發(fā)生變化,將該變化的幀數(shù)據(jù)覆蓋第一區(qū)塊的相應(yīng)的幀數(shù)據(jù);然后,進行幀內(nèi)相鄰像素間的比較完成數(shù)據(jù)采集壓縮編碼,并保存在第三區(qū)塊,所述的壓縮編碼時如果發(fā)現(xiàn)數(shù)據(jù)將要超出規(guī)定的存儲容量,則停止壓縮,將變化的數(shù)據(jù)全部復制到第一區(qū)塊,并傳送給客戶端,同時通知客戶端該數(shù)據(jù)為非壓縮數(shù)據(jù);(4)將壓縮編碼的數(shù)據(jù)打包,然后傳輸?shù)娇蛻舳?,客戶端接收到來自服?wù)器端的壓縮編碼數(shù)據(jù)后進行解壓并送到計算機內(nèi)存,計算機收到解壓數(shù)據(jù)后,只對有變化的部分進行刷新。
2、 根據(jù)權(quán)利要求l所述的一種數(shù)據(jù)壓縮處理方法,其特征在于, 步驟(2)所述圖像信號為視頻信號或電腦RGB信號。
3、 根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)壓縮處理方法,其特征在于,步驟(3) 所述數(shù)據(jù)采集壓縮采用如下方式采集壓縮-A、 在比較過程中,增加判斷值以判斷是否發(fā)生了幀間的變化、相鄰像素 是否一樣;根據(jù)上述的判斷情況進行壓縮編碼;B、 在比較過程中,利用長度標示以判斷幀間連續(xù)沒有變化的數(shù)值個數(shù)、幀內(nèi)連續(xù)基本一樣的像素個數(shù)。
4、 根據(jù)權(quán)利要求l所述的一種數(shù)據(jù)壓縮處理方法,其特征在于,步 驟(4)所述的傳輸為通過100M/1000M網(wǎng)絡(luò)、USB接口、無線通信或者專用通信 線路傳輸。
5、 一種數(shù)據(jù)壓縮處理方法,其特征在于,在數(shù)據(jù)壓縮處理過程采 用圖像偵測模塊對圖像進行偵測,包括以下步驟(1) 在圖像偵測模塊的存儲器中分出一塊或兩個區(qū)塊, 第一個區(qū)塊用來存儲原始幀數(shù)據(jù);當分出兩個區(qū)塊時,第二個區(qū)塊用來存儲當前生成的幀數(shù)據(jù);(2) 把開始接收到的圖像信號幀數(shù)據(jù)保存在第一個區(qū)塊和/或 輸送給壓縮模塊;(3) 其后接收到的圖像信號幀數(shù)據(jù)與第一區(qū)塊之間相對應(yīng)位置進行逐個比較,或者其后接收到的圖像信號幀數(shù)據(jù)存儲在第二區(qū)塊, 并與第一區(qū)塊之間相對應(yīng)位置進行逐個比較,當圖像偵測模塊發(fā)現(xiàn)圖像沒有實質(zhì)變化時,則不把該幀數(shù)據(jù)傳送給壓 縮模塊,或者把該幀數(shù)據(jù)傳送給壓縮模塊,并通知壓縮模塊暫停壓縮, 也不輸出數(shù)據(jù),如果連續(xù)沒有實質(zhì)變化可以不要重復通知壓縮模塊暫停壓縮;當圖像偵測模塊發(fā)現(xiàn)圖像信號有實質(zhì)變化時,則將該變化的幀數(shù)據(jù)覆 蓋第一區(qū)塊的相應(yīng)的幀數(shù)據(jù),并傳輸給壓縮模塊,然后通知壓縮模塊重新 啟動壓縮,輸出壓縮結(jié)果數(shù)據(jù),或從網(wǎng)絡(luò)傳送出去,或者存儲到硬盤上,如果 連續(xù)有實質(zhì)變化可以不要重復通知壓縮模塊啟動壓縮;或者,其后接收到的圖像信號幀數(shù)據(jù)傳輸給壓縮模塊或者其后接收到 的圖像信號幀數(shù)據(jù)存儲在第二區(qū)塊并傳輸給壓縮模塊,然后再將其 后接收到的圖像信號幀數(shù)據(jù)與第一區(qū)塊之間相對應(yīng)位置進行逐個比 較,當圖像偵測模塊發(fā)現(xiàn)圖像沒有實質(zhì)變化時,就通知壓縮模塊暫停壓縮,也 不輸出數(shù)據(jù),如果連續(xù)沒有實質(zhì)變化可以不要重復通知壓縮模塊暫停壓縮; 當圖像偵測模塊發(fā)現(xiàn)圖像信號有實質(zhì)變化時,將該變化的幀數(shù)據(jù)覆蓋第一區(qū)塊的相應(yīng)的幀數(shù)據(jù),并通知壓縮模塊重新啟動壓縮,輸出壓縮結(jié)果數(shù)據(jù),或 從網(wǎng)絡(luò)傳送出去,或者存儲到硬盤上,如果連續(xù)有實質(zhì)變化可以不要重復通知 壓縮模塊啟動壓縮。
6、 根據(jù)權(quán)利要求5所述的一種數(shù)據(jù)壓縮處理方法,其特征在于,所 述的圖像偵測模塊為主要由FPGA和DDRAM組成的電路;所述壓縮包括MPEG2、 MPEG4、 H264、 JPEG或者JPEG2000壓縮;所述圖像偵測模塊與壓縮模塊的通信 可以通過控制線或通信接口來實現(xiàn)。
7、 根據(jù)權(quán)利要求5所述的一種數(shù)據(jù)壓縮處理方法,其特征在于,所述實質(zhì)變化是指下列情形之一A、 一幀圖像的像素總數(shù)的1% 20%有基本變化;B、 在1% 30%間選定某個數(shù)值,有大于或者等于這個數(shù)值的像素線;或者 在1% 30%間選定某個數(shù)值,每條像素線中有大于或等于這個數(shù)值的像素有基 本變化;所述的有基本變化,是在1% 30%之間選定某個值,一個像素的^ G和B三種顏色值變化的百分比的絕對值都大于或等于預先所選定的數(shù) 值。
8、 一種數(shù)據(jù)壓縮處理方法,其特征在于,在數(shù)據(jù)壓縮處理過程采用圖像偵測模塊對圖像進行偵測,包括以下步驟(1) 在圖像偵測模塊的存儲器中分出一個區(qū)塊,用來存儲原始幀數(shù)據(jù);(2) 外部輸入的圖像數(shù)據(jù)并行傳輸給圖像偵測模塊和壓縮模塊;(3) 圖像偵測模塊把開始接收到的圖像信號幀數(shù)據(jù)保存在其存儲器被分出的區(qū)塊中;(4) 圖像偵測模塊其后所接收的圖像信號幀數(shù)據(jù)與該區(qū)塊之間相對應(yīng)位置進行逐個比較,當圖像偵測模塊發(fā)現(xiàn)圖像沒有實質(zhì)變化時,就通知壓縮模塊暫停壓縮,也 不輸出數(shù)據(jù),如果連續(xù)沒有實質(zhì)變化可以不要重復通知壓縮模塊暫停壓縮;當圖像偵測模塊發(fā)現(xiàn)圖像信號有實質(zhì)變化時,將該變化的幀數(shù)據(jù)覆蓋該區(qū)塊的相應(yīng)的幀數(shù)據(jù),并通知壓縮模塊重新啟動壓縮,輸出壓縮結(jié)果數(shù) 據(jù),或從網(wǎng)絡(luò)傳送出去,或者存儲到硬盤上,如果連續(xù)有實質(zhì)變化可以不要重 復通知壓縮模塊啟動壓縮。
9、根據(jù)權(quán)利要求8所述的一種數(shù)據(jù)壓縮處理方法,其特征在于,其 特征在于,所述的圖像偵測模塊為主要由FPGA和DDRAM組成的電路;所述壓縮 包括MPEG2、 MPEG4、 H264、 JPEG或者JPEG2000壓縮;所述圖像偵測模塊與壓縮模塊的通信可以通過控制線或通信接口來實現(xiàn)。
10、根據(jù)權(quán)利要求8所述的一種數(shù)據(jù)壓縮處理方法,其特征在于,所述實質(zhì)變化是指下列情形之一A、 一幀圖像的像素總數(shù)的1% 20%有基本變化;B、 在1% 30%間選定某個數(shù)值,有大于或者等于這個數(shù)值的像素線;或者 在1% 30%間選定某個數(shù)值,每條像素線中有大于或等于這個數(shù)值的像素有基 本變化;所述的有基本變化,是在1% 30%之間選定某個值,一個像素的! 、 G和B三種顏色值變化的百分比的絕對值都大于或等于預先所選定的數(shù) 值。
全文摘要
本發(fā)明涉及數(shù)據(jù)處理,具體涉及一種數(shù)據(jù)壓縮處理方法。本發(fā)明是在專利號為“ZL 200510034435.9”基礎(chǔ)上改進的一種數(shù)據(jù)壓縮處理方法。改進點是在數(shù)據(jù)比較中,如果像素點數(shù)據(jù)變化范圍小于1%~30%間的某個值時,則視為無變化,另外還在壓縮數(shù)據(jù)前采用了圖像偵測電路對圖像進行偵測,根據(jù)偵測結(jié)果進行相應(yīng)地處理。與現(xiàn)有技術(shù)相比,本發(fā)明有如下有益效果(1)本發(fā)明的方法有利于利用有限的資源集中去解決局部活動的(有時是高速變化的)圖像數(shù)據(jù),對圖像傳輸具有實用意義。(2)本發(fā)明方法簡單,容易實現(xiàn)。(3)本發(fā)明增加偵測電路偵測圖像信號是否發(fā)生實質(zhì)變化,然后確定啟動或暫停壓縮的技術(shù)方案,可以大量節(jié)省存儲器或減少網(wǎng)絡(luò)負擔。
文檔編號H04N7/24GK101217655SQ20081002564
公開日2008年7月9日 申請日期2008年1月4日 優(yōu)先權(quán)日2008年1月4日
發(fā)明者盧如西 申請人:廣東威創(chuàng)視訊科技股份有限公司