基于實(shí)時(shí)網(wǎng)絡(luò)遠(yuǎn)程圖像傳輸技術(shù)_第1頁
基于實(shí)時(shí)網(wǎng)絡(luò)遠(yuǎn)程圖像傳輸技術(shù)_第2頁
基于實(shí)時(shí)網(wǎng)絡(luò)遠(yuǎn)程圖像傳輸技術(shù)_第3頁
基于實(shí)時(shí)網(wǎng)絡(luò)遠(yuǎn)程圖像傳輸技術(shù)_第4頁
基于實(shí)時(shí)網(wǎng)絡(luò)遠(yuǎn)程圖像傳輸技術(shù)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、基于網(wǎng)絡(luò)的遠(yuǎn)程圖像傳輸技術(shù)和遠(yuǎn)程控制技術(shù)java實(shí)現(xiàn)Author:馬俊2007年11月16日研究生論壇研究生論壇-第一講第一講遠(yuǎn)程控制技術(shù)介紹遠(yuǎn)程控制技術(shù)介紹 電腦中的遠(yuǎn)程控制技術(shù),始于電腦中的遠(yuǎn)程控制技術(shù),始于DOS時(shí)代,只不過當(dāng)時(shí)時(shí)代,只不過當(dāng)時(shí)由于技術(shù)上沒有什么大的變化,網(wǎng)絡(luò)不發(fā)達(dá),市場沒由于技術(shù)上沒有什么大的變化,網(wǎng)絡(luò)不發(fā)達(dá),市場沒有更高的要求,所以遠(yuǎn)程控制技術(shù)沒有引起更多人的有更高的要求,所以遠(yuǎn)程控制技術(shù)沒有引起更多人的注意。但是,隨著網(wǎng)絡(luò)的高度發(fā)展,電腦的管理及技注意。但是,隨著網(wǎng)絡(luò)的高度發(fā)展,電腦的管理及技術(shù)支持的需要,遠(yuǎn)程操作及控制技術(shù)越來越引起人們術(shù)支持的需要,遠(yuǎn)程操作及控制

2、技術(shù)越來越引起人們的關(guān)注。遠(yuǎn)程控制一般支持下面的這些網(wǎng)絡(luò)方式:的關(guān)注。遠(yuǎn)程控制一般支持下面的這些網(wǎng)絡(luò)方式:LAN、WAN、撥號方式、互聯(lián)網(wǎng)方式。傳統(tǒng)的遠(yuǎn)程、撥號方式、互聯(lián)網(wǎng)方式。傳統(tǒng)的遠(yuǎn)程控制軟件一般使用控制軟件一般使用NETBEUI、NETBIOS、IPX/SPX、TCP/IP等協(xié)議來實(shí)現(xiàn)遠(yuǎn)程控制,不過,隨著網(wǎng)絡(luò)技等協(xié)議來實(shí)現(xiàn)遠(yuǎn)程控制,不過,隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,目前很多遠(yuǎn)程控制軟件提供通過術(shù)的發(fā)展,目前很多遠(yuǎn)程控制軟件提供通過Web頁頁面以面以Java技術(shù)來控制遠(yuǎn)程電腦,這樣可以實(shí)現(xiàn)不同技術(shù)來控制遠(yuǎn)程電腦,這樣可以實(shí)現(xiàn)不同操作系統(tǒng)下的遠(yuǎn)程控制操作系統(tǒng)下的遠(yuǎn)程控制.遠(yuǎn)程控制軟件的原理遠(yuǎn)程控制軟

3、件的原理 遠(yuǎn)程控制軟件一般分兩個(gè)部分:一部分是客戶端程序遠(yuǎn)程控制軟件一般分兩個(gè)部分:一部分是客戶端程序Client,另一部分是服務(wù)器端程序,另一部分是服務(wù)器端程序Server,在使用前,在使用前需要將客戶端程序安裝到主控端電腦上,將服務(wù)器端需要將客戶端程序安裝到主控端電腦上,將服務(wù)器端程序安裝到被控端電腦上。它的控制的過程一般是先程序安裝到被控端電腦上。它的控制的過程一般是先在主控端電腦上執(zhí)行客戶端程序,像一個(gè)普通的客戶在主控端電腦上執(zhí)行客戶端程序,像一個(gè)普通的客戶一樣向被控端電腦中的服務(wù)器端程序發(fā)出信號,建立一樣向被控端電腦中的服務(wù)器端程序發(fā)出信號,建立一個(gè)特殊的遠(yuǎn)程服務(wù),然后通過這個(gè)遠(yuǎn)程服

