專利名稱:快速宏塊增量量化參數(shù)的決定的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施例涉及多媒體圖像處理。更特定來說,這些實(shí)施例涉及用于自適應(yīng) 地控制視頻編碼器中的數(shù)字視頻的數(shù)字位速率和壓縮質(zhì)量的系統(tǒng)和方法。
背景技術(shù):
數(shù)字視頻能力可并入到大范圍的裝置中,包括數(shù)字電視、數(shù)字直播系統(tǒng)、無線通信 裝置、個(gè)人數(shù)字助理(PDA)、膝上型計(jì)算機(jī)、桌上型計(jì)算機(jī)、數(shù)碼相機(jī)、數(shù)字記錄裝置、蜂窩式 或衛(wèi)星無線電電話等。這些和其它數(shù)字視頻裝置可在產(chǎn)生、修改、傳輸、存儲(chǔ)、記錄和播放全 運(yùn)動(dòng)視頻序列上提供優(yōu)于常規(guī)模擬視頻系統(tǒng)的顯著改進(jìn)。已建立許多不同視頻編碼標(biāo)準(zhǔn)用于傳送數(shù)字視頻序列。舉例來說,運(yùn)動(dòng)圖片專家 組(MPEG)已開發(fā)包括MPEG-I、MPEG-2和MPEG-4的許多標(biāo)準(zhǔn)。其它編碼標(biāo)準(zhǔn)包括H. 261/ H. 263、MPEGl/2/4 和最新的 H. 264/AVC。視頻編碼標(biāo)準(zhǔn)通過以壓縮方式編碼數(shù)據(jù)而實(shí)現(xiàn)增大的傳輸速率。壓縮可減少需傳 輸?shù)臄?shù)據(jù)總量以用于有效地傳輸圖像幀。舉例來說,H. 264標(biāo)準(zhǔn)利用經(jīng)設(shè)計(jì)以促進(jìn)經(jīng)由比 在無壓縮的情況下可實(shí)現(xiàn)的帶寬窄的帶寬進(jìn)行視頻和圖像傳輸?shù)膱D形和視頻壓縮技術(shù)。具 體來說,H. 264標(biāo)準(zhǔn)并入有利用連續(xù)圖像幀之間的類似性(稱為時(shí)間或幀間相關(guān)性)來提 供幀間壓縮的視頻編碼技術(shù)。幀間壓縮技術(shù)通過將圖像幀的基于像素的表示轉(zhuǎn)換為運(yùn)動(dòng)表 示而利用跨越幀的數(shù)據(jù)冗余性。另外,視頻編碼技術(shù)可利用圖像幀內(nèi)的類似性(稱為空間 或幀內(nèi)相關(guān)性),以便實(shí)現(xiàn)幀內(nèi)壓縮,其中圖像幀內(nèi)的空間相關(guān)性可進(jìn)一步被壓縮。幀內(nèi)壓 縮通?;谟糜趬嚎s靜態(tài)圖像的常規(guī)過程,例如空間預(yù)測(cè)和離散余弦變換(DCT)編碼。為了支持所述壓縮技術(shù),許多數(shù)字視頻裝置包括用于壓縮數(shù)字視頻序列的編碼 器,和用于解壓縮數(shù)字視頻序列的解碼器。在許多情況下,編碼器和解碼器包含對(duì)界定視頻 圖像的序列的幀內(nèi)的像素的塊操作的集成的編碼器/解碼器(CODEC)。舉例來說,在H. 264 標(biāo)準(zhǔn)中,發(fā)送裝置的編碼器通常將待傳輸?shù)囊曨l圖像幀劃分為包含較小圖像塊的宏塊。對(duì) 于圖像幀中的每一宏塊,編碼器搜索相鄰視頻幀的宏塊以識(shí)別最為類似的宏塊,且連同運(yùn) 動(dòng)向量一起對(duì)所述宏塊之間的差異進(jìn)行編碼以供傳輸,所述運(yùn)動(dòng)向量指示使用來自參考幀 的哪一宏塊用于編碼。接收裝置的解碼器接收運(yùn)動(dòng)向量和經(jīng)編碼的差異,且執(zhí)行運(yùn)動(dòng)補(bǔ)償 以產(chǎn)生視頻序列。變換且接著量化宏塊之間的差異。量化參數(shù)(QP)用以執(zhí)行量化且因此將確定控 制位速率和所恢復(fù)幀質(zhì)量。使用較高QP的量化對(duì)應(yīng)于較低位速率和較低質(zhì)量。使用較低 QP的量化對(duì)應(yīng)于較高位速率和較高質(zhì)量。通過調(diào)整QP,可實(shí)現(xiàn)不同的位速率和質(zhì)量程度。
發(fā)明內(nèi)容
在一些實(shí)施例中,提供一種用于對(duì)視頻進(jìn)行編碼的系統(tǒng),所述系統(tǒng)包含存儲(chǔ)器,所 述存儲(chǔ)器包含視頻幀,視頻幀又包含宏塊。所述系統(tǒng)還包括量化模塊,其經(jīng)配置以選擇用 于量化所述宏塊的量化參數(shù)的范圍,其中所述范圍為可能量化參數(shù)的子集;處理器,其經(jīng)配 置以確定所述范圍中導(dǎo)致宏塊的最佳量化的量化參數(shù);以及編碼器,其經(jīng)配置以使用所述 確定的量化參數(shù)對(duì)所述宏塊進(jìn)行編碼。在一些實(shí)施例中,提供一種用于對(duì)視頻進(jìn)行編碼的系統(tǒng),所述系統(tǒng)包含用于接收 包含用于量化的宏塊的視頻幀的裝置;用于選擇用于量化宏塊的量化參數(shù)的范圍的裝置, 其中所述范圍為可能量化參數(shù)的子集;用于確定所述范圍中導(dǎo)致宏塊的最佳量化值的量化 參數(shù)的裝置;以及用于使用所述確定的量化參數(shù)對(duì)宏塊進(jìn)行編碼的裝置。在一些實(shí)施例中,提供一種用于對(duì)視頻進(jìn)行編碼的方法,所述方法包含接收包含 用于量化的宏塊的視頻幀;選擇用于量化所述宏塊的量化參數(shù)的范圍,其中所述范圍為可 能量化參數(shù)的子集;確定所述范圍中導(dǎo)致宏塊的最低失真值的量化參數(shù);以及使用所述確 定的量化參數(shù)對(duì)所述宏塊進(jìn)行編碼。在一些實(shí)施例中,提供一種計(jì)算機(jī)可讀媒體,其包含計(jì)算機(jī)可讀程序代碼,所述計(jì) 算機(jī)可讀程序代碼適于被執(zhí)行以執(zhí)行一方法,所述方法包含接收包含用于量化的宏塊的 視頻幀;選擇用于量化所述宏塊的量化參數(shù)的范圍,其中所述范圍為可能量化參數(shù)的子集; 確定所述范圍中導(dǎo)致宏塊的最低失真值的量化參數(shù);以及使用所述確定的量化參數(shù)對(duì)所述 宏塊進(jìn)行編碼。
當(dāng)結(jié)合圖式理解時(shí),從下文陳述的詳細(xì)描述將更加明白所揭示實(shí)施例的特征、目 的和優(yōu)勢(shì),在所述圖式中,相同參考字符始終對(duì)應(yīng)地識(shí)別。圖1為如用于本發(fā)明的一個(gè)實(shí)施例中的編碼源裝置和解碼接收裝置的頂級(jí)框圖。圖2為本發(fā)明的一個(gè)實(shí)施例中的源裝置的示意圖,所述源裝置如本發(fā)明的實(shí)施例 中所描述而實(shí)施QP優(yōu)化模塊。圖3為說明利用QP優(yōu)化模塊的編碼系統(tǒng)的大概框圖。圖4為使用量化參數(shù)的塊編碼過程的框圖。圖5為QP優(yōu)化模塊的操作流程的示意圖。
具體實(shí)施例方式本發(fā)明的實(shí)施例包括用于編碼待向用戶顯示的多媒體視頻的系統(tǒng)和方法。在一個(gè) 實(shí)施例中,所述系統(tǒng)和方法適于控制用于壓縮視頻的經(jīng)編碼數(shù)據(jù)速率。在一些情況下,以無 線方式或經(jīng)由有線網(wǎng)絡(luò)將視頻傳輸?shù)浇邮掌饕怨╋@示。壓縮視頻中的一個(gè)步驟與量化所傳 輸?shù)囊曨l數(shù)據(jù)有關(guān)。量化涉及以量化參數(shù)(QP)劃分視頻數(shù)據(jù)以將數(shù)據(jù)大小減小為更小、更 可管理的形式。因?yàn)椴⒎撬幸曨l數(shù)據(jù)片段均含有相同量的信息,所以可以不同QP以不同方式 來量化不同視頻片段。如果針對(duì)給定區(qū)段所選的QP過小,則經(jīng)壓縮數(shù)據(jù)將具有良好質(zhì)量, 但將會(huì)經(jīng)高度壓縮。此導(dǎo)致在將數(shù)據(jù)傳輸?shù)浇邮掌鲿r(shí)產(chǎn)生高位速率。相反,如果所選QP過大,則將高度壓縮數(shù)據(jù),且因?yàn)榇嬖谳^少位待傳輸,所以位速率將減小。然而,所傳輸?shù)囊曨l 幀的質(zhì)量將相對(duì)低,因?yàn)槊恳粠瑢⒂膳cQP較小的情況相比相對(duì)少的位表示。在一個(gè)實(shí)施例 中,本發(fā)明提供用于針對(duì)給定視頻切片快速且準(zhǔn)確地選擇適當(dāng)QP的系統(tǒng)和方法。特定來 說,本發(fā)明的實(shí)施例提供用于針對(duì)給定數(shù)據(jù)塊選擇有可能含有合適QP的范圍的智能型裝置。用于確定用于宏塊的適當(dāng)QP的一種方法為蠻力(brute-force)法。蠻力實(shí)施包 含使用一范圍的QP值對(duì)同一宏塊進(jìn)行多次編碼,且選擇最佳QP作為提供最小譯碼成本的 QP值??墒褂貌煌杀緶?zhǔn)則來確定針對(duì)特定宏塊的適當(dāng)QP。一種成本測(cè)量被稱為速率-失 真成本(rate-distortion cost),其被表達(dá)為速率與失真的組合,C = D+ λ R其中D為原始視頻塊與經(jīng)重新建構(gòu)視頻塊之間歸因于量化的失真,R為用以對(duì)輸 入視頻塊進(jìn)行編碼的速率(位的數(shù)目),且λ為固定參數(shù)。失真D和速率R兩者為QP的函 數(shù),因?yàn)?)QP直接影響原始視頻塊與經(jīng)重新建構(gòu)視頻塊之間的失真程度(較高QP意味著 較高失真);且2)直接與對(duì)量化殘余系數(shù)進(jìn)行編碼所需的位數(shù)目有關(guān)(較高QP意味著較 低位速率)。在一個(gè)可能實(shí)施例中,λ可類似地取決于QP且可構(gòu)成下式Amode = 0. 85*2(QM2)/3視應(yīng)用而定,這些等式中的系數(shù)將經(jīng)更改以規(guī)定位速率對(duì)失真的重要性。此處,例 如,隨著增大的QP,在選擇最佳值中給予位速率增大的關(guān)聯(lián)性。結(jié)果,成本C也是QP的函數(shù),C = C(QP)。在于給定一范圍的QP值的情況下對(duì)當(dāng) 前宏塊進(jìn)行多次編碼之后,可將用于宏塊的最佳QP挑選為QPopt = arg min (C (QP))如本文中所描述的一個(gè)改進(jìn)為針對(duì)規(guī)定QP高速緩存一默認(rèn)運(yùn)動(dòng)估計(jì)量且在計(jì)算 針對(duì)搜索范圍中的QP中的每一者的失真時(shí)使用此高速緩存的運(yùn)動(dòng)估計(jì)。此高速緩存雖然 導(dǎo)致較不準(zhǔn)確地測(cè)量潛在QP的成本,但節(jié)省相當(dāng)多的時(shí)間,因?yàn)闊o需針對(duì)每一潛在QP重復(fù) 計(jì)算運(yùn)動(dòng)估計(jì)。幀間模式?jīng)Q定實(shí)施例預(yù)期用以增加宏塊QP決定過程的編碼速度的技術(shù)。舉例來說,在模式?jīng)Q定 期間(當(dāng)編碼器在用于宏塊的大量可能譯碼模式中挑選最佳譯碼模式時(shí)),如果考慮幀間 模式,則執(zhí)行運(yùn)動(dòng)搜索以決定最佳宏塊分割和用于每一分割的最佳運(yùn)動(dòng)向量(均在優(yōu)化成 本度量的方面)。編碼器可僅在針對(duì)標(biāo)稱QP(其由終端用戶給出或由裝置的質(zhì)量控制規(guī)格 決定)對(duì)宏塊進(jìn)行編碼時(shí)執(zhí)行運(yùn)動(dòng)搜索且存儲(chǔ)運(yùn)動(dòng)搜索結(jié)果。在一個(gè)實(shí)施例中,編碼器在 后續(xù)編碼回合(以宏塊QP的不同值)中檢索所保存的運(yùn)動(dòng)信息以取代再次調(diào)用運(yùn)動(dòng)搜索。 此確保僅針對(duì)每一宏塊執(zhí)行一次作為昂貴且耗時(shí)的過程的運(yùn)動(dòng)搜索。為了進(jìn)一步減少?zèng)Q定 最佳宏塊QP所需的編碼時(shí)間,可使用以下額外技術(shù)幀內(nèi)模式(Intra Mode)決定在經(jīng)幀間譯碼的切片(即,P切片或B切片)中,允許幀內(nèi)譯碼模式(空間預(yù)測(cè)) 和幀間譯碼模式(時(shí)間預(yù)測(cè))兩者。因此,在P切片和B切片宏塊的模式?jīng)Q定期間,還可考 慮幀內(nèi)譯碼模式。通常針對(duì)表示當(dāng)前幀中的新對(duì)象和/或場(chǎng)景改變的宏塊選擇幀內(nèi)模式。 然而,與幀間模式?jīng)Q定(其中運(yùn)動(dòng)搜索結(jié)果不受宏塊QP的值顯著影響)相比,幀內(nèi)模式?jīng)Q定取決于宏塊QP的值。舉例來說,關(guān)于H. 264/AVC,允許四個(gè)幀內(nèi)譯碼模式幀內(nèi)4X4、幀 內(nèi)8X8、幀內(nèi)16X16和IPCM。在前兩個(gè)模式中,將宏塊分割為較小塊(4X4或8X8)且以 光柵掃描次序依序?qū)ζ漕A(yù)測(cè)。因此,當(dāng)宏塊QP改變時(shí),經(jīng)重新建構(gòu)的塊將改變,因此影響宏 塊中的后續(xù)塊的預(yù)測(cè)和模式?jīng)Q定。在最佳方案中,應(yīng)使用不同QP來重復(fù)幀內(nèi)模式?jīng)Q定。然 而,此引發(fā)較長(zhǎng)的編碼時(shí)間。為了加速幀內(nèi)模式?jīng)Q定,可僅使用一個(gè)QP值。類似于幀間模 式?jīng)Q定,幀內(nèi)模式?jīng)Q定結(jié)果(其包括預(yù)測(cè)模式)可經(jīng)存儲(chǔ)且在具有不同QP值的后續(xù)編碼回 合中再使用。雖然此可能引發(fā)歸因于非最佳幀內(nèi)模式?jīng)Q定的性能損失,但影響可仍有限,因 為通常幀間切片(P切片或B切片)中僅有限百分比的宏塊經(jīng)幀內(nèi)譯碼。為了進(jìn)一步限制 此非最佳幀內(nèi)模式?jīng)Q定的影響,編碼器可在且僅在以標(biāo)稱QP進(jìn)行的模式?jīng)Q定期間幀內(nèi)譯 碼模式而不是幀間譯碼模式被選定為當(dāng)前宏塊的最佳譯碼模式的情況下決定針對(duì)不同QP 值多次執(zhí)行幀內(nèi)模式?jīng)Q定。QP范圍約束相鄰宏塊通常在空間上為相關(guān)的。此意味著相鄰宏塊的最佳QP值通常為類似的。 視宏塊的已經(jīng)譯碼的相鄰者的最佳QP值而定,所述宏塊的最佳QP的搜索范圍可受到特定 約束。以下偽碼提供這些約束的一個(gè)可能的實(shí)施初始化 currMBDeltaQP,例如,currMBDeItaQP = 0MB_C0DING_L00P_START currMBQP = s1i ceQP+currMBDe1taQPIl如果其在所預(yù)測(cè)QP的小范圍內(nèi),則僅考慮currMBQP令QPpred為基于相鄰MB的QP的所預(yù)測(cè)QP如果(currMB并非邊界MB且currMBQP類似于QPpred){貝Ij encode_macroblock (currMBQP)如果(currQPCost < minQPCost){則 bestMBQP = currMBQPminQPCost = currQPCost}}前進(jìn)到下一±曾量 QP 值,currMBDeltaQP = nextDeltaQPValue返回到MB_C0DING_L00P_START直到所有增量QP值均被測(cè)試注意,以上偽碼為處于視頻幀/切片的邊界上的宏塊提供特殊條件。對(duì)于這些邊 界宏塊,其相鄰者中的一者或一者以上不可用??墒褂枚喾N方法來考慮此條件,例如1)在 計(jì)算QP預(yù)測(cè)子時(shí)針對(duì)不可用的相鄰者使用默認(rèn)幀/切片等級(jí)QP ;或2)測(cè)試增量QP值的 整個(gè)范圍。選項(xiàng)2)具有以下優(yōu)勢(shì)其將通過允許邊界宏塊搜尋較廣范圍內(nèi)的最佳QP值而 減輕非邊界宏塊的緩慢開始問題??墒褂枚喾N方法來基于相鄰QP計(jì)算QP預(yù)測(cè)子。舉例來說,可使用左側(cè)和頂部相 鄰者的平均QP?;蛘?,可使用左側(cè)、頂部和左上相鄰者的平均QP?;蛘?,可使用左側(cè)、頂部、 左上和右上相鄰者的平均QP。各種組合均為可能的,其視對(duì)宏塊編碼的次序而定。
可針對(duì)不同類型的切片使用決定當(dāng)前QP值是否類似于QP預(yù)測(cè)子的不同方法。 舉例來說,可對(duì)P切片宏塊應(yīng)用[QPpred-2,QPpred+1]的范圍,而可對(duì)B切片宏塊應(yīng)用 [QPpred-1, QPpred+2]的范圍。對(duì)QP搜索范圍的條件約束有助于減少針對(duì)每一宏塊執(zhí)行的編碼回合的數(shù)目,因 此加速編碼過程。然而,與徹底搜索相比,所強(qiáng)加的約束可能引發(fā)某性能損失。所述性能損 失對(duì)于I切片和P切片中的宏塊來說可能較為嚴(yán)重,因?yàn)镮切片和P切片的速率-失真性 能將越過當(dāng)前圖片組(GOP)傳播,直到遭遇下一隨機(jī)存取點(diǎn)(在H.264/AVC中還稱為IDR 或即時(shí)解碼器刷新圖片)為止。因此,一替代方案為放寬或不施加對(duì)I切片和P切片宏塊 的條件QP約束。圖1為說明實(shí)例系統(tǒng)100的框圖,其中源裝置101經(jīng)由通信鏈路109將視頻數(shù)據(jù) 的經(jīng)編碼序列傳輸?shù)浇邮昭b置102。源裝置101和接收裝置102均為數(shù)字視頻裝置。具體 來說,源裝置101使用多種視頻壓縮標(biāo)準(zhǔn)中的任一者(包括先前所論述)對(duì)視頻數(shù)據(jù)進(jìn)行 編碼和傳輸。通信鏈路109可包含無線鏈路、物理傳輸線、基于包的網(wǎng)絡(luò)(例如,局域網(wǎng)、廣 域網(wǎng)或例如因特網(wǎng)的全球網(wǎng))、公共交換電話網(wǎng)絡(luò)(PSTN)或各種鏈路和網(wǎng)絡(luò)的組合。換句 話說,通信鏈路109代表用于將視頻數(shù)據(jù)從源裝置101傳輸?shù)浇邮昭b置102的任何合適通 信媒體或可能為不同網(wǎng)絡(luò)和鏈路的集合。源裝置101可為能夠?qū)σ曨l數(shù)據(jù)進(jìn)行編碼和傳輸?shù)娜魏螖?shù)字視頻裝置。舉例來 說,源裝置101可包括用于存儲(chǔ)數(shù)字視頻序列的存儲(chǔ)器103、用于對(duì)序列進(jìn)行編碼的視頻編 碼器104和用于經(jīng)由通信鏈路109傳輸經(jīng)編碼序列的發(fā)射器105。存儲(chǔ)器103可包含例如 硬盤上的動(dòng)態(tài)存儲(chǔ)器或存儲(chǔ)裝置等計(jì)算機(jī)存儲(chǔ)器。接收裝置102可為能夠接收并解碼視頻 數(shù)據(jù)的任何數(shù)字視頻裝置。舉例來說,接收裝置102可包括用于接收經(jīng)編碼數(shù)字視頻序列 的接收器108、用于解碼序列的解碼器107和用于向用戶顯示序列的顯示器106。用于源裝置101和接收裝置102的實(shí)例裝置包括位于計(jì)算機(jī)網(wǎng)絡(luò)上的服務(wù)器、工 作站或其它桌上型計(jì)算裝置和例如膝上型計(jì)算機(jī)等移動(dòng)計(jì)算裝置。其它實(shí)例包括數(shù)字電視 廣播系統(tǒng)和例如蜂窩式電話等接收裝置、數(shù)字電視、數(shù)碼相機(jī)、數(shù)字視頻相機(jī)或其它數(shù)字記 錄裝置、例如具有視頻能力的蜂窩式無線電電話和衛(wèi)星無線電電話等數(shù)字視頻電話、其它 無線視頻裝置等。在一些情況下,源裝置101和接收裝置102各自包括用于對(duì)數(shù)字視頻數(shù)據(jù)進(jìn)行編 碼和解碼的編碼器/解碼器(CODEC)(未圖示)。在那種情況下,源裝置和接收裝置兩者可 包括發(fā)射器和接收器以及存儲(chǔ)器和顯示器。以下所概述的編碼技術(shù)中的許多編碼技術(shù)是在 包括編碼器的數(shù)字視頻裝置的情形下描述的。然而,應(yīng)理解,編碼器可形成CODEC的一部 分。舉例來說,源裝置101包括對(duì)視頻圖像序列內(nèi)的像素塊進(jìn)行操作以便將視頻數(shù)據(jù) 編碼為壓縮格式的編碼器104。舉例來說,源裝置101的編碼器104可將待傳輸?shù)囊曨l圖 像幀劃分為包含許多較小圖像塊的宏塊。對(duì)于圖像幀中的每一宏塊,源裝置101的編碼器 104針對(duì)已傳輸?shù)那懊娴囊曨l幀(或后續(xù)視頻幀)搜索存儲(chǔ)于存儲(chǔ)器103中的宏塊以識(shí)別 類似宏塊,且連同運(yùn)動(dòng)向量一起對(duì)宏塊之間的差異進(jìn)行編碼,所述運(yùn)動(dòng)向量識(shí)別來自先前 幀的曾用于編碼的宏塊。源裝置101可支持可致使在編碼過程期間終止各種任務(wù)或反復(fù)的 可編程閾值以便減少計(jì)算的數(shù)目且節(jié)約功率。
接收裝置102的接收器108接收運(yùn)動(dòng)向量和經(jīng)編碼的視頻數(shù)據(jù),且解碼器107執(zhí) 行運(yùn)動(dòng)補(bǔ)償技術(shù)以產(chǎn)生供經(jīng)由顯示器106向用戶顯示的視頻序列。所屬領(lǐng)域的技術(shù)人員 將易于認(rèn)識(shí)到除了顯示經(jīng)解碼數(shù)據(jù)之外,還可采取各種其它動(dòng)作,包括存儲(chǔ)數(shù)據(jù),重新格式 化數(shù)據(jù)或重新傳輸經(jīng)解碼數(shù)據(jù)。接收裝置102的解碼器107還可被實(shí)施為編碼器/解碼器 (CODEC)。在那種情況下,源裝置和接收裝置兩者可能能夠?qū)?shù)字視頻序列進(jìn)行編碼、傳輸、 接收和解碼。圖2為說明并入有根據(jù)本文中所描述的技術(shù)來壓縮數(shù)字視頻序列的視頻編碼器 203的實(shí)例源裝置101的框圖。示范性數(shù)字源裝置101經(jīng)說明為例如移動(dòng)計(jì)算裝置、個(gè)人數(shù) 字助理(PDA)、無線通信裝置、無線電電話等無線裝置。然而,本發(fā)明中的技術(shù)不限于無線裝 置,且可易于應(yīng)用于包括非無線裝置的其它數(shù)字視頻裝置。在圖2的實(shí)例中,數(shù)字視頻裝置101經(jīng)配置以經(jīng)由發(fā)射器202和天線201傳輸經(jīng) 壓縮數(shù)字視頻序列。視頻編碼器203對(duì)視頻序列進(jìn)行編碼且在傳輸之前于視頻存儲(chǔ)器存儲(chǔ) 裝置205內(nèi)緩沖經(jīng)編碼數(shù)字視頻序列。存儲(chǔ)器存儲(chǔ)裝置205還可存儲(chǔ)計(jì)算機(jī)可讀指令和數(shù) 據(jù)以供視頻編碼器203在編碼過程期間使用。存儲(chǔ)器205可包含同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器 (SDRAM)、硬盤、快閃存儲(chǔ)器、電可擦除可編程只讀存儲(chǔ)器(EEPROM)等。從存儲(chǔ)器205提取 視頻幀204以用于編碼。如下文詳細(xì)描述,視頻編碼器203實(shí)施經(jīng)配置以優(yōu)化由視頻編碼 器203執(zhí)行的視頻編碼的QP優(yōu)化模塊(QPOM) 206。QPOM 206通過具有確定在編碼過程期 間編碼器203將使用何參數(shù)的指令而促進(jìn)位速率控制。圖3中說明并入有QPOM的示范性數(shù)據(jù)壓縮系統(tǒng)300。首先向預(yù)處理器301呈現(xiàn)視 頻信號(hào)305以準(zhǔn)備壓縮。預(yù)處理器301可服務(wù)于多種目的,或可被完全排除在系統(tǒng)之外。舉 例來說,預(yù)處理器301可將視頻信號(hào)305格式化成較容易由壓縮系統(tǒng)處理的分量。將預(yù)處 理器301的輸出呈現(xiàn)給編碼器302。編碼器302量化其已接收的數(shù)據(jù),接著壓縮量化系數(shù)。 所執(zhí)行的量化取決于來自QPOM 303的反饋量化參數(shù)307。編碼器302和QPOM 303可共同 構(gòu)成編碼系統(tǒng)308或CODEC。QPOM 303利用表征當(dāng)前經(jīng)編碼視頻片段的統(tǒng)計(jì)數(shù)據(jù)以自適應(yīng) 地設(shè)定量化參數(shù)以用于編碼下一視頻片段。在下文更詳細(xì)地描述自適應(yīng)地設(shè)定用于正被編 碼視頻的量化參數(shù)的此過程。一旦數(shù)據(jù)已被量化,便將其發(fā)送到格式化輸出位流306以供 傳輸?shù)母袷交?04。格式化器304取得速率受控?cái)?shù)據(jù)且將數(shù)據(jù)裝配為經(jīng)格式化的位流以 供經(jīng)由通信信道傳輸。如此,格式化器304可將補(bǔ)充信息附加到數(shù)據(jù)。舉例來說,可由格式 化器304將指示塊開始、幀開始、塊編號(hào)、幀編號(hào)和量化信息的信號(hào)附加到數(shù)據(jù)信號(hào)?;趬K的視頻譯碼廣泛用于例如H. 261/H. 263、MPEGl/2/4和最新的H. 264/AVC的 視頻譯碼標(biāo)準(zhǔn)中。在基于塊的視頻譯碼系統(tǒng)中,逐塊地處理輸入視頻幀。通常使用的塊大小 為16X16,其還稱為宏塊。圖4展示基于塊的視頻編碼的一個(gè)實(shí)例的框圖。所屬領(lǐng)域的技 術(shù)人員將易于認(rèn)識(shí)到額外特征為可能的。圖4提供對(duì)編碼器的操作和其對(duì)QP的使用的概 括綜述。對(duì)于每一輸入的數(shù)據(jù)視頻塊401,系統(tǒng)產(chǎn)生一預(yù)測(cè)塊413。預(yù)測(cè)塊413由執(zhí)行空間 預(yù)測(cè)(使用已存的相鄰者在同一幀內(nèi)的預(yù)測(cè))或時(shí)間預(yù)測(cè)(跨越幀的預(yù)測(cè))的預(yù)測(cè)塊410 形成,且可用于后續(xù)編碼過程417。接著通過從來自幀401的對(duì)應(yīng)原始視頻塊的值減去預(yù)測(cè) 塊的值而計(jì)算殘余塊402。殘余塊402接著行進(jìn)通過變換模塊403,所述變換模塊403 (例 如)對(duì)殘余塊402執(zhí)行離散余弦變換(DCT)變換。在變換之后,在量化模塊404處使用所 挑選的量化參數(shù)來量化殘余塊。一組經(jīng)量化變換系數(shù)405接著在作為經(jīng)編碼位流409被發(fā)送出之前在系數(shù)掃描模塊406處經(jīng)掃描為1維向量且在熵譯碼模塊408處經(jīng)熵譯碼。如由方框416所示,量化參數(shù)不僅用以量化塊,且還確定量化效率。通過對(duì)經(jīng)量化 殘余塊進(jìn)行解量化416和反相415而重新建構(gòu)殘余塊414。此經(jīng)重新建構(gòu)塊412接著被存 儲(chǔ)411且不僅在確定此特定塊的量化參數(shù)的效率中使用,而且用于未來塊的后續(xù)預(yù)測(cè)418。圖5說明QPOM 303的操作過程500的一個(gè)可能實(shí)施例的概括流程圖。過程500 通過接受第一宏塊而開始于開始狀態(tài)501。對(duì)于第一宏塊,可通過默認(rèn)方法(例如,蠻力優(yōu) 化搜索)確定QP的預(yù)測(cè)值。蠻力優(yōu)化搜索包含在所有可能QP值上反復(fù),針對(duì)每一者應(yīng)用 成本度量和選擇產(chǎn)生最佳成本度量的QP (如先前所論述)。所屬領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到 存在用于選擇初始所預(yù)測(cè)QP的各種替代方法,例如基于視頻信號(hào)的統(tǒng)計(jì)性質(zhì)的默認(rèn)或全 局預(yù)測(cè),只要所得QP提供合理量化,這些替代方案中的任一者均將足夠。對(duì)于后續(xù)宏塊,過 程500可基于相鄰QP或先前最佳QP而選擇所預(yù)測(cè)QP。如果當(dāng)前宏塊在幀的角落處(即, 相鄰者不可用),則可針對(duì)所預(yù)測(cè)QP使用替代的相鄰者或默認(rèn)值。一旦已選擇所預(yù)測(cè)QP, 過程500即在狀態(tài)502處識(shí)別QP的范圍以進(jìn)行評(píng)估。過程500反復(fù)通過整個(gè)QP范圍,從 而應(yīng)用成本度量以確定范圍內(nèi)的每一 QP的效率。如以上所論述,成本度量可包含速率-失 真成本。一旦已確定最佳QP,過程500便在狀態(tài)506處將所預(yù)測(cè)QP插入到切片標(biāo)頭。此將 為系統(tǒng)用于此宏塊的后續(xù)量化的QP。過程500接著在決定狀態(tài)503處確定是否更多宏塊可 用于處理。如果宏塊可用,則所述過程將在狀態(tài)508處以下一宏塊繼續(xù)。如果宏塊不可用, 則所述過程將在結(jié)束狀態(tài)509處結(jié)束。通常,所選范圍將簡(jiǎn)單地以小于所預(yù)測(cè)QP的整數(shù)偏移和大于所預(yù)測(cè)QP的整數(shù)偏 移擴(kuò)展(即,+/-3)。然而,所選范圍可在QP以上或以下偏置且可取決于正被量化的幀的類 型。舉例來說,H. 264包含I、P或B幀。與B幀相比,I和P幀較頻繁地由其它幀參考以恢 復(fù)圖像信息。因此,I和P幀通常應(yīng)經(jīng)較少量化以使得其信息不損失。因此,在辨識(shí)出I或 P幀之后,QPOM可替代地選擇偏置到較低QP的范圍(S卩,比所預(yù)測(cè)QP小2和僅比所預(yù)測(cè)QP 大1)。此將增加最佳QP小于所預(yù)測(cè)QP的機(jī)會(huì)。相反,將存在向上偏置將為優(yōu)選的場(chǎng)合, 即,在需要高位速率而較不強(qiáng)調(diào)質(zhì)量的系統(tǒng)中。因此,已描述用于對(duì)視頻進(jìn)行編碼的新穎且改進(jìn)的方法和設(shè)備。所屬領(lǐng)域的技術(shù) 人員應(yīng)了解,可將結(jié)合本文中所揭示的實(shí)施例而描述的各種說明性邏輯塊、模塊、電路和算 法步驟實(shí)施為電子硬件、計(jì)算機(jī)軟件或兩者的組合。已大體上在其功能性方面描述各種說 明性組件、塊、模塊、電路和步驟。將所述功能性實(shí)施為硬件還是軟件視特定應(yīng)用和強(qiáng)加于 整個(gè)系統(tǒng)的設(shè)計(jì)約束而定。所屬領(lǐng)域的技術(shù)人員認(rèn)識(shí)到硬件和軟件在這些情形下的可互換 性,和如何針對(duì)每一特定應(yīng)用最佳地實(shí)施所描述的功能性。作為實(shí)例,可用數(shù)字信號(hào)處理器 (DSP)、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)或其它可編程邏輯裝置、離散門或 晶體管邏輯、例如寄存器和FIFO的離散硬件組件、執(zhí)行一組固件指令的處理器、任何常規(guī) 可編程軟件模塊和處理器或其任何組合實(shí)施或執(zhí)行結(jié)合本文中所揭示的實(shí)施例而描述的 各種說明性邏輯塊、模塊、電路和算法步驟。處理器可為微處理器,但在替代方案中,處理器 可為任何常規(guī)的處理器、控制器、微控制器或狀態(tài)機(jī)。軟件模塊可駐留于RAM存儲(chǔ)器、快閃 存儲(chǔ)器、ROM存儲(chǔ)器、寄存器、硬盤、可裝卸磁盤、CD-ROM或此項(xiàng)技術(shù)中已知的任何其它形式 的存儲(chǔ)媒體中。所屬領(lǐng)域的技術(shù)人員將進(jìn)一步了解在整個(gè)以上描述中可參考的數(shù)據(jù)、指令、 命令、信息、信號(hào)、位、符號(hào)和碼片由電壓、電流、電磁波、磁場(chǎng)或磁性粒子、光場(chǎng)或光學(xué)粒子或其任何組合表示。 提供對(duì)優(yōu)選實(shí)施例的先前描述以使所屬領(lǐng)域的任何技術(shù)人員能夠制作或使用所 揭示的實(shí)施例。所屬領(lǐng)域的技術(shù)人員將容易明白對(duì)這些實(shí)施例的各種修改,且本文中所界 定的一般原理可應(yīng)用于其它實(shí)施例而無需使用發(fā)明性能力。因此,所揭示的實(shí)施例并不意 欲限于本文中所展示的實(shí)施例,而是將賦予其與本文中所揭示的原理和新穎特征一致的最 廣范圍。
權(quán)利要求
一種用于對(duì)視頻進(jìn)行編碼的系統(tǒng),其包含存儲(chǔ)裝置,其含有包含宏塊的視頻幀;量化模塊,其經(jīng)配置以選擇用于量化所述宏塊的量化參數(shù)的范圍,其中所述范圍為可能量化參數(shù)的子集;模塊,其經(jīng)配置以確定所述范圍中的導(dǎo)致所述宏塊的最佳量化的量化參數(shù);以及編碼器,其經(jīng)配置以使用所述確定的量化參數(shù)對(duì)所述宏塊進(jìn)行編碼。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述經(jīng)配置以確定量化參數(shù)的模塊包含先前運(yùn)動(dòng) 搜索的高速緩沖存儲(chǔ)器。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述經(jīng)配置以確定量化參數(shù)的模塊包含幀內(nèi)模式 決定結(jié)果的高速緩沖存儲(chǔ)器。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述存儲(chǔ)裝置包含動(dòng)態(tài)存儲(chǔ)器。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述存儲(chǔ)裝置包含硬盤。
6.根據(jù)權(quán)利要求1所述的系統(tǒng),其中量化參數(shù)的所述范圍是至少基于所預(yù)測(cè)量化參數(shù) 的值而選擇的。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其中所述所預(yù)測(cè)量化參數(shù)是至少基于先前確定的量化 參數(shù)的值而選擇的。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述先前確定的量化參數(shù)是用于前面宏塊的量化參數(shù)。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述先前確定的量化參數(shù)是至少使用至少兩個(gè)相 鄰宏塊的所述量化參數(shù)的平均值而確定的。
10.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述先前確定的量化參數(shù)是至少使用至少三個(gè) 相鄰宏塊的所述量化參數(shù)的所述平均值而確定的。
11.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述先前確定的量化參數(shù)是至少使用至少四個(gè) 相鄰宏塊的所述量化參數(shù)的所述平均值而確定的。
12.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述先前確定的量化參數(shù)是使用一個(gè)或一個(gè)以 上相鄰宏塊的量化參數(shù)而確定的,且在沒有一個(gè)或一個(gè)以上相鄰宏塊的情況下使用默認(rèn)量 化參數(shù)值。
13.根據(jù)權(quán)利要求7所述的系統(tǒng),其中在相鄰宏塊不可用時(shí)使用所有可能的量化參數(shù)值。
14.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述模塊包含存儲(chǔ)用于每一塊的所述先前確定 的量化參數(shù)的緩沖器。
15.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述系統(tǒng)為蜂窩式電話。
16.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述宏塊的所述最佳量化包含所述宏塊的最低 速率-失真成本。
17.一種用于對(duì)視頻進(jìn)行編碼的系統(tǒng),其包含 用于接收包含用于量化的宏塊的視頻幀的裝置;用于選擇用于量化所述宏塊的量化參數(shù)的范圍的裝置,其中所述范圍為可能量化參數(shù) 的子集;用于確定所述范圍中的導(dǎo)致所述宏塊的最佳量化值的所述量化參數(shù)的裝置;以及用于使用所述確定的量化參數(shù)對(duì)所述宏塊進(jìn)行編碼的裝置。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述用于選擇量化參數(shù)的范圍的裝置包含先前 運(yùn)動(dòng)搜索的高速緩沖存儲(chǔ)器。
19.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述用于選擇量化參數(shù)的范圍的裝置包含幀內(nèi) 模式?jīng)Q定結(jié)果的高速緩沖存儲(chǔ)器。
20.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述接收視頻幀的裝置包含電子存儲(chǔ)裝置。
21.根據(jù)權(quán)利要求20所述的系統(tǒng),其中所述存儲(chǔ)器為計(jì)算機(jī)存儲(chǔ)器。
22.根據(jù)權(quán)利要求17所述的系統(tǒng),其中量化參數(shù)的所述范圍是至少基于所預(yù)測(cè)量化參 數(shù)的值而選擇的。
23.根據(jù)權(quán)利要求22所述的系統(tǒng),其中所述所預(yù)測(cè)量化參數(shù)是至少基于先前確定的量 化參數(shù)的值而選擇的。
24.根據(jù)權(quán)利要求23所述的系統(tǒng),其中所述先前確定的量化參數(shù)為用于前面宏塊的量化參數(shù)。
25.根據(jù)權(quán)利要求23所述的系統(tǒng),其中所述先前確定的量化參數(shù)是至少使用至少兩個(gè) 相鄰宏塊的所述量化參數(shù)的平均值而確定的。
26.根據(jù)權(quán)利要求23所述的系統(tǒng),其中所述先前確定的量化參數(shù)是至少使用至少三個(gè) 相鄰宏塊的所述量化參數(shù)的所述平均值而確定的。
27.根據(jù)權(quán)利要求23所述的系統(tǒng),其中所述先前確定的量化參數(shù)是至少使用至少四個(gè) 相鄰宏塊的所述量化參數(shù)的所述平均值而確定的。
28.根據(jù)權(quán)利要求23所述的系統(tǒng),其中所述先前確定的量化參數(shù)是使用一個(gè)或一個(gè)以 上相鄰宏塊的量化參數(shù)而確定的,且在沒有一個(gè)或一個(gè)以上相鄰宏塊的情況下使用默認(rèn)量 化參數(shù)值。
29.根據(jù)權(quán)利要求23所述的系統(tǒng),其中在相鄰宏塊不可用時(shí)使用所有可能的量化參數(shù)值。
30.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述選擇裝置包含量化參數(shù)優(yōu)化模塊的至少一 部分。
31.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述確定裝置包含量化參數(shù)優(yōu)化模塊的至少一 部分。
32.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述對(duì)所述宏塊進(jìn)行編碼的裝置包含視頻編碼ο
33.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述宏塊的所述最佳量化包含所述宏塊的最低 速率-失真成本。
34.一種用于對(duì)視頻進(jìn)行編碼的方法,其包含以下步驟 接收包含用于量化的宏塊的視頻幀;選擇用于量化所述宏塊的量化參數(shù)的范圍,其中所述范圍為可能量化參數(shù)的子集; 確定所述范圍中的導(dǎo)致所述宏塊的最低失真值的所述量化參數(shù);以及 使用所述確定的量化參數(shù)對(duì)所述宏塊進(jìn)行編碼。
35.根據(jù)權(quán)利要求34所述的方法,其中所述確定所述量化參數(shù)的步驟包括高速緩存先 前運(yùn)動(dòng)搜索的步驟。
36.根據(jù)權(quán)利要求34所述的方法,其中所述確定所述量化參數(shù)的步驟包括高速緩存幀 內(nèi)模式?jīng)Q定結(jié)果的步驟。
37.根據(jù)權(quán)利要求34所述的方法,其中至少基于所預(yù)測(cè)量化參數(shù)的值而選擇量化參數(shù) 的所述范圍。
38.根據(jù)權(quán)利要求37所述的方法,其進(jìn)一步包含至少基于先前確定的量化參數(shù)的值而 選擇所述所預(yù)測(cè)量化參數(shù)的步驟。
39.根據(jù)權(quán)利要求38所述的方法,其中所述先前確定的量化參數(shù)為用于前面宏塊的量化參數(shù)。
40.根據(jù)權(quán)利要求38所述的方法,其中至少使用至少兩個(gè)相鄰宏塊、至少三個(gè)相鄰宏 塊或至少四個(gè)相鄰宏塊中的一者的所述量化參數(shù)的平均值來確定所述先前確定的量化參數(shù)。
41.根據(jù)權(quán)利要求38所述的方法,其中使用一個(gè)或一個(gè)以上相鄰宏塊的量化參數(shù)來確 定所述先前確定的量化參數(shù),且在沒有一個(gè)或一個(gè)以上相鄰宏塊的情況下所述先前確定的 量化參數(shù)使用默認(rèn)量化參數(shù)值。
42.一種用于對(duì)視頻進(jìn)行編碼的系統(tǒng),其包含 存儲(chǔ)裝置,其含有包含宏塊的視頻幀;量化模塊,其經(jīng)配置以高速緩存先前運(yùn)動(dòng)搜索;模塊,其經(jīng)配置以至少部分基于所述經(jīng)高速緩存的先前運(yùn)動(dòng)搜索中的至少一者來確定 導(dǎo)致所述宏塊的最佳量化的量化參數(shù);以及編碼器,其經(jīng)配置以使用所述確定的量化參數(shù)對(duì)所述宏塊進(jìn)行編碼。
43.一種用于對(duì)視頻進(jìn)行編碼的系統(tǒng),其包含 存儲(chǔ)裝置,其含有包含宏塊的視頻幀;量化模塊,其經(jīng)配置以高速緩存幀內(nèi)模式?jīng)Q定結(jié)果;模塊,其經(jīng)配置以至少部分基于所述經(jīng)高速緩存的幀內(nèi)模式?jīng)Q定結(jié)果中的至少一者來 確定導(dǎo)致所述宏塊的最佳量化的量化參數(shù);以及編碼器,其經(jīng)配置以使用所述確定的量化參數(shù)對(duì)所述宏塊進(jìn)行編碼。
44.一種包含計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可讀程序代碼適于 被執(zhí)行以執(zhí)行一方法,所述方法包含接收包含用于量化的宏塊的視頻幀;選擇用于量化所述宏塊的量化參數(shù)的范圍,其中所述范圍為可能量化參數(shù)的子集; 確定所述范圍中的導(dǎo)致所述宏塊的最低失真值的所述量化參數(shù);以及 使用所述確定的量化參數(shù)對(duì)所述宏塊進(jìn)行編碼。
全文摘要
本發(fā)明描述一種用于對(duì)多媒體視頻進(jìn)行編碼的系統(tǒng)和方法。在對(duì)視頻進(jìn)行編碼時(shí),針對(duì)每一宏塊選擇一量化參數(shù)。如本文中所描述,可通過將所有可能量化參數(shù)的總體限于可能量化參數(shù)值的特定范圍而選擇每一宏塊的所述量化參數(shù)。此通過減少針對(duì)每一視頻宏塊所測(cè)試的量化參數(shù)的數(shù)目而增加視頻編碼的速度。
文檔編號(hào)H04N7/50GK101946516SQ200980105681
公開日2011年1月12日 申請(qǐng)日期2009年2月21日 優(yōu)先權(quán)日2008年2月22日
發(fā)明者葉琰, 培松陳, 馬爾塔·卡切維奇 申請(qǐng)人:高通股份有限公司