專利名稱:處理視頻數(shù)據(jù)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻數(shù)據(jù)的加密,更具體地說,涉及一種使用迭代編碼算法的視頻壓縮方法和系統(tǒng)。
背景技術(shù):
早期的視頻壓縮標(biāo)準(zhǔn),例如,MPEG-1、MPEG-2、H.263、MPEG-4和H.264/MPEG-4高級(jí)視頻編碼(AVC)規(guī)范了很多消費(fèi)產(chǎn)品。例如,這些標(biāo)準(zhǔn)使得視頻CD和DVD能在數(shù)字VCR/機(jī)頂盒和計(jì)算機(jī)上進(jìn)行視頻回放,使得數(shù)字廣播視頻能通過陸地、線纜或衛(wèi)星網(wǎng)絡(luò)傳播,實(shí)現(xiàn)了數(shù)字電視和HDTV。MPEG-1以較低解析度和比特率提供了非交錯(cuò)(non-interlaced)視頻的編碼,提供與VHS類似的視頻質(zhì)量。MPEG-2以較高解析度和比特率提供了交錯(cuò)視頻的編碼,實(shí)現(xiàn)具有相當(dāng)視頻質(zhì)量的數(shù)字電視和HDTV(高清電視)。H.263提供了視頻會(huì)議和視頻電話應(yīng)用。MPEG-4的開發(fā)可提供新一代多媒體應(yīng)用和服務(wù)。采用MPEG-4的前提是交互式多媒體應(yīng)用和服務(wù),例如互動(dòng)電視,以及需要訪問經(jīng)編碼的音頻和視頻對(duì)象的互聯(lián)網(wǎng)視頻。MPEG-4也實(shí)現(xiàn)了比MPEG-1和MPEG-2效率更高的壓縮。H.264/MPEG-4 AVC是現(xiàn)有技術(shù)中一種新的視頻編碼標(biāo)準(zhǔn),滿足日益增長的較高壓縮的需求,以盡可能提供最佳的視頻質(zhì)量以及各種實(shí)際應(yīng)用,例如互聯(lián)網(wǎng)多媒體、無線視頻、個(gè)人錄像機(jī)、視頻點(diǎn)播和視頻會(huì)議。
視頻壓縮標(biāo)準(zhǔn)例如MPEG-1、MPEG-2、H.263、MPEG-4和H.264/MPEG-4高級(jí)視頻編碼(AVC)的基本視頻壓縮結(jié)構(gòu)是非常近似的。該結(jié)構(gòu)通常稱作動(dòng)作補(bǔ)償轉(zhuǎn)換編碼或壓縮結(jié)構(gòu)。視頻的壓縮可逐個(gè)圖像執(zhí)行。將被編碼的每個(gè)圖像可首先分割為多個(gè)切片(slice)。切片是獨(dú)立的編碼單元,并可進(jìn)一步被分割為微塊和塊,以便于高效編碼操作。對(duì)這些編碼塊可應(yīng)用動(dòng)作補(bǔ)償、塊轉(zhuǎn)換和量化操作,并且可對(duì)各種壓縮元素例如動(dòng)作向量和量化系數(shù)執(zhí)行熵編碼。
比較本發(fā)明后續(xù)將要結(jié)合附圖介紹的系統(tǒng),現(xiàn)有技術(shù)的其它局限性和弊端對(duì)于本領(lǐng)域的普通技術(shù)人員來說是顯而易見的。
發(fā)明內(nèi)容
本發(fā)明提出一種使用迭代編碼算法的視頻壓縮方法和/或系統(tǒng),以下充分結(jié)合至少一幅附圖進(jìn)行描述,并在權(quán)利要求中進(jìn)行完整描述。
根據(jù)本發(fā)明的一個(gè)方面,本發(fā)明提供一種處理視頻數(shù)據(jù)的方法,所述方法包括在壓縮接收的視頻數(shù)據(jù)過程中,基于至少一個(gè)量化向量動(dòng)態(tài)調(diào)整所述接收的視頻數(shù)據(jù)中至少一部分視頻數(shù)據(jù)的編碼率。
優(yōu)選地,所述方法進(jìn)一步包括縮放所述至少一個(gè)量化向量以用于所述接收的視頻數(shù)據(jù)。
優(yōu)選地,所述方法進(jìn)一步包括在所述壓縮過程中,使用以下至少其一調(diào)整所述接收的視頻數(shù)據(jù)的編碼率修剪樹結(jié)構(gòu)編碼(pruned tree structure code)和縮短低密度奇偶校驗(yàn)(LDPC)碼。
優(yōu)選地,所述方法進(jìn)一步包括對(duì)所述接收的視頻數(shù)據(jù)中至少一個(gè)宏塊進(jìn)行回路濾波(loop filtering)。
優(yōu)選地,所述方法進(jìn)一步包括在所述壓縮過程中動(dòng)態(tài)選擇所述至少一個(gè)量化向量;通過壓縮比特流傳輸所選擇的所述至少一個(gè)量化向量至解碼器。
優(yōu)選地,所述方法進(jìn)一步包括在對(duì)所述接收的視頻數(shù)據(jù)進(jìn)行壓縮后,產(chǎn)生所述壓縮比特流。
優(yōu)選地,所述方法進(jìn)一步包括對(duì)所述至少一個(gè)量化向量進(jìn)行索引。
優(yōu)選地,所述方法進(jìn)一步包括對(duì)所述至少一個(gè)量化向量進(jìn)行排序。
根據(jù)本發(fā)明的另一個(gè)方面,本發(fā)明提供一種機(jī)器可讀存儲(chǔ)器,存儲(chǔ)在其中的計(jì)算機(jī)程序具有至少一個(gè)代碼段用于處理視頻數(shù)據(jù),所述至少一個(gè)代碼段被機(jī)器執(zhí)行后可使所述機(jī)器執(zhí)行下述步驟
在壓縮接收的視頻數(shù)據(jù)過程中,基于至少一個(gè)量化向量動(dòng)態(tài)調(diào)整所述接收的視頻數(shù)據(jù)中至少一部分視頻數(shù)據(jù)的編碼率。
優(yōu)選地,所述機(jī)器可讀存儲(chǔ)器進(jìn)一步包括用于縮放所述至少一個(gè)量化向量以用于所述接收的視頻數(shù)據(jù)的代碼。
優(yōu)選地,所述機(jī)器可讀存儲(chǔ)器進(jìn)一步包括用于在所述壓縮過程中使用以下至少其一調(diào)整所述接收的視頻數(shù)據(jù)的編碼率的代碼修剪樹結(jié)構(gòu)編碼和縮短低密度奇偶校驗(yàn)碼。
優(yōu)選地,所述機(jī)器可讀存儲(chǔ)器進(jìn)一步包括用于對(duì)所述接收的視頻數(shù)據(jù)中至少一個(gè)宏塊進(jìn)行回路濾波的代碼。
優(yōu)選地,所述機(jī)器可讀存儲(chǔ)器進(jìn)一步包括用于在所述壓縮過程中動(dòng)態(tài)選擇所述至少一個(gè)量化向量的代碼;用于通過壓縮比特流傳輸所選擇的所述至少一個(gè)量化向量至解碼器的代碼。
優(yōu)選地,所述機(jī)器可讀存儲(chǔ)器進(jìn)一步包括用于在對(duì)所述接收的視頻數(shù)據(jù)進(jìn)行壓縮后產(chǎn)生所述壓縮比特流的代碼。
優(yōu)選地,所述機(jī)器可讀存儲(chǔ)器進(jìn)一步包括對(duì)所述至少一個(gè)量化向量進(jìn)行索引的代碼。
優(yōu)選地,所述機(jī)器可讀存儲(chǔ)器進(jìn)一步包括對(duì)所述至少一個(gè)量化向量進(jìn)行排序的代碼。
根據(jù)本發(fā)明的另一個(gè)方面,本發(fā)明提供一種處理視頻數(shù)據(jù)的系統(tǒng),所述系統(tǒng)包括用于在壓縮接收的視頻數(shù)據(jù)過程中基于至少一個(gè)量化向量動(dòng)態(tài)調(diào)整所述接收的視頻數(shù)據(jù)中至少一部分視頻數(shù)據(jù)的編碼率的電路。
優(yōu)選地,所述電路縮放所述至少一個(gè)量化向量以用于所述接收的視頻數(shù)據(jù)。
優(yōu)選地,所述電路在所述壓縮過程中使用以下至少其一調(diào)整所述接收的視頻數(shù)據(jù)的編碼率修剪樹結(jié)構(gòu)編碼和縮短低密度奇偶校驗(yàn)碼。
優(yōu)選地,所述電路對(duì)所述接收的視頻數(shù)據(jù)中至少一個(gè)宏塊進(jìn)行回路濾波。
優(yōu)選地,所述電路在所述壓縮過程中動(dòng)態(tài)選擇所述至少一個(gè)量化向量,并通過壓縮比特流傳輸所選擇的所述至少一個(gè)量化向量至解碼器。
優(yōu)選地,所述電路在對(duì)所述接收的視頻數(shù)據(jù)進(jìn)行壓縮后產(chǎn)生所述壓縮比特流。
優(yōu)選地,所述電路對(duì)所述至少一個(gè)量化向量進(jìn)行索引。
優(yōu)選地,所述電路對(duì)所述至少一個(gè)量化向量進(jìn)行排序。
本發(fā)明的各種優(yōu)點(diǎn)、各個(gè)方面和創(chuàng)新特征,以及其中所示例的實(shí)施例的細(xì)節(jié),將在以下的說明書和附圖中進(jìn)行詳細(xì)介紹。
圖1A是根據(jù)本發(fā)明實(shí)施例的視頻處理系統(tǒng)的模塊圖;圖1B是結(jié)合本發(fā)明實(shí)施例使用的視頻編碼器的模塊圖;圖2是結(jié)合本發(fā)明實(shí)施例使用的視頻解碼器的模塊圖;圖3是根據(jù)本發(fā)明實(shí)施例的視頻壓縮編碼器系統(tǒng)的模塊圖;圖4是根據(jù)本發(fā)明實(shí)施例的視頻壓縮解碼器系統(tǒng)的模塊圖;圖5是根據(jù)本發(fā)明實(shí)施例使用迭代向量編碼的視頻壓縮系統(tǒng)所執(zhí)行的方法的流程圖。
具體實(shí)施例方式
下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明本發(fā)明提供了一種使用迭代重復(fù)編碼算法的視頻壓縮方法和系統(tǒng)。本發(fā)明的方法和系統(tǒng)包括在對(duì)接收的視頻數(shù)據(jù)進(jìn)行比特率壓縮過程中,基于至少一個(gè)量化向量動(dòng)態(tài)調(diào)整所述接收的視頻數(shù)據(jù)的至少一部分的編碼率。至少一個(gè)量化向量可被自適應(yīng)性地選擇出來并通過壓縮比特流傳輸至解碼器。
圖1A是根據(jù)本發(fā)明實(shí)施例的視頻處理系統(tǒng)的模塊圖。參照?qǐng)D1A,系統(tǒng)170包括處理器172、視頻處理模塊174、存儲(chǔ)器178和視頻源176。視頻處理模塊174包括有編碼器180。視頻源176可包括有合適的電路、邏輯和/或編碼,用于傳輸原始視頻流數(shù)據(jù)給視頻處理模塊174。視頻處理模塊174可包括恰當(dāng)?shù)碾娐贰⑦壿嫼?或編碼,用于處理從視頻源176接收到的原始視頻數(shù)據(jù)。例如,視頻處理模塊174可對(duì)從視頻源176接收的視頻數(shù)據(jù)執(zhí)行編碼/解碼操作。在這點(diǎn)上,視頻處理模塊174可實(shí)現(xiàn)為特定的視頻處理芯片。編碼器180可包括恰當(dāng)?shù)倪壿嫛㈦娐泛?或編碼,基于處理器172的策略對(duì)接收的視頻數(shù)據(jù)編碼。
處理器172可包括恰當(dāng)?shù)碾娐贰⑦壿嫼?或編碼,用于通過視頻處理模塊174控制視頻信息的處理。處理器172可包括系統(tǒng)或主處理器。存儲(chǔ)器178可存儲(chǔ)原始或處理后的視頻數(shù)據(jù),例如,由視頻處理模塊174處理后的視頻數(shù)據(jù)。此外,存儲(chǔ)器178可存儲(chǔ)由處理器172執(zhí)行的編碼,所述編碼與視頻處理模塊174執(zhí)行的視頻處理任務(wù)相關(guān)。
圖1B是結(jié)合本發(fā)明實(shí)施例使用的視頻編碼器的模塊圖。參照?qǐng)D1B,展示了視頻編碼器100,可用于H.264/MPEG-4 AVC視頻比特流。視頻編碼器100可包括前向轉(zhuǎn)換和縮放模塊104、前向量化器106、速率控制器108、熵編碼和比特流產(chǎn)生器110、逆量化器112、縮放器和逆轉(zhuǎn)換模塊114、求和器130、減法器102、解塊濾波器116、多參考圖像存儲(chǔ)模塊118、內(nèi)部預(yù)測(cè)器120、塊間/塊內(nèi)選擇器(inter/intra selector)模塊122、動(dòng)作補(bǔ)償預(yù)測(cè)器124、多塊多幀動(dòng)作估測(cè)器126、交換器128和緩存132。
前向轉(zhuǎn)換和縮放模塊104可包括恰當(dāng)?shù)倪壿?、電路?或編碼,對(duì)系數(shù)進(jìn)行整數(shù)轉(zhuǎn)換。例如,在AVC中,可使用4×4整數(shù)轉(zhuǎn)換。轉(zhuǎn)換編碼可使用預(yù)測(cè)機(jī)制來構(gòu)建殘余(residual)。宏塊(MB)中像素值在宏塊內(nèi)的情況下可根據(jù)同一圖像中臨近像素預(yù)測(cè)得到,或者在宏塊間的情況下根據(jù)一個(gè)或兩個(gè)之前已解碼的參考圖像中的像素預(yù)測(cè)得到。
前向量化器106可包括恰當(dāng)?shù)倪壿?、電路?或編碼,用于縮放和量化比特流中的每個(gè)子塊(sub-block)。每個(gè)字塊中每個(gè)元素的縮放因子會(huì)隨與包含該子塊的宏塊相關(guān)的量化參數(shù)的函數(shù)而改變。速率控制器108可包括恰當(dāng)?shù)倪壿?、電路?或編碼,用于控制量化參數(shù)的值。
熵編碼和比特流產(chǎn)生器110可包括恰當(dāng)?shù)倪壿嫛㈦娐泛?或編碼,轉(zhuǎn)換量化系數(shù)的系數(shù)編碼。熵編碼和比特流產(chǎn)生起110可使用多種編碼方法,例如,Exp-Golomb編碼、自適應(yīng)變長編碼(CAVLC)以及自適應(yīng)二進(jìn)制算法編碼(CABAC)。緩存132可包括恰當(dāng)?shù)倪壿?、電路?或編碼,用于緩存產(chǎn)生的比特流以生成MPEG-4AVC比特流。
逆量化器112可包括恰當(dāng)?shù)倪壿嫛㈦娐泛?或編碼,用于掃描和量化前向量化器106產(chǎn)生的轉(zhuǎn)換系數(shù)??s放起和逆轉(zhuǎn)換模塊114可包括恰當(dāng)?shù)倪壿?、電路?或編碼,用于對(duì)經(jīng)過逆掃描的和逆量化的轉(zhuǎn)換系數(shù)進(jìn)行轉(zhuǎn)換。
解塊濾波器116可包括恰當(dāng)?shù)倪壿嫛㈦娐泛?或編碼,根據(jù)宏塊是否為塊間編碼或塊內(nèi)編碼,可在動(dòng)作補(bǔ)償和殘余編碼后對(duì)該宏塊進(jìn)行回路濾波。解塊濾波器116可以光柵掃描順序?qū)υ摵陦K進(jìn)行操作。
多參考圖像存儲(chǔ)模塊118可包括恰當(dāng)?shù)倪壿嫛㈦娐泛?或編碼,用于存儲(chǔ)解塊濾波器116的輸出?;芈窞V波操作取決于當(dāng)前和鄰近宏塊的量化參數(shù)、動(dòng)作向量的量值、宏塊編碼類型以及將在當(dāng)前和鄰近塊和宏塊中進(jìn)行濾波的像素的值。
塊間/塊內(nèi)選擇器模塊122可包括恰當(dāng)?shù)倪壿嫛㈦娐泛?或編碼,用于確定對(duì)每個(gè)宏塊使用的特定編碼模式。塊間/塊內(nèi)選擇器模塊122的輸出被輸入給交換器128。交換器128可包括恰當(dāng)?shù)倪壿嫼?或電路,基于來自塊間/塊內(nèi)選擇器模塊122的輸入在內(nèi)部預(yù)測(cè)編碼模式和動(dòng)作補(bǔ)償預(yù)測(cè)模式之間進(jìn)行選擇。
內(nèi)部預(yù)測(cè)器120可包括恰當(dāng)?shù)倪壿嫛㈦娐泛?或編碼,用于根據(jù)當(dāng)前宏塊之前已被解碼的鄰近宏塊的相鄰邊緣的像素的線性插值預(yù)測(cè)像素值。所述插值可以是定向的,具有多個(gè)模式,每個(gè)模式隱含一個(gè)預(yù)測(cè)的空間方向。
多塊多幀動(dòng)作估測(cè)器126可包括恰當(dāng)?shù)倪壿嫛㈦娐泛?或編碼,用于通過從之前的已解碼參考圖像中選擇另一個(gè)近似大小的像素陣列來預(yù)測(cè)像素陣列。
動(dòng)作補(bǔ)償預(yù)測(cè)器124可包括恰當(dāng)?shù)倪壿?、電路?或編碼,用于將參考陣列轉(zhuǎn)換到當(dāng)前陣列的位置。例如,在AVC中,動(dòng)作補(bǔ)償預(yù)測(cè)器124預(yù)測(cè)的像素陣列可具有多個(gè)大小,例如,16×8、8×16、8×8、8×4、4×8和4×4像素。
在操作中,每次編碼每個(gè)切片的一個(gè)宏塊,并從其中減去其預(yù)測(cè)信號(hào)。該預(yù)測(cè)信號(hào)可通過從各種可能的候選模式中選擇特定的預(yù)測(cè)信號(hào)來產(chǎn)生。殘差信號(hào)可通過向前轉(zhuǎn)換和縮放器模塊104使用4×4轉(zhuǎn)換進(jìn)行編碼,然后輸出給前向量化器106。前向量化器106可在由熵編碼和比特流產(chǎn)生器110進(jìn)行熵編碼之前,對(duì)接收的信號(hào)進(jìn)行量化和縮放。
動(dòng)作補(bǔ)償預(yù)測(cè)器124可使用多個(gè)塊大小,例如,16×16、16×8、8×1 6、8×8、8×4、4×8和4×4,用于動(dòng)作補(bǔ)償預(yù)測(cè)。預(yù)測(cè)后的殘差信號(hào)可通過前向轉(zhuǎn)換和縮放器模塊104使用4×4的塊大小進(jìn)行轉(zhuǎn)換編碼。解塊濾波器116可用于回路中以避免塊偽象(blocking artifact)。交錯(cuò)的視頻可編碼為幀圖像、域圖像、具有自適應(yīng)幀/域的幀圖像(PicAFF)以及具有宏塊自適應(yīng)幀/域的幀圖像(MBAFF)。最后產(chǎn)生的比特流可通過緩存132緩沖以生成MPEG-4 AVC比特流。該比特流可以以原始形式或經(jīng)格式化后存儲(chǔ),或者可通過特定網(wǎng)絡(luò)傳輸至H.264解碼器。
圖2是結(jié)合本發(fā)明實(shí)施例使用的視頻解碼器的模塊圖。參照?qǐng)D2,示出了視頻解碼器200,可用于H.264/MPEG-4 AVC視頻比特流。視頻解碼器200包括熵解碼和比特流解壓縮器202、逆量化器204、縮放器和逆量化模塊206、求和器208、逆量化器210、多參考圖像存儲(chǔ)模塊212、內(nèi)部預(yù)測(cè)器214、同作補(bǔ)償預(yù)測(cè)器216和交換器218。美國專利申請(qǐng)?zhí)枮?0/963677(事務(wù)所代號(hào)15748US02)、申請(qǐng)日2004年10月13日的專利申請(qǐng)更詳細(xì)的描述了解碼回路中具有解塊器的視頻解碼器,并在此作為參考將其全文引入。
熵解碼和比特流解壓縮器202可包括恰當(dāng)?shù)倪壿嫛㈦娐泛?或編碼,用于接收視頻輸入并產(chǎn)生解碼輸出給逆量化器204。熵解碼和比特流解壓縮器202可使用CABAC或CAVLC解碼算法以對(duì)輸入視頻進(jìn)行解碼。
逆量化器204可包括恰當(dāng)?shù)倪壿?、電路?或編碼,用于掃描和量化熵解碼和比特流解壓縮器202所產(chǎn)生的轉(zhuǎn)換系數(shù)。逆轉(zhuǎn)換模塊206可包括恰當(dāng)?shù)倪壿嫛㈦娐泛?或編碼,對(duì)經(jīng)過逆掃描和逆量化的轉(zhuǎn)換系數(shù)進(jìn)行轉(zhuǎn)換。
解塊濾波器210可包括恰當(dāng)?shù)倪壿?、電路?或編碼,根據(jù)宏塊是否為塊間編碼的或塊內(nèi)編碼的,在動(dòng)作補(bǔ)償和殘余編碼后對(duì)該宏塊進(jìn)行回路濾波。解塊濾波器210可以光柵掃描順序?qū)陦K進(jìn)行操作。
多參考圖像存儲(chǔ)模塊212可包括恰當(dāng)?shù)倪壿?、電路?或編碼,用于存儲(chǔ)解塊濾波器210的輸出。回路濾波操作取決于當(dāng)前和鄰近宏塊的量化參數(shù)、動(dòng)作向量的量值、宏塊編碼類型以及將在當(dāng)前和鄰近塊和宏塊中進(jìn)行濾波的像素的值。交換器218可包括恰當(dāng)?shù)倪壿嫼?或電路,用于在內(nèi)部預(yù)測(cè)編碼模式和動(dòng)作補(bǔ)償預(yù)測(cè)模式之間進(jìn)行選擇。
內(nèi)部預(yù)測(cè)器214可包括恰當(dāng)?shù)倪壿?、電路?或編碼,用于根據(jù)當(dāng)前宏塊之前已被解碼的鄰近宏塊的相鄰邊緣的像素的線性插值預(yù)測(cè)像素值。所述插值可以是定向的,具有多個(gè)模式,每個(gè)模式隱含一個(gè)預(yù)測(cè)的空間方向。內(nèi)部預(yù)測(cè)器214可使用同一圖像中的過去的像素樣本以預(yù)測(cè)當(dāng)前像素。
動(dòng)作補(bǔ)償預(yù)測(cè)器216可包括恰當(dāng)?shù)倪壿?、電路?或編碼,用于通過從之前的已解碼參考圖像中選擇另一個(gè)近似大小的像素陣列來預(yù)測(cè)像素陣列。動(dòng)作補(bǔ)償預(yù)測(cè)器216可將參考陣列轉(zhuǎn)換至當(dāng)前陣列的位置。例如,在AVC中,動(dòng)作補(bǔ)償預(yù)測(cè)器216預(yù)測(cè)的像素陣列可具有多個(gè)大小,例如,16×8、8×16、8×8、8×4、4×8和4×4像素。動(dòng)作補(bǔ)償器216可使用過去的圖像的像素樣本來預(yù)測(cè)當(dāng)前圖像的像素。
例如,根據(jù)宏塊的類型模式、參考幀、動(dòng)作向量和存儲(chǔ)于多參考圖像存儲(chǔ)模塊212中的解碼圖像,可將合適的預(yù)測(cè)信號(hào)例如內(nèi)部預(yù)測(cè)信號(hào)或動(dòng)作補(bǔ)償塊間預(yù)測(cè)信號(hào)加入殘差信號(hào)中。重新構(gòu)建的視頻幀在被存儲(chǔ)以用于將來的預(yù)測(cè)之前,可通過解塊濾波器210進(jìn)行濾波。
圖3是根據(jù)本發(fā)明實(shí)施例的視頻壓縮編碼器系統(tǒng)的模塊圖。參照?qǐng)D3,示出了視頻壓縮編碼器系統(tǒng)300。視頻壓縮編碼器系統(tǒng)300包括減法器302、迭代向量編碼器304、熵編碼器306、求和器308、平滑濾波器310以及塊間和塊內(nèi)預(yù)測(cè)器模塊312。
迭代向量編碼器304可為接收的視頻數(shù)據(jù)產(chǎn)生至少一個(gè)量化向量。在壓縮接收的視頻數(shù)據(jù)過程中,迭代向量編碼器304可基于產(chǎn)生的至少一個(gè)量化向量動(dòng)態(tài)調(diào)整至少一部分接收的視頻數(shù)據(jù)的編碼率。
迭代向量編碼器304包括前向轉(zhuǎn)換和縮放器104、前向量化器106、逆量化器112以及縮放器和逆轉(zhuǎn)換模塊114。塊間和塊內(nèi)預(yù)測(cè)器模塊312可包括內(nèi)部預(yù)測(cè)器120、動(dòng)作補(bǔ)償預(yù)測(cè)器124、動(dòng)作估測(cè)器126和多參考圖像存儲(chǔ)模塊118。
迭代向量編碼器304可縮放用于接收的視頻數(shù)據(jù)的至少一個(gè)產(chǎn)生的量化向量。在壓縮過程中,迭代向量編碼器304可使用修剪樹結(jié)構(gòu)編碼和縮短低密度奇偶校驗(yàn)碼(LDPC)兩者至少其一調(diào)整接收的視頻數(shù)據(jù)的編碼率。
平滑濾波器310可包括恰當(dāng)?shù)倪壿?、電路?或編碼,根據(jù)宏塊是否為塊間編碼的或塊內(nèi)編碼的,在動(dòng)作補(bǔ)償和殘余編碼后對(duì)該宏塊進(jìn)行回路濾波。平滑濾波器310與解塊濾波器116相似,可以以光柵掃描順序?qū)陦K進(jìn)行操作。
熵編碼器306可包括恰當(dāng)?shù)倪壿?、電路?或編碼,可對(duì)用于轉(zhuǎn)換的量化系數(shù)進(jìn)行轉(zhuǎn)換系數(shù)編碼。熵編碼器306可使用多種編碼方法,例如,Exp-Golomb編碼、自適應(yīng)變長編碼(CAVLC)和自適應(yīng)二進(jìn)制算法編碼(CABAC)。
迭代向量編碼器304可動(dòng)態(tài)選擇至少一個(gè)產(chǎn)生的量化向量,并通過壓縮比特流傳輸所述選擇的至少一個(gè)產(chǎn)生的量化向量給解碼器400。迭代向量編碼器304可在對(duì)接收的視頻數(shù)據(jù)進(jìn)行壓縮后產(chǎn)生壓縮比特流。迭代向量編碼器304可對(duì)產(chǎn)生的至少一個(gè)量化向量索引。迭代向量編碼器304可對(duì)經(jīng)過索引的所述產(chǎn)生的至少一個(gè)量化向量進(jìn)行排序。
迭代視頻編碼器304可執(zhí)行多個(gè)預(yù)測(cè)操作。視頻壓縮編碼系統(tǒng)300可用下列預(yù)測(cè)等式進(jìn)行模擬x‾i=ϵ‾xi+f‾i(y‾i-1,...,y‾i-m),---(1.1)]]>y‾i=ϵ‾yi+f‾i(y‾i-1,...,y‾i-m),---(1.2)]]>x‾^i=g‾i(y‾i),---(1.3)]]>其中 表示第i編碼塊的原始像素向量, 表示第i編碼塊的重新建立的像素向量, 表示經(jīng)過濾波后的重新建立的像素向量。使用量化處理可產(chǎn)生 ,即為針對(duì)第i編碼塊由一組預(yù)測(cè)器F構(gòu)成的預(yù)測(cè)函數(shù),其中 和 分別為預(yù)測(cè)和編碼錯(cuò)誤向量, 指平滑濾波器310的函數(shù)。
失真測(cè)量值可定義為如下d(x‾i,y‾i)=Δ||x‾i-y‾i||r---(1.4)]]>
例如,該失真測(cè)量值可以是平方誤差失真,r=2,如下面的等式d(x‾i,y‾i)=Δ||x‾i-y‾i||2---(1.5)]]>又例如,該失真測(cè)量值可以是絕對(duì)誤差失真,r=1,如下面的等式d(x‾i,y‾i)=Δ||x‾i-y‾i||---(1.6)]]>根據(jù)等式(1.1)和(1.2),d(x‾i,y‾i)=d(ϵ‾xi,ϵ‾yi)---(1.7)]]>迭代向量編碼器304可使用算法例如,Viterbi算法,基于數(shù)據(jù)的訓(xùn)練序列設(shè)計(jì)具有失真測(cè)量的標(biāo)量或向量量化器以產(chǎn)生標(biāo)量量化器。對(duì)于給定的網(wǎng)格VQ編碼,Viterbi算法可通過最小化向量量化(VQ)編碼誤差產(chǎn)生最優(yōu)的或最大似然解決方案,其中,該誤差會(huì)隨網(wǎng)格VQ編碼的最小距離成指數(shù)增長。
在本發(fā)明的一個(gè)實(shí)施例中,迭代向量編碼器304可使用比網(wǎng)格的復(fù)雜性更低的量化器設(shè)計(jì)。迭代向量編碼器304可通過對(duì)內(nèi)部狀態(tài)進(jìn)行操作以較低編碼復(fù)雜性達(dá)到最優(yōu)壓縮性能,直到獲得有效代碼字或重新產(chǎn)生的向量。
迭代編碼算法可以是普通算法,例如,最小和與和-積算法,也可包括非迭代算法,例如Viterbi算法。最小和與和-積算法可發(fā)展為普通網(wǎng)格算法,其中網(wǎng)格的時(shí)間軸可由任意圖表替換,例如塔納圖(Tanner graph)。如果塔納圖具有循環(huán),例如,turbo編碼和低密度奇偶校驗(yàn)碼(LDPC),最后的算法可能不是最理想的,但是對(duì)比無循環(huán)情況,能顯著地降低復(fù)雜性。
在本發(fā)明另一個(gè)實(shí)施例中,代碼字(codeword),例如量化向量或重新產(chǎn)生的向量,可通過設(shè)計(jì)最優(yōu)編碼以接近最優(yōu)VQ編碼性能,使用已知向量量化(VQ)技術(shù)進(jìn)行分析。
圖4是根據(jù)本發(fā)明實(shí)施例的視頻壓縮解碼器系統(tǒng)的模塊圖。參照?qǐng)D4,示出了視頻壓縮解碼器系統(tǒng)400。視頻壓縮解碼器系統(tǒng)400可包括熵解碼器402、向量解碼器404、平滑濾波器406、塊間和塊內(nèi)預(yù)測(cè)器408和求和器410。
向量解碼器404可包括逆量化器204、縮放和逆轉(zhuǎn)換模塊206。平滑濾波器406可包括恰當(dāng)?shù)倪壿嫛㈦娐泛?或編碼,根據(jù)宏塊是否為塊間編碼的或塊內(nèi)編碼的,在動(dòng)作補(bǔ)償和殘余編碼后對(duì)該宏塊進(jìn)行回路濾波。平滑濾波器406與解塊濾波器210相似,可以以光柵掃描順序?qū)陦K進(jìn)行操作。塊間和塊內(nèi)預(yù)測(cè)模塊408可包括內(nèi)部預(yù)測(cè)器214、動(dòng)作補(bǔ)償預(yù)測(cè)器216和多參考圖像存儲(chǔ)模塊212。
熵解碼器402通過使用一個(gè)切片的已解碼屬性初始化視頻壓縮解碼器系統(tǒng)400。解碼引擎中使用的范圍分割變量(range division variable)可被初始化為已知值,并且上下文模型變量可被初始化。將被解碼的每個(gè)語句元素(syntaxelement)在編碼器側(cè)可表示為變長編碼,而轉(zhuǎn)換固定長度編碼為變長編碼的過程稱作二進(jìn)制化。二進(jìn)制化可用于給具有兩個(gè)以上可能值的語句元素分配比特串,并為該語句元素的更多可能的值分配較短編碼。在解碼器側(cè),可應(yīng)用解二進(jìn)制化處理,以此可恢復(fù)得到原始的固定長度語句元素。
二進(jìn)制的語句元素具有一個(gè)二進(jìn)制比特串,其中每個(gè)比特稱作CABAC中的符號(hào)。語句元素種的每個(gè)符號(hào)可使用與該符號(hào)相關(guān)的可能性模型進(jìn)行單個(gè)解碼。在CABAC中,一個(gè)符號(hào)可具有多個(gè)模型或與其相關(guān)的上下文,并且模型的選擇可基于鄰近的宏塊的屬性來作出。在一個(gè)符號(hào)被解碼后,可基于該符號(hào)的解碼值更新可能性模型或上下文模型。如果再次使用相同的上下文模型對(duì)同一符號(hào)進(jìn)行解碼,可能性值將會(huì)不同,并可生成自適應(yīng)模型。
圖5是根據(jù)本發(fā)明實(shí)施例使用迭代向量編碼的視頻壓縮系統(tǒng)所執(zhí)行的方法的流程圖。參照?qǐng)D5,該方法開始于步驟502。步驟504中,視頻解碼器系統(tǒng)300接收視頻數(shù)據(jù)。步驟506中,迭代向量編碼器304生成量化向量以用于接收的視頻輸入數(shù)據(jù)。步驟508中,使用恰當(dāng)?shù)霓D(zhuǎn)換算法對(duì)所生成的量化向量進(jìn)行縮放和轉(zhuǎn)換。步驟510中,在動(dòng)作補(bǔ)償和殘余編碼之后,根據(jù)宏塊是否為塊間編碼的或塊內(nèi)編碼的,平滑濾波器310對(duì)該宏塊進(jìn)行回路濾波。
步驟512中,根據(jù)宏塊的類型模式、參考幀、動(dòng)作向量和存儲(chǔ)于多參考圖像存儲(chǔ)模塊212中的解碼圖像,將恰當(dāng)?shù)念A(yù)測(cè)信號(hào)例如內(nèi)部預(yù)測(cè)信號(hào)或動(dòng)作補(bǔ)償塊間預(yù)測(cè)信號(hào)加入殘差信號(hào)中。步驟514中,接收的視頻數(shù)據(jù)的編碼率可在壓縮過程中通過使用下述至少一個(gè)進(jìn)行調(diào)整修剪樹結(jié)構(gòu)編碼和縮短低密度奇偶校驗(yàn)碼(LDPC)。步驟516中,生成經(jīng)壓縮的視頻比特流。然后控制流程進(jìn)入結(jié)束步驟518。
在本發(fā)明另一個(gè)實(shí)施例中,使用修剪樹結(jié)構(gòu)編碼或縮短LDPC編碼等技術(shù),可設(shè)計(jì)出多速率可編程碼來滿足各種視頻通信和存儲(chǔ)應(yīng)用的靈活壓縮的需求。該編碼可自適應(yīng)地選擇,并且通過壓縮比特流從編碼器300傳輸至解碼器400。熵編碼器306和熵解碼器402可對(duì)編碼選擇和代碼字可能性進(jìn)行自適應(yīng)。例如,代碼字索引的順序可基于生成的可能性表進(jìn)行重新排序。映射至變長編碼的代碼字索引可由迭代向量編碼器304基于內(nèi)容的改變進(jìn)行重新排序,并被發(fā)送給向量解碼器404。
在本發(fā)明的另一個(gè)實(shí)施例中,迭代向量編碼器304可使用以下至少一種基于圖表的算法例如用于基于普通圖表的編碼的和-積算法、用于基于網(wǎng)格圖的編碼的最大后驗(yàn)概率(MAP)或Bahl、Cocke、Jelinek、Raviv(BCJR)算法,以及用于基于二分圖的編碼的信息傳遞算法。
迭代向量編碼器304和向量解碼器404可匹配向量量化算法的最優(yōu)性能,例如,普通Lloyd算法和Viterbi算法。迭代向量編碼器304和向量解碼器404可執(zhí)行可編程編碼速率選擇,用于適應(yīng)性編碼速率,例如,使用修剪樹結(jié)構(gòu)編碼或縮短LDPC編碼。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,使用迭代編碼算法的視頻壓縮系統(tǒng)包括由編碼器,例如迭代向量編碼器304,用于在對(duì)接收的視頻數(shù)據(jù)進(jìn)行壓縮過程中,基于至少一個(gè)量化向量動(dòng)態(tài)調(diào)整所接收的視頻數(shù)據(jù)中至少一部分視頻數(shù)據(jù)的編碼速率。迭代向量編碼器304包括有前向轉(zhuǎn)換和縮放器104、前向量化器106、逆量化器112以及縮放器和逆轉(zhuǎn)換模塊114。
迭代向量編碼器304可對(duì)用于接收的視頻數(shù)據(jù)的至少一個(gè)量化向量進(jìn)行縮放。在壓縮過程中,迭代向量編碼器304可通過使用下述至少一者調(diào)整所接收的視頻數(shù)據(jù)的編碼率修剪樹結(jié)構(gòu)編碼和縮短LDPC碼。
平滑濾波器310對(duì)所接收的視頻數(shù)據(jù)中的至少一個(gè)宏塊進(jìn)行回路濾波。迭代向量編碼器304動(dòng)態(tài)地選擇至少一個(gè)量化向量并通過壓縮比特流傳輸該選擇的至少一個(gè)量化向量給解碼器400。迭代向量編碼器304可在對(duì)接收的視頻數(shù)據(jù)進(jìn)行壓縮之后,生成壓縮比特流。迭代向量編碼器304可索引至少一個(gè)量化向量。迭代向量編碼器304可對(duì)至少一個(gè)量化向量進(jìn)行排序。
因此,本發(fā)明可以通過硬件、軟件,或者軟、硬件結(jié)合來實(shí)現(xiàn)。本發(fā)明可以在至少一個(gè)計(jì)算機(jī)系統(tǒng)中以集中方式實(shí)現(xiàn),或者由分布在幾個(gè)互連的計(jì)算機(jī)系統(tǒng)中的不同部分以分散方式實(shí)現(xiàn)。任何可以實(shí)現(xiàn)所述方法的計(jì)算機(jī)系統(tǒng)或其它設(shè)備都是可適用的。常用軟硬件的結(jié)合可以是安裝有計(jì)算機(jī)程序的通用計(jì)算機(jī)系統(tǒng),通過安裝和執(zhí)行所述程序控制計(jì)算機(jī)系統(tǒng),使其按所述方法運(yùn)行。在計(jì)算機(jī)系統(tǒng)中,利用處理器和存儲(chǔ)單元來實(shí)現(xiàn)所述方法。
本發(fā)明還可以通過計(jì)算機(jī)程序產(chǎn)品進(jìn)行實(shí)施,所述程序包含能夠?qū)崿F(xiàn)本發(fā)明方法的全部特征,當(dāng)其安裝到計(jì)算機(jī)系統(tǒng)中時(shí),通過運(yùn)行,可以實(shí)現(xiàn)本發(fā)明的方法。本文件中的計(jì)算機(jī)程序所指的是可以采用任何程序語言、代碼或符號(hào)編寫的一組指令的任何表達(dá)式,該指令組使系統(tǒng)具有信息處理能力,以直接實(shí)現(xiàn)特定功能,或在進(jìn)行下述一個(gè)或兩個(gè)步驟之后實(shí)現(xiàn)特定功能a)轉(zhuǎn)換成其它語言、編碼或符號(hào);b)以不同的格式再現(xiàn)。
本發(fā)明是通過幾個(gè)具體實(shí)施例進(jìn)行說明的,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明白,在不脫離本發(fā)明范圍的情況下,還可以對(duì)本發(fā)明進(jìn)行各種變換及等同替代。另外,針對(duì)特定情形或具體情況,可以對(duì)本發(fā)明做各種修改,而不脫離本發(fā)明的范圍。因此,本發(fā)明不局限于所公開的具體實(shí)施例,而應(yīng)當(dāng)包括落入本發(fā)明權(quán)利要求范圍內(nèi)的全部實(shí)施方式。
權(quán)利要求
1.一種處理視頻數(shù)據(jù)的方法,其特征在于,所述方法包括在壓縮接收的視頻數(shù)據(jù)過程中,基于至少一個(gè)量化向量動(dòng)態(tài)調(diào)整所述接收的視頻數(shù)據(jù)中的至少一部分視頻數(shù)據(jù)的編碼率。
2.如權(quán)利要求1所述的方法,其特征在于,所述方法進(jìn)一步包括縮放所述至少一個(gè)量化向量以用于所述接收的視頻數(shù)據(jù)。
3.如權(quán)利要求1所述的方法,其特征在于,所述方法進(jìn)一步包括在所述壓縮過程中,使用以下至少其一調(diào)整所述接收的視頻數(shù)據(jù)的編碼率修剪樹結(jié)構(gòu)編碼和縮短低密度奇偶校驗(yàn)碼。
4.如權(quán)利要求1所述的方法,其特征在于,所述方法進(jìn)一步包括對(duì)所述接收的視頻數(shù)據(jù)中至少一個(gè)宏塊進(jìn)行回路濾波。
5.如權(quán)利要求1所述的方法,其特征在于,所述方法進(jìn)一步包括在所述壓縮過程中動(dòng)態(tài)選擇所述至少一個(gè)量化向量;通過壓縮比特流傳輸所選擇的所述至少一個(gè)量化向量至解碼器。
6.一種機(jī)器可讀存儲(chǔ)器,其特征在于,存儲(chǔ)在其中的計(jì)算機(jī)程序具有至少一個(gè)代碼段用于處理視頻數(shù)據(jù),所述至少一個(gè)代碼段被機(jī)器執(zhí)行后可使所述機(jī)器執(zhí)行下述步驟在壓縮接收的視頻數(shù)據(jù)過程中,基于至少一個(gè)量化向量動(dòng)態(tài)調(diào)整所述接收的視頻數(shù)據(jù)中至少一部分視頻數(shù)據(jù)的編碼率。
7.如權(quán)利要求6所述的存儲(chǔ)器,其特征在于,所述機(jī)器可讀存儲(chǔ)器進(jìn)一步包括用于縮放所述至少一個(gè)量化向量以用于所述接收的視頻數(shù)據(jù)的代碼。
8.一種處理視頻數(shù)據(jù)的系統(tǒng),其特征在于,所述系統(tǒng)包括用于在壓縮接收的視頻數(shù)據(jù)過程中基于至少一個(gè)量化向量動(dòng)態(tài)調(diào)整所述接收的視頻數(shù)據(jù)中至少一部分視頻數(shù)據(jù)的編碼率的電路。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述電路縮放所述至少一個(gè)量化向量以用于所述接收的視頻數(shù)據(jù)。
10.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述電路在所述壓縮過程中使用以下至少其一調(diào)整所述接收的視頻數(shù)據(jù)的編碼率修剪樹結(jié)構(gòu)編碼和縮短低密度奇偶校驗(yàn)碼。
全文摘要
本發(fā)明涉及一種使用迭代編碼算法壓縮視頻數(shù)據(jù)的方法和系統(tǒng)。所述方法包括在對(duì)接收的視頻數(shù)據(jù)進(jìn)行比特率壓縮的過程中,基于至少一個(gè)量化向量動(dòng)態(tài)調(diào)整所述接收的視頻中至少一部分視頻數(shù)據(jù)的編碼率。所述至少一個(gè)量化向量可自適應(yīng)性地選擇得到,并通過壓縮比特流傳輸至解碼器。
文檔編號(hào)H04N7/26GK101090495SQ20071011193
公開日2007年12月19日 申請(qǐng)日期2007年6月8日 優(yōu)先權(quán)日2006年6月13日
發(fā)明者陳雪敏 申請(qǐng)人:美國博通公司