本發(fā)明涉及圖像處理領(lǐng)域,具體而言,涉及一種文字塊的傳輸方法和裝置。
背景技術(shù):
電腦屏幕畫面采集的視頻序列與攝像機(jī)等設(shè)備采集的視頻序列有著較大的區(qū)別。在電腦屏幕畫面中,較多場(chǎng)景會(huì)有文字畫面,例如:瀏覽網(wǎng)頁(yè),播放幻燈片等會(huì)出現(xiàn)大量文字。在本文中,對(duì)于文字圖像進(jìn)行截取并按固定大小劃分成塊,得到的圖像塊信息簡(jiǎn)稱文字塊。文字塊基于其特有的性質(zhì),在較大的壓縮比下,仍能保持較為合理的失真度。
目前主流的壓縮算法(例如:h.264,h.265,jpeg)中,對(duì)于文字塊壓縮效果并不理想。例如,在視頻會(huì)議、遠(yuǎn)程桌面等圖像的畫面質(zhì)量和流暢度要求較高的場(chǎng)景,在網(wǎng)絡(luò)帶寬一定的情況下,如果文字塊的傳輸占用了較大的帶寬,則會(huì)影響圖像的傳輸效果。
針對(duì)現(xiàn)有技術(shù)中文字塊的傳輸占用帶寬較大的問題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種文字塊的傳輸方法和裝置,以至少解決現(xiàn)有技術(shù)中文字塊的傳輸占用帶寬較大的技術(shù)問題。
根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種文字塊的傳輸方法,包括:將文字塊的像素根據(jù)像素出現(xiàn)的頻率分為多層;按照每一層像素出現(xiàn)的頻率由高至低的順序依次對(duì)每一層像素進(jìn)行傳輸。
進(jìn)一步地,獲取當(dāng)前網(wǎng)絡(luò)帶寬;當(dāng)當(dāng)前網(wǎng)絡(luò)帶寬小于預(yù)設(shè)帶寬時(shí),進(jìn)入將文字塊的像素根據(jù)像素出現(xiàn)的頻率分為多層的步驟。
進(jìn)一步地,根據(jù)像素的頻率獲取像素的基本色和逃逸色;將文字塊的像素分為兩層,確定文字塊的基本色為文字塊的第一層,確定文字塊的逃逸色為文字塊的第二層。
進(jìn)一步地,獲取第一分量的第一頻率直方圖以及預(yù)設(shè)的第一步長(zhǎng);以第一步長(zhǎng)在第一頻率直方圖中按照能量由大至小的順序,查找由大至小排列在前n位的n個(gè)區(qū)間,確定查找到的n個(gè)區(qū)間對(duì)應(yīng)的顏色值為第一分量的第一基本色,其中,n為大于等于2的整數(shù);確定滿足第一預(yù)設(shè)條件的第一分量對(duì)應(yīng)的顏色為第一逃逸色,其中,第一預(yù)設(shè)條件為與第一基本色的差值的絕對(duì)值大于第一預(yù)設(shè)值,且不屬于第一頻率直方圖中第一基本色所在的第一預(yù)設(shè)區(qū)間。
進(jìn)一步地,獲取第二分量的第二頻率直方圖以及預(yù)設(shè)的第二步長(zhǎng);以第二步長(zhǎng)在第二頻率直方圖中按照能量由大至小的順序,查找由大至小排列在前m位的m個(gè)區(qū)間,確定查找到的m個(gè)區(qū)間對(duì)應(yīng)的顏色值為第二分量的第二基本色,其中,m為大于等于2的整數(shù);確定滿足第二預(yù)設(shè)條件的第二分量對(duì)應(yīng)的顏色為第二逃逸色,其中,第二預(yù)設(shè)條件為與第二基本色的差值的絕對(duì)值大于第二預(yù)設(shè)值,且不屬于第二頻率直方圖中第二基本色所在的第二預(yù)設(shè)區(qū)間。
進(jìn)一步地,獲取第三分量的第三頻率直方圖以及預(yù)設(shè)的第三步長(zhǎng);以第三步長(zhǎng)在第三頻率直方圖中按照能量由大至小的順序,查找由大至小排列在前k位的k個(gè)區(qū)間,確定查找到的k個(gè)區(qū)間對(duì)應(yīng)的顏色值為第三分量的第三基本色,其中,k為大于等于2的整數(shù);確定滿足第三預(yù)設(shè)條件的第三分量對(duì)應(yīng)的顏色為第三逃逸色,其中,第三預(yù)設(shè)條件為與第三基本色的差值的絕對(duì)值大于第三預(yù)設(shè)值,且不屬于第三頻率直方圖中第三基本色所在的第三預(yù)設(shè)區(qū)間。
進(jìn)一步地,根據(jù)文字塊中像素的每個(gè)分量的基本色和逃逸色,確定每個(gè)分量對(duì)應(yīng)的標(biāo)記索引值;根據(jù)像素的標(biāo)記索引值與鄰域像素的標(biāo)記索引值的關(guān)聯(lián)關(guān)系,確定像素的預(yù)測(cè)索引值;根據(jù)文字塊中每個(gè)像素的標(biāo)記索引值和預(yù)測(cè)索引值對(duì)文字塊進(jìn)行壓縮編碼。
進(jìn)一步地,進(jìn)解碼端按照接收的順序依次對(duì)多層像素的壓縮編碼結(jié)果進(jìn)行解碼,其中,在未全部接收到多層像素的壓縮編碼結(jié)果的情況下,通過第四預(yù)設(shè)值代替未接收到解壓縮編碼結(jié)果的像素,在全部接收到多層像素的壓縮編碼結(jié)果后,對(duì)第四預(yù)設(shè)值替代的像素進(jìn)行更新。
根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種文字塊的壓縮編碼裝置,包括:分層模塊,用于將文字塊的像素根據(jù)像素出現(xiàn)的頻率分為多層;傳輸模塊,用于按照每一層像素出現(xiàn)的頻率由高至低依次對(duì)每一層像素進(jìn)行傳輸。
根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種存儲(chǔ)介質(zhì),在程序運(yùn)行時(shí)控制存儲(chǔ)介質(zhì)所在設(shè)備執(zhí)行上述任意一項(xiàng)的文字塊的壓縮編碼方法。
根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種處理器,處理器用于運(yùn)行程序,其中,程序運(yùn)行時(shí)執(zhí)行上述任意一項(xiàng)的文字塊的壓縮編碼方法。
在本發(fā)明實(shí)施例中,將文字塊的像素根據(jù)像素出現(xiàn)的頻率分為多層,按照每一層像素出現(xiàn)的頻率由高至低的順序依次對(duì)每一層像素進(jìn)行傳輸。上述方案利用了文字塊最主要的特征主要的能量集中在較少的幾種像素中這一特性,根據(jù)每個(gè)文字塊像出現(xiàn)的頻率,對(duì)像素進(jìn)行分層,然后根據(jù)像素出現(xiàn)的頻率有高至低的將每層像素進(jìn)行傳輸,從而不僅保證了文字塊的顯示效果,同時(shí)還減小了文字塊傳輸所占用的帶寬,進(jìn)而解決了現(xiàn)有技術(shù)中文字塊的傳輸占用帶寬較大的技術(shù)問題,達(dá)到了提高文字塊的傳輸效率的技術(shù)效果。
附圖說明
此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)本發(fā)明實(shí)施例的文字塊的傳輸方法的流程圖;
圖2是根據(jù)本發(fā)明實(shí)施例的一種可選的文字塊的傳輸方法的示意圖;
圖3是根據(jù)本申請(qǐng)實(shí)施例的一種解碼端對(duì)第一層壓縮編碼數(shù)據(jù)進(jìn)行解碼的示意圖;以及
圖4是根據(jù)本發(fā)明實(shí)施例的文字塊的傳輸裝置的示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
實(shí)施例1
根據(jù)本發(fā)明實(shí)施例,提供了一種文字塊的傳輸方法的實(shí)施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
圖1是根據(jù)本發(fā)明實(shí)施例的文字塊的傳輸方法的流程圖,如圖1所示,該方法包括如下步驟:
步驟s102,將文字塊的像素根據(jù)像素出現(xiàn)的頻率分為多層。
具體的,上述文字塊可以是將圖像進(jìn)行分塊后得到的文字塊。在一種可選的實(shí)施例中,可以將畫面進(jìn)行分塊,確定塊的類型,從而得到畫面的文字塊。統(tǒng)計(jì)每一個(gè)文字塊中像素出現(xiàn)的頻率,并分別對(duì)每一個(gè)文字塊中的像素出現(xiàn)的頻率進(jìn)行排序,再按照排序結(jié)果對(duì)每個(gè)文字塊的像素進(jìn)行分層。
步驟s104,按照每一層像素出現(xiàn)的頻率由高至低的順序依次對(duì)每一層像素進(jìn)行傳輸。
在一種可選的實(shí)施例中,將文字塊的每個(gè)像素分為a、b、c三層,其中,像素出現(xiàn)的頻率的大小關(guān)系為a層像素>b層像素>c層像素,則在傳輸?shù)倪^程中,先將屬于a層的像素傳輸至解碼端,再將屬于b層的像素傳輸至解碼端,最后將屬于c層的像素傳輸至解碼端,也即,像素出現(xiàn)的頻率與每層的傳輸優(yōu)先級(jí)正相關(guān)。
在上述步驟中,對(duì)于一個(gè)文字塊,像素出現(xiàn)頻率較高的像素即為該文字塊最主要的部分,將這部分信息進(jìn)行壓縮編碼后發(fā)送至解碼端,解碼端對(duì)這部分內(nèi)容進(jìn)行解碼,由于文字塊的像素較為集中,因此僅傳輸一層就能夠得到較好的顯示結(jié)果。上述方案不僅保證了文字塊的顯示效果,同時(shí)還減小了文字塊傳輸所占用的帶寬。
由上可知,本申請(qǐng)上述實(shí)施例將文字塊的像素根據(jù)像素出現(xiàn)的頻率分為多層,按照每一層像素出現(xiàn)的頻率由高至低的順序依次對(duì)每一層像素進(jìn)行傳輸。上述方案利用了文字塊最主要的特征主要的能量集中在較少的幾種像素中這一特性,根據(jù)每個(gè)文字塊像出現(xiàn)的頻率,對(duì)像素進(jìn)行分層,然后根據(jù)像素出現(xiàn)的頻率有高至低的將每層像素進(jìn)行傳輸,從而不僅保證了文字塊的顯示效果,同時(shí)還減小了文字塊傳輸所占用的帶寬,進(jìn)而解決了現(xiàn)有技術(shù)中文字塊的傳輸占用帶寬較大的技術(shù)問題,達(dá)到了提高文字塊的傳輸效率的技術(shù)效果。
可選的,根據(jù)本申請(qǐng)上述實(shí)施例,在將文字塊的像素根據(jù)像素出現(xiàn)的頻率分為多層之前,方法還包括:
步驟s106,獲取當(dāng)前網(wǎng)絡(luò)帶寬。
步驟s108,當(dāng)當(dāng)前網(wǎng)絡(luò)帶寬小于預(yù)設(shè)帶寬時(shí),進(jìn)入將文字塊的像素根據(jù)像素出現(xiàn)的頻率分為多層的步驟。
在一種可選的實(shí)施例中,以電話會(huì)議為例,實(shí)時(shí)檢測(cè)當(dāng)前的網(wǎng)絡(luò)帶寬,當(dāng)網(wǎng)絡(luò)帶寬較寬時(shí),能過保證文字塊的正常傳輸,則無(wú)需對(duì)文字塊進(jìn)行分層傳輸,當(dāng)網(wǎng)絡(luò)帶寬較窄時(shí),為例保證會(huì)議中視頻能夠流暢的進(jìn)行傳輸,則開始對(duì)文字塊進(jìn)行分層傳輸,從而減少文字塊傳輸所占用的帶寬,進(jìn)而保證視頻傳輸?shù)牧鲿承浴?/p>
可選的,根據(jù)本申請(qǐng)上述實(shí)施例,將文字塊的像素根據(jù)像素出現(xiàn)的頻率分為多層,包括:
步驟s1021,根據(jù)像素的頻率獲取像素的基本色和逃逸色。
具體的,上述基本色為文字塊中像素按照出現(xiàn)的頻率由高至低排序的前幾個(gè)像素對(duì)應(yīng)的顏色值,而逃逸色為每個(gè)文字塊中除基本色之外的顏色。
以屏幕顯示一篇白底黑字的文章為例,可以確定主要能量集中在出現(xiàn)頻率最多的白色像素和黑色像素中,由此確定能量集中的像素(即出現(xiàn)頻率較多的像素)為基本色,而其他像素定義為逃逸色。
步驟s1023,將文字塊的像素分為兩層,確定文字塊的基本色為文字塊的第一層,確定文字塊的逃逸色為文字塊的第二層。
在上述步驟中,將文字塊分為包括基本色的第一層以及包括逃逸色的第二層,也即先傳輸基本色,再傳輸逃逸色。
此處需要說明的是,由于文字塊的顏色較為單一,uv分量包含信息較少,用少量基本色可以滿足視覺需要;2、文字塊的較多復(fù)雜色彩都集中于文字邊緣的過渡區(qū)域,這些過渡顏色在壓縮算法中會(huì)被識(shí)別為逃逸色,這些逃逸色信息冗余較多,且對(duì)成像清晰度幫助不大,因此在第一次傳輸時(shí)至傳輸基本色,而不對(duì)逃逸色進(jìn)行傳輸。
進(jìn)一步地,由于在第一層傳輸時(shí)僅傳輸基本色,yuv的逃逸色在第二層進(jìn)行傳輸,從而在保證圖像質(zhì)量的前提下大幅降低了第一層碼流的大小。該方案中文字塊第一層的傳輸碼流,相比于不分層方案降低了50%以上。這種針對(duì)文字編碼器的分層壓縮傳輸方案對(duì)帶寬要求更小,能夠更加靈活的適應(yīng)網(wǎng)絡(luò)環(huán)境,同時(shí)基于電腦畫面的特殊性(例如:部分畫面無(wú)變化),在很多場(chǎng)景下向用戶“逐漸清晰”的顯示畫面是能夠被接受的。
可選的,根據(jù)本申請(qǐng)上述實(shí)施例,對(duì)于像素的第一分量,獲取文字塊的基本色和逃逸色,包括:
步驟s10211,獲取第一分量的第一頻率直方圖以及預(yù)設(shè)的第一步長(zhǎng)。
步驟s10213,以第一步長(zhǎng)在第一頻率直方圖中按照能量由大至小的順序,查找由大至小排列在前n位的n個(gè)區(qū)間,確定查找到的n個(gè)區(qū)間對(duì)應(yīng)的顏色值為第一分量的第一基本色,其中,n為大于等于2的整數(shù)。
具體的,區(qū)間中像素出現(xiàn)的頻率最高,該區(qū)間的能量越大。對(duì)于用于表示像素亮度的y分量來說,可以取n=4,即取四個(gè)基本色。
步驟s10215,確定滿足第一預(yù)設(shè)條件的第一分量對(duì)應(yīng)的顏色為第一逃逸色,其中,第一預(yù)設(shè)條件為與第一基本色的差值的絕對(duì)值大于第一預(yù)設(shè)值,且不屬于第一頻率直方圖中第一基本色所在的第一預(yù)設(shè)區(qū)間。
此處需要說明的是,對(duì)于不滿足第一預(yù)設(shè)條件的像素,即對(duì)于與第一基本色的差值的絕對(duì)值小于等于第一預(yù)設(shè)值,或?qū)儆谥狈綀D中第一基本色所在的第一預(yù)設(shè)區(qū)間的像素,與第一分量的基本色較為接近,可以將其量化為基本色,因此,可以將滿足第一預(yù)設(shè)條件的像素作為逃逸色。
例如,以第一分量的基本色的顏色值為125為例,第一預(yù)設(shè)值為8,顏色值125在頻率直方圖中所屬的區(qū)間為(112,128],與第一基本色的差值的絕對(duì)值小于等于第一預(yù)設(shè)值的像素值屬于[117,133],或?qū)儆谥狈綀D中第一基本色所在的第一預(yù)設(shè)區(qū)間的像素處于(112,128]范圍內(nèi),由此可以得到不屬于[117,133],且不屬于(112,128]的像素對(duì)應(yīng)的顏色為逃逸色。
在一種可選的實(shí)施例中,以第一分量為y分量為例,統(tǒng)計(jì)畫面內(nèi)每個(gè)文字塊的y分量統(tǒng)計(jì)頻率直方圖;以2σ1(第一步長(zhǎng))為步長(zhǎng)在統(tǒng)計(jì)頻率直方圖中查找能量最大的4個(gè)區(qū)間,并記錄能量最大的區(qū)間對(duì)應(yīng)的顏色,將能量最大的區(qū)間對(duì)應(yīng)的顏色作為y_base_color,即y分量的基本色。然后將與y_base_color差值的絕對(duì)值大于第一預(yù)設(shè)值,且未落在頻率直方圖中y_base_color所屬區(qū)間的顏色作為逃逸色。
可選的,根據(jù)本申請(qǐng)上述實(shí)施例對(duì)于像素的第二分量,獲取文字塊的基本色和逃逸色,包括:
步驟s10217,獲取第二分量的第二頻率直方圖以及預(yù)設(shè)的第二步長(zhǎng)。
步驟s10219,以第二步長(zhǎng)在第二頻率直方圖中按照能量由大至小的順序,查找由大至小排列在前m位的m個(gè)區(qū)間,確定查找到的m個(gè)區(qū)間對(duì)應(yīng)的顏色值為第二分量的第二基本色,其中,m為大于等于2的整數(shù)。
具體的,區(qū)間中像素出現(xiàn)的頻率最高,該區(qū)間的能量越大。對(duì)于用于u分量來說,可以取m=2,即取兩個(gè)基本色。
步驟s102111,確定滿足第二預(yù)設(shè)條件的第二分量對(duì)應(yīng)的顏色為第二逃逸色,其中,第二預(yù)設(shè)條件為與第二基本色的差值的絕對(duì)值大于第二預(yù)設(shè)值,且不屬于第二頻率直方圖中第二基本色所在的第二預(yù)設(shè)區(qū)間。
在一種可選的實(shí)施例中,以第二分量為u分量為例,分別統(tǒng)計(jì)圖像內(nèi)每個(gè)文字塊的u分量的頻率直方圖,以2σ2(第二步長(zhǎng),可以與第一步長(zhǎng)相同)為步長(zhǎng)在頻率直方圖中查找能量最大的2個(gè)區(qū)間,并記錄能量最大的2個(gè)區(qū)間對(duì)應(yīng)的顏色,將能量最大的兩個(gè)區(qū)間對(duì)應(yīng)的顏色作為u_base_color,即u分量基本色,然后將與u_base_color差值的絕對(duì)值大于第二預(yù)設(shè)值,且未落在頻率直方圖中u_base_color所屬區(qū)間的顏色作為逃逸色。
可選的,根據(jù)本申請(qǐng)上述實(shí)施例,對(duì)于像素的第三分量,獲取文字塊的基本色和逃逸色,包括:
步驟s102113,獲取第三分量的第三頻率直方圖以及預(yù)設(shè)的第三步長(zhǎng)。
步驟s102115,以第三步長(zhǎng)在第三頻率直方圖中按照能量由大至小的順序,查找由大至小排列在前k位的k個(gè)區(qū)間,確定查找到的k個(gè)區(qū)間對(duì)應(yīng)的顏色值為第三分量的第三基本色,其中,k為大于等于2的整數(shù)。
具體的,區(qū)間中像素出現(xiàn)的頻率最高,該區(qū)間的能量越大。對(duì)于用于v分量來說,可以取k=2,即取兩個(gè)基本色。
步驟s102117,確定滿足第三預(yù)設(shè)條件的第三分量對(duì)應(yīng)的顏色為第三逃逸色,其中,第三預(yù)設(shè)條件為與第三基本色的差值的絕對(duì)值大于第三預(yù)設(shè)值,且不屬于第三頻率直方圖中第三基本色所在的第三預(yù)設(shè)區(qū)間。
在一種可選的實(shí)施例中,以第三分量為k分量為例,分別統(tǒng)計(jì)圖像內(nèi)每個(gè)文字塊的k分量的頻率直方圖,以2σ3(第三步長(zhǎng),可以與第一步長(zhǎng)相同或第二步長(zhǎng)相同)為步長(zhǎng)在頻率直方圖中查找能量最大的2個(gè)區(qū)間,并記錄能量最大的2個(gè)區(qū)間對(duì)應(yīng)的顏色,將能量最大的兩個(gè)區(qū)間對(duì)應(yīng)的顏色作為v_base_color,即v分量基本色,然后將與v_base_color差值的絕對(duì)值大于第二預(yù)設(shè)值,且未落在頻率直方圖中v_base_color所屬區(qū)間的顏色作為逃逸色。
可選的,根據(jù)本申請(qǐng)上述實(shí)施例,在將文字塊的像素分為兩層之前,方法還包括:步驟s1010,對(duì)像素的基本色和逃逸色進(jìn)行量化,其中,
對(duì)像素的基本色進(jìn)行量化包括:分別將不滿足第一預(yù)設(shè)條件的第一分量、不滿足第二預(yù)設(shè)條件的第二分量和不滿足第三預(yù)設(shè)條件的第三分量量化為第一基本色、第二基本色和第三基本色。
在一種可選的實(shí)施例中,以像素的第一分量為例,第一預(yù)設(shè)條件為與第一基本色的差值的絕對(duì)值大于第一預(yù)設(shè)值,且不屬于第一頻率直方圖中第一基本色所在的第一預(yù)設(shè)區(qū)間,因此不滿足第一預(yù)設(shè)條件的第一分量為與第一基本色的差值的絕對(duì)值小于等于第一預(yù)設(shè)值,或?qū)儆诘谝活l率直方圖中第一基本色所在的第一預(yù)設(shè)區(qū)間的分量,例如:以第一分量的基本色的顏色值為125為例,第一預(yù)設(shè)值為8,顏色值125在頻率直方圖中所屬的區(qū)間為(112,128],與第一基本色的差值的絕對(duì)值小于等于第一預(yù)設(shè)值的像素值屬于[117,133],由此屬于[117,133],或?qū)儆?112,128]的像素都可以被量化為基本色。
對(duì)像素的逃逸色進(jìn)行量化包括:通過如下公式對(duì)文字塊的第一分量、第二分量和第三分量的逃逸色進(jìn)行量化:
可選的,根據(jù)本申請(qǐng)上述實(shí)施例,在按照每一層像素的頻率由高至低依次對(duì)每一層像素進(jìn)行傳輸之前,方法還包括:步驟s1012,按照每一層像素的頻率由高至低依次對(duì)每一層像素進(jìn)行壓縮編碼,按照每一層像素的頻率由高至低依次對(duì)每一層像素進(jìn)行壓縮編碼的步驟包括:根據(jù)文字塊中像素的每個(gè)分量的基本色和逃逸色,確定每個(gè)分量對(duì)應(yīng)的標(biāo)記索引值;根據(jù)像素的標(biāo)記索引值與鄰域像素的標(biāo)記索引值的關(guān)聯(lián)關(guān)系,確定像素的預(yù)測(cè)索引值;根據(jù)文字塊中每個(gè)像素的標(biāo)記索引值和預(yù)測(cè)索引值對(duì)文字塊進(jìn)行壓縮編碼。
在一種可選的實(shí)施例中,仍以像素包括yuv三個(gè)分量為例,對(duì)分層后的壓縮編碼進(jìn)行描述。
首先,確定每個(gè)分量對(duì)應(yīng)的標(biāo)記索引值的步驟包括:
(1)將量化后圖像中的y分量的值用對(duì)應(yīng)索引表示,其中:y_base_color為4個(gè),對(duì)應(yīng)索引0-3。如果y分量值被量化為基本色,則用y_base_color對(duì)應(yīng)的索引(0-3)表示;如果y分量為逃逸色,則用4表示。
(2)將量化后圖像中的u分量的值用對(duì)應(yīng)索引表示,其中:u_base_color為2個(gè),對(duì)應(yīng)索引0-1。如果u分量值被量化為基本色,則用u_base_color對(duì)應(yīng)的索引(0-1)表示;如果u分量為逃逸色,則用2表示。
(3)將量化后圖像中的v分量的值用對(duì)應(yīng)索引表示,其中:v_base_color為2個(gè),對(duì)應(yīng)索引(0-1)。如果v分量值被量化為基本色,則用v_base_color對(duì)應(yīng)的索引(0-1)表示;如果v分量為逃逸色,則用2表示。
其次,根據(jù)像素的標(biāo)記索引值與鄰域像素的標(biāo)記索引值的關(guān)聯(lián)關(guān)系,確定像素的預(yù)測(cè)索引值的步驟包括:
(1)量化后的值與左側(cè)像素的像素值相等時(shí)標(biāo)記為l。
(2)量化后的值與上側(cè)像素的像素值相等時(shí)標(biāo)記為u。
(3)量化后的值與左側(cè)和上側(cè)都不相等時(shí),或如果上側(cè)和左側(cè)都不存在值時(shí),標(biāo)記為o。
最后,根據(jù)文字塊中每個(gè)像素的標(biāo)記索引值和預(yù)測(cè)索引值對(duì)文字塊進(jìn)行壓縮編碼包括:
(1)將o值對(duì)應(yīng)的序列進(jìn)行編碼并傳輸。
(2)將逃逸色進(jìn)行編碼并傳輸。
可選的,根據(jù)本申請(qǐng)上述實(shí)施例,在按照每一層像素的頻率由高至低依次對(duì)每一層像素進(jìn)行傳輸之后,上述方法還包括:
解碼端按照接收的順序依次對(duì)多層像素的壓縮編碼結(jié)果進(jìn)行解碼,其中,在未全部接收到多層像素的壓縮編碼結(jié)果的情況下,通過第四預(yù)設(shè)值代替未接收到解壓縮編碼結(jié)果的像素,在全部接收到多層像素的壓縮編碼結(jié)果后,對(duì)第四預(yù)設(shè)值替代的像素進(jìn)行更新。
在一種可選的實(shí)施例中,以將像素分為兩層為例,在進(jìn)行第一層的傳輸時(shí),將yuv分量的基本色及其索引值進(jìn)行編碼并傳輸,解碼端默認(rèn)yuv分量的逃逸色初值為0,解碼第一層數(shù)據(jù)時(shí),利用0作為逃逸色來解碼并生成圖像;在進(jìn)行第二層的傳輸時(shí),將yuv分量的逃逸色及其索引值進(jìn)行編碼并傳輸,在解碼端對(duì)第二層數(shù)據(jù)解碼,并更新yuv分量的逃逸色數(shù)據(jù),利用新的逃逸色數(shù)據(jù)來生成清晰的圖像。
圖2是根據(jù)本發(fā)明實(shí)施例的一種可選的文字塊的傳輸方法的示意圖,下面結(jié)合圖2所示,對(duì)上述方案進(jìn)行進(jìn)一步描述。
s21,獲取當(dāng)前帶寬并確定分層方案。
s22,是否需要對(duì)像素進(jìn)行分層。在需要進(jìn)行分層的情況下進(jìn)入步驟s24,否則進(jìn)入步驟s23。
s23,傳輸文字塊的全部編碼壓縮數(shù)據(jù)。
如果當(dāng)前帶寬無(wú)需對(duì)文字塊進(jìn)行分層傳輸,則將文字塊的全部壓縮編碼數(shù)據(jù)傳輸至解碼端。
s24,傳輸?shù)谝粚訑?shù)據(jù)。
s25,傳輸?shù)诙訑?shù)據(jù)。
如果當(dāng)前網(wǎng)絡(luò)帶寬需要對(duì)文字塊進(jìn)行文層傳輸,則先傳輸?shù)谝粚游淖謮K的編碼信息,再傳輸?shù)诙游淖謮K的編碼信息。
s26,對(duì)數(shù)據(jù)進(jìn)行解碼生成圖像。
解碼端對(duì)壓縮編碼的數(shù)據(jù)進(jìn)行解碼,從而得到圖像的文字部分。
圖3是根據(jù)本申請(qǐng)實(shí)施例的一種解碼端對(duì)第一層壓縮編碼數(shù)據(jù)進(jìn)行解碼的示意圖,圖3通過不同紋理表示不同顏色,結(jié)合圖3所示,不包括文字的部分為圖像中的圖片塊,此處不進(jìn)行討論,對(duì)于文字塊部分,以左側(cè)的文字為例,由于文字為一種顏色,文字的底色為另一種顏色,因此第一層像素為基本色,即文字的顏色和文字背景的顏色,解碼端在接收到第一層壓縮編碼數(shù)據(jù)后解碼出文字和文字的背景,構(gòu)成了如圖3所示的圖像。
實(shí)施例2
根據(jù)本發(fā)明實(shí)施例,提供了一種文字塊的傳輸裝置的實(shí)施例,圖4是根據(jù)本發(fā)明實(shí)施例的文字塊的傳輸裝置的示意圖,如圖4所示,該方法包括如下步驟:
分層模塊40,用于將文字塊的像素根據(jù)像素出現(xiàn)的頻率分為多層。
傳輸模塊42,用于按照每一層像素的頻率由高至低依次對(duì)每一層像素進(jìn)行傳輸。
由上可知,本申請(qǐng)上述實(shí)施例通過分層模塊將文字塊的像素根據(jù)像素出現(xiàn)的頻率分為多層,通過傳輸模塊按照每一層像素出現(xiàn)的頻率由高至低的順序依次對(duì)每一層像素進(jìn)行傳輸。上述方案利用了文字塊最主要的特征主要的能量集中在較少的幾種像素中這一特性,根據(jù)每個(gè)文字塊像出現(xiàn)的頻率,對(duì)像素進(jìn)行分層,然后根據(jù)像素出現(xiàn)的頻率有高至低的將每層像素進(jìn)行傳輸,從而不僅保證了文字塊的顯示效果,同時(shí)還減小了文字塊傳輸所占用的帶寬,進(jìn)而解決了現(xiàn)有技術(shù)中文字塊的傳輸占用帶寬較大的技術(shù)問題,達(dá)到了提高文字塊的傳輸效率的技術(shù)效果。
可選的,根據(jù)本申請(qǐng)上述實(shí)施例,上述裝置還包括:
第一獲取模塊,用于在將文字塊的像素根據(jù)像素出現(xiàn)的頻率分為多層之前,用于獲取當(dāng)前網(wǎng)絡(luò)帶寬。
轉(zhuǎn)換步驟模塊,用于當(dāng)當(dāng)前網(wǎng)絡(luò)帶寬小于預(yù)設(shè)帶寬時(shí),進(jìn)入將文字塊的像素根據(jù)像素出現(xiàn)的頻率分為多層的步驟。
可選的,根據(jù)本申請(qǐng)上述實(shí)施例,分層模塊包括:
第二獲取模塊,用于根據(jù)像素的頻率獲取像素的基本色和逃逸色。
確定模塊,用于將文字塊的像素分為兩層,確定文字塊的基本色為文字塊的第一層,確定文字塊的逃逸色為文字塊的第二層。
可選的,根據(jù)本申請(qǐng)上述實(shí)施例,對(duì)于像素的第一分量,第二獲取模塊包括:
第一獲取子模塊,用于獲取第一分量的第一頻率直方圖以及預(yù)設(shè)的第一步長(zhǎng)。
第一查找子模塊,用于以第一步長(zhǎng)在第一頻率直方圖中按照能量由大至小的順序,查找由大至小排列在前n位的n個(gè)區(qū)間,確定查找到的n個(gè)區(qū)間對(duì)應(yīng)的顏色值為第一分量的第一基本色,其中,n為大于等于2的整數(shù)。
第一確定子模塊,用于確定滿足第一預(yù)設(shè)條件的第一分量對(duì)應(yīng)的顏色為第一逃逸色,其中,第一預(yù)設(shè)條件為與第一基本色的差值的絕對(duì)值大于第一預(yù)設(shè)值,且不屬于第一頻率直方圖中第一基本色所在的第一預(yù)設(shè)區(qū)間。
可選的,根據(jù)本申請(qǐng)上述實(shí)施例,對(duì)于像素的第二分量,獲取文字塊的基本色和逃逸色,包括:
第二獲取子模塊,用于獲取第二分量的第二頻率直方圖以及預(yù)設(shè)的第二步長(zhǎng)。
第二查找子模塊,用于以第二步長(zhǎng)在第二頻率直方圖中按照能量由大至小的順序,查找由大至小排列在前m位的m個(gè)區(qū)間,確定查找到的m個(gè)區(qū)間對(duì)應(yīng)的顏色值為第二分量的第二基本色,其中,m為大于等于2的整數(shù)。
第二確定子模塊,用于確定滿足第二預(yù)設(shè)條件的第二分量對(duì)應(yīng)的顏色為第二逃逸色,其中,第二預(yù)設(shè)條件為與第二基本色的差值的絕對(duì)值大于第二預(yù)設(shè)值,且不屬于第二頻率直方圖中第二基本色所在的第二預(yù)設(shè)區(qū)間。
可選的,根據(jù)本申請(qǐng)上述實(shí)施例,對(duì)于像素的第三分量,獲取文字塊的基本色和逃逸色,包括:
第三獲取子模塊,用于獲取第三分量的第三頻率直方圖以及預(yù)設(shè)的第三步長(zhǎng)。
第三查找子模塊,用于以第三步長(zhǎng)在第三頻率直方圖中按照能量由大至小的順序,查找由大至小排列在前k位的k個(gè)區(qū)間,確定查找到的k個(gè)區(qū)間對(duì)應(yīng)的顏色值為第三分量的第三基本色,其中,k為大于等于2的整數(shù)。
第三確定子模塊,用于確定滿足第三預(yù)設(shè)條件的第三分量對(duì)應(yīng)的顏色為第三逃逸色,其中,第三預(yù)設(shè)條件為與第三基本色的差值的絕對(duì)值大于第三預(yù)設(shè)值,且不屬于第三頻率直方圖中第三基本色所在的第三預(yù)設(shè)區(qū)間。
可選的,根據(jù)本申請(qǐng)上述實(shí)施例,上述裝置還包括:量化模塊,用于在將文字塊的像素分為兩層之前,對(duì)像素的基本色和逃逸色進(jìn)行量化,其中,
對(duì)像素的基本色進(jìn)行量化包括:分別將不滿足第一預(yù)設(shè)條件的第一分量、不滿足第二預(yù)設(shè)條件的第二分量和不滿足第三預(yù)設(shè)條件的第三分量量化為第一基本色、第二基本色和第三基本色;
對(duì)像素的逃逸色進(jìn)行量化包括:通過如下公式對(duì)文字塊的第一分量、第二分量和第三分量的逃逸色進(jìn)行量化:
可選的,根據(jù)本申請(qǐng)上述實(shí)施例,上述裝置還包括:壓縮編碼模塊,用于在按照每一層像素的頻率由高至低依次對(duì)每一層像素進(jìn)行傳輸之前,按照每一層像素的頻率由高至低依次對(duì)每一層像素進(jìn)行壓縮編碼,按照每一層像素的頻率由高至低依次對(duì)每一層像素進(jìn)行壓縮編碼的步驟包括:根據(jù)文字塊中像素的每個(gè)分量的基本色和逃逸色,確定每個(gè)分量對(duì)應(yīng)的標(biāo)記索引值;根據(jù)像素的標(biāo)記索引值與鄰域像素的標(biāo)記索引值的關(guān)聯(lián)關(guān)系,確定像素的預(yù)測(cè)索引值;根據(jù)文字塊中每個(gè)像素的標(biāo)記索引值和預(yù)測(cè)索引值對(duì)文字塊進(jìn)行壓縮編碼。
可選的,根據(jù)本申請(qǐng)上述實(shí)施例,上述裝置還包括:
解碼模塊,用于在按照每一層像素的頻率由高至低依次對(duì)每一層像素進(jìn)行傳輸之后,解碼端按照接收的順序依次對(duì)多層像素的壓縮編碼結(jié)果進(jìn)行解碼,其中,在未全部接收到多層像素的壓縮編碼結(jié)果的情況下,通過第四預(yù)設(shè)值代替未接收到解壓縮編碼結(jié)果的像素,在全部接收到多層像素的壓縮編碼結(jié)果后,對(duì)第四預(yù)設(shè)值替代的像素進(jìn)行更新。
實(shí)施例2
根據(jù)本發(fā)明實(shí)施例,提供了一種存儲(chǔ)介質(zhì),存儲(chǔ)介質(zhì)包括存儲(chǔ)的程序,其中,在程序運(yùn)行時(shí)控制存儲(chǔ)介質(zhì)所在設(shè)備執(zhí)行實(shí)施例1中任意一項(xiàng)的文字塊的壓縮編碼方法。
實(shí)施例3
根據(jù)本發(fā)明實(shí)施例,提供了一種處理器,其特征在于,處理器用于運(yùn)行程序,其中,程序運(yùn)行時(shí)執(zhí)行實(shí)施例1中任意一項(xiàng)的文字塊的壓縮編碼方法。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
在本發(fā)明的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。