本公開涉及用于對輸入數(shù)據(jù)(D1)編碼以生成對應(yīng)編碼數(shù)據(jù)(E2)的編碼器;本公開還涉及對輸入數(shù)據(jù)(D1)編碼以生成對應(yīng)編碼數(shù)據(jù)(E2)的方法。另外,本公開涉及用于對編碼數(shù)據(jù)(E2)解碼以生成對應(yīng)解碼數(shù)據(jù)(D3)的解碼器;本公開還涉及對編碼數(shù)據(jù)(E2)解碼以生成對應(yīng)解碼數(shù)據(jù)(D3)的方法。另外,本公開涉及包括其上存儲有計(jì)算機(jī)可讀指令的非暫時(shí)性計(jì)算機(jī)可讀存儲介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,計(jì)算機(jī)可讀指令可通過電腦化設(shè)備執(zhí)行,電腦化設(shè)備包括處理硬件以執(zhí)行上述方法。另外,本公開涉及編解碼器,編解碼器包括至少一個上述編碼器以及至少一個上述解碼器。
背景技術(shù):
為本公開提供技術(shù)背景的各種已知文獻(xiàn)列在與本公開有關(guān)的附錄中。
通常,用來壓縮數(shù)據(jù)的算法是基于無損耗壓縮方法[3]或有損耗壓縮方法[4]中的一種。在無損耗壓縮中,各種文件(即數(shù)據(jù)(D1))以數(shù)據(jù)(D1)可稍后恢復(fù)為原樣的方式進(jìn)行壓縮。
通常,當(dāng)對數(shù)據(jù)(D1)編碼時(shí),使用數(shù)據(jù)刪除復(fù)制(data de-duplication)方法是公知的,該方法試圖除去數(shù)據(jù)(D1)中的數(shù)據(jù)段(即當(dāng)數(shù)據(jù)(D1)例如短暫地流動時(shí)反復(fù)出現(xiàn)而沒有變化的那些數(shù)據(jù)段)的副本。已知的數(shù)據(jù)刪除復(fù)制方法能夠有效地尋找與期望數(shù)據(jù)塊完全類似的這些數(shù)據(jù)塊。
通常,已知的數(shù)據(jù)刪除復(fù)制方法通過使用各種不同的方法來尋找先前出現(xiàn)的數(shù)據(jù)段,諸如:
(i)通過相對于參考數(shù)據(jù)段,檢測給定數(shù)據(jù)段中的改變的數(shù)據(jù)元素的數(shù);
(ii)通過計(jì)算給定數(shù)據(jù)段和參考數(shù)據(jù)段的數(shù)據(jù)元素之間的絕對差的總和;
(iii)通過利用冗余檢驗(yàn)表;或者
(iv)通過采用滑動塊方法。
整個文件也可被復(fù)制刪除,在這種情況下,用來代替復(fù)制文件的符號產(chǎn)生出色的壓縮比[5]。
另外,可以后處理的方式執(zhí)行數(shù)據(jù)刪除復(fù)制,在這種情況下在數(shù)據(jù)(D1)已寫入之后追溯地執(zhí)行對關(guān)聯(lián)數(shù)據(jù)的處理??商娲?,可實(shí)時(shí)執(zhí)行數(shù)據(jù)刪除復(fù)制,即正在數(shù)據(jù)(D1)進(jìn)入給定系統(tǒng)時(shí),在這種情況下給定辨識出的數(shù)據(jù)塊沒有完全寫入,而是替代地參考之前的、與給定辨識出的數(shù)據(jù)塊彼此類似的數(shù)據(jù)塊。
數(shù)據(jù)刪除復(fù)制用于當(dāng)代信息技術(shù)工業(yè)的各種分支中,諸如數(shù)據(jù)存儲器中以及數(shù)據(jù)傳送網(wǎng)絡(luò)中。例如,數(shù)據(jù)刪除復(fù)制用于云服務(wù)中、系統(tǒng)備份復(fù)制中、以及電子郵件服務(wù)中,其中連續(xù)地傳送相互類似的文件,或僅僅稍微變化的基本上相互類似的文件。另外,在互聯(lián)網(wǎng)通信網(wǎng)絡(luò)中,發(fā)送對請求的響應(yīng),來回傳送數(shù)據(jù)字節(jié),并且這些字節(jié)主要容納部分或全部的相同互聯(lián)網(wǎng)協(xié)議(IP)包數(shù)據(jù);例如數(shù)據(jù)刪除復(fù)制與廣域網(wǎng)(WAN)優(yōu)化有關(guān)。
先前眾所周知的是,與常規(guī)的數(shù)據(jù)壓縮方法相比,已知的數(shù)據(jù)刪除復(fù)制方法更具有成本效率。然而,已知的數(shù)據(jù)刪除復(fù)制方法具有許多缺點(diǎn)。首先,由于數(shù)據(jù)刪除復(fù)制方法試圖實(shí)現(xiàn)期望的數(shù)據(jù)壓縮比,所以經(jīng)常使用可觀的數(shù)據(jù)存儲和處理能力。通常,需要增加關(guān)聯(lián)的搜索區(qū)域,即用于尋找類似性的大量存儲器,來提高數(shù)據(jù)壓縮比。另外,需要使用諸如滑動搜索法的CPU加強(qiáng)方法,來提高數(shù)據(jù)壓縮比?;瑒铀阉鞣ㄔ噲D通過在搜索區(qū)域內(nèi)移動至由用于實(shí)現(xiàn)滑動搜索法所采用的算法指向的方向,以原始方式來識別目標(biāo)數(shù)據(jù)塊或數(shù)據(jù)包。
其次,已知的數(shù)據(jù)刪除復(fù)制方法不能發(fā)現(xiàn)這樣數(shù)據(jù)塊或數(shù)據(jù)包,即內(nèi)容稍有變化,但是相對于期望數(shù)據(jù)塊仍包含許多未變化數(shù)據(jù)元素的數(shù)據(jù)塊或數(shù)據(jù)包。
第三,已知的數(shù)據(jù)刪除復(fù)制方法可能導(dǎo)致數(shù)據(jù)斷裂,尤其在實(shí)時(shí)執(zhí)行與這些數(shù)據(jù)刪除復(fù)制方法有關(guān)的處理時(shí)。
技術(shù)實(shí)現(xiàn)要素:
本公開旨在提供采用數(shù)據(jù)刪除復(fù)制技術(shù)的改進(jìn)的編碼器,數(shù)據(jù)刪除復(fù)制技術(shù)能夠改進(jìn)編碼性能。
另外,本公開旨在提供采用復(fù)制技術(shù)的改進(jìn)的解碼器,復(fù)制技術(shù)能夠改進(jìn)解碼性能。
在第一方面,本公開的實(shí)施方式提供了用于對輸入數(shù)據(jù)(D1)編碼以生成對應(yīng)編碼數(shù)據(jù)(E2)的編碼器,其特征在于,編碼器包括數(shù)據(jù)處理硬件,數(shù)據(jù)處理硬件能夠操作為:
(a)確定所述輸入數(shù)據(jù)(D1)內(nèi)的數(shù)據(jù)塊或數(shù)據(jù)包的至少部分重現(xiàn),其中,所述數(shù)據(jù)塊或數(shù)據(jù)包包括多個字節(jié);
(b)采用至少一個參考符號來關(guān)聯(lián)相互類似的數(shù)據(jù)塊或數(shù)據(jù)包的重現(xiàn),和/或指示所述輸入數(shù)據(jù)(D1)內(nèi)是否存在相互類似的數(shù)據(jù)塊或數(shù)據(jù)包的重現(xiàn);
(c)采用多個變化符號來指示所述輸入數(shù)據(jù)(D1)內(nèi)的數(shù)據(jù)塊或數(shù)據(jù)包的部分重現(xiàn)的變化數(shù)據(jù)元素和未變化數(shù)據(jù)元素,以及變化數(shù)據(jù)元素的數(shù)據(jù)值的變化;以及
(d)將所述至少一個參考符號和所述多個變化符號編碼到所述編碼數(shù)據(jù)(E2)中。
編碼器的處理硬件可操作為確定輸入數(shù)據(jù)(D1)內(nèi)的數(shù)據(jù)塊或數(shù)據(jù)包的至少部分重現(xiàn)。為此目的,可選地,編碼器10的處理硬件可操作為確定用于數(shù)據(jù)塊或數(shù)據(jù)包的最佳尺寸。另外,可選地,編碼器的處理硬件可操作為在編碼數(shù)據(jù)(E2)內(nèi)提供指示用于數(shù)據(jù)塊或數(shù)據(jù)包的最佳尺寸的信息。
另外,編碼器的處理硬件可操作為使用至少一個參考符號來關(guān)聯(lián)相互類似的數(shù)據(jù)塊或數(shù)據(jù)包的重現(xiàn),和/或指示輸入數(shù)據(jù)(D1)內(nèi)是否存在相互類似的數(shù)據(jù)塊或數(shù)據(jù)包的重現(xiàn)。就此而言,可選地,編碼器的處理硬件可操作為使用一個或多個指示器,用于指示數(shù)據(jù)塊或數(shù)據(jù)包相對于它們的對應(yīng)參考數(shù)據(jù)塊或數(shù)據(jù)包的一個或多個至少部分重現(xiàn)。
可選地,一個或多個指示器為一個或多個相對指示器。
可選地,在上述(d)中的編碼數(shù)據(jù)(E2)包括變化符號,變化符號包括指示變化值和未變化值以及變化值的位/標(biāo)記,或者變化符號包含與delta值內(nèi)的變化值或未變化值以及值的變化有關(guān)的信息。更可選地,在編碼器的操作中,delta值被分配零值以用于指示未變化,并且被分配非零值以用于指示變化。
應(yīng)理解,“變化符號”總是包含用于表示已經(jīng)變化的值以及用于表示特定值或其delta變化將如何進(jìn)一步發(fā)送所必需的所有信息。換言之,如果使用了delta/ODelta值,那么只有一個值增加到變化符號中,并且僅添加到該符號中。這樣,這些單個值當(dāng)然可插入包含那些delta/ODelta值的數(shù)據(jù)值的流中,但是如果指示變化/未變化的位/標(biāo)記被增加到變化符號,那么將存在兩個值而不是一個,這樣當(dāng)然將兩個值插入兩個數(shù)據(jù)流中。這些數(shù)據(jù)流之一將包含指示變化/未變化的位/標(biāo)記,并且然后第二數(shù)據(jù)流將同樣包含新值,或者與在相同位置中待復(fù)制的數(shù)據(jù)塊/數(shù)據(jù)包的值有關(guān)的不同的值。
關(guān)于“參考符號”,它表示數(shù)據(jù)塊或數(shù)據(jù)包是否已被復(fù)制,并且還表示在部分復(fù)制或全部復(fù)制中使用了哪個數(shù)據(jù)塊或數(shù)據(jù)包。換言之,在相對參考中或數(shù)據(jù)塊自身索引或直接參考的指示器中的值“0”指示該數(shù)據(jù)塊將不被復(fù)制。這樣,使用直接或相對參考,其它值指示哪里可發(fā)現(xiàn)該數(shù)據(jù)塊或數(shù)據(jù)包的重現(xiàn)??赏ㄟ^不同程度的精度來執(zhí)行直接和相對參考二者;換言之,地址/索引可對字節(jié)/字/塊/包尋址/索引。當(dāng)然,還可能通過直接參考來使用不是用于重現(xiàn)的可能位置的數(shù)據(jù)值,以指示關(guān)注的數(shù)據(jù)塊/數(shù)據(jù)包沒有被復(fù)制。與使用數(shù)據(jù)塊自身索引/指示器相比較,使用不可能直接參考的值產(chǎn)生一個特別的優(yōu)點(diǎn),即該值將總是同樣的,即其例如可更好地熵壓縮。在直接參考中的不可能值例如為負(fù)值或出現(xiàn)在數(shù)據(jù)塊/數(shù)據(jù)包范圍之外的值。在間接參考中,上述零值“0”總是指示好的(即,可能的)值,因?yàn)樗看味际峭瑯拥?,并且相對地其總是指向相同的?shù)據(jù)塊,并且因而易于識別關(guān)注的數(shù)據(jù)塊/數(shù)據(jù)包不可具有重現(xiàn)的數(shù)據(jù)塊/數(shù)據(jù)包。
另外,編碼器可操作為將(c)中的多個變化符號用作為多個掩碼位,以指示輸入數(shù)據(jù)(D1)內(nèi)的數(shù)據(jù)塊或數(shù)據(jù)包的部分重現(xiàn)的變化數(shù)據(jù)元素和未變化數(shù)據(jù)元素(值),并且還指示變化的值??商娲兀兓柨砂cdelta值內(nèi)的變化值或未變化值以及值的變化有關(guān)的信息。
可替代地,可選地,編碼器的處理硬件可操作為通過使用指示未變化的一個或多個值來表示給定數(shù)據(jù)塊或數(shù)據(jù)包的一個或多個未變化數(shù)據(jù)元素,其中,所述一個或多個值與所述輸入數(shù)據(jù)(D1)中出現(xiàn)的那些值不同。
另外,編碼器的處理硬件可操作為將至少一個參考符號以及多個變化符號(例如,掩碼位)編碼到編碼數(shù)據(jù)(E2)中??蛇x地,編碼器的處理硬件可操作為將至少一個參考符號以及多個變化符號(例如,掩碼位)編碼到多個數(shù)據(jù)流中,以提供編碼數(shù)據(jù)(E2)。
另外,可選地,編碼器包括附加編碼單元,附加編碼單元用于將至少一個參考符號和多個變化符號中的至少一部分編碼到編碼數(shù)據(jù)(E2)中。可選地,附加編碼單元可操作為使用以下中的至少一個:熵調(diào)整編碼、delta編碼、如于2013年3月1日提交的專利申請GB1303661.1中所描述的ODelta編碼、具有如于2014年7月21日提交的專利申請GB1412937.3中描述的不同預(yù)測器的ODelta編碼、1u或8u區(qū)間編碼、行程長度編碼(RLE)、如于2013年3月1日提交的專利申請GB130360.3中描述的拆分行程長度編碼(SRLE)、以及插值編碼。
本公開的實(shí)施方式的優(yōu)勢在于通過實(shí)現(xiàn)數(shù)據(jù)刪除復(fù)制的方法,編碼器能夠提供增強(qiáng)的編碼性能。
在第二方面,本公開的實(shí)施方式提供了在編碼器中對輸入數(shù)據(jù)(D1)進(jìn)行編碼以生成對應(yīng)編碼數(shù)據(jù)(E2)的方法,其中編碼器包括用于處理輸入數(shù)據(jù)(D1)的數(shù)據(jù)處理硬件,其特征在于,該方法包括:
(a)確定所述輸入數(shù)據(jù)(D1)內(nèi)的數(shù)據(jù)塊或數(shù)據(jù)包的至少部分重現(xiàn),其中,所述數(shù)據(jù)塊或數(shù)據(jù)包包括多個字節(jié);
(b)采用至少一個參考符號來關(guān)聯(lián)相互類似的數(shù)據(jù)塊或數(shù)據(jù)包的重現(xiàn),和/或指示所述輸入數(shù)據(jù)(D1)內(nèi)是否存在相互類似的數(shù)據(jù)塊或數(shù)據(jù)包的重現(xiàn);
(c)采用多個變化符號來指示所述輸入數(shù)據(jù)(D1)內(nèi)的數(shù)據(jù)塊或數(shù)據(jù)包的部分重現(xiàn)的變化數(shù)據(jù)元素和未變化數(shù)據(jù)元素,以及變化數(shù)據(jù)元素的數(shù)據(jù)值的變化;以及
(d)將所述至少一個參考符號和所述多個變化符號編碼到所述編碼數(shù)據(jù)(E2)中。
可選地,在該方法中,在(d)中的編碼數(shù)據(jù)(E2)包括變化符號,變化符號包括指示變化值和未變化值以及變化值的位/標(biāo)記,或者變化符號包含與delta值內(nèi)的變化值或未變化值以及值的變化有關(guān)的信息。更可選地,在本方法中,delta值被分配零“0”值用于指示未變化,并且被分配非零值以用于指示變化。
在第三方面,本公開的實(shí)施方式提供了包括其上存儲有計(jì)算機(jī)可讀指令的非暫時(shí)性(即,非瞬時(shí)性)計(jì)算機(jī)可讀存儲介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,計(jì)算機(jī)可讀指令可通過包括處理硬件的計(jì)算機(jī)化設(shè)備執(zhí)行,以執(zhí)行上述方法。
在第四方面,本公開的實(shí)施方式提供了用于對編碼數(shù)據(jù)(E2)解碼以生成對應(yīng)解碼數(shù)據(jù)(D3)的解碼器。解碼器包括用于處理編碼數(shù)據(jù)(E2)的處理硬件。
可選地,解碼器的處理硬件可操作為在編碼數(shù)據(jù)(E2)內(nèi)接收指示數(shù)據(jù)塊或數(shù)據(jù)包的尺寸的信息。
解碼器的處理硬件可操作為對編碼數(shù)據(jù)(E2)解碼,以識別至少一個參考符號以及多個變化符號??蛇x地,解碼器的處理硬件可操作為對來自編碼數(shù)據(jù)(E2)內(nèi)提供的多個數(shù)據(jù)流的、至少一個參考符號以及多個變化符號解碼。
可選地,解碼器的處理硬件可操作為對編碼數(shù)據(jù)(E2)編碼,以識別一個或多個指示器,該指示器指示數(shù)據(jù)塊或數(shù)據(jù)包相對于它們的對應(yīng)參考數(shù)據(jù)包或數(shù)據(jù)塊的一個或多個至少部分重現(xiàn)。
解碼器的處理硬件然后可操作為使用至少一個參考符號,即一個或多個指示器,以生成用于編碼數(shù)據(jù)(E2)內(nèi)的數(shù)據(jù)塊或數(shù)據(jù)包的至少部分重現(xiàn)的數(shù)據(jù)。
另外,解碼器的處理硬件可操作為采用作為多個掩碼位的多個變化符號,以生成用于編碼數(shù)據(jù)(E2)內(nèi)的數(shù)據(jù)塊或數(shù)據(jù)包的部分重現(xiàn)的變化數(shù)據(jù)元素的數(shù)據(jù)。可替代地,使用的變化符號包含與delta值內(nèi)的變化值或無變化值以及值的變化有關(guān)的信息。
可替代地,可選地,解碼器的處理硬件可操作為對來自指示未變化的一個或多個值的給定數(shù)據(jù)塊或數(shù)據(jù)包的一個或多個未變化數(shù)據(jù)元素進(jìn)行編碼,其中,該一個或多個值與在解碼數(shù)據(jù)(D3)中出現(xiàn)的值不同。
隨后,解碼器的處理硬件可操作為集合所生成的用于數(shù)據(jù)塊或數(shù)據(jù)包的至少部分重現(xiàn)的數(shù)據(jù)以及所生成的用于數(shù)據(jù)塊或數(shù)據(jù)包的部分重現(xiàn)的所述變化數(shù)據(jù)元素的數(shù)據(jù),以生成對應(yīng)解碼數(shù)據(jù)(D3)。
另外,可選地,解碼器包括附加解碼單元,附加解碼單元用于對來自編碼數(shù)據(jù)(E2)的至少一個參考符號以及多個變化符號的至少一部分解碼??蛇x地,附加解碼單元可操作使用以下中的至少一種:熵調(diào)整解碼、delta解碼、ODelta解碼、1u或8u區(qū)間解碼、行程長度解碼、拆分行程長度解碼、以及插值解碼。
在第五方面,本公開的實(shí)施方式提供了對編碼數(shù)據(jù)(E2)解碼以生成對應(yīng)的解碼數(shù)據(jù)(D3)的簡單且快速的方法。
在第六方面,本公開的實(shí)施方式提供了包括其上存儲有計(jì)算機(jī)可讀指令的非暫時(shí)性(即,非瞬時(shí)性)計(jì)算機(jī)可讀存儲介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,計(jì)算機(jī)可讀指令可通過包括處理硬件的計(jì)算機(jī)化設(shè)備執(zhí)行,以執(zhí)行上述的方法。
在第七方面,本公開的實(shí)施方式提供了包括上述編碼器以及上述解碼器的編解碼器。
本公開的附加方面、優(yōu)勢、特征和主題將通過結(jié)合所附權(quán)利要求解釋的示例性實(shí)施方式的詳細(xì)描述和附圖而變得明顯。
將理解,在不偏離由所附權(quán)利要求限定的本公開范圍的情況下,本公開的特征適合于以多種組合方式組合。
附圖說明
當(dāng)結(jié)合附圖閱讀時(shí),更好地理解以上內(nèi)容和以下示例性實(shí)施方式的詳細(xì)說明。為了示出本公開,在附圖中示出了本公開的示例性結(jié)構(gòu)。然而,本公開并不限于本文中公開的具體方法和裝置。另外,本領(lǐng)域技術(shù)人員應(yīng)理解附圖不是按比例繪制的。只要可能,相同的元件由相同的標(biāo)號來指示。
現(xiàn)將僅通過示例的方式參照附圖描述本公開的實(shí)施方式,在附圖中:
圖1是根據(jù)本公開的實(shí)施方式的編碼器和解碼器的示意圖,編碼器用于對輸入數(shù)據(jù)(D1)編碼以生成對應(yīng)的編碼數(shù)據(jù)(E2),解碼器用于對編碼數(shù)據(jù)(E2)解碼以生成對應(yīng)的解碼數(shù)據(jù)(D3),其中編碼器和解碼器共同形成編解碼器;
圖2是根據(jù)本公開的實(shí)施方式的對輸入數(shù)據(jù)(D1)編碼以生成對應(yīng)的編碼數(shù)據(jù)(E2)的方法的步驟的圖示;
圖3A和圖3B共同為根據(jù)本公開的實(shí)施方式的編碼過程的步驟的圖示;
圖4是根據(jù)本公開的實(shí)施方式的對編碼數(shù)據(jù)(E2)解碼以生成對應(yīng)的解碼數(shù)據(jù)(D3)的方法的步驟的圖示;以及
圖5A和圖5B共同為根據(jù)本公開的實(shí)施方式的解碼過程的步驟的圖示。
在附圖中,使用帶下劃線的數(shù)字來表示下劃線數(shù)字上的項(xiàng)或者與下劃線數(shù)字相鄰的項(xiàng)。未帶下劃線的數(shù)字涉及通過將未帶下劃線的數(shù)字與項(xiàng)連接的線所指示的項(xiàng)。當(dāng)數(shù)字不帶下劃線且附有相關(guān)箭頭時(shí),不帶下劃線數(shù)字用于識別箭頭所指的一般項(xiàng)。
具體實(shí)施方式
以下詳細(xì)描述示出了本公開的實(shí)施方式以及實(shí)現(xiàn)這些實(shí)施方式的方法。雖然已公開了執(zhí)行本公開的最佳方式,但是本領(lǐng)域技術(shù)人員應(yīng)理解用于執(zhí)行或?qū)嵺`本公開的其他實(shí)施方式也是可能的。
大體上,本公開的實(shí)施方式涉及處理數(shù)據(jù)的方法和用于執(zhí)行這種數(shù)據(jù)處理的裝置,其中執(zhí)行數(shù)據(jù)刪除復(fù)制和復(fù)制,這將在下文更詳細(xì)地闡述。
參照圖1,本公開的實(shí)施方式涉及:
(i)用于對輸入數(shù)據(jù)(D1)編碼以生成對應(yīng)的編碼數(shù)據(jù)(E2)的編碼器10,以及對輸入數(shù)據(jù)(D1)編碼以生成編碼數(shù)據(jù)(E2)的對應(yīng)的方法;
(ii)用于對編碼數(shù)據(jù)(E2)解碼以生成對應(yīng)的解碼數(shù)據(jù)(D3)的解碼器20,以及對編碼數(shù)據(jù)(E2)解碼以生成解碼數(shù)據(jù)(D3)的對應(yīng)的方法;以及
(iii)編解碼器30,包括至少一個編碼器和至少一個解碼器的組合,即編碼器10和解碼器20的組合。
可選地,如以無損耗操作方式,解碼數(shù)據(jù)(D3)完全類似于輸入數(shù)據(jù)(D1)??商娲?,可選地,如以有損耗操作方式,解碼數(shù)據(jù)(D3)大致類似于輸入數(shù)據(jù)(D1)。還可替代地,可選地,例如通過變換,解碼數(shù)據(jù)(D3)不同于輸入數(shù)據(jù)(D1),但與出現(xiàn)在輸入數(shù)據(jù)(D1)中的信息保持大體上類似;例如,當(dāng)還要求重新格式化解碼數(shù)據(jù)(D3)時(shí),解碼數(shù)據(jù)(D3)被有用地形成為與輸入數(shù)據(jù)(D1)不同,例如與不同類型的通信平臺、軟件層、不同類型的通信裝置等兼容。雖然本公開的一些實(shí)施方式描述了關(guān)于出現(xiàn)于輸入數(shù)據(jù)(D1)中的圖像數(shù)據(jù),即通過使用掩碼位(mask bit)來表示,但是應(yīng)理解本公開的實(shí)施方式能夠?qū)Χ喾N彼此不同類型的輸入數(shù)據(jù)(D1)編碼,例如傳感器數(shù)據(jù)。為了概括所有類型的數(shù)據(jù),例如在所附權(quán)利要求中使用術(shù)語“變化符號(change symbol)”,在輸入數(shù)據(jù)(D1)包括圖像數(shù)據(jù)的特殊示例情況下,數(shù)據(jù)符號實(shí)現(xiàn)為掩碼位。
編碼器10包括用于處理輸入數(shù)據(jù)(D1)的處理硬件。可選地,編碼器10的處理硬件可操作為對輸入數(shù)據(jù)(D1)編碼,輸入數(shù)據(jù)(D1)為以下中的至少一種但并不限于此:一維數(shù)據(jù)、多維數(shù)據(jù)、音頻數(shù)據(jù)、圖像數(shù)據(jù)、視頻數(shù)據(jù)、傳感器數(shù)據(jù)、文本數(shù)據(jù)、二進(jìn)制數(shù)據(jù)、以及醫(yī)學(xué)數(shù)據(jù)??蛇x地,輸入數(shù)據(jù)(D1)接收為數(shù)據(jù)流或文件??蛇x地,輸入數(shù)據(jù)(D1)包括許多小的變化,例如結(jié)構(gòu)化細(xì)節(jié)和噪音的混合。
編碼器10的處理硬件可操作為確定輸入數(shù)據(jù)(D1)內(nèi)的數(shù)據(jù)塊或數(shù)據(jù)包的至少部分重現(xiàn)。為此目的,編碼器10的處理硬件可選地可操作為確定用于數(shù)據(jù)塊或數(shù)據(jù)包的最佳尺寸,如將在以下更詳細(xì)地描述。另外,編碼器10的處理硬件可選地可操作為在編碼數(shù)據(jù)(E2)內(nèi),提供指示用于數(shù)據(jù)塊或數(shù)據(jù)包的最佳尺寸的信息。
為了確定數(shù)據(jù)塊或數(shù)據(jù)包的至少部分重現(xiàn),編碼器10的處理硬件可操作為使用一個或多個適當(dāng)?shù)娜哂鄼z驗(yàn)方法來進(jìn)行一個或或多個冗余檢驗(yàn)??蛇x地,使用冗余檢驗(yàn)方法來選擇數(shù)據(jù)塊或數(shù)據(jù)包,所述數(shù)據(jù)塊或數(shù)據(jù)包使未改變的數(shù)據(jù)元素的計(jì)數(shù)最大化,或使數(shù)據(jù)塊或數(shù)據(jù)包的數(shù)據(jù)元素與對應(yīng)的參考數(shù)據(jù)塊或數(shù)據(jù)包的數(shù)據(jù)元素之間的絕對誤差之和最小化。
另外,可選地,使用冗余檢驗(yàn)方法來計(jì)算用于給定數(shù)據(jù)塊或數(shù)據(jù)包的一個或多個冗余檢驗(yàn)值。在示例中,計(jì)算用于給定數(shù)據(jù)塊或數(shù)據(jù)包的一個長的冗余檢驗(yàn)值。在另一示例中,計(jì)算用于給定數(shù)據(jù)塊或數(shù)據(jù)包的多個短的冗余檢驗(yàn)值。
如果計(jì)算出的用于給定數(shù)據(jù)塊或數(shù)據(jù)包的冗余檢驗(yàn)值與任何先前存儲的信息沒有匹配足夠好,那么給定數(shù)據(jù)塊或數(shù)據(jù)包被識別為非復(fù)制數(shù)據(jù)塊或數(shù)據(jù)包。該非復(fù)制數(shù)據(jù)塊或數(shù)據(jù)包如其在編碼數(shù)據(jù)(E2)中那樣寫入或傳遞。另外,可選地,非復(fù)制數(shù)據(jù)塊或數(shù)據(jù)包還可作為新參考數(shù)據(jù)塊或數(shù)據(jù)包被插入至用于冗余檢驗(yàn)?zāi)康牡拇鎯Φ男畔⑿蛄兄小?/p>
有益地,冗余檢驗(yàn)值可通過多種方式計(jì)算,但是主要考慮的是,冗余檢驗(yàn)值應(yīng)能夠用足夠的精度辨別非復(fù)制數(shù)據(jù)塊或數(shù)據(jù)包。然而,應(yīng)理解,如果給定任務(wù)可通過使用較少計(jì)算和數(shù)據(jù)存儲資源密集的優(yōu)化算法執(zhí)行,那么通過計(jì)算不必要精確的冗余檢驗(yàn)值來浪費(fèi)編碼器10的處理硬件的計(jì)算資源是沒有益處的。
另外,編碼器10的處理硬件可操作為使用至少一個參考符號來關(guān)聯(lián)相互類似的數(shù)據(jù)塊或數(shù)據(jù)包的重現(xiàn),和/或來指示輸入數(shù)據(jù)(D1)內(nèi)是否存在相互類似的數(shù)據(jù)塊或數(shù)據(jù)包的重現(xiàn)。在這點(diǎn)上,編碼器10的處理硬件可選地可操作為使用一個或多個指示器,用于指示數(shù)據(jù)塊或數(shù)據(jù)包相對于它們的對應(yīng)參考數(shù)據(jù)塊或數(shù)據(jù)包的一個或多個至少部分重現(xiàn)。因此,所述至少一個參考符號被使用作為指向?qū)?yīng)參考數(shù)據(jù)塊或數(shù)據(jù)包的一個或多個指示器。
可選地,一個或多個指示器為一個或多個相對指示器,該相對指示器指示輸入數(shù)據(jù)(D1)內(nèi)數(shù)據(jù)塊或數(shù)據(jù)包的一個或多個至少部分重現(xiàn)與對應(yīng)參考數(shù)據(jù)塊或數(shù)據(jù)包的相關(guān)距離。換言之,一個或多個指示器可選地指示數(shù)據(jù)塊或數(shù)據(jù)包的一個或多個至少部分重現(xiàn)相對于輸入數(shù)據(jù)(D1)內(nèi)的對應(yīng)參考數(shù)據(jù)塊或數(shù)據(jù)包的位置。
可選地,一個或多個指示器包括具體位置的參考地址,這里可獲得與它們的對應(yīng)參考數(shù)據(jù)塊或數(shù)據(jù)包相關(guān)的信息。可選地,一個或多個指示器包括在對編碼數(shù)據(jù)(E2)解碼以重建解碼數(shù)據(jù)(D3)時(shí)需要使用的信息塊的參考地址。換言之,一個或多個指示器指向它們的對應(yīng)參考數(shù)據(jù)塊或數(shù)據(jù)包的數(shù)據(jù)存儲器位置。
另外,可選地,一個或多個指示器可表示為以下所列中的至少一種:字節(jié)精確指示器(即直接尋址)、數(shù)據(jù)值精確指示器、字精確指示器、或塊精確指示器(即,基于許多給定塊的尋址)??蛇x地,指示重現(xiàn)的地點(diǎn)(即“指示器”)可以相關(guān)的方式進(jìn)行,諸如借助相關(guān)的每塊符號值(即通過使用相關(guān)塊精確移位)、相關(guān)字節(jié)精確移位、相關(guān)數(shù)據(jù)值精確移位、以及相關(guān)字精確移位等。
另外,編碼器10的處理硬件可操作為使用多個變化符號作為包括位/標(biāo)記的多個掩碼位以指示輸入數(shù)據(jù)(D1)內(nèi)數(shù)據(jù)塊或數(shù)據(jù)包的部分重現(xiàn)的變化數(shù)據(jù)元素和未變化數(shù)據(jù)元素(即值)以及變化的值。可選地,與未變化數(shù)據(jù)元素有關(guān)的掩碼位設(shè)置為值“0”,而與變化數(shù)據(jù)元素有關(guān)的掩碼位設(shè)置為值“1”,或反之亦然。因而,多個掩碼位描述了哪些數(shù)據(jù)元素是變化的,以及哪些數(shù)據(jù)元素是未變化的??商娲?。變化符號包含與delta值內(nèi)的變化值或非變化值以及值的變化有關(guān)的信息??蛇x地,delta值被分配零“0”值以指示沒有變化,以及被分配非零值以指示變化。
可替代地,可選地,編碼器10的處理硬件可操作為,通過使用指示沒有變化的一個或多個值來表示給定數(shù)據(jù)塊或數(shù)據(jù)包的一個或多個未變化數(shù)據(jù)元素,其中一個或多個值不同于在輸入數(shù)據(jù)(D1)中出現(xiàn)的那些值。
另外,編碼器10的處理硬件可操作為將至少一個參考符號和多個變化符號編碼到編碼數(shù)據(jù)(E2)中??蛇x地,編碼器10的處理硬件可操作為將至少一個參考符號和多個變化符號編碼到多個數(shù)據(jù)流中以提供編碼數(shù)據(jù)(E2)。
如果使用無損耗操作方式,變化數(shù)據(jù)元素照樣被寫入或傳送。如果使用有損耗操作方式,變化數(shù)據(jù)元素被量化。
如果使用接近無損耗操作方式,變化數(shù)據(jù)元素的至少一部分被量化。為此目的,編碼器10的處理硬件可選地可操作為根據(jù)輸入數(shù)據(jù)(D1)的內(nèi)容、類型和/或組成的分析,量化變化數(shù)據(jù)元素的僅一些部分。因而,編碼器10能夠適應(yīng)性地改變輸入數(shù)據(jù)(D1)和編碼數(shù)據(jù)(E2)之間的數(shù)據(jù)壓縮比。
另外,變化數(shù)據(jù)元素被編碼為例如以下中的至少一種:原始數(shù)據(jù)值、量化的原始數(shù)據(jù)值、delta值、量化的delta值、ODelta值、或量化的ODelta值。在本文中,“ODelta”指的是基于在二進(jìn)制計(jì)數(shù)方法中概括的進(jìn)行編碼的微分形式,例如在專利文獻(xiàn)GB1303661.1中所描述的,該專利通過引用并入本文。
可選地,當(dāng)原始值、delta值或ODelta值用于寫入和傳遞關(guān)于參考數(shù)據(jù)塊或數(shù)據(jù)包的變化數(shù)據(jù)元素時(shí),未變化數(shù)據(jù)元素例如設(shè)置為值“0”以指示沒有變化,或設(shè)置為不另外出現(xiàn)于數(shù)據(jù)中的值。當(dāng)使用原始值但要求傳遞不另外出現(xiàn)于數(shù)據(jù)中的值時(shí),后一選擇為更好的解決方案。隨后,變化數(shù)據(jù)元素被設(shè)置為其原始數(shù)據(jù)值或delta值,即在量化或沒有量化的情況下與原始數(shù)據(jù)值和參考數(shù)據(jù)幀、數(shù)據(jù)塊或數(shù)據(jù)包中對應(yīng)數(shù)據(jù)值之差相等的數(shù)據(jù)值。如果變化數(shù)據(jù)元素設(shè)置為原始數(shù)據(jù)值,且該數(shù)據(jù)值正好等于“0”并且“0”還用來指示未變化數(shù)據(jù)元素,那么潛在地出現(xiàn)混亂,即數(shù)據(jù)模糊。因而,在本公開的實(shí)施方式中優(yōu)選采用后一選擇,即使用不另外出現(xiàn)于數(shù)據(jù)中的數(shù)據(jù)值來避免這種模糊。然后,用于指示未變化數(shù)據(jù)元素的數(shù)據(jù)值在編碼數(shù)據(jù)(E2)中傳遞。當(dāng)參考符號用于指示參考數(shù)據(jù)塊或數(shù)據(jù)包,例如一些之前的數(shù)據(jù)塊或數(shù)據(jù)包時(shí),在GB141 1451.6中描述的方法是本公開的實(shí)施方式可使用的方法的好示例。
如果使用有損耗操作方式,即使用了量化的形式,并且同時(shí)更新或增加參考符號,那么有益的是,當(dāng)形成參考數(shù)據(jù)塊時(shí)編碼器10的處理硬件考慮將引起對應(yīng)解碼數(shù)據(jù)(D3)解量化的那些變化。有益地,當(dāng)用量化的原始值傳遞變化數(shù)據(jù)元素時(shí),在確定待用于指示未變化數(shù)據(jù)元素的數(shù)據(jù)值時(shí)還考慮量化效果。當(dāng)量化的delta值或量化的ODelta值用來傳遞變化數(shù)據(jù)元素時(shí),那么當(dāng)零用于未變化數(shù)據(jù)元素時(shí),量化有益地不將變化的值變?yōu)榱恪?/p>
另外,可選地,編碼器10包括附加編碼單元,附加編碼單元用于將至少一個參考符號以及多個變化符號中的至少一部分編碼到編碼數(shù)據(jù)(E2)中??蛇x地,附加編碼單元可操作為使用以下中的至少一個:熵調(diào)整編碼、delta編碼、ODelta編碼、1u或8u區(qū)間編碼、行程長度編碼(RLE)、拆分行程長度編碼(SRLE)、插值編碼。
此外,可選地,編碼器10可操作為將編碼數(shù)據(jù)(E2)通信至數(shù)據(jù)服務(wù)器和/或數(shù)據(jù)存儲器(在圖1中未示出),用于存儲在數(shù)據(jù)庫(在圖1中未示出)中。數(shù)據(jù)服務(wù)器和/或數(shù)據(jù)存儲器設(shè)置為能夠訪問解碼器20,其有益地與編碼器10兼容以用于隨后對編碼數(shù)據(jù)(E2)進(jìn)行解碼。
在一些示例中,可選地,解碼器20可操作為從數(shù)據(jù)服務(wù)器和/或數(shù)據(jù)存儲器訪問編碼數(shù)據(jù)(E2)。
在替代的示例中,可選地,編碼器10可操作為通過通信網(wǎng)絡(luò)或通過直接連接,將編碼數(shù)據(jù)(E2)傳遞至解碼器20。另外,應(yīng)注意,設(shè)置有基于硬件的或基于軟件的編碼器的設(shè)備還可與設(shè)置有基于硬件的或基于軟件的解碼器的另一設(shè)備直接通信。
在另一些替代示例中,可選地,解碼器20被執(zhí)行以從諸如硬盤和固態(tài)存儲器(SSD)的非暫時(shí)性(即非瞬時(shí)性)計(jì)算機(jī)可讀存儲介質(zhì)中獲取編碼數(shù)據(jù)(E2)。
解碼器20包括用于處理編碼數(shù)據(jù)(E2)的處理硬件。
可選地,解碼器20的處理硬件可操作為在編碼數(shù)據(jù)(E2)內(nèi)接收指示數(shù)據(jù)塊或數(shù)據(jù)包的尺寸的信息。
解碼器20的處理硬件可操作為對編碼數(shù)據(jù)(E2)進(jìn)行解碼,以識別至少一個參考符號以及多個變化符號??蛇x地,解碼器20的處理硬件可操作為對來自編碼數(shù)據(jù)(E2)內(nèi)提供的多個數(shù)據(jù)流的至少一個參考符號以及多個變化符號進(jìn)行解碼。
可選地,解碼器20的處理硬件可操作為對編碼數(shù)據(jù)(E2)解碼,以識別一個或多個指示器,所述指示器指示數(shù)據(jù)塊或數(shù)據(jù)包相對于它們的對應(yīng)參考數(shù)據(jù)包或數(shù)據(jù)塊的一個或多個至少部分重現(xiàn)。
解碼器20的處理硬件然后可操作為使用至少一個參考符號,即一個或多個指示器,以生成用于編碼數(shù)據(jù)(E2)內(nèi)的數(shù)據(jù)塊或數(shù)據(jù)包的至少部分重現(xiàn)的數(shù)據(jù)。一個或多個指示器可選地為一個或多個相對指示器,使得解碼器20的處理硬件能夠確定數(shù)據(jù)塊或數(shù)據(jù)包相對于它們的對應(yīng)參考數(shù)據(jù)包或數(shù)據(jù)塊的至少部分重現(xiàn)的位置。
另外,解碼器20的處理硬件可操作為使用多個變化符號作為多個掩碼位,以生成用于編碼數(shù)據(jù)(E2)內(nèi)的數(shù)據(jù)塊或數(shù)據(jù)包的部分重現(xiàn)的變化數(shù)據(jù)元素的數(shù)據(jù)。可替代地,使用的變化符號包含與delta值內(nèi)的變化值或無變化值以及值的變化有關(guān)的信息。
可替代地,可選地,解碼器20的處理硬件可操作為對來自指示無變化的一個或多個值的給定數(shù)據(jù)塊或數(shù)據(jù)包的一個或多個未變化數(shù)據(jù)元素解碼,其中該一個或多個值與解碼數(shù)據(jù)(D3)中出現(xiàn)的那些值不同。
隨后,解碼器20的處理硬件可操作為集合針對數(shù)據(jù)塊或數(shù)據(jù)包的至少部分重現(xiàn)所生成的數(shù)據(jù)以及針對數(shù)據(jù)塊或數(shù)據(jù)包的部分重現(xiàn)的變化數(shù)據(jù)元素所生成的數(shù)據(jù),以生成解碼數(shù)據(jù)(D3)。
可選地,解碼數(shù)據(jù)(D3)設(shè)置為以下中的至少一種:一維數(shù)據(jù)、多維數(shù)據(jù)、音頻數(shù)據(jù)、圖像數(shù)據(jù)、視頻數(shù)據(jù)、傳感器數(shù)據(jù)、文本數(shù)據(jù)、二進(jìn)制數(shù)據(jù)、醫(yī)學(xué)數(shù)據(jù),但是不限于此。
另外,可選地,解碼器20包括附加解碼單元,附加解碼單元用于對來自編碼數(shù)據(jù)(E2)的至少一個參考符號以及多個變化符號的至少一部分解碼??蛇x地,附加解碼單元可操作為使用以下中的至少一種:熵調(diào)整解碼、delta解碼、ODelta解碼、1u或8u區(qū)間解碼、行程長度解碼、拆分行程長度解碼、插值解碼。
此外,出現(xiàn)在編碼器10和解碼器20中的數(shù)據(jù)處理方法可選地包括關(guān)于專利申請GB1411451.6中描述的子方法,上述專利通過引用并入本文,其中在表1中提供該專利申請的子方法。
表1:編碼器10和解碼器20中使用的子方法
圖1僅為示例,不應(yīng)過度地限制本文中權(quán)利要求的范圍。應(yīng)理解的是,用于編解碼器30的具體指示被提供為示例,并不應(yīng)解釋為將編解碼器30限制為編碼器和解碼器的特定標(biāo)號、類型或設(shè)置。本領(lǐng)域技術(shù)人員將領(lǐng)會到本公開的實(shí)施方式的許多變化、替代以及修改。
可選地,編解碼器30在單個設(shè)備內(nèi)實(shí)現(xiàn)??商娲?,可選地,編解碼器30在多個設(shè)備之間有效地實(shí)現(xiàn)。在示例中,編解碼器30可選地實(shí)現(xiàn)為廣播系統(tǒng),其中,在第一空間位置處存在編碼器10,在其他空間位置處存在多個解碼器20。
編解碼器30可實(shí)現(xiàn)為以下中的至少一種:數(shù)據(jù)編解碼器、音頻編解碼器、圖像編解碼器和/或視頻編解碼器。編解碼器30能夠在預(yù)處理階段實(shí)時(shí)地壓縮輸入數(shù)據(jù)(D1)。
另外,編解碼器30可實(shí)現(xiàn)為提供實(shí)時(shí)數(shù)據(jù)傳送網(wǎng)絡(luò)編碼方法,該編碼方法特別在基于請求響應(yīng)型通信的系統(tǒng)中可顯著地節(jié)省數(shù)據(jù)傳送所需的帶寬,請求響應(yīng)型通信諸如為用在網(wǎng)絡(luò)瀏覽器和萬維網(wǎng)(www)服務(wù)器中用于數(shù)據(jù)傳送的超級文本傳輸協(xié)議(HTTP)[6]。除了HTTP協(xié)議之外,實(shí)時(shí)消息傳輸協(xié)議(RTMP)[7]經(jīng)常用于音頻和視頻傳遞服務(wù)中以及回放視頻服務(wù)中進(jìn)行實(shí)時(shí)全雙工數(shù)據(jù)傳送。因而,編解碼器30與基于HTTP的數(shù)據(jù)通信系統(tǒng)和基于RTMP的數(shù)據(jù)通信系統(tǒng)有關(guān)。
另外,可選地,編碼器10和解碼器10可操作為實(shí)現(xiàn)用于HTTP和/或RTMP的區(qū)塊傳送編碼??蛇x地,HTTP和/或RTMP使用請求和對請求的響應(yīng)內(nèi)的固定尺寸的數(shù)據(jù)塊和/或數(shù)據(jù)包。
編解碼器30特別適合于用于傳送尺寸被準(zhǔn)確設(shè)置的數(shù)據(jù)塊或數(shù)據(jù)包的通信協(xié)議。例如,因?yàn)樵趨^(qū)塊傳送編碼中傳送的請求和對請求的響應(yīng)使用了固定尺寸的數(shù)據(jù)塊或數(shù)據(jù)包,所以在HTTP中使用區(qū)塊傳送編碼是最佳使用區(qū)域。由于在HTTP上傳送大量的數(shù)據(jù),所以當(dāng)使用編碼器10對輸入數(shù)據(jù)(D1)編碼以生成對應(yīng)編碼數(shù)據(jù)(E2)時(shí),將實(shí)現(xiàn)相當(dāng)高的數(shù)據(jù)壓縮比率。
對于本公開的實(shí)施方式,通過使用HTTP獲得的另一好處在于,幾乎無一例外,HTTP請求/響應(yīng)包含與正在傳送什么以及何時(shí)傳送有關(guān)的精確信息。這使得能夠選擇用于在對輸入數(shù)據(jù)(D1)進(jìn)行編碼期間使用的最優(yōu)冗余檢驗(yàn)表。這潛在地提高了可實(shí)現(xiàn)的關(guān)聯(lián)數(shù)據(jù)壓縮比率。
類似于HTTP,RTMP還限定了與具有特定限定尺寸的數(shù)據(jù)塊或數(shù)據(jù)包的傳送有關(guān)的規(guī)格。在互聯(lián)網(wǎng)上,RTMP經(jīng)常用來傳送音頻、圖像或視頻信息,特別是在實(shí)時(shí)通信中。在通信過程期間,用于待傳送的數(shù)據(jù)塊或數(shù)據(jù)包的尺寸根據(jù)采用的傳送網(wǎng)絡(luò)的響應(yīng)時(shí)間和容量以預(yù)置間隔初始化。這潛在地提高了可實(shí)現(xiàn)的數(shù)據(jù)壓縮比。
如果使用了傳送網(wǎng)絡(luò),并且給定的發(fā)送方還不清楚是否將采用根據(jù)本公開的編碼方法,那么有可能實(shí)現(xiàn)轉(zhuǎn)換用于數(shù)據(jù)接收器的信息的代理服務(wù)器,在這樣情況下可在可能緩慢的接收器與快速的發(fā)射器之間實(shí)現(xiàn)期望的壓縮比。在這個方案中,代理服務(wù)器通過將參考符號連同變化數(shù)據(jù)元素一起以及數(shù)據(jù)塊或數(shù)據(jù)包中變化的和未變化數(shù)據(jù)元素的掩碼位或其他指示發(fā)送至接收器,向接收器通知至少一個先前發(fā)送的數(shù)據(jù)塊或數(shù)據(jù)包的未變化數(shù)據(jù)元素。
在示例中,代理服務(wù)器為HTTP代理服務(wù)器或RTMP代理服務(wù)器,其相對于待優(yōu)化的關(guān)聯(lián)數(shù)據(jù)提供服務(wù)以及待服務(wù)的關(guān)聯(lián)用戶而位于最優(yōu)地理位置處??蛇x地,采用根據(jù)本公開的實(shí)施方式的方法以使得諸如Windows Azure[8]的現(xiàn)成云端服務(wù)器方案更有效率。
在最近幾年(2010+)期間,數(shù)據(jù)、音頻、圖像以及視頻傳送的數(shù)量增加很快,以至于即使摩爾定律[9]也不能跟上這種發(fā)展。因而,編解碼器30可能對更有效地傳送數(shù)據(jù)非常有用。
僅為了說明的目的,接下來提供在編碼器10中執(zhí)行的編碼方法的數(shù)字示例。在這個示例中,輸入數(shù)據(jù)(D1)包括可對應(yīng)于單獨(dú)的音頻數(shù)據(jù)包、單獨(dú)的圖像塊、HTTP包頭等數(shù)據(jù)值。輸入數(shù)據(jù)(D1)包括五個幀/塊/包,其中每個幀/塊/包包含54個數(shù)據(jù)值。應(yīng)理解輸入數(shù)據(jù)(D1)具有270個數(shù)據(jù)值,例如來自拆分成18×3個數(shù)據(jù)塊的18×15圖像。這導(dǎo)致分成五個數(shù)據(jù)塊,每個數(shù)據(jù)塊具有54個數(shù)據(jù)值??商娲兀瑸榱藟嚎s目的,輸入數(shù)據(jù)(D1)還可認(rèn)為是來自通過例如在美國專利文獻(xiàn)US 8,675,731 B2中描述的塊編碼器生成的某一數(shù)據(jù)流的270個數(shù)據(jù)值,上述專利通過引用并入本文。
輸入數(shù)據(jù)(D1)包括270個數(shù)據(jù)值(熵等于1428.35比特~=179字節(jié)),并且表示如下:
0,12,41,157,180,29,0,16,243,42,42,172,8,0,69,0,0,40,120,250,64,0,
118,6,206,99,62,241,193,52,172,16,17,60,34,201,192,220,189,31,183,3,
31,254,192,146,80,16,0,254,185,9,0,0,0,12,41,157,180,29,0,16,243,42,
42,172,8,0,69,0,0,40,121,13,64,0,118,6,206,80,62,241,193,52,172,16,
17,60,34,201,192,220,189,31,183,3,31,254,201,204,80,16,1,2,175,204,
0,0,0,12,41,157,180,29,0,16,243,42,42,172,8,0,69,0,0,40,121,17,64,0,
118,6,206,76,62,241,193,52,172,16,17,60,34,201,192,220,189,31,183,3,
31,254,209,65,80,16,1,2,168,87,0,0,0,12,41,157,180,29,0,16,243,42,
42,172,8,0,69,0,0,40,121,25,64,0,118,6,206,68,62,241,193,52,172,16,
17,60,34,201,192,220,189,31,183,3,31,254,221,164,80,16,1,2,155,244,
0,0,0,12,41,157,180,29,0,16,243,42,42,172,8,0,69,0,0,40,121,67,64,0,
118,6,206,26,62,241,193,52,172,16,17,60,34,201,192,220,189,31,183,3,
31,254,233,149,80,16,1,2,144,3,0,0
可選地,輸入數(shù)據(jù)(D1)通過使用8u區(qū)間編碼方法例如熵編碼為253字節(jié)。通過參照這種8u區(qū)間編碼,這意味著其是在根據(jù)本公開的編解碼器中對8位數(shù)據(jù)值編碼的區(qū)間編碼方法。區(qū)間編碼在http://en.wikipedia.org/wiki/Range_coding中進(jìn)行了解釋,上述網(wǎng)址中內(nèi)容通過引用并入本文。
現(xiàn)在,這個結(jié)果還包括在根據(jù)本公開的編解碼器中發(fā)送當(dāng)前22個替代的固定概率表中的概率表或相當(dāng)好的固定表。如果已知較好的概率表并且需要發(fā)送和/或接近較少適用的概率表時(shí),那么區(qū)間編碼數(shù)據(jù)的共享有益地非常接近于熵,即在這個示例中為179字節(jié)。
為了確定用于數(shù)據(jù)塊的最佳尺寸(以下稱為“最佳數(shù)據(jù)塊尺寸”),編碼器10的處理硬件操作為通過尺寸為7的初始數(shù)據(jù)塊執(zhí)行初始運(yùn)行。有益地,初始數(shù)據(jù)塊尺寸選擇為相對小的數(shù)字,例如在3至8的范圍內(nèi),以便能夠精確檢測最佳數(shù)據(jù)塊尺寸。例如,數(shù)據(jù)塊尺寸7導(dǎo)致如下所示的39個數(shù)據(jù)塊:
270=38×7+4
其中,38個數(shù)據(jù)塊具有尺寸為7的數(shù)據(jù)值,以及最后一個數(shù)據(jù)塊具有尺寸為4的數(shù)據(jù)值。
對于給定數(shù)據(jù)塊,參考符號“1”用于到達(dá)給定數(shù)據(jù)塊之前的一個數(shù)據(jù)塊的對應(yīng)參考數(shù)據(jù)塊。同樣地,如果參考數(shù)據(jù)塊到達(dá)給定數(shù)據(jù)塊之前的一個數(shù)據(jù)塊和一個數(shù)據(jù)值,則使用參考符號“2”。因而,參考符號指示參考數(shù)據(jù)塊相對于給定數(shù)據(jù)塊的位置。
應(yīng)理解的是,給定數(shù)據(jù)塊的尺寸可以以許多不同方式而認(rèn)為是最優(yōu)的。然而,通常期望在復(fù)制之后將編碼數(shù)據(jù)尺寸優(yōu)化(例如最小化)。通常通過努力尋找盡可能大的且還可產(chǎn)生盡可能多的待復(fù)制的數(shù)據(jù)塊的數(shù)據(jù)塊尺寸來很好地完成這種優(yōu)化。接下來的部分描述確定幾乎最優(yōu)的數(shù)據(jù)塊尺寸的一種方式的示例。根據(jù)本公開,還可使用其他方法來確定最優(yōu)數(shù)據(jù)塊尺寸。
另外,應(yīng)理解在待編碼的數(shù)據(jù)是周期性的情況下,最優(yōu)數(shù)據(jù)塊尺寸通常是該周期的長度、該周期長度的倍數(shù),或者其倍數(shù)將大致等于該周期長度的一些數(shù)。
根據(jù)本公開,如果塊/周期連續(xù)地同樣重復(fù)多次,那么乘以待復(fù)制的所選元素和重復(fù)的計(jì)數(shù)也是可能的。當(dāng)對數(shù)據(jù)編碼時(shí),這可能在許多情況下產(chǎn)生有效的結(jié)果,但是主要地,這可通過對復(fù)制符號進(jìn)行熵編碼或通過執(zhí)行遞歸復(fù)制更容易且便利地進(jìn)行。
為了清晰起見,下列列出了第9數(shù)據(jù)塊的示例并且在其對應(yīng)的參考數(shù)據(jù)塊下添加了下劃線:
0,12,41,157,180,29,0,15,243,42,42,172,6,0,69,0,0,40,120,250,64,0,
118,6,206,99,62,241,193,52,172,16,17,60,34,201,192,220,189,31,183,3,
31,254,192,146,80,16,0,254,185,9,0,0,0,12,41,157,180,29,0,16,243,42,
42,172,8,0,69,0,0,40,121,13,64,0,118,6,206,80,62,241,193,52,172,16,
17,60,34,201,192,220,189,31,183,3,31,254,201,204,80,16,1,2,175,204,
0,0,0,12,41,157,180,29,0,16,243,42,42,172,8,0,69,0,0,40,121,17,64,0,
118,6,206,76,62,241,193,52,172,16,17,60,34,201,192,220,189,31,183,3,
31,254,209,65,80,16,1,2,168,87,0,0,0,12,41,157,180,29,0,16,243,42,
42,172,8,0,69,0,0,40,121,25,64,0,118,6,206,68,62,241,193,52,172,16,
17,60,34,201,192,220,189,31,183,3,31,254,221,164,80,16,1,2,155,244,
0,0,0,12,41,157,180,29,0,16,243,42,42,172,8,0,69,0,0,40,121,67,64,0,
118,6,206,26,62,241,193,52,172,16,17,60,34,201,192,220,189,31,183,3,
31,254,233,149,80,16,1,2,144,3,0,0
應(yīng)理解的是,實(shí)際的參考數(shù)據(jù)塊通常從解碼數(shù)據(jù)獲得,但是,因?yàn)檫@個數(shù)據(jù)現(xiàn)在是無損編碼,那么原始數(shù)據(jù)值還可用于參考數(shù)據(jù)塊。當(dāng)參考數(shù)據(jù)塊到達(dá)示例性數(shù)據(jù)塊之前的48個數(shù)據(jù)值時(shí),參考符號“48”被分配至示例性數(shù)據(jù)塊。
在這個示例中,可選地通過使用下列方程使用數(shù)據(jù)值精確參考索引來計(jì)算參考數(shù)據(jù)塊的第一索引:
first_index_of_reference_data_block=first_index_of_current_data_block+
block_size+reference_symbol-
number_of_nearest_reference.
(參考數(shù)據(jù)塊的第一索引=當(dāng)前數(shù)據(jù)塊的第一索引+塊尺寸+參考符號-最近的參考的數(shù)量)
對于第9數(shù)據(jù)塊的示例,方程得到諸如以下的值:
56+7+48-1=2
其中,當(dāng)前數(shù)據(jù)塊的第一索引由下列方程計(jì)算:
first_index_of_current_data_block=(number_of_current_data_block-1)*
block_size,
(當(dāng)前數(shù)據(jù)塊的第一索引=(當(dāng)前數(shù)據(jù)塊的數(shù)量-1)*數(shù)據(jù)塊尺寸)
其中,例如,當(dāng)前數(shù)據(jù)塊的數(shù)量為9,并且數(shù)據(jù)塊尺寸為7。已添加下劃線的第9數(shù)據(jù)塊的參考符號,即“48”也來自下一章之后的參考符號。
應(yīng)理解,第一數(shù)據(jù)塊不具有對應(yīng)的參考數(shù)據(jù)塊,因而不分配參考符號。然而,最后一個數(shù)據(jù)塊被分配其對應(yīng)的參考符號。還應(yīng)理解,最后一個數(shù)據(jù)塊是不完整的,因而參考數(shù)據(jù)塊的僅四個第一數(shù)據(jù)元素的數(shù)據(jù)值用于對最后一個數(shù)據(jù)塊進(jìn)行編碼。因而,38個參考符號被分配如下:
0,0,0,0,0,0,31,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,
48,48,48,48,48,48,48,48,48,48,48,48,48,34
編碼器10的處理硬件然后操作以計(jì)算最佳數(shù)據(jù)塊尺寸,例如如下:
<最普通參考符號>+<初始數(shù)據(jù)塊尺寸>-<用于最近的可能參考塊的參考符號>
=48+7-1=54
應(yīng)理解,在這個具體情況中,用于該具體數(shù)據(jù)列的最優(yōu)塊尺寸計(jì)算為54,該值也是這個數(shù)據(jù)列的重復(fù)周期的長度。其他適合的數(shù)據(jù)塊尺寸例如為:
162,108,27,18,9,6
可選地,在最佳塊尺寸方程式中也可使用經(jīng)常出現(xiàn)且具有比最普通參考符號更小的值的其它參考符號以代替最普通參考符號,以使得能夠?qū)^大數(shù)量的小數(shù)據(jù)塊進(jìn)行復(fù)制。應(yīng)理解,最近的參考的數(shù)量有益地不用作最普通的參考數(shù)使用,因?yàn)槠淇赡苁艿筋愃茢?shù)據(jù)值的長連續(xù)集的影響,并且因而其可能是子最優(yōu)的。
以這種方式,編碼方法包括在數(shù)據(jù)塊自己的尺寸內(nèi)尋找數(shù)據(jù)塊的重現(xiàn),以使得數(shù)據(jù)塊不需要分成較小的數(shù)據(jù)段,即與已知的滑動搜索法類似。同樣顯然的是,這樣不需要在具有全部長度和所有位置的所有先前存儲的信息中反復(fù)地搜索復(fù)制的數(shù)據(jù)塊,這會浪費(fèi)寶貴的計(jì)算時(shí)間和資源。
應(yīng)理解,在計(jì)算用于數(shù)據(jù)塊或包的最佳尺寸時(shí),如果找到相當(dāng)小但不為1的參考值以及許多使用的參考值,那么通常有益的是使用這些值來代替最常用的參考值。還應(yīng)理解的是,有益地用相對小的數(shù)據(jù)塊或數(shù)據(jù)包尺寸來執(zhí)行初步搜索,以使得不丟失短的參考,但是無論如何用足夠大的數(shù)據(jù)塊或數(shù)據(jù)包尺寸進(jìn)行初步搜索,以使得相同數(shù)據(jù)值的冗長鏈不導(dǎo)致第一參考值變?yōu)樽钇胀ǖ囊粋€。在這種狀況出現(xiàn)的情況中,有益地是選擇一些經(jīng)常出現(xiàn)的小的、但比1大的值,來計(jì)算用于數(shù)據(jù)塊或數(shù)據(jù)包的最佳尺寸以代替最普遍使用的參考。
現(xiàn)在,編碼器10的處理硬件操作為通過最佳塊尺寸,即為54的數(shù)據(jù)塊尺寸執(zhí)行下一運(yùn)行。這產(chǎn)生如下的五個數(shù)據(jù)塊:
0,12,41,157,180,29,0,16,243,42,42,172,8,0,69,0,0,40,120,250,64,0,
118,6,206,99,62,241,193,52,172,16,17,60,34,201,192,220,189,31,183,3,
31,254,192,146,80,16,0,254,185,9,0,0,
0,12,41,157,180,29,0,16,243,42,42,172,8,0,69,0,0,40,121,13,64,0,118,
6,206,80,62,241,193,52,172,16,17,60,34,201,192,220,189,31,183,3,31,
254,201,204,80,16,1,2,175,204,0,0,
0,12,41,157,180,29,0,16,243,42,42,172,8,0,69,0,0,40,121,17,64,0,118,
6,206,76,62,241,193,52,172,16,17,60,34,201,192,220,189,31,183,3,31,
254,209,65,80,16,1,2,168,87,0,0,
0,12,41,157,180,29,0,16,243,42,42,172,8,0,69,0,0,40,121,25,64,0,118,
6,206,68,62,241,193,52,172,16,17,60,34,201,192,220,189,31,183,3,31,
254,221,164,80,16,1,2,155,244,0,0,
0,12,41,157,180,29,0,16,243,42,42,172,8,0,69,0,0,40,121,67,64,0,118,
6,206,26,62,241,193,52,172,16,17,60,34,201,192,220,189,31,183,3,31,
254,233,149,80,16,1,2,144,3,0,0
在上文中,為了清晰起見,已對數(shù)據(jù)塊的部分重現(xiàn)的變化數(shù)據(jù)元素添加了下劃線。
另外,為了清晰起見,與最后四個數(shù)據(jù)塊的216個數(shù)據(jù)元素有關(guān)的216個掩碼位(54×4=216)表示如下:
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0
在上文中,與未變化數(shù)據(jù)元素有關(guān)的掩碼位設(shè)置為值“0”,而與變化數(shù)據(jù)元素有關(guān)的掩碼位設(shè)置為值“1”。
編碼器10的處理硬件然后操作為將變化數(shù)據(jù)元素的數(shù)據(jù)值、與變化的和未變化數(shù)據(jù)元素有關(guān)的掩碼位、以及與相互類似的數(shù)據(jù)塊的部分重現(xiàn)有關(guān)的參考符號編碼到多個數(shù)據(jù)流中,以提供編碼數(shù)據(jù)(E2)。在本示例中,多個數(shù)據(jù)流包括如下表示的第一數(shù)據(jù)流、第二數(shù)據(jù)流、以及第三數(shù)據(jù)流。
第一數(shù)據(jù)流包括第一數(shù)據(jù)塊的54個數(shù)據(jù)元素的數(shù)據(jù)值以及在后續(xù)數(shù)據(jù)塊中的27個變化數(shù)據(jù)元素的數(shù)據(jù)值(熵=460.24位~=58字節(jié)),并且表示如下:
0,12,41,157,180,29,0,16,243,42,42,172,8,0,69,0,0,40,120,250,64,0,
118,6,206,99,62,241,193,52,172,16,17,60,34,201,192,220,189,31,183,3,
31,254,192,146,80,16,0,254,185,9,0,0,121,13,80,201,204,1,2,175,204,
17,76,209,65,168,87,25,68,221,164,155,244,67,26,233,149,144,3
第二數(shù)據(jù)流包括27字節(jié)(216/8=27),表示與后續(xù)數(shù)據(jù)塊的216個數(shù)據(jù)元素有關(guān)的216個掩碼位(熵=117.41位~=15字節(jié)),并且表示如下:
0,0,12,2,0,48,15,0,0,130,0,0,12,3,0,128,32,0,0,195,0,0,32,8,0,192,
48
第三數(shù)據(jù)流包括指示用于后續(xù)數(shù)據(jù)塊(熵=0位~=0字節(jié))的對應(yīng)參考數(shù)據(jù)塊的四個參考符號,并且表示如下:
1,1,1,1
這些參考符號指示第一數(shù)據(jù)塊是用于第二數(shù)據(jù)塊的對應(yīng)參考數(shù)據(jù)塊,第二數(shù)據(jù)塊是用于第三數(shù)據(jù)塊的對應(yīng)參考數(shù)據(jù)塊,諸如此類。在本文中,參考符號用作相對指示器,相對指示器指示數(shù)據(jù)塊相對于它們的對應(yīng)參考數(shù)據(jù)塊或數(shù)據(jù)包的位置。
由于參考符號根據(jù)它們何時(shí)順序出現(xiàn)進(jìn)行排序,所以顯著地降低了通過第三數(shù)據(jù)流產(chǎn)生的熵。在替代的實(shí)現(xiàn)中,當(dāng)參考符號以適應(yīng)性次序順序地出現(xiàn)時(shí),參考符號可選地插入表中。在這種情況下,第三數(shù)據(jù)流可有效地被delta編碼。
在期望僅參考之前的數(shù)據(jù)塊或數(shù)據(jù)包(即,恰好在給定數(shù)據(jù)塊或數(shù)據(jù)包之前到達(dá)的數(shù)據(jù)塊或數(shù)據(jù)包)的情況下,第三數(shù)據(jù)流不必寫入或傳送至編碼數(shù)據(jù)(E2)中。
也可以總是由塊間數(shù)據(jù)值計(jì)算ODelta值的方式,通過使用一個或多個ODelta編碼方法實(shí)現(xiàn)相同的示例。因而,不需要單獨(dú)的掩碼位(即,第二數(shù)據(jù)流),也不需要變化的值(即,第一數(shù)據(jù)流)。相反,通過使用ODelta值使用僅包含對應(yīng)信息的第三數(shù)據(jù)流。在編碼的ODelta值的第三數(shù)據(jù)流中,零“0”值對應(yīng)于未變化的值,即零掩碼位,以及另一編碼的ODelta值對應(yīng)于變化的值,即掩碼中具有值“1”位。然而,這種對應(yīng)性以這樣的方式計(jì)算,即通常可通過讀取當(dāng)前編碼的ODelta值直接知道ODelta值是出現(xiàn)變化,這確保了可對ODelta值解碼。當(dāng)使用Odelta編碼時(shí),可通過“0”用作最小值、“255”用作最大值并且“256”用作約束值的如下流代替以上最后一個示例中的第一數(shù)據(jù)流和第二數(shù)據(jù)流:
0,12,41,157,180,29,0,16,243,42,42,172,8,0,69,0,0,40,120,250,64,0,
118,6,206,99,62,241,193,52,172,16,17,60,34,201,192,220,189,31,183,3,
31,254,192,146,80,16,0,254,185,9,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,19,0,0,0,0,0,237,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,9,58,0,0,1,4,246,195,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,252,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,8,117,0,0,0,0,249,139,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,248,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,12,99,0,0,0,0,243,157,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,0,0,0,0,0,212,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,12,241,0,0,0,0,245,15,0,0
上述列出的數(shù)據(jù)流可通過例如使用區(qū)間編碼、SMRLE編碼或VLC編碼有效地壓縮。還應(yīng)理解,可選地,可使用其他壓縮方法對關(guān)注的編碼ODelta值的熵進(jìn)行編碼。
上述編碼方法比已知的數(shù)據(jù)刪除復(fù)制方法明顯更有成本效率,因?yàn)樗鼈儩撛诘啬軌颍?/p>
(i)除完全復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包之外,發(fā)現(xiàn)部分復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包;以及
(ii)僅對編碼數(shù)據(jù)(E2)中的變化數(shù)據(jù)元素進(jìn)行編碼。
與輸入數(shù)據(jù)(D1)相比,僅寫入或傳送編碼數(shù)據(jù)(E2)中的變化數(shù)據(jù)元素減少了處理編碼數(shù)據(jù)(E2)、編碼數(shù)據(jù)(E2)內(nèi)的大量編碼字節(jié)和編碼數(shù)據(jù)(E2)的熵[1,2]所需的時(shí)間。因而,與已知數(shù)據(jù)刪除復(fù)制方法相比,實(shí)現(xiàn)了明顯高的數(shù)據(jù)壓縮比。
根據(jù)本公開的實(shí)施方式,當(dāng)輸入數(shù)據(jù)(D1)為多維數(shù)據(jù)時(shí),數(shù)據(jù)值在數(shù)據(jù)塊中限定的次序同樣是重要性能。僅為了說明的目的,現(xiàn)在認(rèn)為二維(2D)圖像數(shù)據(jù)具有16×16數(shù)據(jù)值,該數(shù)據(jù)值可以兩種方式分成16個數(shù)據(jù)塊,即16個數(shù)據(jù)塊中的每個具有1×16或16×1的數(shù)據(jù)值的第一種情況中,以及16個數(shù)據(jù)塊中的每個具有4×4的數(shù)據(jù)值的第二種情況。應(yīng)理解,第一種情況中不能適當(dāng)?shù)厥褂枚嗑S特征,即數(shù)據(jù)塊之間的空間相關(guān)性,而在第二種情況中可以使用。
另外,可選地,編碼器10的附加編碼單元操作為,通過采用一個或多個適當(dāng)?shù)撵鼐幋a方法進(jìn)一步壓縮三個數(shù)據(jù)流,即第一數(shù)據(jù)流、第二數(shù)據(jù)流以及第三數(shù)據(jù)流。附加地或可替代地,可選地,編碼器10的處理硬件操作為使用上述編碼過程進(jìn)一步遞歸地壓縮三個數(shù)據(jù)流。這在編碼數(shù)據(jù)(E2)中得到了較高的數(shù)據(jù)壓縮程度。
編碼數(shù)據(jù)(E2)然后從編碼器10傳遞至解碼器20。解碼器20的附加解碼單元然后操作為對編碼數(shù)據(jù)(E2)進(jìn)行解壓縮。其后,解碼器20的處理硬件操作為執(zhí)行根據(jù)本公開的實(shí)施方式的解碼過程。由于使用了無損耗操作方式,所以生成與輸入數(shù)據(jù)(D1)完全類似的解碼數(shù)據(jù)(D3)。因而,輸入數(shù)據(jù)(D1)的原始數(shù)據(jù)元素和解碼數(shù)據(jù)(D3)的數(shù)據(jù)元素之間的均方誤差的和為零。
現(xiàn)在將描述編碼器10的有損耗操作方式,使用上述示例的相同的輸入數(shù)據(jù)(D1)。在有損耗操作方式中,可以更加提高數(shù)據(jù)壓縮比。
可選地,在識別數(shù)據(jù)塊或數(shù)據(jù)包的至少部分重現(xiàn)之前,對輸入數(shù)據(jù)(D1)進(jìn)行量化。在使用量化值4的示例情況中,如下列出了相對于為7的初始數(shù)據(jù)塊尺寸所分配的38個參考符號:
1,0,0,0,0,2,33,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,
48,48,48,48,48,48,48,48,48,48,48,48,48,50
在該示例情況中,最佳數(shù)據(jù)塊尺寸為54。
然后如下列所示的,編碼器10的處理硬件操作為將變化數(shù)據(jù)元素的數(shù)據(jù)值、掩碼位以及參考符號編碼成三個數(shù)據(jù)流,以提供編碼數(shù)據(jù)(E2)。
第一數(shù)據(jù)流包括:第一數(shù)據(jù)塊的54個數(shù)據(jù)元素的量化數(shù)據(jù)值,以及在后續(xù)數(shù)據(jù)塊中的25個變化數(shù)據(jù)元素的量化數(shù)據(jù)值,并且表示如下:
0,3,10,39,45,7,0,4,60,10,10,43,2,0,17,0,0,10,30,62,16,0,29,1,51,24,
15,60,48,13,43,4,4,15,8,50,48,55,47,7,45,0,7,63,48,36,20,4,0,63,46,
2,0,0,3,20,50,51,0,43,51,4,19,52,16,42,21,6,17,55,41,38,61,16,6,58,
37,36,0
第二數(shù)據(jù)流包括27字節(jié),其指示與后續(xù)數(shù)據(jù)塊的216個數(shù)據(jù)元素有關(guān)的216個掩碼位,并且表示如下:
0,0,8,2,0,48,14,0,0,130,0,0,12,3,0,128,32,0,0,195,0,0,32,8,0,192,48
第三數(shù)據(jù)流包括指示用于后續(xù)數(shù)據(jù)塊的對應(yīng)參考數(shù)據(jù)塊的四個參考符號,并且表示如下:
1,1,1,1
當(dāng)需要時(shí),解碼器20的處理硬件操作為對編碼數(shù)據(jù)(E2)(即,上述三個數(shù)據(jù)流)進(jìn)行解碼,以生成解碼數(shù)據(jù)(D3)。如此生成的解碼數(shù)據(jù)(D3)表示如下:
0,12,40,156,180,28,0,16,240,40,40,172,8,0,68,0,0,40,120,248,64,0,
116,4,204,96,60,240,192,52,172,16,16,60,32,200,192,220,188,28,180,0,
28,252,192,144,80,16,0,252,184,8,0,0,
0,12,40,156,180,28,0,16,240,40,40,172,8,0,68,0,0,40,120,12,64,0,116,
4,204,80,60,240,192,52,172,16,16,60,32,200,192,220,188,28,180,0,28,
252,200,204,80,16,0,0,172,204,0,0,
0,12,40,156,180,28,0,16,240,40,40,172,8,0,68,0,0,40,120,16,64,0,116,
4,204,76,60,240,192,52,172,16,16,60,32,200,192,220,188,28,180,0,28,
252,208,64,80,16,0,0,168,84,0,0,
0,12,40,156,180,28,0,16,240,40,40,172,8,0,68,0,0,40,120,24,64,0,116,
4,204,68,60,240,192,52,172,16,16,60,32,200,192,220,188,28,180,0,28,
252,220,164,80,16,0,0,152,244,0,0,
0,12,40,156,180,28,0,16,240,40,40,172,8,0,68,0,0,40,120,64,64,0,116,
4,204,24,60,240,192,52,172,16,16,60,32,200,192,220,188,28,180,0,28,
252,232,148,80,16,0,0,144,0,0,0
在上文中,已單獨(dú)示出了五個數(shù)據(jù)塊,并且僅為了清晰起見,已對數(shù)據(jù)塊的部分重現(xiàn)的變化數(shù)據(jù)元素添加了下劃線。
輸入數(shù)據(jù)(D1)的原始數(shù)據(jù)元素和解碼數(shù)據(jù)(D3)的數(shù)據(jù)元素之間的均方誤差之和為535。這對應(yīng)于輸入數(shù)據(jù)(D1)和解碼數(shù)據(jù)(D3)之間的一些數(shù)據(jù)損失。
限定參考符號:
可選地,參考符號“0”用于指示非復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包,即該數(shù)據(jù)塊或數(shù)據(jù)包不是任意之前的數(shù)據(jù)塊或數(shù)據(jù)包的副本。
可選地,當(dāng)有“N”個不同的參考數(shù)據(jù)塊或數(shù)據(jù)包時(shí),使用參考符號“1”至“N”來指示部分復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包,即該數(shù)據(jù)塊或數(shù)據(jù)包是它們相應(yīng)的參考數(shù)據(jù)塊或數(shù)據(jù)包的部分副本。在本文中,“N”為大于1的任意正整數(shù)。
在上文中描述的先前示例中,由于沒有數(shù)據(jù)塊是非復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包,所以不使用參考符號“0”。相反,由于后續(xù)數(shù)據(jù)塊中的每個是其對應(yīng)參考數(shù)據(jù)塊的部分副本,所以使用參考符號“1”。
另外,當(dāng)存在可用于給定數(shù)據(jù)塊或數(shù)據(jù)包的多個參考數(shù)據(jù)塊或數(shù)據(jù)包時(shí),可從多個參考數(shù)據(jù)塊或數(shù)據(jù)包中選擇參考數(shù)據(jù)塊或數(shù)據(jù)包。在選擇期間,無需對所選的參考數(shù)據(jù)塊或數(shù)據(jù)包和給定數(shù)據(jù)塊或數(shù)據(jù)包之間的匹配妥協(xié)的情況下,有益地考慮參考數(shù)據(jù)塊或數(shù)據(jù)包相對于給定數(shù)據(jù)塊或數(shù)據(jù)包的距離,以找到具有下限值的可能的參考符號。
可選地,當(dāng)輸入數(shù)據(jù)(D1)較大和/或在輸入數(shù)據(jù)(D1)中存在大量冗余時(shí),單獨(dú)的參考符號用于完全復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包,即數(shù)據(jù)塊或數(shù)據(jù)包是它們各自的參考數(shù)據(jù)塊或數(shù)據(jù)包的完全副本。
在編碼器10的一個實(shí)現(xiàn)中,當(dāng)存在“N”個不同的參考數(shù)據(jù)塊或數(shù)據(jù)包時(shí),參考符號可選地限定如下:
(i)參考符號“0”用于指示非復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包;
(ii)參考符號“1”至“N”用于指示部分復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包;以及
(iii)參考符號“1+N”至“N+N”用于指示完全復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包。
在本文中為了說明的目的,現(xiàn)將考慮在輸入數(shù)據(jù)(D1)中識別出四個參考數(shù)據(jù)塊的示例。這四個參考數(shù)據(jù)塊被分配如下的參考符號:
參考符號“1”分配至第一參考數(shù)據(jù)塊;
參考符號“2”分配至第二參考數(shù)據(jù)塊;
參考符號“3”分配至第三參考數(shù)據(jù)塊;以及
參考符號“4”分配至第四參考數(shù)據(jù)塊。
在這個示例中,值“N”為4(N=4)。
現(xiàn)在,如果輸入數(shù)據(jù)(D1)中的第五數(shù)據(jù)塊是第二參考數(shù)據(jù)塊的部分副本,那么第五數(shù)據(jù)塊通過使用參考符號“2”表示。如果輸入數(shù)據(jù)(D1)中的第六數(shù)據(jù)塊是第二參考數(shù)據(jù)塊的完全副本,那么第六數(shù)據(jù)塊通過使用參考符號“6”表示,即“2+N”。
在替代的實(shí)現(xiàn)中,可選地使用一位符號來指示給定數(shù)據(jù)塊或數(shù)據(jù)包是否為完全副本或部分副本。除了用于給定數(shù)據(jù)塊或數(shù)據(jù)包的參考符號之外,還使用一位符號。在本文中,參考符號指示用于給定數(shù)據(jù)塊或數(shù)據(jù)包的對應(yīng)參考數(shù)據(jù)塊或數(shù)據(jù)包,而一位符號指示給定數(shù)據(jù)塊或數(shù)據(jù)包是否為對應(yīng)參考數(shù)據(jù)塊或數(shù)據(jù)包的完全副本或部分副本。一位符號具有兩個值,即“0”和“1”。例如,一位符號的“0”值可用于指示部分副本,而一位符號的“1”值可用于指示完全副本,或反之亦然。
在另一些其它的替代實(shí)現(xiàn)方中,可通過使用塊索引、數(shù)據(jù)索引、運(yùn)動向量、數(shù)據(jù)庫參考、編碼方法等來限定部分復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包。
可選地,當(dāng)單獨(dú)的參考符號不用于完全復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包時(shí),則與完全復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包的所有未變化數(shù)據(jù)元素有關(guān)的掩碼位設(shè)置為“0”值。
另一方面,當(dāng)單獨(dú)的參考符號用于指示完全復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包時(shí),完全復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包不需要掩碼位。同樣地,當(dāng)單獨(dú)的參考符號用于指示非復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包時(shí),非復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包不需要掩碼位。
另外,可選地,通過使用如專利申請GB 1222240.2、US 13/715,405中所描述的數(shù)據(jù)庫對掩碼位進(jìn)行編碼,所述專利通過引用并入本文。當(dāng)存在掩碼位重新出現(xiàn)的高可能性時(shí),與同樣地對掩碼位進(jìn)行熵編碼相比較,通過將參考傳遞至掩碼位容易提高數(shù)據(jù)壓縮比。
接下來,還將參照附圖,即圖2至圖5B描述本公開的實(shí)施方式。
圖2是根據(jù)本公開的實(shí)施方式的、對輸入數(shù)據(jù)(D1)進(jìn)行編碼以生成對應(yīng)編碼數(shù)據(jù)(E2)的方法的步驟的圖示。方法描繪為邏輯流程圖中的步驟集合,邏輯流程圖表示可以硬件、軟件、或它們的組合實(shí)現(xiàn)的一系列步驟。
在步驟102處,確定輸入數(shù)據(jù)(D1)內(nèi)的數(shù)據(jù)塊或數(shù)據(jù)包的至少部分重現(xiàn)。
在步驟104處,通過采用至少一個參考符號以及多個掩碼位,對未變化的和變化的數(shù)據(jù)塊或數(shù)據(jù)包進(jìn)行編碼。如之前描述的,采用至少一個參考符號來指示相互類似的數(shù)據(jù)塊或數(shù)據(jù)包的至少部分重現(xiàn),和/或來指示輸入數(shù)據(jù)(D1)內(nèi)是否存在相互類似的數(shù)據(jù)塊或數(shù)據(jù)包的重現(xiàn)。另外,采用例如實(shí)現(xiàn)為多個掩碼位的變化符號來指示數(shù)據(jù)塊或數(shù)據(jù)包的部分重現(xiàn)的、變化的和未變化數(shù)據(jù)元素以及輸入數(shù)據(jù)(D1)內(nèi)的變化的值。可替代地,例如以如上文描述的方式使用delta值。
根據(jù)步驟104,如之前所描述的,將至少一個參考符號以及多個變化符號編碼成多個數(shù)據(jù)流。
結(jié)合圖3A和圖3B,對步驟102和步驟104的編碼過程進(jìn)行了描述。
接下來,在步驟106處,對多個數(shù)據(jù)流進(jìn)行熵編碼以生成編碼數(shù)據(jù)(E2)。
步驟102至106僅為說明性的,并且在不背離本文權(quán)利要求的范圍的情況下,還可以提供其他的替換,其中增加有一個或多個步驟、去除一個或多個步驟、或以不同的順序提供一個或多個步驟。
圖3A和圖3B共同為根據(jù)本公開的實(shí)施方式的編碼處理的步驟的圖示。
在步驟202處,如之前所描述,讀取輸入數(shù)據(jù)(D1)的給定數(shù)據(jù)幀/圖/通道,以確定用于數(shù)據(jù)塊或數(shù)據(jù)包的最佳尺寸。
根據(jù)步驟202,將給定數(shù)據(jù)幀/圖/通道按照用于數(shù)據(jù)塊或數(shù)據(jù)包的最佳尺寸拆分成數(shù)據(jù)塊或數(shù)據(jù)包。
在步驟204處,讀取數(shù)據(jù)塊或數(shù)據(jù)包以進(jìn)行對它們的對應(yīng)參考數(shù)據(jù)塊或數(shù)據(jù)包的搜索。
接下來,在步驟206處,對于給定數(shù)據(jù)幀/圖/通道中的給定數(shù)據(jù)塊或數(shù)據(jù)包,確定給定數(shù)據(jù)塊或數(shù)據(jù)包是否為參考數(shù)據(jù)塊或數(shù)據(jù)包的副本。
在步驟206處,如果確定出給定數(shù)據(jù)塊或數(shù)據(jù)包不是副本,則執(zhí)行步驟208。在步驟208處,為給定數(shù)據(jù)塊或數(shù)據(jù)包寫入“非復(fù)制的”參考符號。在一個示例中,將“非復(fù)制的”參考符號限定為參考符號“0”。另外,將給定數(shù)據(jù)塊或數(shù)據(jù)包的所有數(shù)據(jù)值編碼至編碼數(shù)據(jù)(E2)中。
在步驟206處,如果確定出給定數(shù)據(jù)塊或數(shù)據(jù)包是參考數(shù)據(jù)塊或數(shù)據(jù)包的副本,則執(zhí)行步驟210。在步驟210處,確定給定數(shù)據(jù)塊是否為參考數(shù)據(jù)塊或數(shù)據(jù)包的完全副本或部分副本。當(dāng)使用了有損耗操作方式時(shí),按照用于有損耗操作方式所設(shè)置的質(zhì)量水平來執(zhí)行步驟210。
在步驟210處,如果確定出給定數(shù)據(jù)塊或數(shù)據(jù)包是部分副本,則執(zhí)行步驟212。在步驟212處,為給定數(shù)據(jù)塊或數(shù)據(jù)包寫入指示參考數(shù)據(jù)塊或數(shù)據(jù)包的參考符號。參考符號被用作指示器,該指示器指示參考數(shù)據(jù)塊或數(shù)據(jù)包相對于給定數(shù)據(jù)塊或數(shù)據(jù)包的位置。在一個示例中,當(dāng)存在“N”個不同的參考數(shù)據(jù)塊或數(shù)據(jù)包時(shí),從參考符號“1”至“N”中選擇參考符號。另外,將給定數(shù)據(jù)塊或數(shù)據(jù)包的變化數(shù)據(jù)元素的數(shù)據(jù)值以及它們關(guān)聯(lián)的掩碼位編碼到編碼數(shù)據(jù)(E2)中。
在步驟210處,如果確定出給定數(shù)據(jù)塊或數(shù)據(jù)包是完全副本,則執(zhí)行步驟214。在步驟214處,為給定數(shù)據(jù)塊或數(shù)據(jù)包寫入指示參考數(shù)據(jù)塊或數(shù)據(jù)包的參考符號。在一個示例中,當(dāng)存在“N”個不同的參考數(shù)據(jù)塊或數(shù)據(jù)包時(shí),從參考符號“1+N”至“Ν+Ν”中選擇參考符號。在另一示例中,除了參考符號之外,寫入指示完全副本的一位符號。
步驟216接著步驟208、步驟212、以及步驟214。在步驟216處,確定在給定數(shù)據(jù)幀/圖/通道中是否存在下一個數(shù)據(jù)塊或數(shù)據(jù)包。如果確定存在下一個數(shù)據(jù)塊或數(shù)據(jù)包,在步驟204處重新開始編碼處理。否則,如果確定給定數(shù)據(jù)幀圖/通道中不存在下一個數(shù)據(jù)塊或數(shù)據(jù)包,則執(zhí)行步驟218。
在步驟218處,確定輸入數(shù)據(jù)(D1)中是否存在下一個數(shù)據(jù)幀/圖/通道。如果確定存在下一個數(shù)據(jù)幀/圖/通道,則在步驟202處重新開始編碼處理。否則,如果確定在輸入數(shù)據(jù)(D1)中不存在下一個數(shù)據(jù)幀/圖/通道,則停止編碼處理。
另外,為編碼處理而分配的后臺存儲器的量僅與當(dāng)前數(shù)據(jù)塊或數(shù)據(jù)包中的數(shù)據(jù)元素的量乘以可能參考的數(shù)量(即,數(shù)據(jù)塊或包精確的參考索引)一樣大,或者與當(dāng)前數(shù)據(jù)塊或數(shù)據(jù)包中的數(shù)據(jù)元素的量加上可能參考的數(shù)量減去一(即,數(shù)據(jù)值精確參考索引)一樣大。最少地,其是具有一個數(shù)據(jù)塊或數(shù)據(jù)包的存儲器。另外,編碼處理的結(jié)果(即編碼數(shù)據(jù)(E2))可直接寫入或者傳送至原始存儲器。這意味著不需要單獨(dú)的傳送存儲器。因而,本方法能夠起現(xiàn)場操作的作用,并且具有較高的成本效率。該方法例如可用于便宜的消費(fèi)電子媒體產(chǎn)品,諸如智能電話、MP3播放器、平板電腦、電視、音頻高保真(“hifi”)設(shè)備、電子書等。
步驟202至218僅為說明性的,并且在不背離本文權(quán)利要求的范圍的情況下,還可提供其他替換,其中增加有一個或多個步驟、去除一個或多個步驟、或以不同的順序提供一個或多個步驟。例如,在不將單獨(dú)的參考符號用于完全復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包的替代實(shí)現(xiàn)中,去除了步驟210和步驟214。現(xiàn)在,在步驟206處,如果確定給定數(shù)據(jù)塊或數(shù)據(jù)包是參考數(shù)據(jù)塊或數(shù)據(jù)包的副本,則執(zhí)行步驟212,而不是步驟210。
本公開的實(shí)施方式提供了包括非短暫性(即,非瞬時(shí)性)計(jì)算機(jī)可讀存儲介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,在計(jì)算機(jī)存儲介質(zhì)上存儲有計(jì)算機(jī)可讀指令,計(jì)算機(jī)可讀指令通過包括處理硬件的計(jì)算機(jī)化設(shè)備執(zhí)行以執(zhí)行如結(jié)合圖2和圖3A-3B所描述的方法??蛇x地,計(jì)算機(jī)可讀指令可從軟件應(yīng)用商店,例如從“App商店”下載到計(jì)算機(jī)化設(shè)備。
圖4是根據(jù)本公開的實(shí)施方式的、對編碼數(shù)據(jù)(E2)進(jìn)行解碼以生成對應(yīng)解碼數(shù)據(jù)(D3)的方法的步驟的圖示。方法描繪為邏輯流程圖中的許多步驟,邏輯流程圖表示可以硬件、軟件、或它們的組合實(shí)現(xiàn)的一序列步驟。
在步驟302處,對編碼數(shù)據(jù)(E2)進(jìn)行熵解碼以提供多個數(shù)據(jù)流。如之前所描述的,多個數(shù)據(jù)流包括以下中的一個或多個:
(i)第一數(shù)據(jù)流,包括至少一個參考數(shù)據(jù)塊和/或數(shù)據(jù)包的數(shù)據(jù)值,以及后續(xù)數(shù)據(jù)塊的變化數(shù)據(jù)元素的數(shù)據(jù)值;
(ii)第二數(shù)據(jù)流,包括多個掩碼位;和/或
(iii)第三數(shù)據(jù)流,包括至少一個參考符號。
在步驟304處,對來自多個數(shù)據(jù)流的未變化的以及變化的數(shù)據(jù)塊進(jìn)行解碼。根據(jù)步驟304,對至少一個參考符號以及多個變化符號進(jìn)行解碼,以生成用于數(shù)據(jù)塊或數(shù)據(jù)包的部分重現(xiàn)的數(shù)據(jù),并且生成用于數(shù)據(jù)塊或數(shù)據(jù)包的部分重現(xiàn)的變化數(shù)據(jù)元素的數(shù)據(jù)。
結(jié)合圖5A和圖5B,描述了步驟304的解碼過程。
接下來,在步驟306處,將對于數(shù)據(jù)塊或數(shù)據(jù)包的至少部分重現(xiàn)生成的數(shù)據(jù)以及對于數(shù)據(jù)塊或數(shù)據(jù)包的部分重現(xiàn)的變化數(shù)據(jù)元素生成的數(shù)據(jù)集合,以生成解碼數(shù)據(jù)(D3)。
步驟302至306僅為說明性的,并且在不背離本文權(quán)利要求的范圍的情況下,還可以提供其他的替代,其中增加一個或多個步驟、去除一個或多個步驟、或以不同的順序提供一個或多個步驟。
圖5A和圖5B共同為根據(jù)本公開的實(shí)施方式的解碼處理的步驟的圖示。
在步驟402處,從編碼數(shù)據(jù)(E2)中提供的第三數(shù)據(jù)流讀取給定參考符號。
在步驟404處,確定給定參考符號是否為“非復(fù)制的”參考符號。換言之,確定給定參考符號是否對應(yīng)于非復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包。
在步驟404處,如果確定出給定參考符號是“非復(fù)制”的參考符號,那么執(zhí)行步驟406。在步驟406處,對非復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包的所有數(shù)據(jù)值進(jìn)行解碼,以生成用于非復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包的數(shù)據(jù)。
在步驟404處,如果確定出給定參考符號不是“非復(fù)制”的參考符號,那么執(zhí)行步驟408。在步驟408處,確定給定參考符號是否為“完全復(fù)制”的參考符號。換言之,確定給定參考符號是否對應(yīng)于完全復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包。
在步驟408處,如果確定給定參考符號不是“完全復(fù)制”的參考符號,那么執(zhí)行步驟410。在步驟410處,對與部分復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包的數(shù)據(jù)元素有關(guān)的掩碼位進(jìn)行檢查,從而對部分復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包的變化數(shù)據(jù)元素的數(shù)據(jù)值進(jìn)行解碼。另外,從給定參考符號指向的參考數(shù)據(jù)塊或數(shù)據(jù)包中獲取未變化元素的數(shù)據(jù)值。根據(jù)步驟410,將未變化元素的數(shù)據(jù)值與變化數(shù)據(jù)元素的數(shù)據(jù)值組合,以生成用于部分復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包的數(shù)據(jù)。
在步驟408處,如果確定給定參考符號是“完全復(fù)制”的參考符號,那么執(zhí)行步驟412。在步驟412處,從給定參考符號指向的參考數(shù)據(jù)塊中獲取未變化元素的數(shù)據(jù)值。對未變化元素的數(shù)據(jù)值進(jìn)行設(shè)置,以生成用于完全復(fù)制的數(shù)據(jù)塊或數(shù)據(jù)包的數(shù)據(jù)。
步驟414接著步驟406、步驟410、以及步驟412。在步驟414處,確定第三數(shù)據(jù)流中是否存在下一個參考符號。如果確定存在下一個參考符號,那么在步驟402處重新開始解碼處理。
否則,如果確定不存在下一個參考符號,則執(zhí)行步驟416。在步驟416處,將在步驟406、步驟410、以及步驟412處生成的用于數(shù)據(jù)塊或數(shù)據(jù)包的數(shù)據(jù)集合,以生成解碼數(shù)據(jù)(D3)。
應(yīng)理解,不管所有數(shù)據(jù)是否完成,每當(dāng)對這樣一部分?jǐn)?shù)據(jù)的解碼完成時(shí),單獨(dú)更新通道、圖或幀是可能的。
步驟402至416僅為說明性的,并且在不背離本文權(quán)利要求的范圍的情況下,還可以提供其他替換,其中增加一個或多個步驟、去除一個或多個步驟、或以不同的順序提供一個或多個步驟。
本公開的實(shí)施方式提供了包括非短暫性(即,非瞬時(shí)性)計(jì)算機(jī)可讀存儲介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,在計(jì)算機(jī)可讀存儲介質(zhì)上存儲有計(jì)算機(jī)可讀指令,計(jì)算機(jī)可讀指令可通過包括處理硬件的計(jì)算機(jī)化設(shè)備執(zhí)行,以執(zhí)行如結(jié)合圖4和圖5A-B所描述的方法。可選地,計(jì)算機(jī)可讀指令可從軟件應(yīng)用商店,例如從“App商店”下載到計(jì)算機(jī)化設(shè)備。
在不背離如所附權(quán)利要求限定的本發(fā)明的范圍的情況下,可對上文描述的本發(fā)明的實(shí)施方式進(jìn)行修改。用于描述并限定本發(fā)明的諸如“包括(including)”、“包括(comprising)”、“合并(incorporating)”、“包括(consisting of)”、“具有(have)”、以及“是(is)”的表達(dá)旨在以非排他性方式解釋,即允許還表現(xiàn)未明確描述的項(xiàng)、成分或元素。提及的單數(shù)還解釋為涉及復(fù)數(shù)。包括在所附權(quán)利要求中的括號內(nèi)的數(shù)字旨在幫助理解權(quán)利要求,并且不以任何方式解釋為限制通過這些權(quán)利要求所要求保護(hù)的主題。
附錄