專利名稱:用于無損視頻壓縮的參數(shù)估計的系統(tǒng)、方法和計算機程序產(chǎn)品的制作方法
用于無損視頻壓縮的參數(shù)估計的系統(tǒng)、方法和計算機程序
產(chǎn)品
背景技術(shù):
當執(zhí)行視頻處理時,多媒體片上系統(tǒng)(SoC)必須處理雙數(shù)據(jù)率(DDR)存儲器內(nèi)的多個視頻幀緩沖器。這可導(dǎo)致高DDR帶寬要求,抬高成本和功耗。在這些系統(tǒng)中,可通過諸如視頻捕捉模塊、視頻解碼器、視頻編碼器、2D或3D圖形模塊或視頻顯示器處理器之類的片上單元以高幀率寫或讀視頻幀緩沖器??赏ㄟ^在被寫入DDR存儲器時無損壓縮這些視頻緩沖器并且在讀取它們時對其解壓縮來解決該高帶寬要求。這種壓縮和解壓縮可顯著降低 DDR帶寬。然而,為了能實現(xiàn),任何無損壓縮過程必須能夠?qū)崟r地執(zhí)行壓縮和解壓縮,而無需預(yù)處理當前數(shù)據(jù)集的好處?,F(xiàn)有的解決方案可執(zhí)行簡單的統(tǒng)計計算,即在η個先前碼元上進行平均以確定用于當前碼元的最佳編碼參數(shù)。在Golomb-Rice壓縮的情況下,可將該參數(shù)稱為Μ。其它解決方案可使用串聯(lián)濾波器來選擇當前碼元的編碼參數(shù)。這些方法可需要在編碼參數(shù)可用于當前碼元之前解碼先前碼元,因此這些方法對于實時視頻壓縮尤其是當視頻實時地流入和流出DDR時,可能不是良好的候選。附圖簡述
圖1是示出根據(jù)實施例在本文中描述的處理的流程圖。圖2示出根據(jù)實施例,在幀中出現(xiàn)的碼元及其頻率的示例性直方圖。圖3示出根據(jù)實施例可用于存儲直方圖的信息的數(shù)據(jù)結(jié)構(gòu)。圖4是用于軟件或固件實施例的示例性計算環(huán)境的框圖。在附圖中,附圖標記的最左邊的一個或多個數(shù)字標識該附圖標記首次出現(xiàn)的附圖。具體描述現(xiàn)在參見附圖對優(yōu)選實施例進行描述,其中相同的附圖標記表示相同或功能相似的要素。盡管討論了特定結(jié)構(gòu)和配置,然而應(yīng)當理解這只是為了解說目的。相關(guān)領(lǐng)域內(nèi)技術(shù)人員應(yīng)當理解,可使用其它結(jié)構(gòu)和配置而不脫離說明書的精神和范圍。本領(lǐng)域內(nèi)技術(shù)人員將清楚知道,這也可為本文所描述以外的多種其它系統(tǒng)和場合所采納。本文描述的方法和系統(tǒng)解決調(diào)節(jié)編碼參數(shù)以使“實時”無損視頻壓縮方案的壓縮效率最大化的問題。這可用于降低DDR存儲器帶寬??赏ㄟ^利用適當?shù)木幋a參數(shù)來提高當前幀的壓縮和解壓縮效率。為了選擇適當?shù)木幋a參數(shù),可創(chuàng)建先前幀的碼元的直方圖。給出特定的編碼參數(shù),直方圖可用于預(yù)測無損壓縮后當前幀將包含的位數(shù)。在先前的幀的直方圖上重復(fù)所有可能的編碼參數(shù)可得到能夠用于壓縮當前幀的適當編碼參數(shù)。通過使用先前幀作為預(yù)測器這得到高壓縮效率。這利用周圍幀的結(jié)構(gòu)之間的強相關(guān)。根據(jù)實施例,在圖1中示出可實現(xiàn)它的過程。在105,可將編碼參數(shù)M初始化為0。 在110,用于M的該值暫時被視為最佳的已知編碼參數(shù),在所示實施例中稱為best_M。在 115,可將變量l0West_#_0f_bits初始化為未壓縮的當前幀中的位數(shù),即(幀大小)* (每個像素的位)。在120,可針對先前的幀創(chuàng)建直方圖。給出編碼參數(shù)M,該直方圖可為每個碼元指示該碼元的出現(xiàn)數(shù)。在125,可按碼元頻率的降序組織直方圖??墒紫仁境鲎铑l繁或常見的碼元,隨后是次最頻繁的碼元等。在130,代碼可與直方圖中所示的每個碼元相關(guān)聯(lián)。代碼的關(guān)聯(lián)可通過碼元頻率完成,使得最常見的碼元被分配給最小的代碼,即具有最小位數(shù)的代碼。次最常見的碼元可獲得次最小的代碼等。在135,給出編碼參數(shù)M和在130分配給碼元的代碼,可確定用于編碼幀所需的位數(shù)。在140,可作出關(guān)于在135確定的位數(shù)是否小于變量loWeSt_#_of_bitS的當前值的判定。如果是,則在145過程可繼續(xù)。在這里,所確定的位數(shù)現(xiàn)在可被分配給變量 lowest_#_of_bits。在150,當前編碼參數(shù)M可被分配給變量best_M。在155,編碼參數(shù)M 可增加1。如果在140,在135確定的位數(shù)不小于lowest_#_of_bits,則在155當前編碼參數(shù)M可增加1。在160,可作出關(guān)于M是否已超過所允許的最大參數(shù)值的確定。如果否,則過程可返回到120。這里,可為先前幀創(chuàng)建另一個直方圖,這次將新增加的值用于編碼參數(shù)M。對于編碼參數(shù)M的連續(xù)值可重復(fù)120-155的次序。過程可在165結(jié)束。在該點上,變量best_ M包含與利用最低位數(shù)編碼先前幀相關(guān)聯(lián)的編碼參數(shù)。用于best_M&最后值可表示期望的編碼參數(shù)。根據(jù)實施例,在圖2中示出描繪先前幀中碼元的出現(xiàn)頻率的直方圖的示例。在X 軸上碼元由標識符si、s2、…等示出。Y軸指示在先前幀中每個碼元的出現(xiàn)數(shù)。在該示例中,根據(jù)碼元在幀中出現(xiàn)的次數(shù)來對碼元排序。碼元si可以是最頻繁出現(xiàn)的碼元,而s2可以是次最頻繁出現(xiàn)的碼元等等。盡管在該圖示中示出了五個碼元,但應(yīng)該理解在不同的實施例中,碼元的總數(shù)可以更多或更少。出于處理的目的,根據(jù)實施例,可創(chuàng)建直方圖并以數(shù)組或類似的數(shù)據(jù)結(jié)構(gòu)的形式存儲。在圖3中示出這一數(shù)組。在該示例中,每個元素指示碼元在先前幀中的出現(xiàn)數(shù),其中元素可由碼元標識符索引。本文中公開的一個或多個特征可在硬件、軟件、固件以及它們的組合中實現(xiàn),包括分立和集成電路邏輯、專用集成電路(ASIC)邏輯、可編程門陣列和/或微控制器,且可實現(xiàn)為專門領(lǐng)域的集成電路封裝的一部分或集成電路封裝的組合。本文中所使用的“軟件”這一術(shù)語指示包括計算機可讀介質(zhì)的計算機程序產(chǎn)品,該計算機可讀介質(zhì)具有存儲于其中的計算機程序邏輯以使計算機系統(tǒng)執(zhí)行本文中所揭示的一個或多個特征和/或特征的組合。在圖4中的計算系統(tǒng)400的背景中示出軟件或固件實施例。系統(tǒng)400可包括處理器420和存儲器本體410,存儲器本體410可包括可存儲計算機程序邏輯440的一個或多個計算機可讀介質(zhì)。存儲器410例如可實現(xiàn)為硬盤和驅(qū)動器、諸如緊湊盤和驅(qū)動器之類的可移動介質(zhì)或只讀存儲器(ROM)或隨機存取存儲器(RAM)設(shè)備。處理器420和存儲器410 可使用本領(lǐng)域的技術(shù)人員已知的若干技術(shù)中的任何一種來通信,例如總線。存儲器410中包含的計算機程序邏輯440可由處理器420讀取和執(zhí)行。一個或多個I/O端口和/或I/O 設(shè)備——統(tǒng)一圖示為I/O 430——也可連接于處理器420和存儲器410。計算機程序邏輯440可包括直方圖創(chuàng)建邏輯450。給出編碼參數(shù)M,該邏輯可響應(yīng)于先前幀的檢查來確定在該幀中使用的碼元,對每個碼元的出現(xiàn)數(shù)計數(shù),并構(gòu)造捕捉該數(shù)據(jù)的直方圖。計算機程序邏輯440還可包括代碼關(guān)聯(lián)邏輯460,給出編碼參數(shù)M,該代碼關(guān)聯(lián)邏輯460可負責將代碼與先前幀中使用的碼元相關(guān)聯(lián)。如上所述,最短的代碼可被分配給先前幀中最頻繁出現(xiàn)的碼元,次最短代碼可被分配給以次最高頻率出現(xiàn)的碼元,等等。計算機程序邏輯440還可包括編碼要求邏輯470,給出編碼參數(shù)M和代碼與相應(yīng)的碼元之間的關(guān)聯(lián),該編碼要求邏輯470可負責確定編碼先前幀所需的總位數(shù)。在可選實施例中,可按不同方式組織計算機程序邏輯440以便實現(xiàn)本文所述的處理??墒褂貌煌倪壿嬆K來代替圖4所示的那些。此外,在備選實施例中,可使用更多或更少的邏輯模塊,正如本領(lǐng)域的技術(shù)人員所理解的。在這里,各種方法和系統(tǒng)是借助于示出其功能、特征和關(guān)系的功能性構(gòu)造框來公開的。在本文中為便于描述,任意地限定了這些功能性構(gòu)造框的至少一些邊界。除非專門指明,可定義替代的邊界,只要指定功能及其關(guān)系能適當?shù)貙崿F(xiàn)。雖然本文中揭示了各種實施例,但要知道它們僅以示例方式給出而非作為限定。 本領(lǐng)域普通技術(shù)人員應(yīng)當清楚知道,其中可作出形式上以及細節(jié)上的各種改變而不背離本文所揭示的方法和系統(tǒng)的精神和范圍。因此,權(quán)利要求的寬度和范圍不受本文中所揭示的任何示例性實施例的限制。
權(quán)利要求
1.一種方法,包括創(chuàng)建先前幀的直方圖,其中所述直方圖指示用于利用編碼參數(shù)表示先前幀的多個碼元中的每一個的出現(xiàn)數(shù);將代碼與每個碼元相關(guān)聯(lián),使得具有最低位數(shù)的代碼與具有最多出現(xiàn)的碼元相關(guān)聯(lián), 且具有相繼較大位數(shù)的代碼與相應(yīng)的具有相繼較少出現(xiàn)的碼元相關(guān)聯(lián); 確定利用碼元和相關(guān)聯(lián)的代碼編碼先前幀所需的位數(shù); 對于多個編碼參數(shù)中的每一個重復(fù)所述創(chuàng)建、關(guān)聯(lián)和確定;以及標識允許以需要最少位的方式編碼先前幀的編碼參數(shù)。
2.如權(quán)利要求1所述的方法,其特征在于,還包括 在當前幀的壓縮中使用所標識的編碼參數(shù)。
3.如權(quán)利要求2所述的方法,其特征在于,與多個相應(yīng)碼元相關(guān)聯(lián)的代碼包括Golomb 代碼,且所述壓縮包括Golomb-Rice壓縮。
4.如權(quán)利要求1所述的方法,其特征在于,還包括 從最常見的碼元至最不常見的碼元對直方圖排序。
5.如權(quán)利要求1所述的方法,其特征在于,在片上系統(tǒng)(SOC)架構(gòu)上執(zhí)行所述方法。
6.如權(quán)利要求1所述的方法,其特征在于,所述多個編碼參數(shù)包括八個編碼參數(shù)。
7.一種系統(tǒng),包括 處理器;以及與所述處理器通信的存儲器,所述存儲器用于存儲多個處理指令,所述處理指令指導(dǎo)所述處理器創(chuàng)建先前幀的直方圖,其中所述直方圖指示用于利用編碼參數(shù)表示先前幀的多個碼元中的每一個的出現(xiàn)數(shù);將代碼與每個碼元相關(guān)聯(lián),使得具有最低位數(shù)的代碼與具有最多出現(xiàn)的碼元相關(guān)聯(lián), 且具有相繼較大位數(shù)的代碼與相應(yīng)的具有相繼較少出現(xiàn)的碼元相關(guān)聯(lián); 確定利用碼元和相關(guān)聯(lián)的代碼編碼先前幀所需的位數(shù); 對于多個編碼參數(shù)中的每一個重復(fù)所述創(chuàng)建、關(guān)聯(lián)和確定;以及標識允許以需要最少位的方式編碼先前幀的編碼參數(shù)。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述存儲器還存儲用于指導(dǎo)所述處理在下一幀的壓縮中使用所標識的編碼參數(shù)的處理指令。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,與多個相應(yīng)碼元相關(guān)聯(lián)的代碼包括Golomb 代碼,且所述壓縮包括Golomb-Rice壓縮。
10.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述存儲器還存儲用于指導(dǎo)所述處理器從最常見的碼元至最不常見的碼元對直方圖排序的處理指令。
11.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述系統(tǒng)包含在片上系統(tǒng)(SOC)架構(gòu)中。
12.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述多個編碼參數(shù)包括八個編碼參數(shù)。
13.—種包括其中存儲有計算機程序邏輯的計算機可讀介質(zhì)的計算機程序產(chǎn)品,所述計算機程序邏輯包括導(dǎo)致處理器創(chuàng)建先前幀的直方圖的邏輯,其中所述直方圖指示用于利用編碼參數(shù)表示先前幀的多個碼元中的每一個的出現(xiàn)數(shù);導(dǎo)致處理器將代碼與每個碼元相關(guān)聯(lián)的邏輯,使得具有最低位數(shù)的代碼與具有最多出現(xiàn)的碼元相關(guān)聯(lián),且具有相繼較大位數(shù)的代碼與相應(yīng)的具有相繼較少出現(xiàn)的碼元相關(guān)聯(lián); 導(dǎo)致處理器確定利用碼元和相關(guān)聯(lián)的代碼編碼先前幀所需的位數(shù)的邏輯; 導(dǎo)致處理器對于多個編碼參數(shù)中的每一個重復(fù)所述創(chuàng)建、關(guān)聯(lián)和確定的邏輯;以及導(dǎo)致處理器標識允許以需要最少位的方式編碼先前幀的編碼參數(shù)的邏輯。
14.如權(quán)利要求13所述的計算機程序產(chǎn)品,其特征在于,所述計算機程序邏輯還包括 導(dǎo)致處理器在下一幀的壓縮中使用所標識的編碼參數(shù)的邏輯。
15.如權(quán)利要求14所述的計算機程序產(chǎn)品,其特征在于,與多個相應(yīng)碼元相關(guān)聯(lián)的代碼包括Golomb代碼,且所述壓縮包括Golomb-Rice壓縮。
16.如權(quán)利要求13所述的計算機程序產(chǎn)品,其特征在于,所述計算機程序邏輯還包括 導(dǎo)致處理器從最常見的碼元至最不常見的碼元對直方圖排序的邏輯。
17.如權(quán)利要求13所述的計算機程序產(chǎn)品,其特征在于,所述計算機程序產(chǎn)品包含在片上系統(tǒng)(SOC)架構(gòu)中。
18.如權(quán)利要求13所述的計算機程序產(chǎn)品,其特征在于,所述多個編碼參數(shù)包括八個編碼參數(shù)。
全文摘要
本發(fā)明公開了用于無損視頻壓縮的參數(shù)估計的系統(tǒng)、方法和計算機程序產(chǎn)品。改進視頻處理效率的方法和系統(tǒng)??赏ㄟ^利用適當?shù)木幋a參數(shù)來提高當前幀的壓縮和解壓縮效率。為了選擇適當?shù)木幋a參數(shù),可創(chuàng)建先前幀的碼元的直方圖。給出特定的編碼參數(shù),直方圖可用于預(yù)測在無損壓縮后當前幀將包含的位數(shù)。在先前的幀的直方圖上重復(fù)所有可能的編碼參數(shù)可得到能夠用于壓縮當前幀的適當編碼參數(shù)。通過使用先前幀作為預(yù)測器這得到高壓縮效率。
文檔編號G06T9/00GK102298782SQ201110188590
公開日2011年12月28日 申請日期2011年6月24日 優(yōu)先權(quán)日2010年6月25日
發(fā)明者M·庫爾特, V·S·托馬斯 申請人:英特爾公司