專(zhuān)利名稱(chēng):數(shù)據(jù)的有效提取和壓縮的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)的有效提取和壓縮。
背景技術(shù):
已流化數(shù)據(jù)資產(chǎn)可被用于以各種下載速率和回放分辨率下載和回放。當(dāng)對(duì)于同一資產(chǎn)有多個(gè)流可用時(shí),包含這些下載速率和回放分辨率的描述的描述文件即清單可以最初被回放設(shè)備下載,以允許該回放設(shè)備選擇下載速率和回放分辨率。此外,由于資產(chǎn)的流特征可以隨時(shí)間而改變,清單可以被保持為未壓縮格式,以便于清單的更新。然而,下載未壓縮清單可能延誤影片的回放,使得資產(chǎn)的所需“即時(shí)”回放降級(jí)。一些當(dāng)前的方案在下載前用文本壓縮工具壓縮該清單。然而,這樣的方案可能仍然在待壓縮的文本數(shù)量大的一些情形中延誤資產(chǎn)的回放。
發(fā)明內(nèi)容
因此,在這里揭示各種和流化媒體資產(chǎn)的數(shù)據(jù)的動(dòng)態(tài)提取和壓縮有關(guān)的實(shí)施例。 例如,一個(gè)實(shí)施例提供了具有處理器和存儲(chǔ)器的計(jì)算設(shè)備,該存儲(chǔ)器包括存儲(chǔ)其上的指令, 所述指令可由處理器執(zhí)行來(lái)從信息文件向請(qǐng)求計(jì)算設(shè)備提供已動(dòng)態(tài)壓縮的信息,該信息文件包括根據(jù)公知結(jié)構(gòu)安排在一個(gè)或多個(gè)數(shù)據(jù)字段中的可變數(shù)據(jù)元素。例如,指令可以被執(zhí)行以從請(qǐng)求計(jì)算設(shè)備接收對(duì)已壓縮信息的請(qǐng)求。此外,指令可以被執(zhí)行以從該信息文件提取可變數(shù)據(jù)元素,壓縮可變數(shù)據(jù)元素以形成已壓縮數(shù)據(jù)元素,并向請(qǐng)求計(jì)算設(shè)備發(fā)送包括該已壓縮數(shù)據(jù)元素的已壓縮文件。提供本發(fā)明內(nèi)容是為了以簡(jiǎn)化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概念。本發(fā)明內(nèi)容并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限定所要求保護(hù)的主題的范圍。此外,所要求保護(hù)的主題不限于解決在本發(fā)明的任一部分中提及的任何或所有缺點(diǎn)的實(shí)現(xiàn)。
圖1是動(dòng)態(tài)壓縮和解壓系統(tǒng)的實(shí)施例的示意視圖。圖2是操作圖1的動(dòng)態(tài)壓縮和解壓系統(tǒng)的實(shí)施例的方法的實(shí)施例的示意視圖。
具體實(shí)施例方式圖1是動(dòng)態(tài)壓縮和解壓系統(tǒng)100的實(shí)施例的示意性表示。動(dòng)態(tài)壓縮和解壓系統(tǒng)100 可能適合于用在各種不同環(huán)境中,包括但不限于流化媒體系統(tǒng)。例如,流化媒體系統(tǒng)可被配置成提供單個(gè)媒體資產(chǎn)的多個(gè)流,其中該媒體資產(chǎn)的每個(gè)流具有不同的比特率,以向回放設(shè)備提供回放質(zhì)量和下載速度的不同平衡。隨后,回放設(shè)備可以在諸流之間切換,以便為動(dòng)態(tài)漂移回放變量進(jìn)行調(diào)節(jié),諸如可用網(wǎng)絡(luò)帶寬等可能影響資產(chǎn)的回放性能的那些變量。在這樣的環(huán)境中,為了將可用流通知回放設(shè)備,流化媒體服務(wù)器可以向回放設(shè)備發(fā)送清單文件,該清單文件包含關(guān)于全部可用流的信息,使得回放設(shè)備可以選擇流來(lái)接收。 然而,如上所述,一些清單文件可能足夠大,以致于因下載該清單花費(fèi)的時(shí)間量而負(fù)面影響所需的“即時(shí)”播放情形。在下載之前對(duì)清單的壓縮可有助于減少下載時(shí)間。然而,壓縮不可變信息(即,清單文件中的語(yǔ)法信息)可能仍然導(dǎo)致不希望的較大清單的長(zhǎng)的下載時(shí)間。因此,揭示的實(shí)施例針對(duì)從諸如流化媒體資產(chǎn)清單這樣的文件提取所選信息,所選信息可以被有效地壓縮為比壓縮整個(gè)文件所允許的更小的大小。接收設(shè)備可以隨后解壓該信息并用文件結(jié)構(gòu)和語(yǔ)法的先驗(yàn)知識(shí)重新組裝該文件。繼續(xù)圖1,動(dòng)態(tài)壓縮和解壓系統(tǒng) 100包括與請(qǐng)求計(jì)算設(shè)備152有效通信的計(jì)算設(shè)備102。計(jì)算設(shè)備102包括海量存儲(chǔ)104、處理器106以及存儲(chǔ)器108。計(jì)算設(shè)備102還包括輸入/輸出模塊112以及壓縮器模塊114, 其可以被存儲(chǔ)在海量存儲(chǔ)104中并被載入存儲(chǔ)器108用于被處理器106執(zhí)行。請(qǐng)求計(jì)算設(shè)備152包括海量存儲(chǔ)154、處理器156以及存儲(chǔ)器158。請(qǐng)求計(jì)算設(shè)備152還包括輸入/輸出模塊162以及解壓器模塊164,其可以被存儲(chǔ)在海量存儲(chǔ)IM中并被載入存儲(chǔ)器158用于被處理器156執(zhí)行。計(jì)算設(shè)備102和請(qǐng)求計(jì)算設(shè)備152可以是分別配置來(lái)用于提供和接收已壓縮文件的任何合適的計(jì)算設(shè)備。例如,在一些實(shí)施例中,計(jì)算設(shè)備102可以是網(wǎng)絡(luò)化的計(jì)算機(jī)或服務(wù)器云環(huán)境,而請(qǐng)求計(jì)算設(shè)備152可以是合適的移動(dòng)和/或無(wú)線計(jì)算設(shè)備、網(wǎng)絡(luò)化的計(jì)算機(jī)、游戲控制臺(tái)等。因此,可以理解,動(dòng)態(tài)壓縮和解壓系統(tǒng)100可以被任何合適的方案操作, 諸如服務(wù)器一客戶機(jī)方案,對(duì)等方案,等等。作為示例的目的,動(dòng)態(tài)壓縮和解壓系統(tǒng)100可以被分為三個(gè)階段。在第一階段, 請(qǐng)求計(jì)算設(shè)備152被配置成向計(jì)算設(shè)備102請(qǐng)求已壓縮文件140。在一情形中,已壓縮文件140可以包括關(guān)于流化媒體資產(chǎn)的信息,包含關(guān)于資產(chǎn)的可用流的元數(shù)據(jù)。在第二階段, 計(jì)算設(shè)備102被配置來(lái)生成已壓縮文件140并向請(qǐng)求計(jì)算設(shè)備152發(fā)送已壓縮文件140。 在第三階段,請(qǐng)求計(jì)算設(shè)備152被配置來(lái)解壓已壓縮文件140,并至少部分基于已壓縮文件 140填充已結(jié)構(gòu)化的語(yǔ)法文件。在一些實(shí)施例中,已結(jié)構(gòu)化的語(yǔ)法文件可以是已結(jié)構(gòu)化的文本文件,諸如可擴(kuò)展標(biāo)記語(yǔ)言(例如XML)或其他標(biāo)記語(yǔ)言文件,諸如超文本標(biāo)記語(yǔ)言文件 (例如HTML和諸如HTML5的后續(xù)版本)。附加地或可替換地,在一些實(shí)施例中,已結(jié)構(gòu)化的語(yǔ)法文件可以是頁(yè)描述語(yǔ)言文件或其他包含語(yǔ)法和數(shù)據(jù)的文件。因此,可以理解,可以采用任何適用的已結(jié)構(gòu)化的語(yǔ)法文件。以下描述每個(gè)階段的詳情,盡管可以理解在其他實(shí)施例中,任務(wù)可以被組織為其他合適的階段,且可以采用其他合適的任務(wù)順序。如前面所介紹的,在第一階段,請(qǐng)求計(jì)算設(shè)備152被配置為從計(jì)算設(shè)備102請(qǐng)求已動(dòng)態(tài)壓縮的信息。在一些實(shí)施例中,請(qǐng)求計(jì)算設(shè)備152可以被配置為,通過(guò)向計(jì)算設(shè)備102 發(fā)送對(duì)已壓縮文件的請(qǐng)求110,來(lái)從計(jì)算設(shè)備102請(qǐng)求已壓縮文件140。在一些實(shí)施例中, 對(duì)已壓縮文件的請(qǐng)求110可以是對(duì)從流化媒體資產(chǎn)的已結(jié)構(gòu)化的語(yǔ)法清單文件導(dǎo)出的已壓縮文件140的請(qǐng)求。因此,例如,對(duì)已壓縮文件的請(qǐng)求110可以包括標(biāo)識(shí)流化媒體資產(chǎn)的任何合適形式的信息,且可以包括關(guān)于請(qǐng)求計(jì)算設(shè)備152的屬性的信息,諸如呈現(xiàn)能力,網(wǎng)絡(luò)連接參數(shù)等。在第二階段,計(jì)算設(shè)備102被配置用于接收對(duì)已動(dòng)態(tài)壓縮的信息的請(qǐng)求,可被具體化為對(duì)已壓縮文件的請(qǐng)求110 ;提取并壓縮從信息文件116導(dǎo)出的信息;以及將已壓縮文件140發(fā)送到請(qǐng)求計(jì)算設(shè)備152。在一些實(shí)施例中,信息文件116可以是已結(jié)構(gòu)化的語(yǔ)法清單文件,被配置成提供關(guān)于流化媒體資產(chǎn)的元數(shù)據(jù),供請(qǐng)求計(jì)算設(shè)備152用來(lái)解碼并呈現(xiàn)該媒體資產(chǎn)。例如,在一個(gè)情形中,流化媒體資產(chǎn)可用作三個(gè)流,每個(gè)流具有不同比特率。 在該情形中,已結(jié)構(gòu)化的語(yǔ)法清單文件可以包括和流的數(shù)量、每個(gè)流是音頻流還是視頻流、 比特率、比特寬度和/或每個(gè)流的像素分辨率等有關(guān)的信息。信息文件116包含根據(jù)公知結(jié)構(gòu)122安排在一個(gè)或多個(gè)數(shù)據(jù)字段120中的可變數(shù)據(jù)元素118??勺償?shù)據(jù)元素118被配置用于表示信息文件116的可變數(shù)據(jù)。例如,在前面介紹的流化媒體情形中,已結(jié)構(gòu)化的語(yǔ)法清單文件可以具有包括流計(jì)數(shù)數(shù)據(jù)元素的流計(jì)數(shù)數(shù)據(jù)字段;包括流類(lèi)型數(shù)據(jù)元素的流類(lèi)型數(shù)據(jù)字段;包括比特率數(shù)據(jù)元素的比特率數(shù)據(jù)字段;包括分辨率數(shù)據(jù)元素的分辨率數(shù)據(jù)字段,等等。在另一個(gè)其中流化媒體資產(chǎn)被細(xì)分為作為漸進(jìn)下載過(guò)程的一部分的離散塊的情形中,已結(jié)構(gòu)化的語(yǔ)法清單文件可以包括和每個(gè)塊的持續(xù)時(shí)間、每個(gè)塊的大小、用于每個(gè)塊在標(biāo)識(shí)流中的時(shí)間位置的順序指示符等有關(guān)的信息。該信息可以被組織在已結(jié)構(gòu)化的語(yǔ)法清單文件中,作為分別被安排在持續(xù)時(shí)間數(shù)據(jù)字段,塊大小數(shù)據(jù)字段,和順序數(shù)據(jù)字段中的持續(xù)時(shí)間數(shù)據(jù)元素、塊大小數(shù)據(jù)元素以及順序數(shù)據(jù)元素。在一些實(shí)施例中,可變數(shù)據(jù)元素118可以包括整數(shù)值。附加地或可替換地,在一些實(shí)施例中,可變數(shù)據(jù)元素118可以包括浮點(diǎn)值。公知結(jié)構(gòu)122可以是計(jì)算設(shè)備102和請(qǐng)求計(jì)算設(shè)備152均知道的結(jié)構(gòu)化信息文件 116所使用的任何合適的分層方案。在一些實(shí)施例中,公知結(jié)構(gòu)122可以是XML方案、HTML 方案、頁(yè)布局方案等。使用計(jì)算設(shè)備102和請(qǐng)求計(jì)算設(shè)備152均已知的結(jié)構(gòu)可以有益地減少在發(fā)送已壓縮文件140時(shí)的傳送時(shí)間和/或帶寬使用。例如,如果流化媒體資產(chǎn)包括多個(gè)層等,已壓縮文件140的大小可能變成幾兆字節(jié)。用文本壓縮技術(shù)僅壓縮整個(gè)信息文件 116,包括結(jié)構(gòu)和語(yǔ)法信息,可能導(dǎo)致影片開(kāi)始時(shí)的延遲。相反,提取和壓縮可變數(shù)據(jù)元素 118以包含在已壓縮文件140中,可以避免傳送請(qǐng)求計(jì)算設(shè)備152已知的結(jié)構(gòu)和語(yǔ)法信息; 因此,該方法可以有益地增強(qiáng)無(wú)損傳送速率。此外,所得的待壓縮數(shù)據(jù)的簡(jiǎn)化可以通過(guò)允許使用非文本壓縮技術(shù)來(lái)壓縮,可以有益地增強(qiáng)已壓縮文件140的壓縮率,可進(jìn)一步減少傳送時(shí)間和/或帶寬。因此,在流化媒體資產(chǎn)開(kāi)始時(shí)的延遲可以被減少。因此,可以理解,在一些實(shí)施例中,已壓縮文件140可以不包含語(yǔ)法。壓縮器模塊114被配置為動(dòng)態(tài)地解析信息文件116的可變數(shù)據(jù)元素118 ;動(dòng)態(tài)地提取信息文件116的可變數(shù)據(jù)元素118 ;以及動(dòng)態(tài)地壓縮信息文件116的可變數(shù)據(jù)元素 118。解析器IM被配置成動(dòng)態(tài)地解析信息文件116。可以理解,可以采用任何合適的解析方法來(lái)解析信息文件116。提取器1 被配置成動(dòng)態(tài)地從信息文件116的已解析版本中提取可變數(shù)據(jù)元素 118。例如,如果信息文件116是已結(jié)構(gòu)化的語(yǔ)法清單文件,解析器IM可以讀取并操縱該已結(jié)構(gòu)化的語(yǔ)法清單文件以標(biāo)識(shí)字符數(shù)據(jù)和語(yǔ)法標(biāo)簽。提取器126可進(jìn)一步操縱該已結(jié)構(gòu)化的語(yǔ)法清單文件,來(lái)提取可變數(shù)據(jù)元素118,用于以后壓縮以形成已壓縮數(shù)據(jù)元素144。 例如,可以分別從比特寬度數(shù)據(jù)字段、塊大小數(shù)據(jù)字段以及比特率數(shù)據(jù)字段中提取整數(shù)和/ 或浮點(diǎn)數(shù)據(jù)元素,例如比特寬度數(shù)據(jù)元素、塊大小數(shù)據(jù)元素以及比特速率數(shù)據(jù)元素。提取器 1 也可以從信息文件116的文本和/或十六進(jìn)制字段中提取信息,用于包含在已壓縮文件 140中,作為未壓縮文本145和/或未壓縮十六進(jìn)制數(shù)據(jù)146。例如,在一些實(shí)施例中,文本串、全局唯一標(biāo)識(shí)符(GUID)和/或二進(jìn)制大對(duì)象(BLOB)數(shù)據(jù)元素可以被包含在已壓縮文件140中作為未壓縮數(shù)據(jù)元素。此外,在一些實(shí)施例中,標(biāo)記語(yǔ)言的標(biāo)簽可以被包括在已壓縮文件140中,有益地增強(qiáng)在請(qǐng)求計(jì)算設(shè)備152上的已解壓信息文件180的填充。例如,通過(guò)將標(biāo)簽包含在已壓縮文件140中,在計(jì)算設(shè)備102的標(biāo)簽的改變或更新可以被傳遞至請(qǐng)求計(jì)算設(shè)備152,避免在請(qǐng)求計(jì)算設(shè)備152處改變標(biāo)簽。壓縮器模塊114的陣列生成器1 被配置成,在壓縮可變數(shù)據(jù)元素118之前,將每個(gè)數(shù)據(jù)字段120的可變數(shù)據(jù)元素118動(dòng)態(tài)地安排到該數(shù)據(jù)字段的數(shù)據(jù)陣列130中。在一些實(shí)施例中,數(shù)據(jù)陣列130可以包括多維數(shù)據(jù)陣列或一維數(shù)據(jù)陣列。例如,在一種情形中,可以從流化媒體資產(chǎn)的流的比特率、從流中的所有段的持續(xù)時(shí)間等,來(lái)形成一維陣列。在另一種情形中,可以從流化媒體資產(chǎn)的給定流的塊的大小、從給定流的全部塊的質(zhì)量等,來(lái)形成多維陣列。壓縮器模塊114被配置成通過(guò)并行方式的多個(gè)壓縮技術(shù)動(dòng)態(tài)地壓縮數(shù)據(jù)陣列 130,以形成多個(gè)已壓縮數(shù)據(jù)陣列,并且隨后從多個(gè)已壓縮數(shù)據(jù)陣列中選擇所選已壓縮數(shù)據(jù)陣列143,以包括在已壓縮文件140中。在一些情形中,不同的壓縮技術(shù)根據(jù)傳入數(shù)據(jù)陣列間的不同,可以具有不同的壓縮效率。因此,可以理解,應(yīng)用不同壓縮技術(shù)獲得的已壓縮數(shù)據(jù)陣列可以具有不同的文件大小,這取決于陣列中數(shù)據(jù)的特定特性,因此,相比使用單一壓縮技術(shù),潛在地提供多個(gè)文件的更有效壓縮。參見(jiàn)圖1的實(shí)施例,數(shù)據(jù)陣列130由圖1的實(shí)施例中的二進(jìn)制譯碼壓縮技術(shù)132 所表示的第一壓縮技術(shù)壓縮,以形成第一已壓縮數(shù)據(jù)陣列133。在采用二進(jìn)制譯碼壓縮技術(shù) 132的情形中,第一已壓縮數(shù)據(jù)陣列133的一些實(shí)施例可以包括整數(shù)的陣列的已打包表示。 例如,如果數(shù)據(jù)陣列130代表流化媒體資產(chǎn)的比特寬度,則可用二進(jìn)制譯碼壓縮技術(shù)132來(lái)掃描數(shù)據(jù)陣列130,以確定最大比特寬度。已壓縮數(shù)據(jù)陣列133的每個(gè)值可與使用這個(gè)最大比特寬度來(lái)表示。代表最大比特寬度的值可被包括作為已壓縮文件140的輔助信息142。繼續(xù)該示例,在圖1中,數(shù)據(jù)陣列130也通過(guò)由圖1的實(shí)施例中的差分譯碼壓縮技術(shù)134所表示的第二壓縮技術(shù)來(lái)壓縮,以形成第二已壓縮數(shù)據(jù)陣列135。在采用差分譯碼壓縮技術(shù)134的情形中,第二已壓縮數(shù)據(jù)陣列135的一些實(shí)施例可以包括差分值的陣列。例如,如果數(shù)據(jù)陣列130表示流媒體資產(chǎn)的比特寬度,則可以使用差分譯碼壓縮技術(shù)134來(lái)掃描數(shù)據(jù)陣列130,以確定最低和最高值,以及數(shù)據(jù)陣列130的全部其他值和數(shù)據(jù)陣列130的最低值之間的差異。代表最低值的比特寬度的值、所代表的最低值以及用來(lái)表示最低值和數(shù)據(jù)陣列130的值之間差異的比特寬度可以被包括作為已壓縮文件140的輔助信息142。繼續(xù)圖1的示例,數(shù)據(jù)陣列130也可以通過(guò)由圖1的實(shí)施例中的赫夫曼(Huffman) 譯碼壓縮技術(shù)136所表示的第三壓縮技術(shù)來(lái)壓縮,以形成第三已壓縮數(shù)據(jù)陣列137。在采用赫夫曼譯碼壓縮技術(shù)136的情形中,第三已壓縮數(shù)據(jù)陣列137的一些實(shí)施例可以包括代表基于數(shù)據(jù)陣列130生成的符號(hào)的碼的陣列。例如,如果數(shù)據(jù)陣列130代表流化媒體資產(chǎn)的比特寬度,則數(shù)據(jù)陣列130可用赫夫曼譯碼壓縮技術(shù)136來(lái)壓縮,以生成符號(hào)和碼長(zhǎng)度的陣列。代表符號(hào)計(jì)數(shù)、符號(hào)比特寬度、碼長(zhǎng)度的比特寬度、每個(gè)符號(hào)的符號(hào)值以及每個(gè)符號(hào)的碼長(zhǎng)度的值可以被包括作為已壓縮文件140的輔助信息142??梢岳斫猓陨咸峁┑拇硇缘膲嚎s技術(shù)是用于示意的目的,可以采用任何合適的壓縮技術(shù)。壓縮器模塊114的決定引擎138被配置成從多個(gè)已壓縮數(shù)據(jù)陣列之一選擇所選已壓縮數(shù)據(jù)陣列143。由決定引擎138作出的選擇可以以任何合適的方式作出。例如,在一些實(shí)施例中,決定引擎138確定第一已壓縮數(shù)據(jù)陣列133的第一壓縮率、第二已壓縮數(shù)據(jù)陣列 135的第二壓縮率,以及第三已壓縮數(shù)據(jù)陣列137的第三壓縮率。因此,圖1中的實(shí)施例中, 決定引擎138至少部分基于第一、第二和第三壓縮率的比較(例如,可選擇最有效壓縮),從第一已壓縮數(shù)據(jù)陣列133、第二已壓縮數(shù)據(jù)陣列135或第三已壓縮數(shù)據(jù)陣列137中選擇所選已壓縮數(shù)據(jù)陣列143以包括在已壓縮文件140中。繼續(xù)第二階段,壓縮器模塊114被配置成將已壓縮文件140發(fā)送到請(qǐng)求計(jì)算設(shè)備 152。在一些實(shí)施例中,編碼方案標(biāo)識(shí)符141可以被包括在已壓縮文件140中,所述編碼方案標(biāo)識(shí)符141標(biāo)識(shí)用于解壓所選已壓縮數(shù)據(jù)陣列143的解壓技術(shù)。例如,如果使用二進(jìn)制譯碼壓縮技術(shù)將比特寬度數(shù)據(jù)元素從一比特寬度數(shù)據(jù)字段壓縮為已壓縮比特寬度數(shù)據(jù)陣列, 則二進(jìn)制譯碼方案標(biāo)識(shí)符可以被包括在已壓縮文件140中來(lái)警告請(qǐng)求計(jì)算設(shè)備152可以使用二進(jìn)制譯碼解壓技術(shù)來(lái)解壓該已壓縮比特寬度數(shù)據(jù)陣列。現(xiàn)在轉(zhuǎn)到第三階段的詳情,請(qǐng)求計(jì)算設(shè)備152的解壓器模塊164被配置成接收已壓縮文件140以及根據(jù)公知結(jié)構(gòu)122至少部分基于已壓縮文件140來(lái)填充已解壓信息文件 180。解壓器模塊164的標(biāo)識(shí)符166被配置成標(biāo)識(shí)用于解壓已壓縮文件140的解壓技術(shù)。在所選實(shí)施例中,標(biāo)識(shí)符166可以基于編碼方案標(biāo)識(shí)符141標(biāo)識(shí)用于所選已壓縮數(shù)據(jù)陣列143 的解壓技術(shù)。例如,在已壓縮文件140包括已赫夫曼壓縮的數(shù)據(jù)陣列連同赫夫曼壓縮輔助信息和已赫夫曼壓縮的數(shù)據(jù)陣列的赫夫曼編碼方案標(biāo)識(shí)符的情形中,標(biāo)識(shí)符166可以標(biāo)識(shí)赫夫曼譯碼解壓技術(shù)用于解壓已赫夫曼壓縮的數(shù)據(jù)陣列。解壓器模塊164的解壓器168被配置成基于由標(biāo)識(shí)符166所標(biāo)識(shí)的解壓技術(shù)來(lái)解壓所選已壓縮數(shù)據(jù)陣列143。解壓器168也可以被配置成讀取并操縱所選已壓縮數(shù)據(jù)陣列 143的輔助信息142來(lái)將所選已壓縮數(shù)據(jù)陣列143解壓為已解壓數(shù)據(jù)陣列169。例如,在上面介紹的已赫夫曼壓縮的數(shù)據(jù)陣列情形中,解壓器168可以基于由標(biāo)識(shí)符166所標(biāo)識(shí)的解壓技術(shù)并基于已赫夫曼壓縮的數(shù)據(jù)陣列輔助信息,來(lái)為已赫夫曼壓縮的數(shù)據(jù)陣列的符號(hào)的每一個(gè)生成規(guī)范碼表。解壓器168可以部分基于所生成的規(guī)范碼表來(lái)解碼已赫夫曼壓縮的數(shù)據(jù)陣列。解壓器模塊164的數(shù)據(jù)字段填充器170被配置成,根據(jù)公知結(jié)構(gòu)122,將已解壓數(shù)據(jù)陣列169的可變數(shù)據(jù)元素118安排為已解壓信息文件180的一個(gè)或多個(gè)數(shù)據(jù)字段182。 可以理解,數(shù)據(jù)字段填充器170可以根據(jù)任何合適的已結(jié)構(gòu)化的語(yǔ)法來(lái)填充數(shù)據(jù)字段。在一些實(shí)施例中,已結(jié)構(gòu)化語(yǔ)法可以是已結(jié)構(gòu)化文本格式,諸如XML,或其他標(biāo)記語(yǔ)言文件,諸如超文本標(biāo)記語(yǔ)言文件(例如HTML和諸如HTML5的后續(xù)版本)。附加地或可替換地,在一些實(shí)施例中,已結(jié)構(gòu)化語(yǔ)法格式可以是頁(yè)描述語(yǔ)言格式。因此,可以理解,可以采用任何適用的已結(jié)構(gòu)化的語(yǔ)法來(lái)生成已解壓信息文件180。例如,在上述的情形中,已赫夫曼壓縮的數(shù)據(jù)陣列可以包括從流化媒體資產(chǎn)的已結(jié)構(gòu)化的語(yǔ)法清單文件提取的比特寬度數(shù)據(jù)元素。 根據(jù)這個(gè)情形,數(shù)據(jù)字段填充器170可以通過(guò)根據(jù)公知結(jié)構(gòu)122安排比特寬度數(shù)據(jù)元素,在請(qǐng)求計(jì)算設(shè)備152填充相應(yīng)的已結(jié)構(gòu)化語(yǔ)法清單文件的比特寬度數(shù)據(jù)字段。在一些實(shí)施例中,已解壓信息文件180可以是XML文件。在一些實(shí)施例中,數(shù)據(jù)字段填充器170可以根據(jù)公知結(jié)構(gòu)122安排可變數(shù)據(jù)元素 118,使得可變數(shù)據(jù)元素118與在特定語(yǔ)法文件外殼中的已結(jié)構(gòu)化語(yǔ)法相關(guān)聯(lián)。例如,繼續(xù)上述情形,相應(yīng)的已結(jié)構(gòu)化語(yǔ)法清單文件可以是已結(jié)構(gòu)化語(yǔ)法外殼,根據(jù)公知結(jié)構(gòu)122向已結(jié)構(gòu)化語(yǔ)法外殼中插入比特寬度數(shù)據(jù)元素。附加地或可替換地,在一些實(shí)施例中,已結(jié)構(gòu)化語(yǔ)法可以在解壓器模塊164的語(yǔ)法插入器172被插入已解壓信息文件180。因此,在一情形中,可以通過(guò)在數(shù)據(jù)字段填充器 170根據(jù)公知結(jié)構(gòu)122插入比特寬度數(shù)據(jù)元素,和在已結(jié)構(gòu)化語(yǔ)法插入器根據(jù)公知結(jié)構(gòu)122 插入已結(jié)構(gòu)化語(yǔ)法,來(lái)生成相應(yīng)的已結(jié)構(gòu)化語(yǔ)法清單文件?,F(xiàn)在轉(zhuǎn)至圖2,示出了用于動(dòng)態(tài)地壓縮和解壓信息的方法200的實(shí)施例,所述信息從包括根據(jù)公知結(jié)構(gòu)安排在一個(gè)或多個(gè)數(shù)據(jù)字段中的可變數(shù)據(jù)元素的信息文件中導(dǎo)出。 可以使用以上結(jié)合圖1描述的硬件或軟件,或通過(guò)其他合適的硬件或軟件組件來(lái)實(shí)現(xiàn)方法 200。例如,圖2指請(qǐng)求計(jì)算設(shè)備,它可以是被配置成從媒體服務(wù)器設(shè)備請(qǐng)求已壓縮文件的請(qǐng)求計(jì)算設(shè)備,該已壓縮文件從流化媒體資產(chǎn)的已結(jié)構(gòu)化語(yǔ)法清單文件導(dǎo)出,該已壓縮文件包括安排在一個(gè)或多個(gè)已壓縮數(shù)據(jù)陣列中的可變數(shù)據(jù)元素以及一個(gè)或多個(gè)相應(yīng)的編碼方案標(biāo)識(shí)符,所述請(qǐng)求設(shè)備還被配置成根據(jù)公知結(jié)構(gòu)至少部分基于已壓縮文件來(lái)填充已結(jié)構(gòu)化語(yǔ)法文件。此外,圖2指媒體服務(wù)器設(shè)備,它可以是被配置成向請(qǐng)求計(jì)算設(shè)備提供已壓縮文件的媒體服務(wù)器設(shè)備,該已壓縮文件從流化媒體資產(chǎn)的已結(jié)構(gòu)化語(yǔ)法清單文件導(dǎo)出, 該已結(jié)構(gòu)化語(yǔ)法清單文件包括根據(jù)公知結(jié)構(gòu)安排在一個(gè)或多個(gè)數(shù)據(jù)字段中的可變數(shù)據(jù)元素。因此,當(dāng)圖2指媒體服務(wù)器設(shè)備和請(qǐng)求計(jì)算設(shè)備,可以理解方法200的其他實(shí)施例也可以在其他合適的硬件上執(zhí)行。方法200包括,在202,在請(qǐng)求計(jì)算設(shè)備將對(duì)已壓縮文件的請(qǐng)求發(fā)送到媒體服務(wù)器設(shè)備,并且在媒體服務(wù)器設(shè)備從請(qǐng)求計(jì)算設(shè)備接收已壓縮文件。繼續(xù)到204,方法200包括,在媒體服務(wù)器設(shè)備解析已結(jié)構(gòu)化語(yǔ)法清單文件。在 206,方法200包括從已結(jié)構(gòu)化語(yǔ)法清單文件提取可變數(shù)據(jù)元素。在208,方法200包括將第一數(shù)據(jù)字段的可變數(shù)據(jù)元素安排到數(shù)據(jù)陣列中。在一些實(shí)施例中,可變數(shù)據(jù)元素可以包括整數(shù)值。此外,在一些實(shí)施例中,208可以包括,在209,將每個(gè)數(shù)據(jù)字段的可變數(shù)據(jù)元素安排到該數(shù)據(jù)字段的相應(yīng)的數(shù)據(jù)陣列。此外,在一些實(shí)施例中,數(shù)據(jù)陣列可以包括一維陣列或多維陣列。在210,方法200包括通過(guò)第一壓縮技術(shù)壓縮數(shù)據(jù)陣列以形成第一已壓縮數(shù)據(jù)陣列,并通過(guò)第二壓縮技術(shù)壓縮數(shù)據(jù)陣列以形成第二已壓縮數(shù)據(jù)陣列。在一些實(shí)施例中,第一壓縮技術(shù)包括二進(jìn)制譯碼壓縮技術(shù)、差分譯碼壓縮技術(shù)或赫夫曼譯碼壓縮技術(shù)之一;且其中第二壓縮技術(shù)包括二進(jìn)制譯碼壓縮技術(shù)、差分譯碼壓縮技術(shù)或赫夫曼譯碼壓縮技術(shù)中另外之一。在212,方法200包括選擇第一已壓縮數(shù)據(jù)陣列或第二已壓縮數(shù)據(jù)陣列之一來(lái)被包括在已壓縮文件中。在一些實(shí)施例中,212可以包括,在213,確定第一已壓縮數(shù)據(jù)陣列的第一壓縮率和第二已壓縮數(shù)據(jù)陣列的第二壓縮率,其中選擇第一已壓縮數(shù)據(jù)陣列或第二已壓縮數(shù)據(jù)陣列之一是至少部分基于第一壓縮率和第二壓縮率的比較。繼續(xù)到214,方法200包括,將包括所選已壓縮數(shù)據(jù)陣列的已壓縮文件發(fā)送到請(qǐng)求計(jì)算設(shè)備。在一些實(shí)施例中,已壓縮文件還可以包括未壓縮文本數(shù)據(jù)和未壓縮十六進(jìn)制數(shù)據(jù)中的一個(gè)或多個(gè)以及/或者標(biāo)識(shí)用于解壓所選已壓縮數(shù)據(jù)陣列的解壓技術(shù)的標(biāo)識(shí)符。在一些實(shí)施例中,214可以包括將已壓縮文件發(fā)送到請(qǐng)求計(jì)算設(shè)備,其中發(fā)送已壓縮文件還包括不將語(yǔ)法包括在已壓縮文件中。
在請(qǐng)求計(jì)算設(shè)備,方法200包括,在216,從媒體服務(wù)器設(shè)備接收已壓縮文件。繼續(xù)到218,方法200包括,至少部分基于已壓縮文件填充已結(jié)構(gòu)化語(yǔ)法文件,其通過(guò)在220, 根據(jù)每個(gè)已壓縮數(shù)據(jù)陣列各自的編碼方案標(biāo)識(shí)符來(lái)標(biāo)識(shí)每個(gè)已壓縮數(shù)據(jù)陣列的解壓技術(shù), 在222,根據(jù)所標(biāo)識(shí)的解壓技術(shù)將已壓縮數(shù)據(jù)陣列解壓縮為已解壓數(shù)據(jù)陣列;以及,在224, 對(duì)于每個(gè)已解壓數(shù)據(jù)陣列,將已解壓數(shù)據(jù)陣列的可變數(shù)據(jù)元素根據(jù)公知結(jié)構(gòu)安排入數(shù)據(jù)字段,使得可變數(shù)據(jù)元素根據(jù)公知結(jié)構(gòu)與已結(jié)構(gòu)化的語(yǔ)法文件中的已結(jié)構(gòu)化的語(yǔ)法相關(guān)聯(lián)。 在一些實(shí)施例中,解壓技術(shù)可以包括二進(jìn)制譯碼壓縮技術(shù)、差分譯碼壓縮技術(shù)或赫夫曼譯碼壓縮技術(shù)中的一個(gè)。附加地或可替換的,在一些實(shí)施例中,218可以包括,在225,向已結(jié)構(gòu)化的語(yǔ)法文件插入包括在已壓縮文件中的未壓縮文本數(shù)據(jù)和未壓縮十六進(jìn)制數(shù)據(jù)中的一個(gè)或多個(gè)??梢岳斫猓颂幩枋龅挠?jì)算設(shè)備可以是被配置成執(zhí)行此處所描述的指令的任何合適的計(jì)算設(shè)備。例如,計(jì)算設(shè)備可以是大型計(jì)算機(jī)、個(gè)人計(jì)算機(jī)、膝上計(jì)算機(jī)、便攜式數(shù)據(jù)助理(PDA)、啟用計(jì)算機(jī)的無(wú)線電話、聯(lián)網(wǎng)計(jì)算設(shè)備、游戲控制臺(tái)或任意其他合適的計(jì)算設(shè)備。而且,可以理解,此處所描述的計(jì)算設(shè)備可以通過(guò)計(jì)算機(jī)網(wǎng)絡(luò),例如因特網(wǎng),彼此連接。 而且,可以理解,計(jì)算設(shè)備可以連接到網(wǎng)絡(luò)云環(huán)境中工作的服務(wù)器計(jì)算設(shè)備。此處描述的計(jì)算設(shè)備通常包括處理器和相關(guān)聯(lián)的易失性和非易失性存儲(chǔ)器,并被配置成使用易失性存儲(chǔ)器的各部分和處理器來(lái)執(zhí)行存儲(chǔ)在非易失性存儲(chǔ)器中的程序。如在此所使用,術(shù)語(yǔ)“程序”是指可以由一個(gè)或多個(gè)在此描述的計(jì)算設(shè)備執(zhí)行或使用的軟件或固件組件。而且,術(shù)語(yǔ)“程序”還表示為包括下述一項(xiàng)或多項(xiàng)可執(zhí)行文件、數(shù)據(jù)文件、庫(kù)、驅(qū)動(dòng)程序、腳本、數(shù)據(jù)庫(kù)記錄等。可以理解,可提供具有存儲(chǔ)在其上的程序指令的計(jì)算機(jī)可讀介質(zhì),所述指令使得計(jì)算設(shè)備執(zhí)行上述方法,并且在計(jì)算設(shè)備執(zhí)行指令時(shí)使得上述系統(tǒng)工作。應(yīng)該理解,此處所述的配置和/或方法是示例性的,且這些具體實(shí)施例或示例不是局限性的,因?yàn)槎鄠€(gè)變體是可能。此處所述的具體例程或方法可表示任何數(shù)量的處理策略中的一個(gè)或多個(gè)。由此,所示出的各個(gè)動(dòng)作可以按所示順序執(zhí)行、按其他順序執(zhí)行、并行地執(zhí)行、或者在某些情況下省略。同樣,可以改變上述過(guò)程的次序。本發(fā)明的主題包括各種過(guò)程、系統(tǒng)和配置的所有新穎和非顯而易見(jiàn)的組合和子組合、和此處所公開(kāi)的其它特征、功能、動(dòng)作、和/或特性、以及其任何和全部等效方案。
權(quán)利要求
1.一種計(jì)算設(shè)備(102),被配置成向請(qǐng)求計(jì)算設(shè)備(15 提供已動(dòng)態(tài)壓縮的信息,所述已動(dòng)態(tài)壓縮的信息從包含根據(jù)公知結(jié)構(gòu)安排在一個(gè)或多個(gè)數(shù)據(jù)字段中的可變數(shù)據(jù)元素的信息文件中導(dǎo)出,所述計(jì)算設(shè)備包括處理器(106);以及包括存儲(chǔ)于其上的指令的存儲(chǔ)器(108),所述指令由所述處理器(106)執(zhí)行以從所述請(qǐng)求計(jì)算設(shè)備(15 接收對(duì)所述已動(dòng)態(tài)壓縮的信息的請(qǐng)求;從所述信息文件提取所述可變數(shù)據(jù)元素;壓縮所述可變數(shù)據(jù)元素以形成已壓縮數(shù)據(jù)元素;以及向所述請(qǐng)求計(jì)算設(shè)備(15 發(fā)送包含所述已壓縮數(shù)據(jù)元素的已壓縮文件。
2.如權(quán)利要求1所述的計(jì)算設(shè)備,其特征在于,所述指令還可以被所述處理器執(zhí)行以 在壓縮所述可變數(shù)據(jù)元素之前,將第一數(shù)據(jù)字段的可變數(shù)據(jù)元素安排到數(shù)據(jù)陣列中。
3.如權(quán)利要求2所述的計(jì)算設(shè)備,其特征在于,所述指令還可以被所述處理器執(zhí)行以 將每個(gè)數(shù)據(jù)字段的可變數(shù)據(jù)元素安排到該數(shù)據(jù)字段的各自的數(shù)據(jù)陣列中。
4.如權(quán)利要求2所述的計(jì)算設(shè)備,其特征在于,所述數(shù)據(jù)陣列包括多維數(shù)據(jù)陣列或一維數(shù)據(jù)陣列。
5.如權(quán)利要求1所述的計(jì)算設(shè)備,其特征在于,所述可變數(shù)據(jù)元素包括整數(shù)值。
6.如權(quán)利要求2所述的計(jì)算設(shè)備,其特征在于,所述指令還可以被所述處理器執(zhí)行以通過(guò)以下來(lái)壓縮所述可變數(shù)據(jù)元素通過(guò)第一壓縮技術(shù)來(lái)壓縮所述數(shù)據(jù)陣列來(lái)形成第一已壓縮數(shù)據(jù)陣列; 通過(guò)第二壓縮技術(shù)來(lái)壓縮所述數(shù)據(jù)陣列來(lái)形成第二已壓縮數(shù)據(jù)陣列; 確定所述第一已壓縮數(shù)據(jù)陣列的第一壓縮率和所述第二已壓縮數(shù)據(jù)陣列的第二壓縮率;至少部分基于所述第一壓縮率和所述第二壓縮率的比較,從所述第一已壓縮數(shù)據(jù)陣列和所述第二已壓縮數(shù)據(jù)陣列中選擇所選已壓縮數(shù)據(jù)陣列以包括在所述已壓縮文件中;以及其中,所述指令還能夠被執(zhí)行以向所述請(qǐng)求計(jì)算設(shè)備發(fā)送編碼方案標(biāo)識(shí)符,所述編碼方案標(biāo)識(shí)符標(biāo)識(shí)用于解碼所選已壓縮數(shù)據(jù)陣列的解壓技術(shù)。
7.如權(quán)利要求6所述的計(jì)算設(shè)備,其特征在于,所述第一壓縮技術(shù)包括二進(jìn)制譯碼壓縮技術(shù)、差分譯碼壓縮技術(shù)或赫夫曼譯碼壓縮技術(shù)之一,且其中所述第二壓縮技術(shù)包括二進(jìn)制譯碼壓縮技術(shù)、差分譯碼壓縮技術(shù)或赫夫曼譯碼壓縮技術(shù)中另外之一。
8.如權(quán)利要求1所述的計(jì)算設(shè)備,其特征在于,所述已壓縮文件還包括未壓縮文本數(shù)據(jù)和未壓縮十六進(jìn)制數(shù)據(jù)中的一個(gè)或多個(gè)。
9.如權(quán)利要求1所述的計(jì)算設(shè)備,其特征在于,所述已壓縮文件不包括語(yǔ)法。
10.在被配置成向請(qǐng)求計(jì)算設(shè)備提供已壓縮文件的媒體服務(wù)器設(shè)備中,其中所述已壓縮文件從流化媒體資產(chǎn)的已結(jié)構(gòu)化語(yǔ)法清單文件導(dǎo)出,所述已結(jié)構(gòu)化語(yǔ)法清單文件包括根據(jù)公知結(jié)構(gòu)安排在一個(gè)或多個(gè)數(shù)據(jù)字段中的可變數(shù)據(jù)元素,一種用于壓縮并將已壓縮文件發(fā)送到請(qǐng)求計(jì)算設(shè)備的方法000),所述方法包括從所述請(qǐng)求計(jì)算設(shè)備接收(20 對(duì)已壓縮文件的請(qǐng)求; 從已結(jié)構(gòu)化語(yǔ)法清單文件提取(206)可變數(shù)據(jù)元素; 將第一數(shù)據(jù)字段的可變數(shù)據(jù)元素安排(208)到數(shù)據(jù)陣列中;通過(guò)第一壓縮技術(shù)來(lái)壓縮(210)所述數(shù)據(jù)陣列來(lái)形成第一已壓縮數(shù)據(jù)陣列;通過(guò)第二壓縮技術(shù)來(lái)壓縮(210)所述數(shù)據(jù)陣列來(lái)形成第二已壓縮數(shù)據(jù)陣列;選擇(21 所述第一已壓縮數(shù)據(jù)陣列或所述第二已壓縮數(shù)據(jù)陣列之一來(lái)包括在所述已壓縮文件中;以及將包含所選已壓縮數(shù)據(jù)陣列的已壓縮文件發(fā)送(214)到所述請(qǐng)求計(jì)算設(shè)備。
11.如權(quán)利要求10所述的方法,其特征在于,所述第一壓縮技術(shù)包括二進(jìn)制譯碼壓縮技術(shù)、差分譯碼壓縮技術(shù)或赫夫曼譯碼壓縮技術(shù)之一,且其中所述第二壓縮技術(shù)包括二進(jìn)制譯碼壓縮技術(shù)、差分譯碼壓縮技術(shù)或赫夫曼譯碼壓縮技術(shù)中另外之一。
12.如權(quán)利要求10所述的方法,其特征在于,所述已壓縮文件還包括未壓縮文本數(shù)據(jù)和未壓縮十六進(jìn)制數(shù)據(jù)中的一個(gè)或多個(gè)以及/或者標(biāo)識(shí)用于解壓所選已壓縮數(shù)據(jù)陣列的解壓技術(shù)的標(biāo)識(shí)符。
13.如權(quán)利要求10所述的方法,其特征在于,發(fā)送所述已壓縮文件還包括不將語(yǔ)法包括在所述已壓縮文件中。
14.如權(quán)利要求10所述的方法,其特征在于,所述數(shù)據(jù)陣列包括一維數(shù)據(jù)陣列或多維數(shù)據(jù)陣列。
15.如權(quán)利要求10所述的方法,其特征在于還包括,確定所述第一已壓縮數(shù)據(jù)陣列的第一壓縮率和所述第二已壓縮數(shù)據(jù)陣列的第二壓縮率,其中選擇所述第一已壓縮數(shù)據(jù)陣列或所述第二已壓縮數(shù)據(jù)陣列之一至少部分基于所述第一壓縮率和所述第二壓縮率的比較。
全文摘要
本發(fā)明涉及數(shù)據(jù)的有效提取和壓縮。提供了一種用于動(dòng)態(tài)地提取和壓縮流化媒體資產(chǎn)的信息的設(shè)備。該設(shè)備的一個(gè)實(shí)施例提供了包括處理器和存儲(chǔ)器的計(jì)算設(shè)備,在存儲(chǔ)器上存儲(chǔ)有可被處理器執(zhí)行的指令。存儲(chǔ)在存儲(chǔ)器中的指令是可執(zhí)行的,以向請(qǐng)求計(jì)算設(shè)備提供流化媒體資產(chǎn)的已動(dòng)態(tài)壓縮的信息,已動(dòng)態(tài)壓縮的信息從包含可變數(shù)據(jù)元素的信息文件中導(dǎo)出,該可變數(shù)據(jù)元素根據(jù)公知結(jié)構(gòu)安排在一個(gè)或多個(gè)數(shù)據(jù)字段中。例如,指令可被執(zhí)行以從請(qǐng)求計(jì)算設(shè)備接收對(duì)已壓縮信息的請(qǐng)求,從信息文件提取可變數(shù)據(jù)元素,壓縮可變數(shù)據(jù)元素以形成已壓縮數(shù)據(jù)元素,并向請(qǐng)求計(jì)算設(shè)備發(fā)送包含已壓縮數(shù)據(jù)元素的已壓縮文件。
文檔編號(hào)H03M7/30GK102185611SQ20111004326
公開(kāi)日2011年9月14日 申請(qǐng)日期2011年2月15日 優(yōu)先權(quán)日2010年2月16日
發(fā)明者C·顧, F·O·福爾塔, K·科特瑞, M·希洛崔, S·斯皮爾斯, 何亞明 申請(qǐng)人:微軟公司