4、務(wù),使用一個(gè)特殊的遠(yuǎn)程服務(wù),然后通過這個(gè)遠(yuǎn)程服務(wù),使用各種遠(yuǎn)程控制功能發(fā)送遠(yuǎn)程控制命令,控制被控端電各種遠(yuǎn)程控制功能發(fā)送遠(yuǎn)程控制命令,控制被控端電腦中的各種應(yīng)用程序運(yùn)行,我們稱這種遠(yuǎn)程控制方式腦中的各種應(yīng)用程序運(yùn)行,我們稱這種遠(yuǎn)程控制方式為基于遠(yuǎn)程服務(wù)的遠(yuǎn)程控制為基于遠(yuǎn)程服務(wù)的遠(yuǎn)程控制.遠(yuǎn)程控制軟件的原理遠(yuǎn)程控制軟件的原理 通過遠(yuǎn)程控制軟件,我們可以進(jìn)行很多方面的遠(yuǎn)程通過遠(yuǎn)程控制軟件,我們可以進(jìn)行很多方面的遠(yuǎn)程控制,包括獲取目標(biāo)電腦屏幕圖像、窗口及進(jìn)程列控制,包括獲取目標(biāo)電腦屏幕圖像、窗口及進(jìn)程列表;記錄并提取遠(yuǎn)端鍵盤事件(擊鍵序列,即監(jiān)視表;記錄并提取遠(yuǎn)端鍵盤事件(擊鍵序列,即監(jiān)視遠(yuǎn)端鍵盤輸

5、入的內(nèi)容);可以打開、關(guān)閉目標(biāo)電腦遠(yuǎn)端鍵盤輸入的內(nèi)容);可以打開、關(guān)閉目標(biāo)電腦的任意目錄并實(shí)現(xiàn)資源共享;提取撥號網(wǎng)絡(luò)及普通的任意目錄并實(shí)現(xiàn)資源共享;提取撥號網(wǎng)絡(luò)及普通程序的密碼;激活、中止遠(yuǎn)端程序進(jìn)程;管理遠(yuǎn)端程序的密碼;激活、中止遠(yuǎn)端程序進(jìn)程;管理遠(yuǎn)端電腦的文件和文件夾;關(guān)閉或者重新啟動(dòng)遠(yuǎn)端電腦電腦的文件和文件夾;關(guān)閉或者重新啟動(dòng)遠(yuǎn)端電腦中的操作系統(tǒng);修改中的操作系統(tǒng);修改Windows注冊表;通過遠(yuǎn)端注冊表;通過遠(yuǎn)端電腦上、下載文件和捕獲音頻、視頻信號等。電腦上、下載文件和捕獲音頻、視頻信號等。 遠(yuǎn)程控制技術(shù)的應(yīng)用:遠(yuǎn)程控制技術(shù)的應(yīng)用:1.遠(yuǎn)程辦公遠(yuǎn)程辦公2.遠(yuǎn)程技術(shù)支持遠(yuǎn)程技術(shù)支持3.遠(yuǎn)

6、程交流遠(yuǎn)程交流4.遠(yuǎn)程維護(hù)和管理遠(yuǎn)程維護(hù)和管理這種遠(yuǎn)程的辦公方式不僅大大緩這種遠(yuǎn)程的辦公方式不僅大大緩解了城市交通狀況,減少了環(huán)境污解了城市交通狀況,減少了環(huán)境污染,還免去了人們上下班路上奔波染,還免去了人們上下班路上奔波的辛勞,更可以提高企業(yè)員工的工的辛勞,更可以提高企業(yè)員工的工作效率和工作興趣。作效率和工作興趣。通常,遠(yuǎn)距離的技術(shù)支持必須依賴技術(shù)通常,遠(yuǎn)距離的技術(shù)支持必須依賴技術(shù)人員和用戶之間的電話交流來進(jìn)行,這人員和用戶之間的電話交流來進(jìn)行,這種交流既耗時(shí)又容易出錯(cuò)有了遠(yuǎn)程控制種交流既耗時(shí)又容易出錯(cuò)有了遠(yuǎn)程控制技術(shù),技術(shù)人員就可以遠(yuǎn)程控制用戶的技術(shù),技術(shù)人員就可以遠(yuǎn)程控制用戶的電腦,就像

