本發(fā)明涉及圖像遠(yuǎn)程顯示技術(shù)領(lǐng)域,尤其涉及一種遠(yuǎn)程顯示的數(shù)據(jù)處理方法及系統(tǒng)。
背景技術(shù):
隨著信息技術(shù)的發(fā)展,在越來(lái)越多的場(chǎng)合需要將本地圖像內(nèi)容通過(guò)網(wǎng)絡(luò)在顯示在遠(yuǎn)程的顯示設(shè)備上。如微軟公司的remotefx、citrix的hdx、vmware的pcoip、華為的hdp等協(xié)議都可以將遠(yuǎn)程主機(jī)的顯示畫(huà)面壓縮,并通過(guò)網(wǎng)絡(luò)傳輸?shù)娇蛻?hù)機(jī)設(shè)備并顯示在客戶(hù)機(jī)設(shè)備的屏幕上。
但是,傳統(tǒng)的遠(yuǎn)程顯示技術(shù)存在限制,尤其是在交付圖形密集型應(yīng)用時(shí)更是如此。良好的性能需要大量的帶寬,這可能會(huì)阻塞網(wǎng)絡(luò)。另外,如果你想降低cpu的使用率,那么協(xié)議將會(huì)阻塞帶寬并降低最終用戶(hù)的性能。正如桌面虛擬化專(zhuān)家brianmadden所說(shuō),你可以在“低帶寬、良好的用戶(hù)體驗(yàn)、低cpu使用率三者中任選其二”。因此,有必要對(duì)遠(yuǎn)程顯示進(jìn)行進(jìn)一步研究。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問(wèn)題就在于:針對(duì)現(xiàn)有技術(shù)存在的技術(shù)問(wèn)題,本發(fā)明提供一種兼顧無(wú)損圖像顯示和高實(shí)時(shí)圖像顯示,可同時(shí)滿(mǎn)足低帶寬、良好的用戶(hù)體驗(yàn)及低cpu使用率這三個(gè)要求,達(dá)到最大限度接近本地pc體驗(yàn)的遠(yuǎn)程顯示效果的遠(yuǎn)程顯示的數(shù)據(jù)處理方法及系統(tǒng)。
為解決上述技術(shù)問(wèn)題,本發(fā)明提出的技術(shù)方案為:一種遠(yuǎn)程顯示的發(fā)送端數(shù)據(jù)處理方法,步驟包括:
s1.1.獲取需要遠(yuǎn)程顯示的原始圖像;
s1.2.根據(jù)所述原始圖像生成差異數(shù)據(jù)、無(wú)損數(shù)據(jù)和有損數(shù)據(jù),其中1幀無(wú)損數(shù)據(jù)對(duì)應(yīng)n幀有損數(shù)據(jù),1幀有損數(shù)據(jù)對(duì)應(yīng)1幀差異數(shù)據(jù);
s1.3.將所述差異數(shù)據(jù)、無(wú)損數(shù)據(jù)和有損數(shù)據(jù)發(fā)送給接收端。
作為本發(fā)明的進(jìn)一步改進(jìn),步驟s1.1中所述原始圖像包括:復(fù)制操作系統(tǒng)顯示合成模塊或顯示驅(qū)動(dòng)模塊顯示緩沖區(qū)的內(nèi)容所得到的原始圖像;
或者,通過(guò)對(duì)原始視頻文件進(jìn)行解析得到的原始圖像;
或者,通過(guò)圖像采集設(shè)備采集得到的原始圖像。
作為本發(fā)明的進(jìn)一步改進(jìn),步驟s1.2中所述差異數(shù)據(jù)為將所述原始圖像的圖像幀按預(yù)設(shè)的分塊規(guī)則進(jìn)行區(qū)塊劃分,選擇預(yù)設(shè)的圖像幀為基準(zhǔn)幀,按照區(qū)塊進(jìn)行比較而得到的體現(xiàn)圖像幀與基準(zhǔn)幀之間差異的數(shù)據(jù);
所述無(wú)損數(shù)據(jù)為從所述原始圖像中選擇預(yù)設(shè)的第一特定幀,進(jìn)行無(wú)損壓縮得到的無(wú)損視頻流;所述有損數(shù)據(jù)為從所述原始圖像中選擇預(yù)設(shè)的第二特定幀,進(jìn)行有損壓縮得到的有損視頻流;
所述每個(gè)第二特定幀對(duì)應(yīng)一個(gè)差異數(shù)據(jù)幀。
一種遠(yuǎn)程顯示的接收端數(shù)據(jù)處理方法,步驟包括:
s2.1.獲取差異數(shù)據(jù)、有損數(shù)據(jù)和無(wú)損數(shù)據(jù);
s2.2.根據(jù)所述差異數(shù)據(jù)、以所述有損數(shù)據(jù)和無(wú)損數(shù)據(jù)生成顯示圖像幀;
s2.3.顯示所述顯示圖像幀。
作為本發(fā)明的進(jìn)一步改進(jìn),步驟s2.2的具體步驟包括:
s2.2.1.從所述無(wú)損數(shù)據(jù)中獲取無(wú)損圖像幀,從所述有損數(shù)據(jù)中獲取有損圖像幀,從所述差異數(shù)據(jù)中獲取有損圖像幀對(duì)應(yīng)的差異數(shù)據(jù)幀;
s2.2.2.將所述無(wú)損圖像幀和所述有損圖像幀均按預(yù)設(shè)的分塊規(guī)則進(jìn)行區(qū)塊劃分;
s2.2.3.根據(jù)所述差異數(shù)據(jù)幀所記載的區(qū)塊的差異數(shù)據(jù),選擇以所述無(wú)損圖像幀或有損圖像幀中的區(qū)塊生成顯示圖像幀。
一種遠(yuǎn)程顯示的發(fā)送端數(shù)據(jù)處理系統(tǒng),包括:
原始圖像獲取模塊:用于獲取需要遠(yuǎn)程顯示的原始圖像;
處理模塊:用于根據(jù)所述原始圖像生成差異數(shù)據(jù)、無(wú)損數(shù)據(jù)和有損數(shù)據(jù),其中1幀無(wú)損數(shù)據(jù)對(duì)應(yīng)n幀有損數(shù)據(jù),1幀有損數(shù)據(jù)對(duì)應(yīng)1幀差異數(shù)據(jù);
發(fā)送模塊:用于將所述差異數(shù)據(jù)、無(wú)損數(shù)據(jù)和有損數(shù)據(jù)發(fā)送給接收端。
作為本發(fā)明的進(jìn)一步改進(jìn),所述原始圖像獲取模塊具體用于通過(guò)復(fù)制操作系統(tǒng)顯示合成模塊或顯示驅(qū)動(dòng)模塊顯示緩沖區(qū)的內(nèi)容所得到的原始圖像;
或者,用于通過(guò)對(duì)原始視頻文件進(jìn)行解析得到的原始圖像;
或者,用于通過(guò)圖像采集設(shè)備采集得到的原始圖像;
所述處理模塊具體用于將所述原始圖像的圖像幀按預(yù)設(shè)的分塊規(guī)則進(jìn)行區(qū)塊劃分,選擇預(yù)設(shè)的圖像幀為基準(zhǔn)幀,按照區(qū)塊進(jìn)行比較而得到的體現(xiàn)圖像幀與基準(zhǔn)幀之間差異的數(shù)據(jù);從所述原始圖像中選擇預(yù)設(shè)的第一特定幀,進(jìn)行無(wú)損壓縮得到的無(wú)損視頻流;從所述原始圖像中選擇預(yù)設(shè)的第二特定幀,進(jìn)行有損壓縮得到的有損視頻流;所述每個(gè)第二特定幀對(duì)應(yīng)一個(gè)差異數(shù)據(jù)幀。
一種遠(yuǎn)程顯示的接收端數(shù)據(jù)處理系統(tǒng),包括:
獲取模塊:用于獲取差異數(shù)據(jù)、有損數(shù)據(jù)和無(wú)損數(shù)據(jù);
還原模塊:用于根據(jù)所述差異數(shù)據(jù)、以所述有損數(shù)據(jù)和無(wú)損數(shù)據(jù)生成顯示圖像幀;
顯示模塊:用于顯示所述顯示圖像幀。
作為本發(fā)明的進(jìn)一步改進(jìn),所述還原模塊具體用于從所述無(wú)損數(shù)據(jù)中獲取無(wú)損圖像幀,從所述有損數(shù)據(jù)中獲取有損圖像幀,從所述差異數(shù)據(jù)中獲取有損圖像幀對(duì)應(yīng)的差異數(shù)據(jù)幀;將所述無(wú)損圖像幀和所述有損圖像幀均按預(yù)設(shè)的分塊規(guī)則進(jìn)行區(qū)塊劃分;根據(jù)所述差異數(shù)據(jù)幀所記載的區(qū)塊的差異數(shù)據(jù),選擇以所述無(wú)損圖像幀或有損圖像幀中的區(qū)塊生成顯示圖像幀。
一種遠(yuǎn)程顯示系統(tǒng),其特征在于:包括發(fā)送端設(shè)備和接收端設(shè)備,所述發(fā)送端設(shè)備和接收端設(shè)備之間網(wǎng)絡(luò)連接;所述發(fā)送端設(shè)備包括如權(quán)利要求6或7所述的發(fā)送端數(shù)據(jù)處理系統(tǒng);所述接收端設(shè)備包括如權(quán)利要求8或9所述的接收端數(shù)據(jù)處理系統(tǒng)。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
1、本發(fā)明通過(guò)有損數(shù)據(jù)與無(wú)損數(shù)據(jù)結(jié)合的方式,并用有損數(shù)據(jù)采用較大的fps(framespersecond,每秒傳輸幀數(shù)),無(wú)損數(shù)據(jù)采用較小的fps,不但降低了需要通過(guò)網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量,同時(shí),還可以具有良好的顯示效果,保證遠(yuǎn)程顯示的圖像不會(huì)因?yàn)椴捎糜袚p數(shù)據(jù)而降低顯示效果。
2、本發(fā)明通過(guò)有損數(shù)據(jù)和無(wú)損數(shù)據(jù)還原得到顯示圖像幀的算法簡(jiǎn)單,不需要復(fù)雜的計(jì)算,占用的cpu處理量小。
附圖說(shuō)明
圖1為本發(fā)明具體實(shí)施例的流程示意圖。
具體實(shí)施方式
以下結(jié)合說(shuō)明書(shū)附圖和具體優(yōu)選的實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述,但并不因此而限制本發(fā)明的保護(hù)范圍。
如圖1所示,本實(shí)施例的遠(yuǎn)程顯示的發(fā)送端數(shù)據(jù)處理方法,步驟為:s1.1.獲取需要遠(yuǎn)程顯示的原始圖像;s1.2.根據(jù)所述原始圖像生成差異數(shù)據(jù)、無(wú)損數(shù)據(jù)和有損數(shù)據(jù),其中1幀無(wú)損數(shù)據(jù)對(duì)應(yīng)n幀有損數(shù)據(jù),1幀有損數(shù)據(jù)對(duì)應(yīng)1幀差異數(shù)據(jù);s1.3.將所述差異數(shù)據(jù)、無(wú)損數(shù)據(jù)和有損數(shù)據(jù)發(fā)送給接收端。n為大于1的整數(shù)。n的取值范圍優(yōu)選為4至30;進(jìn)一步優(yōu)選為12至20。需要說(shuō)明的是,在本實(shí)施例中,無(wú)損并非一個(gè)絕對(duì)的概念,而是一個(gè)相對(duì)的概念,無(wú)損既包括絕對(duì)的無(wú)損,也包括相對(duì)于有損而言損失更小。例如,在絕對(duì)概念上來(lái)說(shuō),由原始圖像生成的無(wú)損數(shù)據(jù)和有損數(shù)據(jù)均具有數(shù)據(jù)損失,但無(wú)損數(shù)據(jù)相對(duì)于有損數(shù)據(jù)來(lái)說(shuō),損失更小一些。在本實(shí)施例中,步驟s1.1中所述原始圖像包括:復(fù)制操作系統(tǒng)顯示合成模塊或顯示驅(qū)動(dòng)模塊顯示緩沖區(qū)的內(nèi)容所得到的原始圖像;或者,通過(guò)對(duì)原始視頻文件進(jìn)行解析得到的原始圖像;或者,通過(guò)圖像采集設(shè)備采集得到的原始圖像。在本實(shí)施例中,針對(duì)不同的應(yīng)用場(chǎng)景,原始圖像可以用不同的方式獲取。如需要遠(yuǎn)程顯示本地顯示器所顯示的內(nèi)容,則可以直接復(fù)制操作系統(tǒng)顯示合成模塊或顯示驅(qū)動(dòng)模塊顯示緩沖區(qū)的內(nèi)容來(lái)獲得原始圖像,如通過(guò)bitblt和getdibbits采集桌面數(shù)據(jù)。如需要為遠(yuǎn)程播放本地的視頻文件,如電影,則可對(duì)該視頻文件進(jìn)行解析,從而得到原始圖像。如需要在遠(yuǎn)程顯示本地視頻監(jiān)控畫(huà)面,則圖像采集設(shè)備,如攝像頭、監(jiān)視器采集到的圖像作為原始圖像。當(dāng)然,需要說(shuō)明的是,原始圖像的來(lái)源不僅僅限于上述所列舉的幾種,對(duì)于任何需要遠(yuǎn)程顯示的圖像,都可以作為原始圖像。
在本實(shí)施例中,步驟s1.2中所述差異數(shù)據(jù)為將所述原始圖像的圖像幀按預(yù)設(shè)的分塊規(guī)則進(jìn)行區(qū)塊劃分,選擇預(yù)設(shè)的圖像幀為基準(zhǔn)幀,按照區(qū)塊進(jìn)行比較而得到的體現(xiàn)圖像幀與基準(zhǔn)幀之間差異的數(shù)據(jù);所述無(wú)損數(shù)據(jù)為從所述原始圖像中選擇預(yù)設(shè)的第一特定幀,進(jìn)行無(wú)損壓縮得到的無(wú)損視頻流;所述有損數(shù)據(jù)為從所述原始圖像中選擇預(yù)設(shè)的第二特定幀,進(jìn)行有損壓縮得到的有損視頻流;所述每個(gè)第二特定幀對(duì)應(yīng)一個(gè)差異數(shù)據(jù)幀。原始圖像是由原始圖像幀構(gòu)成,在本實(shí)施例中,設(shè)原始圖像包括100幀原始圖像幀,分別以y1、y2、……、y100表示。在本實(shí)施例中,按照1:n的比例選擇原始圖像幀分別生成無(wú)損數(shù)據(jù)和有損數(shù)據(jù)。設(shè)n的取值為10,從原始圖像幀中選擇y1、y11、y21、y31、……、y91共10幀,即第一特定幀,通過(guò)ffv1壓縮格式進(jìn)行無(wú)損壓縮,生成無(wú)損數(shù)據(jù),分別以l1、l2、……、l10表示10個(gè)無(wú)損圖像幀。將y1、y2、……、y100共100幀,即第二特定幀,通過(guò)nvenc壓縮格式進(jìn)行有損壓縮,生成有損數(shù)據(jù),分別以f1、f2、……、f100來(lái)表示100個(gè)有損圖像幀。其中無(wú)損圖像幀l1對(duì)應(yīng)的有損圖像幀為f1、f2、……、f10,其余無(wú)損圖像幀對(duì)應(yīng)的有損圖像幀依此類(lèi)推。需要說(shuō)明的是,本申請(qǐng)并不對(duì)壓縮方法進(jìn)行限定,可選擇不同的圖像壓縮方法來(lái)生成有損圖像幀和無(wú)損圖像幀。
在本實(shí)施例中,通過(guò)對(duì)原始圖像幀進(jìn)行比較,生成差異數(shù)據(jù),具體方法為:將每一幀原始圖像幀按照預(yù)設(shè)的分塊規(guī)則進(jìn)行區(qū)塊劃分;選擇第一特定幀為基準(zhǔn)幀,按照第一特定幀和第二特定幀之間的對(duì)應(yīng)關(guān)系,按區(qū)塊比較第二特定幀與第一特定幀之間差異,并生成差異數(shù)據(jù)。對(duì)于每一個(gè)區(qū)塊,差異數(shù)據(jù)幀中均有一位來(lái)表示該區(qū)塊的差異情況。預(yù)設(shè)的分塊規(guī)則可以是按照像素以8*8,16*16,或者32*32等方式進(jìn)行分塊。設(shè)本實(shí)施例中原始圖像幀的分辨率均為1920*1080,采用32*32的分塊方式,那么,每個(gè)圖像幀可劃分為1920/32=60列,1080/32=33.75,向上取整為34行,即一個(gè)原始圖像幀劃分為60*34=2040個(gè)分塊。通過(guò)ymij來(lái)表示每個(gè)原始圖像幀中的分塊,m為原始圖像幀的序號(hào),取值為1至100,i為分塊的行號(hào),取值為0至59,j為分塊的列號(hào),取值為0至33。本實(shí)施例中,差異數(shù)據(jù)幀表示為一個(gè)60*34的矩陣,矩陣中的每一位對(duì)應(yīng)一個(gè)區(qū)塊,記差異數(shù)據(jù)幀為cm,m為差異數(shù)據(jù)幀的序號(hào),其中的每個(gè)元素記為cij。
選擇第一特定幀,即y1、y11、y21、y31、……、y91共10幀為基準(zhǔn)幀,其中,與基準(zhǔn)幀y1對(duì)應(yīng)的原始圖像幀為y1、y2、……、y10共10幀。對(duì)于非基準(zhǔn)幀的原始圖像幀,如y2、……、y10共9幀,以原始圖像幀y2為例進(jìn)行說(shuō)明,比較對(duì)應(yīng)區(qū)塊y1ij與y2ij之間的相似度,如y111與y211之間的相似度,相似度越大,說(shuō)明兩個(gè)區(qū)塊之間的差異越小,當(dāng)兩者的相似度大于預(yù)設(shè)的相似度閾值時(shí),將差異數(shù)據(jù)幀中的c11,置為0,否則置為1。當(dāng)對(duì)原始圖像幀y2和y1中的每個(gè)區(qū)塊進(jìn)行比較后,即可得到原始圖像幀y2的完整的差異數(shù)據(jù)幀c2。同理,通過(guò)對(duì)原始圖像幀y3、……、y10可分別與基準(zhǔn)幀y1比較可以得到原始圖像幀y3、……、y10的差異數(shù)據(jù)幀c3、……、c10。對(duì)于原始圖像幀y12、……、y20分別與基準(zhǔn)幀y11比較得到對(duì)應(yīng)的差異數(shù)據(jù)幀c12、……、c20。依次類(lèi)推,可以得到其它全部非基準(zhǔn)幀的差異數(shù)據(jù)幀。
在本實(shí)施例中,對(duì)于基準(zhǔn)幀,可以按兩種方式處理得到對(duì)應(yīng)的差異數(shù)據(jù)幀。第一種方式是直接將差異數(shù)據(jù)幀設(shè)置為全0的數(shù)據(jù)幀。第二種方式是與前一基準(zhǔn)幀進(jìn)行比較,得到差異數(shù)據(jù)幀。如對(duì)于基準(zhǔn)幀y1,由于沒(méi)有前一基準(zhǔn)幀,可直接將差異數(shù)據(jù)幀設(shè)置為全0的數(shù)據(jù)幀,對(duì)于基準(zhǔn)幀y11,則需要將基準(zhǔn)幀y11與基準(zhǔn)幀y1進(jìn)行比較,從而得到基準(zhǔn)幀y11的差異數(shù)據(jù)幀c11。對(duì)于基準(zhǔn)幀y21,則需要將基準(zhǔn)幀y21與基準(zhǔn)幀y11進(jìn)行比較,從而得到基準(zhǔn)幀y21的差異數(shù)據(jù)幀c21。
在本實(shí)施例中,具體通過(guò)以下方法來(lái)比較原始圖像幀中對(duì)應(yīng)區(qū)塊的相似度。對(duì)于基準(zhǔn)幀中的區(qū)塊y1ij和原始圖像幀的區(qū)塊y2ij,以y111和y211為例,均為32*32像素的區(qū)塊,將兩個(gè)區(qū)塊的對(duì)應(yīng)像素點(diǎn)的像素值進(jìn)行比較,只要其中一個(gè)像素點(diǎn)的像素值的差大于預(yù)設(shè)的像素差閾值時(shí),判定該兩個(gè)區(qū)塊的相似度低于預(yù)設(shè)的相似度閾值,否則判定該兩個(gè)區(qū)塊的相似度高于預(yù)設(shè)的相似度閾值。在本實(shí)施例中,對(duì)于任意一個(gè)像素點(diǎn),以rgb值來(lái)表征像素值,包括r值、g值和b值,分別對(duì)r、g、b值進(jìn)行比較,只要其中一個(gè)的差值大于預(yù)設(shè)的差值,就判定像素值的差大于預(yù)設(shè)的像素差閾值。即像素值的差取分別計(jì)算的r、g、b的差值的最大值,像素值的差=max(|r1-r2|,|g1-g2|,|b1-b2|)。r1、g1、b1分別表示y111中像素點(diǎn)的r、g、b值,r2、g2、b2分別表示y211中對(duì)應(yīng)像素點(diǎn)的r、g、b值。
在本實(shí)施例中,無(wú)損視頻流的fps(framespersecond,每秒傳輸幀數(shù))為1至20,有損視頻流的fps為24至150。雖然無(wú)損圖像幀單幀的數(shù)據(jù)量較大,但由于無(wú)損視頻流的fps較低,因此,傳輸無(wú)損視頻流的傳輸數(shù)據(jù)總量并不大,有損視頻流雖然fps較高,但因?yàn)椴捎糜袚p壓縮,單幀的數(shù)據(jù)量較小,因此,傳輸有損視頻流的傳輸數(shù)據(jù)總量也不大,從而降低了數(shù)據(jù)傳輸總量,降低了數(shù)據(jù)傳輸對(duì)網(wǎng)絡(luò)帶寬的要求。
如圖1所示,本實(shí)施例的遠(yuǎn)程顯示的接收端數(shù)據(jù)處理方法,步驟為:s2.1.獲取差異數(shù)據(jù)、有損數(shù)據(jù)和無(wú)損數(shù)據(jù);s2.2.根據(jù)所述差異數(shù)據(jù)、以所述有損數(shù)據(jù)和無(wú)損數(shù)據(jù)生成顯示圖像幀;s2.3.顯示所述顯示圖像幀。
在本實(shí)施例中,步驟s2.2的具體步驟包括:步驟s2.2的具體步驟包括:s2.2.1.從所述無(wú)損數(shù)據(jù)中獲取無(wú)損圖像幀,從所述有損數(shù)據(jù)中獲取有損圖像幀,從所述差異數(shù)據(jù)中獲取有損圖像幀對(duì)應(yīng)的差異數(shù)據(jù)幀;s2.2.2.將所述無(wú)損圖像幀和所述有損圖像幀均按預(yù)設(shè)的分塊規(guī)則進(jìn)行區(qū)塊劃分;s2.2.3.根據(jù)所述差異數(shù)據(jù)幀所記載的區(qū)塊的差異數(shù)據(jù),選擇以所述無(wú)損圖像幀或有損圖像幀中的區(qū)塊生成顯示圖像幀。
在本實(shí)施例中,接著上述發(fā)送端的實(shí)例進(jìn)行說(shuō)明,接收端通過(guò)接收差異數(shù)據(jù)、無(wú)損數(shù)據(jù)流和有損數(shù)據(jù)流,從差異數(shù)據(jù)中可解碼得到差異數(shù)據(jù)幀c1、c2、……、c100共100幀,從無(wú)損數(shù)據(jù)流可解碼得到無(wú)損圖像幀,l1、l2、……、l10共10幀,從有損數(shù)據(jù)流可解碼得到有損圖像幀,f1、f2、……、f100共100幀。將每個(gè)無(wú)損圖像幀和有損圖像幀均按照預(yù)設(shè)的分塊規(guī)則進(jìn)行區(qū)塊劃分,預(yù)設(shè)的分塊規(guī)則可以是按照像素以8*8,16*16,或者32*32等方式進(jìn)行分塊。接收端的分塊規(guī)則與發(fā)送端的分塊規(guī)則相同。在本實(shí)施例中,發(fā)送端的分辨率為1920*1080,采用32*32的分塊方式。當(dāng)然,接收端接收到的無(wú)損圖像幀和有損圖像幀的分辨率為1920*1080,同樣需要采用32*32的分塊方式,那么,每個(gè)圖像幀可劃分為1920/32=60列,1080/32=33.75,向上取整為34行,即一個(gè)圖像幀劃分為60*34=2040個(gè)區(qū)塊。通過(guò)lmij來(lái)表示每個(gè)無(wú)損圖像幀中的歐塊,m為無(wú)損圖像幀的序號(hào),取值為1至10,i為分塊的行號(hào),取值為0至59,j為區(qū)塊的列號(hào),取值為0至33。同理,可用fnij來(lái)表示每個(gè)有損圖像幀中的區(qū)塊,n為有損圖像幀的序號(hào),取值為1至100,i為區(qū)塊的行號(hào),取值為0至59,j為區(qū)塊的列號(hào),取值為0至33。
在本實(shí)施例中,接收端具體按如下方式生成顯示圖像幀。接收端構(gòu)建一個(gè)顯示緩存區(qū),該顯示緩存區(qū)的大小與要顯示的一幀無(wú)損圖像的大小相同。對(duì)于分辨率為1920*1080圖像,緩存區(qū)的大小為1920*1080*3=6220800字節(jié)。同樣,對(duì)緩存區(qū)按照上述方式進(jìn)行分塊,用sij來(lái)表示每個(gè)分塊,i為分塊的行號(hào),取值為0至59,j為分塊的列號(hào),取值為0至33。
在本實(shí)施例中,由于無(wú)損圖像幀與有損圖像幀、差異數(shù)據(jù)幀之間具有對(duì)應(yīng)關(guān)系,根據(jù)差異數(shù)據(jù)幀記載的內(nèi)容,對(duì)于劃分的某個(gè)區(qū)塊,當(dāng)差異數(shù)據(jù)為0時(shí),則用無(wú)損圖像幀中的對(duì)應(yīng)區(qū)塊填充緩存區(qū)的對(duì)應(yīng)區(qū)塊,當(dāng)差異數(shù)據(jù)為1時(shí),則用有損圖像幀中的對(duì)應(yīng)區(qū)塊填充緩存區(qū)的對(duì)應(yīng)區(qū)塊,從而得到接收端的顯示圖像幀。本實(shí)施例中,由于發(fā)送端生成差異數(shù)據(jù)時(shí)分為基準(zhǔn)幀和非基準(zhǔn)幀,因此,在接收端同樣采用不同的方法來(lái)生成顯示圖像幀。對(duì)于非基準(zhǔn)幀對(duì)應(yīng)的無(wú)損圖像幀和有損圖像幀,以無(wú)損圖像幀l1及對(duì)應(yīng)的有損圖像幀f2和差異數(shù)據(jù)幀c2為例進(jìn)行說(shuō)明,當(dāng)c2ij的值為0時(shí),則選擇無(wú)損圖像幀l1中第i行第j列個(gè)區(qū)塊來(lái)填充緩存區(qū)的對(duì)應(yīng)第i行第j列個(gè)區(qū)塊,當(dāng)c2ij的值為1時(shí),則選擇有損圖像幀f2中第i行第j列個(gè)區(qū)塊來(lái)填充緩存區(qū)的對(duì)應(yīng)第i行第j列個(gè)區(qū)塊。根據(jù)c2的值對(duì)每個(gè)區(qū)塊進(jìn)行處理后,即得到接收端的第2個(gè)顯示圖像幀s2。同理,對(duì)于無(wú)損圖像幀l2及對(duì)應(yīng)的有損圖像幀f12和差異數(shù)據(jù)幀c12,則通過(guò)差異數(shù)據(jù)幀c12的值從無(wú)損圖像幀l2和有損圖像幀f12選擇相應(yīng)的區(qū)塊填充緩存區(qū),來(lái)生成顯示圖像幀s12。對(duì)于基準(zhǔn)幀,相應(yīng)的具有兩種處理方法,第一種方法為直接用無(wú)損圖像幀來(lái)生成顯示圖像幀,如直接以無(wú)損圖像幀l1生成顯示圖像幀s1,以無(wú)損圖像幀l11生成顯示圖像幀s11,依此類(lèi)推。第二種方法為以對(duì)應(yīng)的有損圖像幀和前一無(wú)損圖像幀來(lái)生成顯示圖像幀,以無(wú)損圖像幀l1和有損圖像幀f11及差異數(shù)據(jù)幀c11為例,當(dāng)c11ij的值為0時(shí),則選擇無(wú)損圖像幀l1中第i行第j列個(gè)區(qū)塊來(lái)填充緩存區(qū)的對(duì)應(yīng)第i行第j列個(gè)區(qū)塊,當(dāng)c11ij的值為1時(shí),則選擇有損圖像幀f11中第i行第j列個(gè)區(qū)塊來(lái)填充緩存區(qū)的對(duì)應(yīng)第i行第j列個(gè)區(qū)塊。從而得到顯示圖像幀s11。
本實(shí)施例的遠(yuǎn)程顯示的發(fā)送端數(shù)據(jù)處理系統(tǒng),包括:原始圖像獲取模塊:用于獲取需要遠(yuǎn)程顯示的原始圖像;處理模塊:用于根據(jù)所述原始圖像生成差異數(shù)據(jù)、無(wú)損數(shù)據(jù)和有損數(shù)據(jù),其中1幀無(wú)損數(shù)據(jù)對(duì)應(yīng)n幀有損數(shù)據(jù),1幀有損數(shù)據(jù)對(duì)應(yīng)1幀差異數(shù)據(jù);發(fā)送模塊:用于將所述差異數(shù)據(jù)、無(wú)損數(shù)據(jù)和有損數(shù)據(jù)發(fā)送給接收端。
在本實(shí)施例中,所述原始圖像獲取模塊具體用于通過(guò)復(fù)制操作系統(tǒng)顯示合成模塊或顯示驅(qū)動(dòng)模塊顯示緩沖區(qū)的內(nèi)容所得到的原始圖像;或者,用于通過(guò)對(duì)原始視頻文件進(jìn)行解析得到的原始圖像;或者,用于通過(guò)圖像采集設(shè)備采集得到的原始圖像;所述處理模塊具體用于將所述原始圖像的圖像幀按預(yù)設(shè)的分塊規(guī)則進(jìn)行區(qū)塊劃分,選擇預(yù)設(shè)的圖像幀為基準(zhǔn)幀,按照區(qū)塊進(jìn)行比較而得到的體現(xiàn)圖像幀與基準(zhǔn)幀之間差異的數(shù)據(jù);從所述原始圖像中選擇預(yù)設(shè)的第一特定幀,進(jìn)行無(wú)損壓縮得到的無(wú)損視頻流;從所述原始圖像中選擇預(yù)設(shè)的第二特定幀,進(jìn)行有損壓縮得到的有損視頻流;所述每個(gè)第二特定幀對(duì)應(yīng)一個(gè)差異數(shù)據(jù)幀。本實(shí)施例中,發(fā)送端數(shù)據(jù)處理系統(tǒng)采用如上所述的發(fā)送端數(shù)據(jù)處理方法進(jìn)行處理。
本實(shí)施例的遠(yuǎn)程顯示的接收端數(shù)據(jù)處理系統(tǒng),包括:獲取模塊:用于獲取差異數(shù)據(jù)、有損數(shù)據(jù)和無(wú)損數(shù)據(jù);還原模塊:用于根據(jù)所述差異數(shù)據(jù)、以所述有損數(shù)據(jù)和無(wú)損數(shù)據(jù)生成顯示圖像幀;顯示模塊:用于顯示所述顯示圖像幀。
在本實(shí)施例中,所述還原模塊具體用于從所述無(wú)損數(shù)據(jù)中獲取無(wú)損圖像幀,從所述有損數(shù)據(jù)中獲取有損圖像幀,從所述差異數(shù)據(jù)中獲取有損圖像幀對(duì)應(yīng)的差異數(shù)據(jù)幀;將所述無(wú)損圖像幀和所述有損圖像幀均按預(yù)設(shè)的分塊規(guī)則進(jìn)行區(qū)塊劃分;根據(jù)所述差異數(shù)據(jù)幀所記載的區(qū)塊的差異數(shù)據(jù),選擇以所述無(wú)損圖像幀或有損圖像幀中的區(qū)塊生成顯示圖像幀。本實(shí)施例中,發(fā)送端數(shù)據(jù)處理系統(tǒng)采用如上所述的發(fā)送端數(shù)據(jù)處理方法進(jìn)行處理。
本實(shí)施例的遠(yuǎn)程顯示系統(tǒng),包括發(fā)送端設(shè)備和接收端設(shè)備,所述發(fā)送端設(shè)備和接收端設(shè)備之間網(wǎng)絡(luò)連接;所述發(fā)送端設(shè)備包括如上所述的發(fā)送端數(shù)據(jù)處理系統(tǒng);所述接收端設(shè)備包括如上述的接收端數(shù)據(jù)處理系統(tǒng)。在本實(shí)施例中,發(fā)送端設(shè)備可以是具有顯示裝置的智能終端設(shè)備,如計(jì)算機(jī)、手機(jī)、平板電腦等,還可以是沒(méi)有顯示器的設(shè)備,如攝像頭,監(jiān)控探頭等等。接收端設(shè)備是具有顯示裝置的設(shè)備,如計(jì)算機(jī)、手機(jī)、平板電腦、智能電視機(jī)等等。
上述只是本發(fā)明的較佳實(shí)施例,并非對(duì)本發(fā)明作任何形式上的限制。雖然本發(fā)明已以較佳實(shí)施例揭露如上,然而并非用以限定本發(fā)明。因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所做的任何簡(jiǎn)單修改、等同變化及修飾,均應(yīng)落在本發(fā)明技術(shù)方案保護(hù)的范圍內(nèi)。