7、直接操作本地電腦一樣,只電腦,就像直接操作本地電腦一樣,只需要用戶的簡單幫助就可以得到該機(jī)器需要用戶的簡單幫助就可以得到該機(jī)器存在的問題的第一手材料,很快就可以存在的問題的第一手材料,很快就可以找到問題的所在,并加以解決。找到問題的所在,并加以解決。利用遠(yuǎn)程技術(shù),商業(yè)公司可以實(shí)現(xiàn)和利用遠(yuǎn)程技術(shù),商業(yè)公司可以實(shí)現(xiàn)和用戶的遠(yuǎn)程交流,采用交互式的教學(xué)用戶的遠(yuǎn)程交流,采用交互式的教學(xué)模式,通過實(shí)際操作來培訓(xùn)用戶,使模式,通過實(shí)際操作來培訓(xùn)用戶,使用戶從技術(shù)支持專業(yè)人員那里學(xué)習(xí)示用戶從技術(shù)支持專業(yè)人員那里學(xué)習(xí)示例知識變得十分容易。而教師和學(xué)生例知識變得十分容易。而教師和學(xué)生之間也可以利用這種遠(yuǎn)程控制技術(shù)

8、實(shí)之間也可以利用這種遠(yuǎn)程控制技術(shù)實(shí)現(xiàn)教學(xué)問題的交流,學(xué)生可以不用見現(xiàn)教學(xué)問題的交流,學(xué)生可以不用見到老師,就得到老師手把手的輔導(dǎo)和到老師,就得到老師手把手的輔導(dǎo)和講授。學(xué)生還可以直接在電腦中進(jìn)行講授。學(xué)生還可以直接在電腦中進(jìn)行習(xí)題的演算和求解,在此過程中,教習(xí)題的演算和求解,在此過程中,教師能夠輕松看到學(xué)生的解題思路和步師能夠輕松看到學(xué)生的解題思路和步驟,并加以實(shí)時(shí)的指導(dǎo)。驟,并加以實(shí)時(shí)的指導(dǎo)。網(wǎng)絡(luò)管理員或者普通用戶可以通過遠(yuǎn)網(wǎng)絡(luò)管理員或者普通用戶可以通過遠(yuǎn)程控制技術(shù)為遠(yuǎn)端的電腦安裝和配置程控制技術(shù)為遠(yuǎn)端的電腦安裝和配置軟件、下載并安裝軟件修補(bǔ)程序、配軟件、下載并安裝軟件修補(bǔ)程序、配置應(yīng)用程序

9、和進(jìn)行系統(tǒng)軟件設(shè)置。置應(yīng)用程序和進(jìn)行系統(tǒng)軟件設(shè)置。遠(yuǎn)程控制軟件介紹遠(yuǎn)程控制軟件介紹 當(dāng)前比較流行的商業(yè)化的遠(yuǎn)程控制軟件大概有: Pcanyware Netop Radmin vnc 各種虛擬教室軟件Radmin演示演示VNC 介紹介紹VNC(Virtual Network Computing,虛擬網(wǎng)絡(luò)計(jì)算)最早是一套由英國劍橋大學(xué),虛擬網(wǎng)絡(luò)計(jì)算)最早是一套由英國劍橋大學(xué)AT&T實(shí)實(shí)驗(yàn)室在驗(yàn)室在2002年開發(fā)的輕量型的遠(yuǎn)程控制計(jì)算機(jī)軟件,其采用了年開發(fā)的輕量型的遠(yuǎn)程控制計(jì)算機(jī)軟件,其采用了 GPL 授權(quán)條款,任何人都可授權(quán)條款,任何人都可免費(fèi)取得該軟件。免費(fèi)取得該軟件。VNC軟件主要由兩

10、個(gè)部分組成:軟件主要由兩個(gè)部分組成:VNC server及及VNC viewer。用戶需先。用戶需先將將VNC server安裝在被控端的計(jì)算機(jī)上后,才能在主控端執(zhí)行安裝在被控端的計(jì)算機(jī)上后,才能在主控端執(zhí)行 VNC viewer 控制被控端??刂票豢囟?。VNC server 與與 VNC viewer 支持多種操作系統(tǒng),如支持多種操作系統(tǒng),如 windows,Linux,MacOS 及及 Unix 系列(系列(Unix,Solaris等),因此可將等),因此可將 VNC server 及及 VNC viewer 分別安裝在不同的操作分別安裝在不同的操作系統(tǒng)中進(jìn)行控制。系統(tǒng)中進(jìn)行控制。Real

11、VNC 的優(yōu)越性還在于如果操作系統(tǒng)的主控端計(jì)算機(jī)沒有安裝的優(yōu)越性還在于如果操作系統(tǒng)的主控端計(jì)算機(jī)沒有安裝 VNC viewer,也可以通過一般的網(wǎng)絡(luò)瀏覽器(如,也可以通過一般的網(wǎng)絡(luò)瀏覽器(如 IE 等)來控制被控端(需要等)來控制被控端(需要 Java 虛擬機(jī)的支虛擬機(jī)的支持)。持)。整個(gè)整個(gè) VNC 一般運(yùn)行的工作流程如下:一般運(yùn)行的工作流程如下:(1) VNC 客戶端通過瀏覽器或客戶端通過瀏覽器或 VNC Viewer 連接至連接至 VNC Server。(2) VNC Server 傳送一對話窗口至客戶端,要求輸入連接密碼(可能為空),以及存取傳送一對話窗口至客戶端,要求輸入連接密碼(可

12、能為空),以及存取的的 VNC Server 顯示裝置。顯示裝置。(3) 在客戶端輸入連接密碼后,在客戶端輸入連接密碼后,VNC Server 驗(yàn)證客戶端是否具有存取權(quán)限。驗(yàn)證客戶端是否具有存取權(quán)限。(4) 若是客戶端通過若是客戶端通過 VNC Server 的驗(yàn)證,客戶端即要求的驗(yàn)證,客戶端即要求 VNC Server 顯示桌面環(huán)境。顯示桌面環(huán)境。(5) 被控端將畫面顯示控制權(quán)交由被控端將畫面顯示控制權(quán)交由 VNC Server 負(fù)責(zé)。負(fù)責(zé)。(6) VNC Server 將把被控端的桌面環(huán)境利用將把被控端的桌面環(huán)境利用 VNC 通信協(xié)議送至客戶端,并且允許客戶通信協(xié)議送至客戶端,并且允許客戶

13、端控制端控制 VNC Server 的桌面環(huán)境及輸入裝置。的桌面環(huán)境及輸入裝置。VNC可以是無控制端的遠(yuǎn)程控制軟件,我們可以使用瀏覽可以是無控制端的遠(yuǎn)程控制軟件,我們可以使用瀏覽器結(jié)合器結(jié)合JAVA插件對遠(yuǎn)程計(jì)算機(jī)進(jìn)行控制,所以直接在被控插件對遠(yuǎn)程計(jì)算機(jī)進(jìn)行控制,所以直接在被控機(jī)上安裝機(jī)上安裝VNC即可完成被控端的操作。即可完成被控端的操作。vnc 演示演示Ajax VNC 演示演示自編的遠(yuǎn)程救助系統(tǒng)演示自編的遠(yuǎn)程救助系統(tǒng)演示工作原理圖工作原理圖數(shù)據(jù)獲取數(shù)據(jù)獲取 數(shù)據(jù)分析和壓縮數(shù)據(jù)分析和壓縮通過網(wǎng)絡(luò)傳輸通過網(wǎng)絡(luò)傳輸將顯存的數(shù)據(jù)直接抓將顯存的數(shù)據(jù)直接抓過來過來,再進(jìn)行二次組織再進(jìn)行二次組織,Ro

14、bot類完成類完成通過通過TCP連接來傳輸連接來傳輸怎樣在有限的怎樣在有限的帶寬條件下帶寬條件下,傳傳輸我們得到的輸我們得到的圖像數(shù)據(jù)圖像數(shù)據(jù),難點(diǎn)難點(diǎn)!圖像塊的截取運(yùn)算圖像塊的截取運(yùn)算(Robot類類)網(wǎng)絡(luò)傳輸網(wǎng)絡(luò)傳輸 (ServerSocket類和類和Socket類類)ServerSocket sc=new ServerSocket(58787);Socket socket=sc.accept();OutputStream out=socket.getOutputStream();inputStream in=socket.getInputStream();Socket s1=new So

15、cket(host,port);OutputSteam out=s1.getOutputStream();InputStream in=s1.getInputStream();用到的類用到的類-Java.awt.Robot類類 This class is used to generate native system input events for the purposes of test automation, self-running demos, and other applications where control of the mouse and keyboard is neede

16、d. The primary purpose of Robot is to facilitate automated testing of Java platform implementations. BufferedImageBufferedImage createScreenCapturecreateScreenCapture( (RectangleRectangle screenRect)screenRect) Creates an image containing pixels read from the screen.用到的類用到的類-Javax.ImageIO類類目前支持目前支持G

17、IF,PNG,JPG格式格式A class containing static convenience methods for locating ImageReaders and ImageWriters, and performing simple encoding and decoding. 用到的類用到的類- AudioFormat類類 An instance of the AudioFileFormat class describes an audio file, including the file type, the files length in bytes, the lengt

18、h in sample frames of the audio data contained in the file, and the format of the audio data. 下一版想實(shí)現(xiàn)的技術(shù)下一版想實(shí)現(xiàn)的技術(shù) 將桌面去掉 傳輸無損壓縮的圖像 僅傳輸圖像差值 或 根據(jù)帶寬智能選擇 傳輸有損壓縮圖像 到服務(wù)端作補(bǔ)償運(yùn)算下一版想實(shí)現(xiàn)的技術(shù)下一版想實(shí)現(xiàn)的技術(shù) 完善界面控制 完善支持語音的采樣和壓縮傳輸 添加文件傳輸功能 支持嵌入式系統(tǒng) 完全綠色化圖像塊的差運(yùn)算圖像塊的差運(yùn)算圖像的壓縮圖像的壓縮 圖像數(shù)據(jù)的壓縮基于兩點(diǎn): (1)像信息存在著很大的冗余度,數(shù)據(jù)之間存在著相關(guān)性,如相鄰像素之

19、間色彩的相關(guān)性等。 (2)人眼是圖像信息的接收端。因此,可利用人的視覺對于邊緣急劇變化不敏感(視覺掩蓋效應(yīng)),以及人眼對圖像的亮度信息敏感、對顏色分辨率弱的特點(diǎn)實(shí)現(xiàn)高壓縮比,而解壓縮后的圖像信號仍有著滿意的主觀質(zhì)量。 圖像的壓縮圖像的壓縮 從信號系統(tǒng)的角度理解,數(shù)據(jù)的壓縮就是對原來從信號系統(tǒng)的角度理解,數(shù)據(jù)的壓縮就是對原來信號進(jìn)行某種變換。借助這種變換,信號的表達(dá)信號進(jìn)行某種變換。借助這種變換,信號的表達(dá)更經(jīng)濟(jì),存儲傳輸更為方便。從信息論角度理解,更經(jīng)濟(jì),存儲傳輸更為方便。從信息論角度理解,信號本身的具體表達(dá)形式不過是其內(nèi)在攜帶信息信號本身的具體表達(dá)形式不過是其內(nèi)在攜帶信息的外在表象,一定的信

20、息可以用各種形式加以體的外在表象,一定的信息可以用各種形式加以體現(xiàn),每種表達(dá)形式的表達(dá)效率并不相同,存在著現(xiàn),每種表達(dá)形式的表達(dá)效率并不相同,存在著信息冗余。數(shù)據(jù)壓縮的目的就是尋找在一定約束信息冗余。數(shù)據(jù)壓縮的目的就是尋找在一定約束條件下最為高效的信息表達(dá)方式。從壓縮技術(shù)的條件下最為高效的信息表達(dá)方式。從壓縮技術(shù)的角度理解,數(shù)據(jù)壓縮一般分為:建模、去相關(guān)、角度理解,數(shù)據(jù)壓縮一般分為:建模、去相關(guān)、量化、編碼四道工序。量化、編碼四道工序。 由此發(fā)展出數(shù)據(jù)壓縮的兩類基本方法:無損壓縮由此發(fā)展出數(shù)據(jù)壓縮的兩類基本方法:無損壓縮和有損壓縮。和有損壓縮。 圖像的壓縮圖像的壓縮 無損壓縮是將相同的或相似的

21、數(shù)據(jù)或數(shù)據(jù)特征歸類,使用較少的數(shù)據(jù)量描述原始數(shù)據(jù),達(dá)到減少數(shù)據(jù)量的目的。無損壓縮又稱信息保持編碼,或叫做熵保持編碼。圖像的無損壓縮通常分為兩步,即去相關(guān)和編碼。去相關(guān)就是要去除圖像冗余,降低信源熵。 有損壓縮是有利用人眼的視覺特性有針對性地簡化不重要的數(shù)據(jù),以減少總的數(shù)據(jù)量。有損算法有很多種,比較常見的主要是預(yù)測編碼、變換編碼等。 預(yù)測編碼法中最重要的是線性預(yù)測法,通常也成為“差值脈沖編碼調(diào)制法” DPCM.常用的圖像壓縮算法常用的圖像壓縮算法數(shù)數(shù)據(jù)據(jù)壓壓縮縮冗余度壓縮冗余度壓縮(熵編碼)(熵編碼)統(tǒng)計(jì)編碼統(tǒng)計(jì)編碼霍夫曼編碼、游程編碼、二進(jìn)制信源編碼等霍夫曼編碼、游程編碼、二進(jìn)制信源編碼等算術(shù)

22、編碼算術(shù)編碼基于字典的編碼:基于字典的編碼:LZW編碼等編碼等其他編碼其他編碼完全可逆的小波分解完全可逆的小波分解+統(tǒng)計(jì)編碼等統(tǒng)計(jì)編碼等熵壓縮熵壓縮特征抽取特征抽取分析分析/綜合編碼綜合編碼子帶、小波、分形、模型基等子帶、小波、分形、模型基等量化量化其他其他無記憶量化無記憶量化均勻量化、均勻量化、Max量化、壓擴(kuò)量化等量化、壓擴(kuò)量化等有有記記憶憶量量化化序列量化序列量化預(yù)測編碼預(yù)測編碼增量調(diào)制、線性預(yù)測、非線性預(yù)測、增量調(diào)制、線性預(yù)測、非線性預(yù)測、自適應(yīng)預(yù)測、運(yùn)動(dòng)補(bǔ)償預(yù)測等自適應(yīng)預(yù)測、運(yùn)動(dòng)補(bǔ)償預(yù)測等其他方法其他方法序貫量化等序貫量化等分組量化分組量化直接映射直接映射矢量量化、神經(jīng)網(wǎng)絡(luò)、方塊結(jié)尾

23、等矢量量化、神經(jīng)網(wǎng)絡(luò)、方塊結(jié)尾等變換編碼變換編碼正交變換:正交變換:KLTDCTDFTWHT等等非正交變換非正交變換其他函數(shù)變換等其他函數(shù)變換等當(dāng)前方法當(dāng)前方法-Jpeg壓縮算法介紹壓縮算法介紹Jpeg壓縮算法介紹壓縮算法介紹基于基于Huffman編碼壓縮編碼壓縮哈夫曼編碼基于不同符號的概率分布,對出現(xiàn)次數(shù)較多的符號賦予較短的代碼,哈夫曼編碼基于不同符號的概率分布,對出現(xiàn)次數(shù)較多的符號賦予較短的代碼,出現(xiàn)次數(shù)較少的符號賦予較長的代碼。這里,以一個(gè)例子說明如何賦予各個(gè)符號出現(xiàn)次數(shù)較少的符號賦予較長的代碼。這里,以一個(gè)例子說明如何賦予各個(gè)符號哈夫曼碼值,即如何生成哈夫曼表。哈夫曼碼值,即如何生成哈

24、夫曼表。 假設(shè)將對由假設(shè)將對由1,2,3,4,5,6,7,共,共7個(gè)字符組成的原始信息進(jìn)行哈夫曼編碼,個(gè)字符組成的原始信息進(jìn)行哈夫曼編碼,首先應(yīng)對信息中各個(gè)數(shù)字出現(xiàn)的次數(shù)進(jìn)行統(tǒng)計(jì),得出各個(gè)數(shù)字的出現(xiàn)的首先應(yīng)對信息中各個(gè)數(shù)字出現(xiàn)的次數(shù)進(jìn)行統(tǒng)計(jì),得出各個(gè)數(shù)字的出現(xiàn)的相對概率。假設(shè)各個(gè)數(shù)據(jù)出現(xiàn)的次數(shù)如表相對概率。假設(shè)各個(gè)數(shù)據(jù)出現(xiàn)的次數(shù)如表2-1所示。所示。 數(shù)字?jǐn)?shù)字1234567出現(xiàn)的次數(shù)出現(xiàn)的次數(shù)1010102020255相對概率相對概率0.10.10.10.20.20.250.05Table 2-1 Statistic distribution of the 7 numbers基于基于Huffm

25、an編碼壓縮編碼壓縮碼值碼值1234567碼字碼字1000100110100001111011由圖由圖2-1得到的碼字和碼值的對應(yīng)關(guān)系得到的碼字和碼值的對應(yīng)關(guān)系Lz77壓縮算法壓縮算法 1、從當(dāng)前壓縮位置開始,考察未編碼的數(shù)據(jù),并試圖在滑動(dòng)窗口中找出最長的匹配字符串,如果找到,則進(jìn)行步驟 2,否則進(jìn)行步驟 3。 2、輸出三元符號組 ( off, len, c )。其中 off 為窗口中匹配字符串相對窗口邊界的偏移,len 為可匹配的長度,c 為下一個(gè)字符。然后將窗口向后滑動(dòng) len + 1個(gè)字符,繼續(xù)步驟 1。 3、輸出三元符號組 ( 0, 0, c )。其中 c 為下一個(gè)字符。然后將窗口向后

26、滑動(dòng)len + 1 個(gè)字符,繼續(xù)步驟 1。 字典模型字典模型 說起來,字典模型的思路相當(dāng)簡單,我們?nèi)粘I钪芯徒?jīng)常在使用這種壓縮思想。 我們常常跟人說“奧運(yùn)會”、“IBM”、“TCP”之類的詞匯,說者和聽者都明白它 們指的是“奧林匹克運(yùn)動(dòng)會”、“國際商業(yè)機(jī)器公司”和“傳輸控制協(xié)議”,這實(shí)際就是信息的壓縮。我們之所以可以順利使用這種壓縮方式而不產(chǎn)生語義上的誤解 ,是因?yàn)樵谡f者和聽者的心中都有一個(gè)事先定義好的縮略語字典,我們在對信息進(jìn)行壓縮(說)和解壓縮(聽)的過程中都對字典進(jìn)行了查詢操作。字典壓縮模型正是基于這一思路設(shè)計(jì)實(shí)現(xiàn)的。 有理數(shù)壓縮模型有理數(shù)壓縮模型:雙方要約定好傳輸和解釋的字典模型雙方

27、要約定好傳輸和解釋的字典模型!Gzip算法工作原理算法工作原理 gzip 對于要壓縮的文件,首先使用lz77算法進(jìn)行壓縮,對得到的結(jié)果再使用huffman編碼的方法進(jìn)行壓縮。 java.util.zip 類類 GZIPOutputStreamjava.lang.Object java.io.OutputStream java.io.FilterOutputStream java.util.zip.DeflaterOutputStream java.util.zip.GZIPOutputStreamjava.util.zip.GZIPOutputStream 條目條目 類型類型描述描述Check

28、sum接口接口被類被類Adler32和和CRC32實(shí)現(xiàn)的接口實(shí)現(xiàn)的接口Adler32類類使用使用Alder32算法來計(jì)算算法來計(jì)算Checksum數(shù)目數(shù)目CheckedInputStream類類一個(gè)輸入流,保存著被讀取數(shù)據(jù)的一個(gè)輸入流,保存著被讀取數(shù)據(jù)的ChecksumCheckedOutputStream類類一個(gè)輸出流,保存著被讀取數(shù)據(jù)的一個(gè)輸出流,保存著被讀取數(shù)據(jù)的ChecksumCRC32類類使用使用CRC32算法來計(jì)算算法來計(jì)算Checksum數(shù)目數(shù)目Deflater類類使用使用ZLIB壓縮類,支持通常的壓縮方式壓縮類,支持通常的壓縮方式DeflaterOutputStream類類一個(gè)

29、輸出過濾流,用來壓縮一個(gè)輸出過濾流,用來壓縮Deflater格式數(shù)據(jù)格式數(shù)據(jù)GZIPInputStream類類一個(gè)輸入過濾流,讀取一個(gè)輸入過濾流,讀取GZIP格式壓縮數(shù)據(jù)格式壓縮數(shù)據(jù)GZIPOutputStream類類一個(gè)輸出過濾流,讀取一個(gè)輸出過濾流,讀取GZIP格式壓縮數(shù)據(jù)格式壓縮數(shù)據(jù)Inflater類類使用使用ZLIB壓縮類,支持通常的解壓方式壓縮類,支持通常的解壓方式InlfaterInputStream類類一個(gè)輸入過濾流,用來解壓一個(gè)輸入過濾流,用來解壓Inlfater格式的壓縮數(shù)據(jù)格式的壓縮數(shù)據(jù)ZipEntry類類存儲存儲ZIP條目條目ZipFile類類從從ZIP文件中讀取文件中讀

30、取ZIP條目條目ZipInputStream類類一個(gè)輸入過濾流,用來讀取一個(gè)輸入過濾流,用來讀取ZIP格式文件中的文件格式文件中的文件ZipOutputStream類類一個(gè)輸出過濾流,用來向一個(gè)輸出過濾流,用來向ZIP格式文件口寫入文件格式文件口寫入文件DataFormatException異常類異常類拋出一個(gè)數(shù)據(jù)格式錯(cuò)誤拋出一個(gè)數(shù)據(jù)格式錯(cuò)誤ZipException異常類異常類拋出一個(gè)拋出一個(gè)ZIP文件文件Java.util包中的壓縮類包中的壓縮類無損壓縮無損壓縮程序演示程序演示7zip壓縮算法介紹壓縮算法介紹7z 是一種新的壓縮格式,它擁有目前最高的壓縮比是一種新的壓縮格式,它擁有目前最高的

31、壓縮比!7z 格式的主要特征:格式的主要特征: 公開的結(jié)構(gòu)編輯功能公開的結(jié)構(gòu)編輯功能 最高的壓縮比最高的壓縮比 強(qiáng)大的強(qiáng)大的 AES-256 加密加密 可更改和配置壓縮的算法可更改和配置壓縮的算法 最高支持最高支持 16000000000 GB 的文件壓縮的文件壓縮 以以 Unicode 為標(biāo)準(zhǔn)的文件名為標(biāo)準(zhǔn)的文件名 支持固實(shí)壓縮支持固實(shí)壓縮 支持檔案的文件頭壓縮支持檔案的文件頭壓縮 7z 已公開了結(jié)構(gòu)編輯功能,所以它可以支持任何一種新的壓縮算已公開了結(jié)構(gòu)編輯功能,所以它可以支持任何一種新的壓縮算法。到目前為止,下列壓縮算法已被整合到了法。到目前為止,下列壓縮算法已被整合到了 7z 中:中:壓縮算法壓縮算法備注備注LZMALZ77 改良和優(yōu)化算法后的最新版本改良和優(yōu)化算法后的最新版本PPMD基于基于 Dmitry Shkarin 之

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論