本申請(qǐng)是中國(guó)發(fā)明專(zhuān)利申請(qǐng)的分案申請(qǐng),原案的發(fā)明名稱(chēng)是“基于解碼器圖片緩沖器的上下文初始化”,原案的申請(qǐng)?zhí)柺?01280032068.7(國(guó)際申請(qǐng)?zhí)杙ct/jp2012/067023),原案的申請(qǐng)日是2012年6月27日。
本發(fā)明的實(shí)施例總體涉及視頻編碼,并且具體地,本發(fā)明的某些實(shí)施例涉及用于上下文初始化的技術(shù)。
背景技術(shù):
現(xiàn)有技術(shù)視頻編碼方法和標(biāo)準(zhǔn),例如h.264/mpeg-4avc(h.264/avc)和jct-vc考慮中的測(cè)試模型(tmuc)可以以較高的復(fù)雜性為代價(jià)提供比較舊的方法更高的編碼效率。增加對(duì)視頻編碼方法和標(biāo)準(zhǔn)的質(zhì)量要求和分辨率要求也可能增加其復(fù)雜性。支持并行解碼的解碼器可以改善解碼速度并降低存儲(chǔ)器要求。另外,多核處理器的進(jìn)步可以使得支持并行解碼的編碼器和解碼器是期望的。
被通過(guò)引用整體地結(jié)合到本文中的h.264/mpeg-4avc[itu-tvceg和iso/iecmpeg的聯(lián)合視頻組,“h.264:用于一般視聽(tīng)服務(wù)的高級(jí)視頻編碼”,itu-t記錄h.264和iso/iec14496-10(mpeg4—第10部分,2007年11月]是使用宏塊預(yù)測(cè)、之后是殘余編碼來(lái)減少視頻序列中的時(shí)間和空間冗余以獲得壓縮效率的視頻編解碼器(編碼器/解碼器)規(guī)范。
被整體地通過(guò)引用結(jié)合到本文中的考慮中的測(cè)試模型(tmuc)[jct-vca205,“考慮中的測(cè)試模型”,2010年6月16日]是jct-vc的初始測(cè)試模型。tmuc,使用能夠具有可變尺寸的被稱(chēng)為編碼樹(shù)塊(ctb)的基礎(chǔ)編碼單元,提供比h.264/avc更大的靈活性。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的某些實(shí)施例包括用于并行熵編碼的方法和系統(tǒng)。本發(fā)明的某些實(shí)施例包括用于并行熵解碼的方法和系統(tǒng)。
本發(fā)明的一個(gè)實(shí)施例公開(kāi)了一種用于將視頻序列的視頻幀解碼的方法,包括:
(a)在視頻解碼器中接收片;
(b)識(shí)別包括至少第一預(yù)測(cè)片和第二預(yù)測(cè)片的所述片的類(lèi)型;以及
(c)使用對(duì)應(yīng)于所述片的類(lèi)型的上下文初始化方法來(lái)初始化與所述片相關(guān)聯(lián)的上下文;
其中,如果所識(shí)別的所述片類(lèi)型是所述第二預(yù)測(cè)片,則所述上下文初始化方法被用對(duì)應(yīng)于所述第一預(yù)測(cè)片的不同的上下文初始化方法替換。
本發(fā)明的一個(gè)實(shí)施例公開(kāi)了一種用于解碼視頻序列中的視頻幀的方法,包括:
(a)在視頻解碼器中接收片;
(b)識(shí)別所述片是否是預(yù)測(cè)b片;
(c)使用與被用于b片的不同的技術(shù)來(lái)初始化與所述片相關(guān)聯(lián)的上下文。
在考慮結(jié)合附圖進(jìn)行的本發(fā)明的以下詳細(xì)描述時(shí),將更容易理解本發(fā)明的前述及其他目的、特征和優(yōu)點(diǎn)。
附圖說(shuō)明
圖1是示出了h.264/avc視頻編碼器(現(xiàn)有技術(shù))的圖片;
圖2是示出了h.264/avc視頻解碼器(現(xiàn)有技術(shù))的圖片;
圖3是示出了示例性片結(jié)構(gòu)(現(xiàn)有技術(shù))的圖片;
圖4是示出了示例性片組結(jié)構(gòu)(現(xiàn)有技術(shù))的圖片;
圖5是示出了根據(jù)本發(fā)明的實(shí)施例的示例性片分區(qū)的圖片,其中,可以以至少一個(gè)重構(gòu)片來(lái)劃分圖片,并且可以將重構(gòu)片劃分成不止一個(gè)熵片;
圖6是示出了包括熵片的本發(fā)明的示例性實(shí)施例的圖表;
圖7是示出了包括多個(gè)熵片的并行熵解碼,之后是片重構(gòu)的本發(fā)明的示例性實(shí)施例的圖表;
圖8是示出了在圖片層級(jí)包括預(yù)測(cè)數(shù)據(jù)/殘余數(shù)據(jù)復(fù)用以用于熵片構(gòu)造的本發(fā)明的示例性實(shí)施例的圖表;
圖9是示出了在圖片層級(jí)包括色彩平面復(fù)用以用于熵片構(gòu)造的本發(fā)明的示例性實(shí)施例的圖表;
圖10是示出了包括通過(guò)熵解碼、形成熵片和熵編碼對(duì)比特流進(jìn)行變換編碼的本發(fā)明的示例性實(shí)施例的圖表;
圖11是示出了包括將重構(gòu)片劃分成多個(gè)熵片的本發(fā)明的示例性實(shí)施例的圖表,其中,與多個(gè)熵片中的每個(gè)熵片相關(guān)聯(lián)的二元位(bin)的數(shù)目不超過(guò)預(yù)定義二元位數(shù)目;
圖12是示出了包括將重構(gòu)片劃分成多個(gè)熵片的本發(fā)明的示例性實(shí)施例的圖表,其中,二元位可以與熵片相關(guān)聯(lián)直至熵片中的二元位的數(shù)目超過(guò)基于預(yù)定義最大二元位數(shù)目的門(mén)限值;
圖13是示出了包括將重構(gòu)片劃分成多個(gè)熵片的本發(fā)明的示例性實(shí)施例的圖表,其中,與多個(gè)熵片中的每個(gè)熵片相關(guān)聯(lián)的二元位的數(shù)目不超過(guò)預(yù)定義二元位數(shù)目且每個(gè)重構(gòu)片不包含超過(guò)預(yù)定義數(shù)目的宏塊;
圖14是示出了包括將重構(gòu)片劃分成多個(gè)熵片的本發(fā)明的示例性實(shí)施例的圖表,其中,二元位可以與熵片相關(guān)聯(lián)直至熵片中的二元位的數(shù)目超過(guò)基于預(yù)定義最大二元位數(shù)目的門(mén)限值且每個(gè)重構(gòu)片包含不超過(guò)預(yù)定義數(shù)目的宏塊;
圖15是示出了包括將重構(gòu)片劃分成多個(gè)熵片的本發(fā)明的示例性實(shí)施例的圖表,其中,與多個(gè)熵片中的每個(gè)熵片相關(guān)聯(lián)的比特?cái)?shù)不超過(guò)預(yù)定義比特?cái)?shù);
圖16是示出了包括將重構(gòu)片劃分成多個(gè)熵片的本發(fā)明的示例性實(shí)施例的圖表,其中,比特可以與熵片相關(guān)聯(lián)直至熵片中的比特?cái)?shù)超過(guò)基于預(yù)定義最大比特?cái)?shù)的門(mén)限值;
圖17是描繪了包括多個(gè)二元位編碼器的本發(fā)明的示例性實(shí)施例的圖片;
圖18是描繪了包括多個(gè)上下文自適應(yīng)單元的本發(fā)明的示例性實(shí)施例的圖片;
圖19是描繪了包括多個(gè)二元位編碼器和多個(gè)上下文自適應(yīng)單元的本發(fā)明的示例性實(shí)施例的圖片;
圖20是示出了包括將重構(gòu)片劃分成多個(gè)熵片的本發(fā)明的示例性實(shí)施例的圖表,其中,熵片的尺寸受限以限制在熵片中由每個(gè)受限熵編碼器單元來(lái)操作的比特?cái)?shù);
圖21是示出了包括將重構(gòu)片劃分成多個(gè)熵片的本發(fā)明的示例性實(shí)施例的圖表,其中,熵片的尺寸受限以限制在熵片中由每個(gè)受限熵編碼器單元來(lái)操作的比特?cái)?shù);
圖22是描繪了包括多個(gè)二元位解碼器的本發(fā)明的示例性實(shí)施例的圖片;
圖23是描繪了包括多個(gè)上下文自適應(yīng)單元的本發(fā)明的示例性實(shí)施例的圖片;
圖24是描繪了包括多個(gè)二元位解碼器和多個(gè)上下文自適應(yīng)單元的本發(fā)明的示例性實(shí)施例的圖片;
圖25是示出了重構(gòu)塊到多個(gè)熵片的示例性劃分的圖片,其中,熵片內(nèi)的宏塊是連續(xù)的;
圖26是示出了重構(gòu)塊到多個(gè)熵片的示例性劃分的圖片,其中,熵片內(nèi)的宏塊是不連續(xù)的;
圖27是圖示出對(duì)于重構(gòu)塊到多個(gè)熵片的示例性劃分,在熵解碼中使用的非連續(xù)鄰近塊的圖片,其中,熵片內(nèi)的宏塊是不連續(xù)的;
圖28是圖示出對(duì)于重構(gòu)塊到多個(gè)熵片的示例性劃分,在熵解碼中使用的鄰近塊和熵片內(nèi)的塊的重構(gòu)的圖片,其中,熵片內(nèi)的宏塊是不連續(xù)的;
圖29是描繪熵片報(bào)頭位置限制的示例性比特流的示例性部分的圖片表示;
圖30是描繪熵片報(bào)頭位置限制的示例性比特流的示例性部分的圖片表示;
圖31是示出了包括熵解碼器處理比特流的受限部分以識(shí)別熵片報(bào)頭的本發(fā)明示例性實(shí)施例的圖表;
圖32是示出了包括熵解碼器處理比特流的受限部分以識(shí)別熵片報(bào)頭的本發(fā)明示例性實(shí)施例的圖表;
圖33是示出了包括熵解碼器處理比特流的受限部分以識(shí)別熵片報(bào)頭的本發(fā)明示例性實(shí)施例的圖表;
圖34是圖示出根據(jù)本發(fā)明的實(shí)施例的熵片內(nèi)的示例性上下文表初始化方案的圖片;
圖35是圖示出本發(fā)明的示例性實(shí)施例中的掃描自適應(yīng)的圖片。
圖36是示出了包括上下文獲取與系數(shù)掃描順序解耦的熵編碼器的本發(fā)明的示例性實(shí)施例的圖表;
圖37是示出了包括上下文獲取與系數(shù)掃描順序解耦的熵解碼器的本發(fā)明的示例性實(shí)施例的圖表;
圖38是示出了包括基于二元位計(jì)數(shù)的上下文自適應(yīng)的本發(fā)明的示例性實(shí)施例的圖表;
圖39是圖示出已處理的多個(gè)二元位的示例性、分離劃分的圖片;
圖40是示出了包括基于量化參數(shù)的上下文自適應(yīng)的本發(fā)明的示例性實(shí)施例的圖表;
圖41圖示出上下文初始化技術(shù);
圖42圖示出另一上下文初始化技術(shù);以及
圖43圖示出上下文初始化技術(shù)。
具體實(shí)施方式
通過(guò)參考附圖,將最好地理解本發(fā)明的實(shí)施例,其中,自始至終用相同的附圖標(biāo)記來(lái)指示相同的部分。上文列出的各圖被顯式地并入作為本詳細(xì)描述的一部分。
將很容易理解的是,如在本文的附圖中總體描述和圖示出的本發(fā)明的部件可以被以多種不同的配置來(lái)布置和設(shè)計(jì)。因此,本發(fā)明的方法和系統(tǒng)的實(shí)施例的以下更詳細(xì)描述并不意圖限制本發(fā)明的范圍,而是僅僅表示本發(fā)明的目前優(yōu)選的實(shí)施例。
可以用硬件、固件和/或軟件來(lái)體現(xiàn)本發(fā)明的實(shí)施例的元件。雖然本文披露的示例性實(shí)施例可以?xún)H描述這些形式中的一個(gè),但應(yīng)理解的是在本發(fā)明的范圍內(nèi)本領(lǐng)域的技術(shù)人員將能夠以這些形式中的任何一個(gè)來(lái)實(shí)現(xiàn)這些元件。
雖然本發(fā)明的實(shí)施例可以適應(yīng)使用熵編碼/解碼的任何視頻編碼器/解碼器(編解碼器),但將關(guān)于h.264/avc編碼器和h.264/avc解碼器來(lái)說(shuō)明本發(fā)明的許多示例性實(shí)施例。這意圖用于本發(fā)明的實(shí)施例的說(shuō)明而非作為限制。
可以關(guān)于作為初級(jí)單元的宏塊來(lái)描述本發(fā)明的許多示例性實(shí)施例。這意圖用于說(shuō)明而非作為限制。
2008年3月28日提交的題為“methodsandsystemsforparallelvideoencodinganddecoding(用于并行視頻編碼和解碼的方法和系統(tǒng))”的美國(guó)專(zhuān)利申請(qǐng)no.12/058,301被整體地通過(guò)引用結(jié)合到本文中。2009年10月14日提交的題為“methodsandsystemsforparallelvideoencodinganddecoding(用于并行視頻編碼和解碼的方法和系統(tǒng))”的美國(guó)專(zhuān)利申請(qǐng)no.12/579,236被整體地通過(guò)引用結(jié)合到本文中。
現(xiàn)有技術(shù)視頻編碼方法和標(biāo)準(zhǔn),例如h.264/avc和tmuc,可以以較高的復(fù)雜性為代價(jià)提供比較舊的方法和標(biāo)準(zhǔn)更高的編碼效率。增加對(duì)視頻編碼方法和標(biāo)準(zhǔn)的質(zhì)量要求和分辨率要求也可能增加其復(fù)雜性。支持并行解碼的解碼器可以改善解碼速度并降低存儲(chǔ)器要求。另外,多核處理器的進(jìn)步可以使得支持并行解碼的編碼器和解碼器是期望的。
h.264/avc以及許多其他視頻編碼標(biāo)準(zhǔn)和方法是基于基于塊的混合視頻編碼方法,其中,信源編碼算法是圖片間(也被視為幀間)預(yù)測(cè)、圖片內(nèi)(也被視為幀內(nèi))預(yù)測(cè)和預(yù)測(cè)殘余的變換編碼的混合。幀間預(yù)測(cè)可以挖掘時(shí)間冗余,并且?guī)g和預(yù)測(cè)殘余的變換編碼可以挖掘空間冗余。
圖1示出了示例性h.264/avc視頻編碼器2的方框圖。輸入圖片4,也被視為幀,可以被給出用于編碼??梢援a(chǎn)生預(yù)測(cè)信號(hào)6和殘余信號(hào)8,其中,預(yù)測(cè)信號(hào)6可以基于幀間預(yù)測(cè)10或幀內(nèi)預(yù)測(cè)12??梢杂蛇\(yùn)動(dòng)補(bǔ)償部14使用存儲(chǔ)的參考圖片16,也被視為參考幀,以及在輸入幀4與參考幀16之間的由運(yùn)動(dòng)估計(jì)部18處理而確定的運(yùn)動(dòng)信息19來(lái)確定幀間預(yù)測(cè)10。幀內(nèi)預(yù)測(cè)12可以由幀內(nèi)預(yù)測(cè)部20使用解碼的信號(hào)22來(lái)確定。殘余信號(hào)8可以通過(guò)從預(yù)測(cè)6減去輸入4來(lái)確定。殘余信號(hào)8被變換/縮放/量化部24進(jìn)行變換、縮放和量化,從而產(chǎn)生量化的變換系數(shù)26。解碼的信號(hào)22可以通過(guò)將預(yù)測(cè)信號(hào)6加上由反向(變換/縮放/量化)部30使用量化的變換系數(shù)26生成的信號(hào)28來(lái)生成。運(yùn)動(dòng)信息19和量化的變換系數(shù)26可以被熵編碼部32進(jìn)行熵編碼并寫(xiě)入壓縮視頻比特流34??梢栽诰幋a器2處由解塊濾波器36使用重構(gòu)的前置濾波信號(hào)22來(lái)生成輸出圖像區(qū)域38,例如參考幀的一部分。
圖2示出了示例性h.264/avc視頻解碼器50的方框圖。輸入信號(hào)52,也比視為比特流,可以被給出用于解碼。接收符號(hào)可以被熵解碼部54進(jìn)行熵解碼,從而產(chǎn)生運(yùn)動(dòng)信息56和量化縮放變換系數(shù)58。可以由運(yùn)動(dòng)補(bǔ)償部60將運(yùn)動(dòng)信息56與其可以駐留在幀存儲(chǔ)器64中的參考幀84的一部分組合,并且可以生成幀間預(yù)測(cè)68。量化縮放變換系數(shù)58可以被反向(變換/縮放/量化)部62反向量化、縮放和反變換,從而產(chǎn)生解碼的殘余信號(hào)70??梢詫堄嘈盘?hào)70與預(yù)測(cè)信號(hào)78相加,測(cè)信號(hào)78或者是幀間預(yù)測(cè)信號(hào)68或者是幀內(nèi)預(yù)測(cè)信號(hào)76。幀內(nèi)預(yù)測(cè)信號(hào)76可以由幀內(nèi)預(yù)測(cè)部74根據(jù)當(dāng)前幀72中的先前已解碼的信息來(lái)預(yù)測(cè)。組合信號(hào)72可以被解塊濾波器80濾波且濾波的信號(hào)82可以被寫(xiě)入幀存儲(chǔ)器64。
在h.264/avc中,輸入圖片被劃分成固定尺寸的宏塊,其中,每個(gè)宏塊覆蓋亮度分量的16×16采樣和兩個(gè)色度分量中的每一個(gè)的8×8采樣的矩形圖片區(qū)域。在其他編解碼器和標(biāo)準(zhǔn)中,可以使用不同于宏塊的基本單元或基礎(chǔ)編碼單元,例如編碼樹(shù)塊。對(duì)于作為宏塊的處理單元指定h.264/avc標(biāo)準(zhǔn)的解碼處理。熵解碼器54對(duì)壓縮視頻比特流52的語(yǔ)法元素進(jìn)行解析并將其解復(fù)用。h.264/avc指定熵解碼的兩個(gè)替換方法:基于上下文自適應(yīng)切換集可變長(zhǎng)度碼(被稱(chēng)為cavlc)的使用的低復(fù)雜性技術(shù),以及基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼(被稱(chēng)為cabac)的需要更多計(jì)算的算法。在兩種熵解碼方法中,當(dāng)前符號(hào)的解碼可以依賴(lài)于先前正確解碼的符號(hào)和自適應(yīng)更新上下文模型。另外,可以將不同的數(shù)據(jù)信息,例如預(yù)測(cè)數(shù)據(jù)信息、殘余數(shù)據(jù)信息和不同的色彩平面,復(fù)用在一起??赡苤敝猎乇混亟獯a才完成解復(fù)用。
在熵解碼之后,可以通過(guò)獲得以下各項(xiàng)來(lái)重構(gòu)宏塊:通過(guò)反向量化和反變換的殘余信號(hào),以及預(yù)測(cè)信號(hào),或者是幀內(nèi)預(yù)測(cè)信號(hào)或者是幀間預(yù)測(cè)信號(hào)。通過(guò)將解塊濾波器應(yīng)用于每個(gè)解碼的宏塊,可以減少塊失真。可能直至輸入信號(hào)被熵解碼才開(kāi)始處理,從而使得熵解碼成為解碼中的潛在瓶頸。
同樣地,在其中可以允許替換預(yù)測(cè)機(jī)制的編解碼器中,例如h.264/avc中的層間預(yù)測(cè)和其他可縮放編解碼器中的層間預(yù)測(cè),熵解碼可能是解碼器處的所有處理之前的必需品,從而使得熵解碼成為潛在瓶頸。
在h.264/avc中,可以將包括多個(gè)宏塊的輸入圖片劃分成一個(gè)或多個(gè)片。片表示的圖片區(qū)域中的采樣的值可以在不使用來(lái)自其他片的數(shù)據(jù)的情況下被正確地解碼,只要在編碼器和解碼器處所使用的參考圖片是相同的。因此,對(duì)于片的熵解碼和宏塊重構(gòu)并不取決于其他片。特別地,熵編碼狀態(tài)在每個(gè)片開(kāi)始時(shí)被重置。在對(duì)熵解碼和重構(gòu)兩者定義鄰居可用性時(shí),其他片中的數(shù)據(jù)被標(biāo)記為不可用。在h.264/avc中,片可以被并行地熵解碼和重構(gòu)。不允許跨片邊界的內(nèi)部預(yù)測(cè)和運(yùn)動(dòng)矢量預(yù)測(cè)。解塊濾波可以使用跨片邊界的信息。
圖3示出了在水平方向上包括十一個(gè)宏塊且在垂直方向上包括九個(gè)宏塊(標(biāo)記為91-99的九個(gè)示例性宏塊)的示例性視頻圖片90。圖3示出了三個(gè)示例性片:表示為“slice#_0”的第一片100、表示為“slice#_1”的第二片101和表示為“slice#_2”的第三片102。h.264/avc解碼器可以并行地對(duì)三個(gè)片100、101、102進(jìn)行解碼和重構(gòu)。在對(duì)于每個(gè)片的解碼/重構(gòu)處理開(kāi)始時(shí),上下文模型被初始化或重置,并且其他片中的宏塊被針對(duì)熵解碼和宏塊重構(gòu)兩者標(biāo)記為不可用。因此,對(duì)于“slice#_1”中的宏塊,例如記號(hào)為93的宏塊,“slice#_0”中的宏塊(例如,記號(hào)為91和92的宏塊)不可以被用于上下文模型選擇或重構(gòu)。而對(duì)于“slice#_1”中的宏塊,例如記號(hào)為95的宏塊,“slice#_1”中的其他宏塊(例如,記號(hào)為93和94的宏塊)可以被用于上下文模型選擇或重構(gòu)。因此,熵解碼和宏塊重構(gòu)必須在片內(nèi)串行地進(jìn)行。除非片是使用靈活宏塊排序(fmo)定義的,否則片內(nèi)的宏塊被按照光柵掃描順序來(lái)處理。
靈活宏塊排序定義片組以修改圖片如何被劃分成片。片組中的宏塊是由宏塊至片組映射定義的,這由片報(bào)頭中的附加信息和圖片參數(shù)集的內(nèi)容發(fā)信號(hào)。宏塊至片組映射由用于圖片中的每個(gè)宏塊的片組標(biāo)識(shí)號(hào)組成。片組標(biāo)識(shí)號(hào)指定關(guān)聯(lián)的宏塊屬于哪個(gè)片組。每個(gè)片組可以被劃分成一個(gè)或多個(gè)片,其中,片是在特定片組的宏塊集內(nèi)按照光柵掃描順序處理的同一片組內(nèi)的宏塊序列。熵解碼和宏塊重構(gòu)必須在片內(nèi)串行地進(jìn)行。
圖4描繪了到以下三個(gè)片組的示例性宏塊分配:表示為“slicegroup#_0”的第一片組103、表示為“slicegroup#_1”的第二片組104和表示為“slicegroup#_2”的第三片組105。這些片組103、104、105可以分別與圖片90中的兩個(gè)前景區(qū)域和背景區(qū)域相關(guān)聯(lián)。
本發(fā)明的某些實(shí)施例可以包括將圖片劃分成一個(gè)或多個(gè)重構(gòu)片,其中,在下述方面重構(gòu)片可以是自包含的,即在不使用來(lái)自其他重構(gòu)片的數(shù)據(jù)的情況下,在重構(gòu)片所表示的圖片區(qū)域中的采樣值可以被正確地重構(gòu),只要所使用的參考圖片在編碼器和解碼器處是相同的。重構(gòu)片內(nèi)的所有重構(gòu)宏塊可以在用于重構(gòu)的鄰居定義中是可用的。
本發(fā)明的某些實(shí)施例可以包括將重構(gòu)片劃分成不止一個(gè)熵片,其中,在下述方面熵片可以是自包含的,即在不使用來(lái)自其他熵片的數(shù)據(jù)的情況下,熵片所表示的圖片區(qū)域中的采樣值可以被正確地熵編碼。在本發(fā)明的某些實(shí)施例中,可以在每個(gè)熵片的解碼開(kāi)始時(shí)將熵編碼狀態(tài)重置。在本發(fā)明的某些實(shí)施例中,在定義用于熵解碼的鄰居可用性時(shí),其他熵片中的數(shù)據(jù)可以被標(biāo)記為不可用。在本發(fā)明的某些實(shí)施例中,在當(dāng)前塊的上下文模型選擇中不可以使用其他熵片中的宏塊。在本發(fā)明的某些實(shí)施例中,上下文模型可以?xún)H在熵片內(nèi)被更新。在本發(fā)明的這些實(shí)施例中,與熵片相關(guān)聯(lián)的每個(gè)熵解碼器可以保持其自身的上下文模型集。
2008年4月的題為“entropyslicesforparallelentropydecoding(用于并行熵解碼的熵片)”的itu電信標(biāo)準(zhǔn)化部門(mén)研究組16—投稿405被通過(guò)引用整體地結(jié)合到本文中。
本發(fā)明的某些實(shí)施例可以包括cabac編碼/解碼。cabac編碼處理包括以下四個(gè)基本步驟:二值化;上下文模型選擇;二進(jìn)制算術(shù)編碼;以及概率更新。
二值化:非二進(jìn)制值符號(hào)(例如,變換系數(shù)、運(yùn)動(dòng)矢量或其他編碼數(shù)據(jù))被轉(zhuǎn)換成二進(jìn)制碼,也稱(chēng)為二元位串或二值化符號(hào)。當(dāng)給定二進(jìn)制值語(yǔ)法元素時(shí),可以旁路二值化的初始步驟。二進(jìn)制值語(yǔ)法元素或二值化符號(hào)的元素可以稱(chēng)為二元位。
針對(duì)每個(gè)二元位,可以執(zhí)行以下各項(xiàng):
上下文模型選擇:上下文模型是用于一個(gè)或多個(gè)二元位的概率模型。上下文模型包括,對(duì)于每個(gè)二元位,該二元位為“1”或“0”的概率??梢詫?duì)于取決于最近編碼數(shù)據(jù)符號(hào)的統(tǒng)計(jì),如果可用的話,通?;谧蠛蜕相徑?hào)的可用模型的選擇來(lái)選取模型。
二進(jìn)制算術(shù)編碼:算術(shù)編碼器根據(jù)所選概率模型對(duì)每個(gè)二元位進(jìn)行編碼且其基于遞歸間隔細(xì)分。
概率更新:所選上下文模型基于實(shí)際編碼值被更新。
上下文自適應(yīng)可以指的是基于鄰近符號(hào)值來(lái)選擇與二元位相關(guān)聯(lián)的上下文模型狀態(tài),也稱(chēng)為狀態(tài),并更新分配給給定符號(hào)的模型概率分布的處理??梢愿鶕?jù)上下文模板來(lái)定義鄰近符號(hào)的位置。
在包括cabac編碼/解碼的本發(fā)明的某些實(shí)施例中,在熵片的解碼開(kāi)始時(shí),可以將所有上下文模型初始化或重置成預(yù)定義模型。
可以關(guān)于圖5來(lái)理解本發(fā)明的某些實(shí)施例。圖5示出了在水平方向上包括十一個(gè)宏塊且在垂直方向上包括九個(gè)宏塊(記號(hào)為115-123的九個(gè)示例性宏塊)的示例性視頻幀110。圖5示出了三個(gè)示例性重構(gòu)片:表示為“r_slice#_0”的第一重構(gòu)片111、表示為“r_slice#_1”的第二重構(gòu)片112以及表示為“r_slice#_2”的第三重構(gòu)片113。圖5還示出了第二重構(gòu)片“r_slice#_1”112到三個(gè)熵片的劃分,即:用交叉影線114所示的表示為“e_slice#_0”的第一熵片、用垂直影線115所示的表示為“e_slice#_1”的第二熵片和用角影線116所示的表示為“e_slice#_2”的第三熵片。每個(gè)熵片114、115、116可以被并行地熵解碼。
在本發(fā)明的某些實(shí)施例中,只有來(lái)自熵片內(nèi)的宏塊的數(shù)據(jù)在熵片的熵解碼期間可用于上下文模型選擇。所有其他宏塊可以被標(biāo)記為不可用。針對(duì)此示例性劃分,當(dāng)解碼對(duì)應(yīng)于記號(hào)為119的宏塊區(qū)域的符號(hào)時(shí),記號(hào)為117和118的宏塊在不可用于上下文模型選擇,因?yàn)橛浱?hào)為117和118的宏塊在包含宏塊119的熵片外面。然而,當(dāng)宏塊119被重構(gòu)時(shí),這些宏塊117、118是可用的。
在本發(fā)明的某些實(shí)施例中,編碼器可以確定是否將重構(gòu)片劃分成熵片,并且編碼器可以在比特流中用信號(hào)發(fā)送此判定。在本發(fā)明的某些實(shí)施例中,信號(hào)可以包括熵片標(biāo)志,其在本發(fā)明的某些實(shí)施例中可以表示為“entropy_slice_flag”。
可以關(guān)于圖6來(lái)描述本發(fā)明的某些解碼器實(shí)施例。在這些實(shí)施例中,可以檢查130熵片標(biāo)志,并且如果熵片標(biāo)志指示不存在132與圖片相關(guān)聯(lián)的熵片或重構(gòu)片,則可以將報(bào)頭解析134為規(guī)則片報(bào)頭。可以將熵解碼器狀態(tài)重置136,并且可以定義138用于熵解碼和重構(gòu)的鄰居信息。然后可以將片數(shù)據(jù)熵解碼140,并且可以將片重構(gòu)142。如果熵片標(biāo)志指示存在146與圖片相關(guān)聯(lián)的熵片或重構(gòu)片,則可以將報(bào)頭解析148為熵片報(bào)頭。可以將熵解碼器狀態(tài)重置150,并且可以定義152用于熵解碼的鄰居信息且可以將熵片數(shù)據(jù)熵解碼154。然后可以定義156用于重構(gòu)的鄰居信息,并且可以將片重構(gòu)142。在片重構(gòu)142之后,可以檢查158下一片或圖片。
可以關(guān)于圖7來(lái)描述本發(fā)明的某些替換解碼器實(shí)施例。在這些實(shí)施例中,解碼器可以能夠進(jìn)行并行解碼,并且可以定義其自己的并行程度,例如考慮包括并行解碼n個(gè)熵片的能力的解碼器。解碼器可以識(shí)別170n個(gè)熵片。在本發(fā)明的某些實(shí)施例中,如果在當(dāng)前圖片或者重構(gòu)片中少于n個(gè)熵片是可用的,則解碼器可以解碼來(lái)自后續(xù)圖片或重構(gòu)片的熵片,如果它們可用的話。在替換實(shí)施例中,解碼器可以在解碼后續(xù)圖片或重構(gòu)片之前等待直至當(dāng)前圖片或重構(gòu)片被完全處理。在識(shí)別170達(dá)n個(gè)熵片之后,可以獨(dú)立地對(duì)每個(gè)所識(shí)別的熵片進(jìn)行熵解碼。可以將第一熵片解碼172-176。第一熵片的解碼172-176可以包括將解碼器狀態(tài)重置172。在包括cabac熵解碼的某些實(shí)施例中,可以將cabac狀態(tài)重置??梢远x174用于第一熵片的熵解碼的鄰居信息,并且可以將第一熵片數(shù)據(jù)解碼176。針對(duì)達(dá)n個(gè)熵片中的每一個(gè),可以執(zhí)行這些步驟(用于第n個(gè)熵片的178-182)。在本發(fā)明的某些實(shí)施例中,解碼器可以在所有熵片被熵解碼時(shí)重構(gòu)184熵片。在本發(fā)明的替換實(shí)施例中,解碼器可以在一個(gè)或多個(gè)熵片被解碼之后開(kāi)始重構(gòu)184。
在本發(fā)明的某些實(shí)施例中,當(dāng)存在超過(guò)n個(gè)熵片時(shí),解碼器線程可以在熵片的熵解碼完成時(shí)開(kāi)始熵解碼下一熵片。因此,當(dāng)線程結(jié)束熵解碼低復(fù)雜性熵片時(shí),線程可以開(kāi)始解碼附加熵片,而不等待其他線程結(jié)束其解碼。
在可以適應(yīng)現(xiàn)有標(biāo)準(zhǔn)或方法的本發(fā)明的某些實(shí)施例中,熵片可以根據(jù)該標(biāo)準(zhǔn)或方法而共享規(guī)則片的大部分片屬性。因此,熵片可以要求小報(bào)頭。在本發(fā)明的某些實(shí)施例中,熵片報(bào)頭可以允許解碼器識(shí)別熵片的開(kāi)始并開(kāi)始熵解碼。在某些實(shí)施例中,在圖片或重構(gòu)片開(kāi)始時(shí),熵片報(bào)頭可以是規(guī)則報(bào)頭或重構(gòu)片報(bào)頭。
在包括h.264/avc編解碼器的本發(fā)明的某些實(shí)施例中,可以通過(guò)向現(xiàn)有片報(bào)頭現(xiàn)價(jià)新比特“entropy_slice_flag”來(lái)用信號(hào)發(fā)送熵片。表1列出了根據(jù)本發(fā)明的實(shí)施例的用于熵片報(bào)頭的語(yǔ)法,其中,c指示種類(lèi),并且描述符u(l)、ue(v)指示某些固定長(zhǎng)度或可變長(zhǎng)度編碼方法。包括“entropy_slice_flag”的本發(fā)明的實(shí)施例可以實(shí)現(xiàn)改善的編碼效率。
“first_mb_in_slice”指定與熵片報(bào)頭相關(guān)聯(lián)的熵片中的第一宏塊的地址。在某些實(shí)施例中,熵片可以包括宏塊序列。
“cabac_init_idc”指定用于確定在對(duì)于上下文模式的初始化處理中使用的初始化表格的索引號(hào)。
表1:用于熵片報(bào)頭的示例性語(yǔ)法表
在本發(fā)明的某些實(shí)施例中,可以為熵片分配從與規(guī)則片不同的網(wǎng)絡(luò)抽象層(nal)單元類(lèi)型。在這些實(shí)施例中,解碼器可以基于nal單元類(lèi)型來(lái)區(qū)別規(guī)則片和熵片。在這些實(shí)施例中,不要求比特字段“entropy_slice_flag”。
在本發(fā)明的某些實(shí)施例中,可以不在所有屬性中傳送比特字段“entropy_slice_flag”。在本發(fā)明的某些實(shí)施例中,可以不在基線屬性中傳送比特字段“entropy_slice_flag”,而是可以在諸如主擴(kuò)展或?qū)I(yè)屬性的高端屬性中傳送比特字段“entropy_slice_flag”。在本發(fā)明的某些實(shí)施例中,可以?xún)H在與大于固定特性值的特性相關(guān)聯(lián)的比特流中傳送比特字段“entropy_slice__flag”。示例性特性可以包括空間分辨率、幀率、比特深度、比特率及其他比特流特性。在本發(fā)明的某些實(shí)施例中,可以?xún)H在與大于1920×1080隔行掃描的空間分辨率相關(guān)聯(lián)的比特流中傳送比特字段“entropy_slice_flag”。在本發(fā)明的某些實(shí)施例中,可以?xún)H在與大于1920×1080逐行掃描的空間分辨率相關(guān)聯(lián)的比特流中傳送比特字段“entropy_slice_flag”。在本發(fā)明的某些實(shí)施例中,如果比特字段“entropy_slice_flag”未被傳送,則可以使用默認(rèn)值。
在本發(fā)明的某些實(shí)施例中,可以通過(guò)改變數(shù)據(jù)復(fù)用來(lái)構(gòu)造熵片。在本發(fā)明的某些實(shí)施例中,可以在宏塊級(jí)復(fù)用包含在熵片中的符號(hào)組。在本發(fā)明的替換實(shí)施例中,可以在圖片級(jí)復(fù)用包含在熵片中的符號(hào)組。在本發(fā)明的其他替換實(shí)施例中,可以按數(shù)據(jù)類(lèi)型復(fù)用包含在熵片中的符號(hào)組。在本發(fā)明的替換實(shí)施例中,可以以上述各項(xiàng)的組合復(fù)用包含在熵片中的符號(hào)組。
可以關(guān)于圖8和圖9來(lái)理解包括基于圖片級(jí)復(fù)用的熵片構(gòu)造的本發(fā)明的某些實(shí)施例。在圖8中所示的本發(fā)明的某些實(shí)施例中,預(yù)測(cè)數(shù)據(jù)190和殘余數(shù)據(jù)192可以單獨(dú)地被預(yù)測(cè)編碼器194和殘余編碼器196進(jìn)行熵編碼,并且編碼的預(yù)測(cè)數(shù)據(jù)和編碼的殘余數(shù)據(jù)可以被圖片級(jí)復(fù)用器198在圖片級(jí)進(jìn)行復(fù)用。在本發(fā)明的某些實(shí)施例中,可以使用于圖片190的預(yù)測(cè)數(shù)據(jù)與第一熵片相關(guān)聯(lián),并且可以使用于圖片192的殘余數(shù)據(jù)與第二熵片相關(guān)聯(lián)。編碼的預(yù)測(cè)數(shù)據(jù)和編碼的熵?cái)?shù)據(jù)可以被并行地解碼。在本發(fā)明的某些實(shí)施例中,可以將包括預(yù)測(cè)數(shù)據(jù)或殘余數(shù)據(jù)的每個(gè)分區(qū)劃分成可以被并行地解碼的熵片。
在圖9中所示的本發(fā)明的某些實(shí)施例中,每個(gè)色彩平面的殘余、例如亮度殘余200和兩個(gè)色度殘余202、204可以單獨(dú)地被y編碼器206、u編碼器208以及v編碼器210進(jìn)行熵編碼,并且熵編碼殘余可以在圖片級(jí)被圖片層級(jí)復(fù)用器212復(fù)用。在本發(fā)明的某些實(shí)施例中,可以使用于圖片200的亮度殘余與第一熵片相關(guān)聯(lián),可以使用于圖片202的第一色度殘余與第二熵片相關(guān)聯(lián),并且可以使用于圖片204的第二殘余與第三熵片相關(guān)聯(lián)。用于三個(gè)色彩平面的編碼的殘余數(shù)據(jù)可以被并行地解碼。在本發(fā)明的某些實(shí)施例中,可以將包括色彩平面殘余數(shù)據(jù)的每個(gè)分區(qū)劃分成可以被并行地解碼的熵片。在本發(fā)明的某些實(shí)施例中,亮度殘余200可以具有與色度殘余202、204相比相對(duì)更多的熵片。
在本發(fā)明的某些實(shí)施例中,壓縮視頻比特流可以被變換編碼成包括熵片,從而允許上述本發(fā)明的實(shí)施例所適應(yīng)的并行熵解碼??梢躁P(guān)于圖10來(lái)描述本發(fā)明的某些實(shí)施例。根據(jù)圖10,沒(méi)有熵片的輸入比特流可以被逐個(gè)圖片地處理。在本發(fā)明的這些實(shí)施例中,可以將來(lái)自輸入比特流的圖片熵解碼220??梢垣@得已被編碼的數(shù)據(jù),例如模式數(shù)據(jù)、運(yùn)動(dòng)信息、殘余信息及其他數(shù)據(jù)??梢詮臄?shù)據(jù)一次一個(gè)地構(gòu)造222熵片??梢栽谛卤忍亓髦胁迦?24對(duì)應(yīng)于熵片的熵片報(bào)頭。可以將編碼器狀態(tài)重置并定義226鄰居信息。可以對(duì)熵片進(jìn)行熵編碼228并寫(xiě)入新比特流。如果存在尚未被所構(gòu)造的熵片消耗232的圖片數(shù)據(jù),則可以構(gòu)造222另一熵片,并且處理224-230可以持續(xù)直至所有圖片數(shù)據(jù)已被所構(gòu)造的熵片消耗234,并且然后可以處理下一圖片。
在本發(fā)明的某些實(shí)施例中,編碼器可以將重構(gòu)片劃分成多個(gè)熵片,其中,每個(gè)熵片的尺寸可以小于或者可以超過(guò)固定數(shù)目的二元位。在其中編碼器可以限制每個(gè)熵片的尺寸的某些實(shí)施例中,可以在比特流中用信號(hào)發(fā)送二元位的最大數(shù)目。在其中編碼器可以限制每個(gè)熵片的尺寸的替換實(shí)施例中,可以由編碼器的屬性和層級(jí)符合點(diǎn)來(lái)定義二元位的最大數(shù)目。例如,可以將h.264/avc視頻編碼規(guī)范的附件a擴(kuò)展至包括在熵片中允許的二元位的最大數(shù)目的定義。
在本發(fā)明的某些實(shí)施例中,可以根據(jù)表格針對(duì)編碼器的每個(gè)層級(jí)符合點(diǎn)來(lái)指示在熵片中允許的二元位的最大數(shù)目,例如,如表2中所示,其中,mm,n表示對(duì)于層級(jí)m.n符合點(diǎn)在熵片中允許的二元位的最大數(shù)目。
表2:對(duì)于每個(gè)層級(jí)的每個(gè)熵片的二元位的最大數(shù)目
在熵片中允許的二元位的示例性最大數(shù)目是m1.1=1,000二元位、m1.2=2,000二元位,…,以及μ5.1=40,000二元位。在熵片中允許的二元位的其他示例性最大數(shù)目是m1.1=2,500二元位、m1.2=4,200二元位,…,以及μ5.1=150,000二元位。
在某些實(shí)施例中,可以基于比特率、圖像尺寸、宏塊的數(shù)目和其他編碼參數(shù)針對(duì)所有層級(jí)來(lái)確定在熵片中允許的二元位的最大數(shù)目集合。在本發(fā)明的某些實(shí)施例中,可以針對(duì)所有層級(jí)將在熵片中允許的二元位的最大數(shù)目設(shè)置成同一數(shù)目。示例性值是38,000二元位和120,000二元位。
在本發(fā)明的某些實(shí)施例中,編碼器可以確定與宏塊相關(guān)聯(lián)的二元位的最壞情況數(shù)目,并且編碼器可以將與:
個(gè)宏塊相關(guān)聯(lián)的二元位寫(xiě)入每個(gè)熵片,其中eslice_maxnumberbins可以表示在熵片中允許的二元位的最大數(shù)目,并且binspermb可以表示與宏塊相關(guān)聯(lián)的二元位的最壞情況數(shù)目。在某些實(shí)施例中,可以按照光柵掃描順序來(lái)選擇宏塊。在替換實(shí)施例中,可以按照另一預(yù)定義順序來(lái)選擇宏塊。在某些實(shí)施例中,與宏塊相關(guān)聯(lián)的二元位的最壞情況數(shù)目可以是固定數(shù)目。在替換實(shí)施例中,編碼器可以基于先前已處理宏塊的尺寸的測(cè)量結(jié)果來(lái)更新最壞情況數(shù)目。
可以關(guān)于圖11來(lái)描述本發(fā)明的某些實(shí)施例。在這些實(shí)施例中,編碼器可以針對(duì)重構(gòu)片將重構(gòu)片劃分成多個(gè)熵片,其中,沒(méi)有熵片可以在尺寸方面大于預(yù)定數(shù)目的二元位。編碼器可以將與當(dāng)前熵片中的二元位的數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器初始化240成零。在關(guān)于圖11描述的本發(fā)明的實(shí)施例的描述的其余部分中,可以出于說(shuō)明目的將計(jì)數(shù)器值表示為a??梢垣@得242用于下一宏塊的語(yǔ)法元素。可以根據(jù)預(yù)定義宏塊處理順序來(lái)確定下一宏塊。在某些實(shí)施例中,宏塊處理順序可以對(duì)應(yīng)于光柵掃描排序??梢詫⒑陦K中的非二進(jìn)制語(yǔ)法元素轉(zhuǎn)換244成二元位串。二進(jìn)制語(yǔ)法元素可以不要求轉(zhuǎn)換。可以確定246與宏塊相關(guān)聯(lián)的二元位的數(shù)目。與宏塊相關(guān)聯(lián)的二元位的數(shù)目除二進(jìn)制語(yǔ)法元素之外還可以包括與非二進(jìn)制語(yǔ)法元素相關(guān)聯(lián)的二元位串中的二元位,并且在關(guān)于圖11所述的本發(fā)明的實(shí)施例的描述的其余部分中,出于說(shuō)明性目的,可以將與宏塊相關(guān)聯(lián)的二元位的數(shù)目表示為num。
如果將與宏塊相關(guān)聯(lián)的二元位的數(shù)目可以加到248與當(dāng)前熵片相關(guān)聯(lián)的已累積的二元位的數(shù)目而不超過(guò)249針對(duì)熵片所允許的二元位的最大數(shù)目,則可以將與當(dāng)前熵片相關(guān)聯(lián)的累積的二元位的數(shù)目更新250成包括與宏塊相關(guān)聯(lián)的二元位,并且與宏塊相關(guān)聯(lián)的二元位可以被熵編碼器252寫(xiě)入比特流并與當(dāng)前熵片相關(guān)聯(lián)??梢垣@得242用于下一宏塊的語(yǔ)法元素,并且劃分處理可以繼續(xù)。
如果248與宏塊相關(guān)聯(lián)的二元位的數(shù)目和與當(dāng)前熵片相關(guān)聯(lián)的已累積的二元位的數(shù)目的和超過(guò)253針對(duì)熵片所允許的二元位的最大數(shù)目,則編碼器可以開(kāi)始254與當(dāng)前重構(gòu)片相關(guān)聯(lián)的新熵片,并且可以終止當(dāng)前熵片。然后,可以將與新的、現(xiàn)在為當(dāng)前的熵片中的二元位的數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器初始化256成零??梢詫?dāng)前熵片相關(guān)聯(lián)的累積的二元位的數(shù)目更新250成包括與宏塊相關(guān)聯(lián)的二元位,并且與宏塊相關(guān)聯(lián)的二元位可以被熵編碼器寫(xiě)入252比特流并與當(dāng)前熵片相關(guān)聯(lián)??梢垣@得242用于下一宏塊的語(yǔ)法元素,并且劃分處理可以繼續(xù)。
可以關(guān)于圖12來(lái)描述本發(fā)明的某些實(shí)施例。在這些實(shí)施例中,編碼器可以針對(duì)重構(gòu)片將重構(gòu)片劃分成多個(gè)熵片,其中,沒(méi)有熵片可以在尺寸方面大于預(yù)定最大數(shù)目的二元位。在這些實(shí)施例中,編碼器可以使宏塊語(yǔ)法元素與熵片相關(guān)聯(lián),直至熵片的尺寸達(dá)到與在熵片中允許的二元位的預(yù)定最大數(shù)目相關(guān)聯(lián)的門(mén)限值。在某些實(shí)施例中,該門(mén)限值可以是在熵片中允許的二元位的最大數(shù)目的百分比。在一個(gè)示例性實(shí)施例中,該門(mén)限值可以是在熵片中允許的二元位的最大數(shù)目的90%,假設(shè)在宏塊中預(yù)期的二元位的最大數(shù)目小于二元位的最大數(shù)目的10%。在另一示例性實(shí)施例中,該門(mén)限值可以是在熵片中允許的二元位的最大數(shù)目的百分比,其中,該百分比可以是基于在宏塊中預(yù)期的二元位的最大數(shù)目。在這些實(shí)施例中,一旦熵片的尺寸超過(guò)門(mén)限值尺寸,則可以創(chuàng)建另一熵片。可以將門(mén)限值尺寸選擇成確保熵片不超過(guò)在熵片中允許的二元位的最大數(shù)目。在某些實(shí)施例中,門(mén)限值尺寸可以是在熵片中允許的二元位的最大數(shù)目和針對(duì)宏塊預(yù)期的二元位的最大數(shù)目的估計(jì)的函數(shù)。
編碼器可以將與當(dāng)前熵片中的二元位的數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器初始化270成零。在關(guān)于圖12描述的本發(fā)明的實(shí)施例的描述的其余部分中,可以出于說(shuō)明目的將計(jì)數(shù)器值表示為a??梢垣@得272用于下一宏塊的語(yǔ)法元素??梢愿鶕?jù)預(yù)定義宏塊處理順序來(lái)確定下一宏塊。在某些實(shí)施例中,宏塊處理順序可以對(duì)應(yīng)于光柵掃描排序。可以將宏塊中的非二進(jìn)制語(yǔ)法元素轉(zhuǎn)換274成二元位串。二進(jìn)制語(yǔ)法元素可以不要求轉(zhuǎn)換。與宏塊相關(guān)聯(lián)的二元位可以被熵編碼器寫(xiě)入276比特流并與當(dāng)前熵片相關(guān)聯(lián)??梢源_定278與宏塊相關(guān)聯(lián)的二元位的數(shù)目,并且可以將與當(dāng)前熵片相關(guān)聯(lián)的累積的二元位的數(shù)目更新280成包括與宏塊相關(guān)聯(lián)的二元位。如果282與當(dāng)前熵片相關(guān)聯(lián)的累積的二元位的數(shù)目大于284基于在熵片中允許的二元位的最大數(shù)目的、表示為th(maxnumbins)的門(mén)限值,則編碼器可以開(kāi)始286新熵片,并且可以終止當(dāng)前熵片。然后,編碼器可以將與新的、現(xiàn)在為當(dāng)前的熵片中的二元位的數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器初始化288成零??梢垣@得272用于下一宏塊的語(yǔ)法元素,并且劃分處理可以繼續(xù)。如果與當(dāng)前熵片相關(guān)聯(lián)的累積的二元位的數(shù)目不大于283基于在熵片中允許的二元位的最大數(shù)目的門(mén)限值,則可以獲得272用于下一宏塊的語(yǔ)法元素,并且劃分處理可以繼續(xù)。
在本發(fā)明的某些實(shí)施例中,編碼器可以終止當(dāng)前重構(gòu)片并在預(yù)定數(shù)目的宏塊已被分配給當(dāng)前重構(gòu)片時(shí)開(kāi)始新重構(gòu)片。
可以關(guān)于圖13來(lái)描述本發(fā)明的某些實(shí)施例。在這些實(shí)施例中,編碼器可以終止當(dāng)前重構(gòu)片并在預(yù)定數(shù)目的宏塊已被分配給當(dāng)前重構(gòu)片時(shí)開(kāi)始新重構(gòu)片。編碼器可以將與當(dāng)前重構(gòu)片中的宏塊的數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器初始化300成零。在關(guān)于圖13描述的本發(fā)明的實(shí)施例的描述的其余部分中,可以出于說(shuō)明目的將計(jì)數(shù)器值表示為amb。編碼器可以將與當(dāng)前熵片中的二元位的數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器初始化310成零。在關(guān)于圖13描述的本發(fā)明的實(shí)施例的描述的其余部分中,可以出于說(shuō)明目的將計(jì)數(shù)器值表示為abin。如果312與當(dāng)前重構(gòu)片中的宏塊數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器的計(jì)數(shù)器值不小于331在重構(gòu)片中允許的宏塊的預(yù)定最大數(shù)目,則可以開(kāi)始322新熵片,并且可以開(kāi)始334新重構(gòu)片,終止當(dāng)前重構(gòu)片和當(dāng)前熵片。在關(guān)于圖13所述的本發(fā)明的實(shí)施例的描述的其余部分中,出于說(shuō)明性目的,可以將在重構(gòu)片中允許的宏塊的最大數(shù)目表示為maxmbperrslice。
如果與當(dāng)前重構(gòu)片中的宏塊數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器的計(jì)數(shù)器值小于313在重構(gòu)片中允許的宏塊的預(yù)定最大數(shù)目,則可以獲得314用于下一宏塊的語(yǔ)法元素。可以根據(jù)預(yù)定義宏塊處理順序來(lái)確定下一宏塊。在某些實(shí)施例中,宏塊處理順序可以對(duì)應(yīng)于光柵掃描排序??梢詫⒑陦K中的非二進(jìn)制語(yǔ)法元素轉(zhuǎn)換316成二元位串。二進(jìn)制語(yǔ)法元素可以不要求轉(zhuǎn)換??梢源_定318與宏塊相關(guān)聯(lián)的二元位的數(shù)目。與宏塊相關(guān)聯(lián)的二元位的數(shù)目除二進(jìn)制語(yǔ)法元素之外還可以包括與非二進(jìn)制語(yǔ)法元素相關(guān)聯(lián)的二元位串中的二元位,并且在關(guān)于圖13所述的本發(fā)明的實(shí)施例的描述的其余部分中,出于說(shuō)明性目的,可以將與宏塊相關(guān)聯(lián)的二元位的數(shù)目表示為num。
如果將與宏塊相關(guān)聯(lián)的二元位的數(shù)目可以加到320與當(dāng)前熵片相關(guān)聯(lián)的已累積的二元位的數(shù)目而不超過(guò)321針對(duì)熵片所允許的二元位的最大數(shù)目,則可以將與當(dāng)前熵片相關(guān)聯(lián)的累積的二元位的數(shù)目更新322成包括與宏塊相關(guān)聯(lián)的二元位,與宏塊相關(guān)聯(lián)的二元位可以被熵編碼器寫(xiě)入324比特流并與當(dāng)前熵片相關(guān)聯(lián),并且可以增加326與當(dāng)前重構(gòu)片相關(guān)聯(lián)的宏塊的數(shù)目??梢詫⑴c當(dāng)前重構(gòu)片相關(guān)聯(lián)的宏塊的數(shù)目與在重構(gòu)片中允許的宏塊的預(yù)定最大數(shù)目相比較312,并且劃分處理可以繼續(xù)。
如果320與宏塊相關(guān)聯(lián)的二元位的數(shù)目和與當(dāng)前熵片相關(guān)聯(lián)的已累積的二元位的數(shù)目的和超過(guò)327針對(duì)熵片所允許的二元位的最大數(shù)目,則編碼器可以開(kāi)始328與當(dāng)前重構(gòu)片相關(guān)聯(lián)的新的、現(xiàn)在為當(dāng)前的熵片,并且可以將與當(dāng)前熵片中的二元位的數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器初始化330成零??梢詫?dāng)前熵片相關(guān)聯(lián)的累積的二元位的數(shù)目更新322成包括與宏塊相關(guān)聯(lián)的二元位,與宏塊相關(guān)聯(lián)的二元位可以被熵編碼器寫(xiě)入324比特流并與當(dāng)前熵片相關(guān)聯(lián),并且可以增加326與當(dāng)前重構(gòu)片相關(guān)聯(lián)的宏塊的數(shù)目。可以將與當(dāng)前重構(gòu)片相關(guān)聯(lián)的宏塊的數(shù)目與在重構(gòu)片中允許的宏塊的預(yù)定最大數(shù)目相比較312,并且劃分處理可以繼續(xù)。
可以關(guān)于圖14來(lái)描述本發(fā)明的某些實(shí)施例。在這些實(shí)施例中,編碼器可以在預(yù)定數(shù)目的宏塊已被分配給當(dāng)前重構(gòu)片時(shí)開(kāi)始新重構(gòu)片。在這些實(shí)施例中,編碼器可以使宏塊語(yǔ)法元素與熵片相關(guān)聯(lián),直至熵片的尺寸達(dá)到與在熵片中允許的二元位的預(yù)定最大數(shù)目相關(guān)聯(lián)的門(mén)限值。在某些實(shí)施例中,該門(mén)限值可以是在熵片中允許的二元位的最大數(shù)目的百分比。在一個(gè)示例性實(shí)施例中,該門(mén)限值可以是在熵片中允許的二元位的最大數(shù)目的90%,假設(shè)在宏塊中預(yù)期的二元位的最大數(shù)目小于二元位的最大數(shù)目的10%。在另一示例性實(shí)施例中,該門(mén)限值可以是在熵片中允許的二元位的最大數(shù)目的百分比,其中,該百分比可以是基于在宏塊中預(yù)期的二元位的最大數(shù)目。在這些實(shí)施例中,一旦熵片的尺寸超過(guò)門(mén)限值尺寸,則可以創(chuàng)建另一熵片??梢詫㈤T(mén)限值尺寸選擇成確保熵片不超過(guò)在熵片中允許的二元位的最大數(shù)目。在某些實(shí)施例中,門(mén)限值尺寸可以是在熵片中允許的二元位的最大數(shù)目和針對(duì)宏塊預(yù)期的二元位的最大數(shù)目的估計(jì)的函數(shù)。
編碼器可以將與當(dāng)前重構(gòu)片中的宏塊的數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器初始化350成零。在關(guān)于圖14描述的本發(fā)明的實(shí)施例的描述的其余部分中,可以出于說(shuō)明目的將計(jì)數(shù)器值表示為amb。編碼器可以將與當(dāng)前熵片中的二元位的數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器初始化352成零。在關(guān)于圖14描述的本發(fā)明的實(shí)施例的描述的其余部分中,可以出于說(shuō)明目的將計(jì)數(shù)器值表示為abin。如果354與當(dāng)前重構(gòu)片中的宏塊數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器的計(jì)數(shù)器值不小于373在重構(gòu)片中允許的宏塊的預(yù)定最大數(shù)目,則可以開(kāi)始374新熵片,并且可以開(kāi)始376新重構(gòu)片。在關(guān)于圖14所述的本發(fā)明的實(shí)施例的描述的其余部分中,出于說(shuō)明性目的,可以將在重構(gòu)片中允許的宏塊的最大數(shù)目表示為maxmbperrslice。
如果與當(dāng)前重構(gòu)片中的宏塊數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器的計(jì)數(shù)器值小于355在重構(gòu)片中允許的宏塊的預(yù)定最大數(shù)目,則可以獲得356用于下一宏塊的語(yǔ)法元素??梢愿鶕?jù)預(yù)定義宏塊處理順序來(lái)確定下一宏塊。在某些實(shí)施例中,宏塊處理順序可以對(duì)應(yīng)于光柵掃描排序??梢詫⒑陦K中的非二進(jìn)制語(yǔ)法元素轉(zhuǎn)換358成二元位串。二進(jìn)制語(yǔ)法元素可以不要求轉(zhuǎn)換。與宏塊相關(guān)聯(lián)的二元位可以被熵編碼器寫(xiě)入360比特流并與當(dāng)前熵片相關(guān)聯(lián)??梢源_定362與宏塊相關(guān)聯(lián)的二元位的數(shù)目,并且可以將與當(dāng)前熵片相關(guān)聯(lián)的累積的二元位的數(shù)目更新364成包括與宏塊相關(guān)聯(lián)的二元位。如果366與當(dāng)前熵片相關(guān)聯(lián)的累積的二元位的數(shù)目大于369則基于在熵片中允許的二元位的最大數(shù)目的、可以表示為th(maxnumbins)的門(mén)限值,則編碼器可以開(kāi)始370新熵片,并且可以將與當(dāng)前熵片中的二元位的數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器初始化372成零??梢栽黾?68與當(dāng)前重構(gòu)片相關(guān)聯(lián)的宏塊的數(shù)目??梢詫⑴c當(dāng)前重構(gòu)片相關(guān)聯(lián)的宏塊的數(shù)目與在重構(gòu)片中允許的宏塊的預(yù)定最大數(shù)目相比較354,并且劃分處理可以繼續(xù)。如果與當(dāng)前熵片相關(guān)聯(lián)的累積的二元位的數(shù)目不大于367基于在熵片中允許的二元位的最大數(shù)目的門(mén)限值,則可以增加368與當(dāng)前重構(gòu)片相關(guān)聯(lián)的宏塊的數(shù)目,并且可以將與當(dāng)前重構(gòu)片相關(guān)聯(lián)的宏塊的數(shù)目與在重構(gòu)片中允許的宏塊的預(yù)定最大數(shù)目相比較354,并且劃分處理可以繼續(xù)。
在本發(fā)明的替換實(shí)施例中,編碼器可以將重構(gòu)片劃分成多個(gè)熵片,其中,可以使每個(gè)熵片與不超過(guò)預(yù)定數(shù)目的比特相關(guān)聯(lián)。
可以關(guān)于圖15來(lái)描述本發(fā)明的某些實(shí)施例。在這些實(shí)施例中,編碼器可以針對(duì)重構(gòu)片將重構(gòu)片劃分成多個(gè)熵片,其中,沒(méi)有熵片可以在尺寸方面大于預(yù)定數(shù)目的比特。編碼器可以將與當(dāng)前熵片中的比特的數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器初始化400成零。在關(guān)于圖15描述的本發(fā)明的實(shí)施例的描述的其余部分中,可以出于說(shuō)明目的將計(jì)數(shù)器值表示為a。可以獲得402用于下一宏塊的語(yǔ)法元素。可以根據(jù)預(yù)定義宏塊處理順序來(lái)確定下一宏塊。在某些實(shí)施例中,宏塊處理順序可以對(duì)應(yīng)于光柵掃描排序??梢詫⒑陦K中的非二進(jìn)制語(yǔ)法元素轉(zhuǎn)換404成二元位串。二進(jìn)制語(yǔ)法元素可以不要求轉(zhuǎn)換??梢詫⑴c宏塊相關(guān)聯(lián)的二元位、已轉(zhuǎn)換的非二進(jìn)制元素和二進(jìn)制元素呈現(xiàn)給熵編碼器,并且可以對(duì)二元位進(jìn)行熵編碼406??梢源_定408與宏塊相關(guān)聯(lián)的比特的數(shù)目。在關(guān)于圖15所述的本發(fā)明的實(shí)施例的描述的其余部分中,出于說(shuō)明性目的,可以將與宏塊相關(guān)聯(lián)的比特的數(shù)目表示為num。
如果與宏塊相關(guān)聯(lián)的比特的數(shù)目可以加到410與當(dāng)前熵片相關(guān)聯(lián)的已累積的比特的數(shù)目而不超過(guò)411針對(duì)熵片所允許的最大比特?cái)?shù),則可以將與當(dāng)前熵片相關(guān)聯(lián)的累積的比特的數(shù)目更新412成包括與宏塊相關(guān)聯(lián)的比特,并且與宏塊相關(guān)聯(lián)的比特可以被熵編碼器寫(xiě)入414比特流并與當(dāng)前熵片相關(guān)聯(lián)??梢垣@得402用于下一宏塊的語(yǔ)法元素,并且劃分處理可以繼續(xù)。
如果410與宏塊相關(guān)聯(lián)的比特的數(shù)目和與當(dāng)前熵片相關(guān)聯(lián)的已累積的比特的數(shù)目的和超過(guò)415針對(duì)熵片所允許的最大比特?cái)?shù),則編碼器可以開(kāi)始416與當(dāng)前重構(gòu)片相關(guān)聯(lián)的新的、現(xiàn)在為當(dāng)前的熵片,并且可以將與當(dāng)前熵片中的比特的數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器初始化418成零??梢詫?dāng)前熵片相關(guān)聯(lián)的累積的比特的數(shù)目更新412成包括與宏塊相關(guān)聯(lián)的比特,并且與宏塊相關(guān)聯(lián)的比特可以被熵編碼器寫(xiě)入414比特流并與當(dāng)前熵片相關(guān)聯(lián)??梢垣@得402用于下一宏塊的語(yǔ)法元素,并且劃分處理可以繼續(xù)。
可以關(guān)于圖16來(lái)描述本發(fā)明的某些實(shí)施例。在這些實(shí)施例中,編碼器可以針對(duì)重構(gòu)片將重構(gòu)片劃分成多個(gè)熵片,其中,沒(méi)有熵片可以在尺寸方面大于比特的預(yù)定最大數(shù)目。在這些實(shí)施例中,編碼器可以使宏塊語(yǔ)法元素與熵片相關(guān)聯(lián),直至熵片的尺寸達(dá)到與在熵片中允許的比特的預(yù)定最大數(shù)目相關(guān)聯(lián)的門(mén)限值。在某些實(shí)施例中,該門(mén)限值可以是在熵片中允許的最大比特?cái)?shù)的百分比。在一個(gè)示例性實(shí)施例中,該門(mén)限值可以是在熵片中允許的最大比特?cái)?shù)的90%,假設(shè)在宏塊中預(yù)期的最大比特?cái)?shù)小于最大比特?cái)?shù)的10%。在另一示例性實(shí)施例中,該門(mén)限值可以是在熵片中允許的最大比特?cái)?shù)的百分比,其中,該百分比可以基于在宏塊中預(yù)期的最大比特?cái)?shù)。在這些實(shí)施例中,一旦熵片的尺寸超過(guò)門(mén)限值尺寸,則可以創(chuàng)建另一熵片。可以將門(mén)限值尺寸選擇成確保熵片不超過(guò)在熵片中允許的最大比特?cái)?shù)。在某些實(shí)施例中,門(mén)限值尺寸可以是在熵片中允許的最大比特?cái)?shù)和針對(duì)宏塊預(yù)期的最大比特?cái)?shù)的估計(jì)的函數(shù)。
編碼器可以將與當(dāng)前熵片中的比特的數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器初始化440成零。在關(guān)于圖16描述的本發(fā)明的實(shí)施例的描述的其余部分中,可以出于說(shuō)明目的將計(jì)數(shù)器值表示為a??梢垣@得442用于下一宏塊的語(yǔ)法元素??梢愿鶕?jù)預(yù)定義宏塊處理順序來(lái)確定下一宏塊。在某些實(shí)施例中,宏塊處理順序可以對(duì)應(yīng)于光柵掃描排序??梢詫⒑陦K中的非二進(jìn)制語(yǔ)法元素轉(zhuǎn)換444成二元位串。二進(jìn)制語(yǔ)法元素可以不要求轉(zhuǎn)換??梢詫?duì)與宏塊相關(guān)聯(lián)的二元位進(jìn)行熵編碼446,并且可以確定448與宏塊相關(guān)聯(lián)的二元位的數(shù)目??梢詫⑴c當(dāng)前熵片相關(guān)聯(lián)的累積的比特的數(shù)目更新450成包括與宏塊相關(guān)聯(lián)的二元位,并且可以將與宏塊相關(guān)聯(lián)的熵編碼的二元位寫(xiě)入452比特流。如果454與當(dāng)前熵片相關(guān)聯(lián)的累積的比特的數(shù)目大于456基于在熵片中允許的最大比特?cái)?shù)的門(mén)限值,則編碼器可以開(kāi)始458新的熵片,并且將與當(dāng)前熵片中的比特?cái)?shù)相關(guān)聯(lián)的計(jì)數(shù)器初始化460成零??梢垣@得442用于下一宏塊的語(yǔ)法元素,并且劃分處理可以繼續(xù)。如果與當(dāng)前熵片相關(guān)聯(lián)的累積的比特的數(shù)目不大于455基于在熵片中允許的最大比特?cái)?shù)的門(mén)限值,則可以獲得442用于下一宏塊的語(yǔ)法元素,并且劃分處理可以繼續(xù)。
在本發(fā)明的替換實(shí)施例中,編碼器可以將重構(gòu)片劃分成多個(gè)熵片,其中,可以使每個(gè)熵片與不超過(guò)預(yù)定數(shù)目的宏塊相關(guān)聯(lián)。
在本發(fā)明的某些實(shí)施例中,除對(duì)熵片尺寸的限制之外,還可以施加對(duì)重構(gòu)片中的宏塊的最大數(shù)目的限制。
在本發(fā)明的某些實(shí)施例中,編碼器可以將重構(gòu)尺寸劃分成多個(gè)熵片,其中,每個(gè)熵片的尺寸可以被限制為小于預(yù)定義數(shù)目的宏塊并小于預(yù)定義數(shù)目的二元位。
在本發(fā)明的某些實(shí)施例中,編碼器可以將重構(gòu)尺寸劃分成多個(gè)熵片,其中,每個(gè)熵片的尺寸可以被限制為小于預(yù)定義數(shù)目的宏塊并小于預(yù)定義比特?cái)?shù)。
在本發(fā)明的某些實(shí)施例中,編碼器可以將重構(gòu)尺寸劃分成多個(gè)熵片,其中,每個(gè)熵片的尺寸可以被限制為小于預(yù)定義數(shù)目的宏塊,小于預(yù)定義數(shù)目的二元位并小于預(yù)定義比特?cái)?shù)。
在本發(fā)明的某些實(shí)施例中,可以使熵編碼器內(nèi)的二元位編碼并行化,允許不止一個(gè)二元位的并行編碼,這可以減少編碼時(shí)間??梢躁P(guān)于圖17中所描繪的示例性熵編碼器來(lái)理解本發(fā)明的這些實(shí)施例。在這些實(shí)施例中,熵編碼器480可以包括上下文自適應(yīng)單元482、基于狀態(tài)的二元位編碼器選擇器484和可以并行地操作的多個(gè)二元位編碼器,也被視為二元位編碼器單元(示出三個(gè))486、488、500。從二值化器504可以使得二元位502可用于熵編碼器480,二值化器504可以從輸入符號(hào)506生成二元位502。可以使二元位502可用于上下文自適應(yīng)單元482和基于狀態(tài)的二元位編碼器選擇器484。上下文自適應(yīng)單元482可以執(zhí)行上下文自適應(yīng)并生成模型狀態(tài),也稱(chēng)為狀態(tài)508,其可以用來(lái)在二元位編碼器486、488、500之中選擇二元位502可以被指引到的二元位編碼器?;跔顟B(tài)的二元位編碼器選擇器484可以選擇二元位編碼器486、488、500之中的與生成的模型狀態(tài)508相關(guān)聯(lián)的二元位編碼器以對(duì)二元位502進(jìn)行編碼。在某些實(shí)施例(未示出)中,可以使得生成的狀態(tài)508可用于所選的二元位編碼器??梢杂啥痪幋a器486、488、500來(lái)生成輸出比特510、512、514,并且可以將輸出比特510、512、514結(jié)合到比特流中。在本發(fā)明的某些實(shí)施例中,可以將輸出比特510、512、514緩存并通過(guò)級(jí)聯(lián)而結(jié)合到比特流中。在替換實(shí)施例中,可以根據(jù)交織方案來(lái)將輸出比特510、512、514緩存并結(jié)合到比特流中。
根據(jù)關(guān)于圖17所述的本發(fā)明的實(shí)施例,可以響應(yīng)于關(guān)于第一二元位生成的第一模型狀態(tài)將第一二元位發(fā)送到第一二元位編碼器。上下文自適應(yīng)單元482在處理第一二元位完成時(shí)可以開(kāi)始第二二元位的處理,響應(yīng)于關(guān)于第二二元位生成的第二模型狀態(tài)而將第二二元位發(fā)送到第二二元位編碼器,從而允許不止一個(gè)二元位的基本上并行處理。
在本發(fā)明的替換實(shí)施例中,熵編碼器可以包括可以并行操作的多個(gè)上下文自適應(yīng)單元和單個(gè)二元位編碼器。在其中上下文自適應(yīng)單元要求比二元位編碼器更長(zhǎng)的處理時(shí)間的系統(tǒng)中,并行操作的多個(gè)上下文自適應(yīng)單元可以減少編碼時(shí)間。可以關(guān)于圖18中所描繪的示例性熵編碼器來(lái)理解本發(fā)明的這些實(shí)施例中的某些。在這些實(shí)施例中,熵編碼器530可以包括多個(gè)上下文自適應(yīng)單元(示出了三個(gè))532、534、536、上下文自適應(yīng)單元選擇器538、狀態(tài)選擇器540和二元位編碼器542。從二值化器546可以使得二元位544可用于熵編碼器530,二值化器546可以從輸入符號(hào)548生成二元位544。可以使二元位544可用于上下文自適應(yīng)單元選擇器538、狀態(tài)選擇器540和二元位編碼器542。上下文自適應(yīng)單元選擇器538可以用來(lái)選擇或調(diào)度二元位544可以被指引到且可以從其生成狀態(tài)值550、552、554的上下文自適應(yīng)單元532、534、536。在某些示例性實(shí)施例中,上下文自適應(yīng)單元選擇器538可以基于與二元位相關(guān)聯(lián)的語(yǔ)法在上下文自適應(yīng)單元532、534、536之中選擇上下文自適應(yīng)單元,例如可以使上下文自適應(yīng)單元標(biāo)識(shí)符與二元位相關(guān)聯(lián),該二元位標(biāo)識(shí)該二元位可以被指引到以用于處理的上下文自適應(yīng)單元。在替換示例性實(shí)施例中,上下文自適應(yīng)單元選擇器538可以基于與上下文自適應(yīng)單元532、534、536相關(guān)聯(lián)的調(diào)度協(xié)議或負(fù)荷平衡約束來(lái)在上下文自適應(yīng)單元532、534、536之中選擇上下文自適應(yīng)單元。在某些實(shí)施例中,可以由狀態(tài)選擇器540根據(jù)在上下文自適應(yīng)單元選擇器538處所使用的標(biāo)準(zhǔn)在適當(dāng)?shù)臅r(shí)刻來(lái)選擇生成的狀態(tài)值以傳遞至二元位編碼器542。二元位編碼器542可以在對(duì)二元位544進(jìn)行編碼時(shí)使用由狀態(tài)選擇器540傳遞的狀態(tài)值556。在本發(fā)明的替換實(shí)施例(未示出)中,狀態(tài)值可能是二元位編碼器不需要的,并且因此未使得其可用于二元位編碼器??梢杂啥痪幋a器542來(lái)生成輸出比特558,并且可以將輸出比特558結(jié)合到比特流中。在本發(fā)明的某些實(shí)施例中,可以將輸出比特558緩存并通過(guò)級(jí)聯(lián)結(jié)合到比特流中。在替換實(shí)施例中,可以根據(jù)交織方案將輸出比特558緩存并結(jié)合到比特流中。
在本發(fā)明的替換實(shí)施例中,熵編碼器可以包括可以并行操作的多個(gè)上下文自適應(yīng)單元和可以并行操作的多個(gè)二元位編碼器。可以關(guān)于圖19中所描繪的示例性熵編碼器來(lái)理解本發(fā)明的這些實(shí)施例中的某些。在這些實(shí)施例中,熵編碼器570可以包括多個(gè)上下文自適應(yīng)單元(示出了三個(gè))572、574、576、上下文自適應(yīng)單元選擇器578、狀態(tài)選擇器580、基于狀態(tài)的二元位編碼器選擇器582和多個(gè)二元位編碼器(示出了三個(gè))584、586、588。從二值化器592可以使得二元位590可用于熵編碼器570,二值化器592可以從輸入符號(hào)594生成二元位590??梢允沟枚?90可用于上下文自適應(yīng)單元選擇器578、狀態(tài)選擇器580和二元位編碼器選擇器582。上下文自適應(yīng)單元選擇器578可以用來(lái)選擇或調(diào)度二元位590可以被指引到且可以從其生成狀態(tài)值596、598、600的上下文自適應(yīng)單元572、574、576。生成的狀態(tài)值可以被狀態(tài)選擇器580在適當(dāng)?shù)臅r(shí)刻選擇以傳遞至基于狀態(tài)的二元位編碼器選擇器582?;跔顟B(tài)的二元位編碼器選擇器582可以使用由狀態(tài)選擇器580傳遞的狀態(tài)值602以在二元位編碼器584、586、588之中選擇二元位590可以被指引到的二元位編碼器。在替換實(shí)施例(未示出)中,可以使得狀態(tài)值602可用于所選二元位編碼器。所選二元位編碼器可以在對(duì)二元位590進(jìn)行編碼時(shí)使用狀態(tài)值602。在本發(fā)明的替換實(shí)施例(未示出)中,狀態(tài)值可能是二元位編碼器不需要的,并且因此未使得其可用于二元位編碼器。輸出比特604、606、608可以由二元位編碼器584、586、588生成且可以將輸出比特604、606、608結(jié)合到比特流中。在本發(fā)明的某些實(shí)施例中,可以將輸出比特604、606、608緩存并通過(guò)級(jí)聯(lián)而結(jié)合到比特流。在替換實(shí)施例中,可以根據(jù)交織方案來(lái)將輸出比特604、606、608緩存并結(jié)合到比特流中。
本發(fā)明的示例性實(shí)施例可以包括可以并行操作的多個(gè)可變長(zhǎng)度編碼編解碼器。
在本發(fā)明的一個(gè)示例性實(shí)施例,二元位編碼器可以包括二進(jìn)制算術(shù)編碼。在本發(fā)明的另一示例性實(shí)施例中,二元位編碼器可以包括可變長(zhǎng)度編碼。在本發(fā)明的另一示例性實(shí)施例中,二元位編碼器可以包括固定長(zhǎng)度編碼。
一般地,熵編碼器可以包括nca個(gè)上下文自適應(yīng)單元和nbc個(gè)二元位編碼器單元,其中,nca是大于或等于一的整數(shù)且nbc是大于或等于一的整數(shù)。
在本發(fā)明的某些實(shí)施例中,編碼器可以將重構(gòu)片劃分成多個(gè)熵片,其中,可以限制每個(gè)熵片的尺寸,使得nca個(gè)上下文自適應(yīng)單元和nbc個(gè)二元位編碼器單元中的一個(gè)或多個(gè)每個(gè)可以在熵片的處理期間對(duì)不超過(guò)有限數(shù)目的二元位進(jìn)行操作。具有此類(lèi)限制的上下文自適應(yīng)單元和二元位編碼器單元可以被稱(chēng)為受限熵編碼器單元。
在本發(fā)明的某些實(shí)施例中,編碼器可以將重構(gòu)片劃分成多個(gè)熵片,其中,每個(gè)熵片的尺寸可以受到限制,使得nca個(gè)上下文自適應(yīng)單元中沒(méi)有一個(gè)可以在熵片的處理期間對(duì)超過(guò)bca個(gè)二元位進(jìn)行操作。在本發(fā)明的某些實(shí)施例中,可以例如在比特流、屬性約束、層級(jí)約束或其他標(biāo)準(zhǔn)機(jī)制中用信號(hào)發(fā)送bca的值。
在本發(fā)明的替換實(shí)施例中,編碼器可以將重估片劃分成多個(gè)熵片,其中,可以限制每個(gè)熵片的尺寸,使得nbc個(gè)二元位編碼器單元中沒(méi)有一個(gè)可以在熵片的處理期間對(duì)超過(guò)bbc個(gè)二元位進(jìn)行操作。在本發(fā)明的某些實(shí)施例中,可以例如在比特流、屬性約束、層級(jí)約束或其他標(biāo)準(zhǔn)機(jī)制中用信號(hào)發(fā)送bbc的值。
在本發(fā)明的替換實(shí)施例中,編碼器可以將重構(gòu)片劃分成多個(gè)熵片,其中,可以限制每個(gè)熵片的尺寸,使得nca個(gè)上下文自適應(yīng)單元中沒(méi)有一個(gè)可以對(duì)超過(guò)bca個(gè)二元位進(jìn)行操作,并且nbc個(gè)二元位編碼器單元中沒(méi)有一個(gè)可以在熵片的處理期間對(duì)超過(guò)bbc個(gè)二元位進(jìn)行操作。在本發(fā)明的某些實(shí)施例中,可以例如在比特流、屬性約束、層級(jí)約束或其他標(biāo)準(zhǔn)機(jī)制中用信號(hào)發(fā)送bbc的值和bca的值。
在本發(fā)明的替換實(shí)施例中,編碼器可以將重構(gòu)片劃分成多個(gè)熵片,其中,可以限制每個(gè)熵片的尺寸,使得針對(duì)i=1、...、nca被表示為nca(i)的第i個(gè)nca上下文自適應(yīng)單元可以對(duì)不超過(guò)bca(i)個(gè)二元位進(jìn)行操作,并且針對(duì)i=1、...、nbc的第i個(gè)nbc二元位編碼器單元nbc(i)可以在熵片的處理期間對(duì)不超過(guò)bbc(i)個(gè)二元位進(jìn)行操作。在本發(fā)明的某些實(shí)施例中,可以例如在比特流、屬性約束、層級(jí)約束或其他標(biāo)準(zhǔn)機(jī)制中用信號(hào)發(fā)送bbc(i)的值和bca(i)的值。
可以關(guān)于圖20來(lái)描述本發(fā)明的某些示例性實(shí)施例。在這些實(shí)施例中,編碼器以針對(duì)重構(gòu)片將重構(gòu)片劃分成多個(gè)熵片,其中,可以限制每個(gè)熵片的尺寸,使得nca個(gè)上下文自適應(yīng)單元和nbc個(gè)二元位編碼器單元中的一個(gè)或多個(gè)可以對(duì)不超過(guò)有限數(shù)目的二元位進(jìn)行操作。編碼器可以將用于受限熵編碼器單元的每一個(gè)的、與在當(dāng)前熵片中處理的二元位的數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器初始化650成零。出于說(shuō)明性目的,在關(guān)于圖20所述的本發(fā)明的實(shí)施例的描述的其余部分中,可以將計(jì)數(shù)器值表示為a,其中,a表示矢量,該矢量中的每個(gè)條目對(duì)應(yīng)于用于當(dāng)前熵片的由受限熵編碼器單元處理的二元位的累積數(shù)目??梢垣@得652用于下一宏塊的語(yǔ)法元素??梢愿鶕?jù)預(yù)定義宏塊處理順序來(lái)確定下一宏塊。在某些實(shí)施例中,宏塊處理順序可以對(duì)應(yīng)于光柵掃描排序。可以將宏塊中的非二進(jìn)制語(yǔ)法元素轉(zhuǎn)換654成二元位串。二進(jìn)制語(yǔ)法元素可以不要求轉(zhuǎn)換。可以確定656由每個(gè)受限熵編碼器單元處理的與宏塊相關(guān)聯(lián)的二元位的數(shù)目。與宏塊相關(guān)聯(lián)的二元位的數(shù)目除二進(jìn)制語(yǔ)法元素之外還可以包括與非二進(jìn)制語(yǔ)法元素相關(guān)聯(lián)的二元位串中的二元位。出于說(shuō)明性目的,在關(guān)于圖20所述的本發(fā)明的實(shí)施例的描述的其余部分中,可以將由每個(gè)受限熵編碼器單元處理的與宏塊相關(guān)聯(lián)的二元位的數(shù)目表示為num,其中,num表示矢量,該矢量中的每個(gè)條目對(duì)應(yīng)于用于當(dāng)前宏塊的、由受限熵編碼器單元處理的二元位的數(shù)目。
如果可以將用于每個(gè)受限熵編碼器單元的與宏塊相關(guān)聯(lián)的二元位的數(shù)目與用于每個(gè)受限熵編碼器單元的與當(dāng)前熵片相關(guān)聯(lián)的已累積的二元位的數(shù)目相加658,而不超過(guò)659針對(duì)任何受限熵編碼器單元所允許的二元位的最大數(shù)目,則可以將與當(dāng)前熵片相關(guān)聯(lián)的累積的二元位的數(shù)目更新660成包括與宏塊相關(guān)聯(lián)的二元位,并且與宏塊相關(guān)聯(lián)的二元位可以被熵編碼器寫(xiě)入662比特流并與當(dāng)前熵片相關(guān)聯(lián)??梢垣@得652用于下一宏塊的語(yǔ)法元素,并且劃分處理可以繼續(xù)。
如果658與宏塊相關(guān)聯(lián)的二元位的數(shù)目和與當(dāng)前熵片相關(guān)聯(lián)的已累積的二元位的數(shù)目的和超過(guò)663針對(duì)任何受限熵編碼器單元所允許的二元位的最大數(shù)目,則編碼器可以開(kāi)始664與當(dāng)前重構(gòu)片相關(guān)聯(lián)的新熵片,并且可以將與當(dāng)前熵片中的二元位的數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器初始化666成零??梢詫⑴c當(dāng)前熵片相關(guān)聯(lián)的累積的二元位的數(shù)目更新660成包括與宏塊相關(guān)聯(lián)的二元位,并且與宏塊相關(guān)聯(lián)的二元位可以被熵編碼器寫(xiě)入662比特流并與當(dāng)前熵片相關(guān)聯(lián)。可以獲得652用于下一宏塊的語(yǔ)法元素,并且劃分處理可以繼續(xù)。
可以關(guān)于圖21來(lái)描述本發(fā)明的某些實(shí)施例。在這些實(shí)施例中,編碼器以針對(duì)重構(gòu)片將重構(gòu)片劃分成多個(gè)熵片,其中,可以限制每個(gè)熵片的尺寸,使得nca個(gè)上下文自適應(yīng)單元和nbc個(gè)二元位編碼器單元中的一個(gè)或多個(gè)可以對(duì)不超過(guò)有限數(shù)目的二元位進(jìn)行操作。編碼器可以將針對(duì)用于受限熵編碼器單元的、與由受限熵編碼器單元在當(dāng)前熵片中處理的二元位的數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器初始化700成零。出于說(shuō)明性目的,在關(guān)于圖21所述的本發(fā)明的實(shí)施例的描述的其余部分中,可以將計(jì)數(shù)器值表示為a,其中,a表示矢量,該矢量中的每個(gè)條目對(duì)應(yīng)于由受限熵編碼器單元處理的用于當(dāng)前熵片的二元位的累積數(shù)目。在這些實(shí)施例中,編碼器可以使宏塊語(yǔ)法元素與熵片相關(guān)聯(lián),直至由受限熵編碼器單元處理的二元位的數(shù)目達(dá)到與被允許在熵片中由受限熵編碼器單元處理的二元位的預(yù)定最大數(shù)目相關(guān)聯(lián)的門(mén)限值。在某些實(shí)施例中,該門(mén)限值可以是被允許在熵片中被受限熵編碼器單元處理的二元位的最大數(shù)目的百分比。在一個(gè)示例性實(shí)施例中,該門(mén)限值可以是被允許在熵片中由受限熵編碼器單元處理的二元位的最大數(shù)目的90%,假設(shè)在宏塊中預(yù)期將被受限熵編碼器單元處理的二元位的最大數(shù)目小于允許在熵片中由受限熵編碼器單元處理的二元位的最大數(shù)目的10%。在另一示例性實(shí)施例中,該門(mén)限值可以是被允許在熵片中由受限熵編碼器單元處理的二元位的最大數(shù)目的百分比,其中,該百分比可以基于宏塊中的被預(yù)期由受限熵編碼器單元處理的二元位的最大數(shù)目。在這些實(shí)施例中,一旦熵片的尺寸超過(guò)門(mén)限值尺寸,則可以創(chuàng)建另一熵片??梢赃x擇門(mén)限值尺寸以確保熵片不超過(guò)被允許在熵片中由任何一個(gè)受限熵編碼器單元處理的二元位的最大數(shù)目。在某些實(shí)施例中,門(mén)限值尺寸可以是在熵片中允許的二元位的最大數(shù)目和針對(duì)宏塊預(yù)期的二元位的最大數(shù)目的估計(jì)的函數(shù)。
可以獲得702用于下一宏塊的語(yǔ)法元素??梢愿鶕?jù)預(yù)定義宏塊處理順序來(lái)確定下一宏塊。在某些實(shí)施例中,宏塊處理順序可以對(duì)應(yīng)于光柵掃描排序。可以將宏塊中的非二進(jìn)制語(yǔ)法元素轉(zhuǎn)換704成二元位串。二進(jìn)制語(yǔ)法元素可以不要求轉(zhuǎn)換。與宏塊相關(guān)聯(lián)的二元位可以被熵編碼器寫(xiě)入706比特流并與當(dāng)前熵片相關(guān)聯(lián)??梢源_定708由每個(gè)受限熵編碼器單元處理的與宏塊相關(guān)聯(lián)的二元位的數(shù)目。與宏塊相關(guān)聯(lián)的二元位的數(shù)目除二進(jìn)制語(yǔ)法元素之外還可以包括與非二進(jìn)制語(yǔ)法元素相關(guān)聯(lián)的二元位串中的二元位。出于說(shuō)明性目的,在關(guān)于圖21所述的本發(fā)明的實(shí)施例的描述的其余部分中,可以將由每個(gè)受限熵編碼器單元處理的與宏塊相關(guān)聯(lián)的二元位的數(shù)目表示為num,其中,num表示矢量,該矢量中的每個(gè)條目對(duì)應(yīng)于用于當(dāng)前宏塊的由相應(yīng)的受限熵編碼器單元處理的二元位的數(shù)目??梢詫⒂擅總€(gè)受限熵編碼器單元處理的與當(dāng)前熵片相關(guān)聯(lián)的累積的二元位的數(shù)目更新710成包括與宏塊相關(guān)聯(lián)的二元位。如果712對(duì)于受限熵編碼器單元i由受限熵編碼器單元處理的與當(dāng)前熵片相關(guān)聯(lián)的累積的二元位的數(shù)目大于714可以表示為th(maxnumbins)(i)的門(mén)限值,則編碼器可以開(kāi)始716新熵片,并將與由每個(gè)受限熵編碼器單元在當(dāng)前熵片中處理的二元位的數(shù)目相關(guān)聯(lián)的計(jì)數(shù)器初始化718成零??梢垣@得702用于下一宏塊的語(yǔ)法元素,并且劃分處理可以繼續(xù)。如果由受限熵編碼器單元處理的與當(dāng)前熵片相關(guān)聯(lián)的累積的二元位的數(shù)目不大于713門(mén)限值,則可以獲得702用于下一宏塊的語(yǔ)法元素,并且劃分處理可以繼續(xù)。
本發(fā)明的某些實(shí)施例可以包括用于熵片劃分的上述準(zhǔn)則的組合。
應(yīng)理解的是雖然本發(fā)明的某些實(shí)施例可以將熵片的尺寸限制為小于第一預(yù)定義尺寸,但熵片的尺寸可以等價(jià)地被限制為超過(guò)第二預(yù)定義尺寸。本文所述的實(shí)施例是本發(fā)明的示例性實(shí)施例,并且本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到存在用于限制熵片的尺寸的本發(fā)明的等價(jià)實(shí)施例。
在本發(fā)明的某些實(shí)施例中,開(kāi)始新熵片可以包括終止當(dāng)前片并將新熵片視為當(dāng)前熵片。
在本發(fā)明的某些實(shí)施例中,可以在包括多個(gè)二元位解碼器的熵解碼器內(nèi)將熵片內(nèi)的多個(gè)比特的解碼并行化,這可以減少解碼時(shí)間。可以關(guān)于在圖22中描繪的包括多個(gè)(示出了三個(gè))二元位解碼器762、764、766的示例性熵解碼器750來(lái)理解本發(fā)明的示例性實(shí)施例??梢允沟渺仄瑑?nèi)的比特752和先前已解碼符號(hào)754可用于熵解碼器750??梢允沟帽忍?52可用于二元位解碼器選擇器756,其可以基于從上下文自適應(yīng)單元760生成的上下文狀態(tài)758在二元位解碼器762、764、766之中選擇二元位解碼器。上下文自適應(yīng)單元760可以基于被使得可用于上下文自適應(yīng)單元760的先前已解碼符號(hào)754來(lái)生成上下文狀態(tài)758。二元位解碼器選擇器756可以基于上下文狀態(tài)758來(lái)分配二元位解碼器762、764、766。要解碼的比特752可以被二元位解碼器選擇器756傳遞至所選二元位解碼器。二元位解碼器762、764、766可以生成解碼的二元位768、770、772,它們可以被復(fù)用器774復(fù)用,且復(fù)用的二元位776可以被發(fā)送到符號(hào)化器778,其可以生成與二元位776相關(guān)聯(lián)的符號(hào)754。
在本發(fā)明的某些實(shí)施例中,可以在包括多個(gè)上下文自適應(yīng)單元的熵解碼器內(nèi)將熵片內(nèi)的多個(gè)比特的解碼并行化,這可以減少解碼時(shí)間。可以關(guān)于在圖23中描繪的包括多個(gè)(示出了三個(gè))上下文自適應(yīng)單元814、816、818的示例性熵解碼器800來(lái)理解本發(fā)明的示例性實(shí)施例。可以使得熵片內(nèi)的比特802和先前解碼的符號(hào)810可用于熵解碼器800。可以使得比特802可用于上下文自適應(yīng)單元選擇器812,其可以從多個(gè)上下文自適應(yīng)單元814、816、818中選擇用于輸入比特的解碼處理的上下文自適應(yīng)單元。在本發(fā)明的某些實(shí)施例中,上下文自適應(yīng)單元選擇器812可以在接收到每第n比特時(shí)選擇第n上下文自適應(yīng)單元。所選上下文自適應(yīng)單元可以基于被使得可用于所選上下文自適應(yīng)單元的先前解碼的符號(hào)810來(lái)生成上下文狀態(tài)820、822、824。狀態(tài)選擇器826在適當(dāng)時(shí)刻可以選擇與輸入比特相關(guān)聯(lián)的所生成的上下文狀態(tài)。在本發(fā)明的某些實(shí)施例中,狀態(tài)選擇器826可以根據(jù)與上下文自適應(yīng)單元選擇器812相同的過(guò)程在接收到每第n比特時(shí)選擇第n上下文自適應(yīng)單元。可以使得所選狀態(tài)828可以用于二元位解碼器804。二元位解碼器804可以將比特802解碼并將解碼的二元位806發(fā)送到符號(hào)化器808,其可以生成與解碼的二元位806相關(guān)聯(lián)的符號(hào)810。
在本發(fā)明的某些實(shí)施例中,可以在包括多個(gè)上下文自適應(yīng)單元的熵解碼器和多個(gè)二元位解碼器內(nèi)將熵片內(nèi)的多個(gè)比特的解碼并行化,這可以減少解碼時(shí)間??梢躁P(guān)于在圖24中描繪的包括多個(gè)(示出了三個(gè))上下文自適應(yīng)單元852、854、856和多個(gè)(示出了三個(gè))二元位解碼器858、860、862的示例性熵解碼器850來(lái)理解本發(fā)明的示例性實(shí)施例。可以使得熵片內(nèi)的比特864和先前解碼的符號(hào)866可用于熵解碼器850??梢允沟帽忍?64可用于上下文自適應(yīng)單元選擇器868,其可以從多個(gè)上下文自適應(yīng)單元852、854、856中選擇用于輸入比特的解碼處理的上下文自適應(yīng)單元。在本發(fā)明的某些實(shí)施例中,上下文自適應(yīng)單元選擇器868可以在接收到每第n比特時(shí)選擇第n上下文自適應(yīng)單元。所選上下文自適應(yīng)單元可以基于被使得可用于所選上下文自適應(yīng)單元的先前解碼的符號(hào)866來(lái)生成上下文狀態(tài)870、872、874。狀態(tài)選擇器876在適當(dāng)時(shí)刻可以選擇與輸入比特相關(guān)聯(lián)的生成的上下文狀態(tài)。在本發(fā)明的某些實(shí)施例中,狀態(tài)選擇器876可以根據(jù)與上下文自適應(yīng)單元選擇器868相同的過(guò)程在接收到每第n比特時(shí)選擇第n上下文自適應(yīng)單元??梢允沟盟x狀態(tài)878可用于二元位解碼器選擇器880,其可以基于所選上下文狀態(tài)878來(lái)選擇二元位解碼器858、860、862。二元位解碼器選擇器880可以基于上下文狀態(tài)878來(lái)分配二元位解碼器858、860、862。要解碼的比特864可以被二元位解碼器選擇器880傳遞至所選二元位解碼器。二元位解碼器858、860、862可以生成解碼的二元位882、884、886,它們可以被復(fù)用器888復(fù)用且復(fù)用的二元位890可以被發(fā)送到符號(hào)化器892,其可以生成與二元位890相關(guān)聯(lián)的符號(hào)866。
在本發(fā)明的某些實(shí)施例中,解碼器可以將重構(gòu)片劃分成多個(gè)熵片,其中,熵片內(nèi)的宏塊是連續(xù)的。圖25描繪了被劃分成三個(gè)熵片的示例性重構(gòu)片950:用交叉影線952示出的熵片0、用白色954示出的熵片1和用點(diǎn)影線956示出了熵片2。在本示例性重構(gòu)片950中,每個(gè)熵片952、954、956內(nèi)的宏塊是連續(xù)的。
在本發(fā)明的替換實(shí)施例中,編碼器可以將重構(gòu)片劃分成多個(gè)熵片,其中,熵片內(nèi)的宏塊可以是不連續(xù)的。圖26描繪了被劃分成三個(gè)熵片的示例性重構(gòu)片960:用交叉影線962示出的熵片0、用白色964示出的熵片1和用點(diǎn)影線966示出了熵片2。在本示例性重構(gòu)片960中,每個(gè)熵片962、964、966內(nèi)的宏塊是不連續(xù)的??梢詫⑵渲徐仄瑑?nèi)的宏塊不連續(xù)的重構(gòu)片的分區(qū)稱(chēng)為交織分區(qū)。
在本發(fā)明的某些實(shí)施例中,在熵片內(nèi)的當(dāng)前塊的熵解碼期間,解碼器可以使用來(lái)自同一熵片的其他塊來(lái)預(yù)測(cè)與當(dāng)前塊的熵解碼有關(guān)的信息。在本發(fā)明的某些實(shí)施例中,在重構(gòu)片內(nèi)的當(dāng)前塊的重構(gòu)期間,可以使用來(lái)自相同重構(gòu)片的其他塊來(lái)預(yù)測(cè)與當(dāng)前塊的重構(gòu)有關(guān)的信息。
在其中重構(gòu)片包括交織分區(qū)的本發(fā)明的某些實(shí)施例中,在熵片內(nèi)的當(dāng)前塊的解碼中使用的熵片內(nèi)的鄰近塊可以不是直接鄰近或連續(xù)的。圖27圖示出用于在圖26中描繪的示例性交織分區(qū)的這種情況。
在圖27中,針對(duì)熵片964內(nèi)的當(dāng)前塊970,被用于當(dāng)前塊970的熵解碼的左鄰居塊是熵片964內(nèi)的連續(xù)、左鄰居塊972。被用于當(dāng)前塊970的熵解碼的上鄰居塊是同一熵片964內(nèi)的非連續(xù)、上鄰居塊974。針對(duì)當(dāng)前塊970的重構(gòu),左鄰居塊是重構(gòu)片960內(nèi)的連續(xù)、左鄰居塊972,并且上鄰居塊是重構(gòu)片960內(nèi)的連續(xù)、上鄰居塊976。
在其中重構(gòu)片包括交織分區(qū)的本發(fā)明的某些實(shí)施例中,可以不存在將在熵片內(nèi)的當(dāng)前塊的解碼中使用的熵片內(nèi)的適當(dāng)鄰近塊。圖28圖示出用于在圖26中描繪的示例性交織分區(qū)的這種情況。
在圖28中,針對(duì)熵片964內(nèi)的當(dāng)前塊980,不存在將被用于當(dāng)前塊980的熵解碼的熵片964內(nèi)的左鄰居塊。被用于當(dāng)前塊980的熵解碼的上鄰居塊是同一熵片964內(nèi)的非連續(xù)、上鄰居塊982。針對(duì)當(dāng)前塊980的重構(gòu),左鄰居塊是重構(gòu)片960內(nèi)的連續(xù)、左鄰居塊984,并且上鄰居塊是重構(gòu)片960內(nèi)的連續(xù)、上鄰居塊986。
在本發(fā)明的某些實(shí)施例中,解碼器可以對(duì)完整的輸入比特流進(jìn)行預(yù)處理以識(shí)別熵片的位置。在本發(fā)明的某些實(shí)施例中,解碼器可以對(duì)整個(gè)重構(gòu)片進(jìn)行預(yù)處理以識(shí)別重構(gòu)片內(nèi)的熵片的位置。在某些實(shí)施例中,可以通過(guò)識(shí)別熵片報(bào)頭的位置來(lái)確定熵片的位置。在這些實(shí)施例中,解碼器可以讀取比特流中的比特,并且可以識(shí)別預(yù)定義開(kāi)始碼。
在替換實(shí)施例中,可以將熵片報(bào)頭約束于位于輸入比特流內(nèi)的預(yù)定義位置處的一定范圍的比特。在替換實(shí)施例中,可以將熵片報(bào)頭約束于位于輸入比特流內(nèi)的預(yù)定義位置處的一定范圍的字節(jié)。在比特對(duì)準(zhǔn)或字節(jié)對(duì)準(zhǔn)的這些實(shí)施例中,解碼器不需要對(duì)輸入比特流的相當(dāng)大的部分進(jìn)行預(yù)處理以對(duì)熵片進(jìn)行定位。
在本發(fā)明的某些實(shí)施例中,編碼器可以在比特流中用信號(hào)發(fā)送熵片位置信息,其被稱(chēng)為熵片位置參數(shù),例如可以約束熵片報(bào)頭的位置的偏移和范圍信息。在替換實(shí)施例中,可以不在比特流中用信號(hào)發(fā)送熵片位置信息,而是可以根據(jù)熵片參數(shù)來(lái)確定,例如在任何給定熵片中允許的二元位的固定數(shù)目、在任何給定熵片中允許的比特的固定數(shù)目及其他熵片參數(shù)。在本發(fā)明的替換實(shí)施例中,可以用其他標(biāo)準(zhǔn)手段來(lái)定義熵片位置信息,例如可以在屬性約束、層級(jí)約束、應(yīng)用約束或其他約束中指定該信息,或者可以將該信息作為補(bǔ)充信息來(lái)用信號(hào)發(fā)送,或者用其他不受限定的手段來(lái)用信號(hào)發(fā)送。
在本發(fā)明的某些實(shí)施例中,可以將熵片位置參數(shù)值的一個(gè)集合用于比特流內(nèi)的所有熵片。在替換實(shí)施例中,可以針對(duì)由序列的一部分表示的像素組來(lái)定義熵片位置參數(shù)值。在替換實(shí)施例中,熵片位置參數(shù)值可以針對(duì)比特流內(nèi)的每個(gè)圖片來(lái)定義,并且可以用于關(guān)聯(lián)的圖片內(nèi)的所有熵片。在替換實(shí)施例中,熵片位置參數(shù)值可以針對(duì)比特流內(nèi)的每個(gè)重構(gòu)片來(lái)定義,并且可以用于關(guān)聯(lián)的重構(gòu)片內(nèi)的所有熵片。在替換實(shí)施例中,熵片位置參數(shù)值的多個(gè)集合可以被解碼器使用。在替換實(shí)施例中,可以將熵片位置參數(shù)分配給熵片標(biāo)識(shí)符,例如,第一熵片報(bào)頭可以使用熵片位置參數(shù)值的第一集合,第二熵片報(bào)頭可以使用熵片位置參數(shù)值的第二集合,并且一般地,第n熵片報(bào)頭可以使用熵片位置參數(shù)值的第n集合。在本發(fā)明的某些實(shí)施例中,可以將熵片參數(shù)值分配給幀標(biāo)識(shí)符。在一個(gè)示例性實(shí)施例中,第一圖片可以使用熵片參數(shù)值的第一集合,第二圖片可以使用熵片參數(shù)值的第二集合,并且一般地,第n圖片可以使用熵片位置參數(shù)值的第n集合。在另一示例性實(shí)施例中,第一類(lèi)型的圖片可以使用熵片位置參數(shù)值的第一集合且第二類(lèi)型的圖片可以使用熵片位置參數(shù)值的第二集合。示例性的圖片類(lèi)型是內(nèi)圖片、預(yù)測(cè)圖片和其他類(lèi)型的圖片。
在包括h.264/avc編解碼器的本發(fā)明的某些實(shí)施例中,可以通過(guò)將“entropy_slice_offset”參數(shù)和“entropy_slice_range”參數(shù)添加到序列參數(shù)集合來(lái)在序列參數(shù)集合原始字節(jié)序列有效負(fù)荷(rbsp)中用信號(hào)發(fā)送熵片偏移和熵片范圍。表3列出了根據(jù)本發(fā)明的實(shí)施例的示例性序列參數(shù)集合rbsp語(yǔ)法。
在包括h.264/avc編解碼器的本發(fā)明的某些實(shí)施例中,可以通過(guò)將“entropy_slice_offset”參數(shù)和“entropy_slice_range”參數(shù)添加到圖片參數(shù)組來(lái)在圖片參數(shù)組原始字節(jié)序列有效負(fù)荷(rbsp)中用信號(hào)發(fā)送熵片偏移和熵片范圍。表4列出了根據(jù)本發(fā)明的實(shí)施例的示例性圖片參數(shù)集合rbsp語(yǔ)法。
在包括h.264/avc編解碼器的本發(fā)明的某些實(shí)施例中,可以通過(guò)將“entropy_slice_offset”參數(shù)和“entropy_slice_range”參數(shù)添加到片報(bào)頭來(lái)在片報(bào)頭中用信號(hào)發(fā)送熵片偏移和熵片范圍。表5列出了根據(jù)本發(fā)明的實(shí)施例的示例性片報(bào)頭語(yǔ)法。
在本發(fā)明的某些實(shí)施例中,可以根據(jù)表格針對(duì)編碼器的層級(jí)符合點(diǎn)來(lái)指示熵片偏移和熵片范圍,例如,如表6中所示,其中,om.n表示層級(jí)m.n符合點(diǎn)的熵片偏移,并且rm.n表示用于m.n符合點(diǎn)的熵片。
表3:示例性序列參數(shù)集合rbsp語(yǔ)法表
表4:示例性圖片參數(shù)集合rbsp語(yǔ)法表
表5:用于片報(bào)頭的示例性語(yǔ)法表
表6:用于每個(gè)層級(jí)的示例性熵片偏移和熵片范圍
在某些實(shí)施例中,熵片位置信息可以包括可以約束熵片報(bào)頭的位置的信息。在一個(gè)實(shí)施例中,熵片位置信息可以包括也稱(chēng)為時(shí)段或基礎(chǔ)偏移的偏移值和也稱(chēng)為用于時(shí)段的偏差或偏移的范圍值。可以基于偏移值和范圍值來(lái)約束熵片報(bào)頭位置。
在本發(fā)明的某些實(shí)施例中,可以顯式地定義偏移值和范圍值。在本發(fā)明的替換實(shí)施例中,可以隱式地將偏移值和范圍值定義為最小偏移值和最大偏移值。在本發(fā)明的替換實(shí)施例中,可以隱式地將偏移值和范圍值定義為最大偏移值以及最大偏移值與最小偏移值之間的差。在本發(fā)明的替換實(shí)施例中,可以隱式地將偏移值和范圍值定義為最小偏移值以及最小偏移值與最大偏移值之間的差。在替換實(shí)施例中,可以隱式地將偏移值和范圍值定義為第三值以及第三值與最大偏移值和最小偏移值之間的差。在替換實(shí)施例中,可以通過(guò)到查找表中的索引號(hào)來(lái)定義偏移值和范圍值,該查找表包含對(duì)應(yīng)的最小和最大比特值。在某些實(shí)施例中,可以使用基于偏移的查找樹(shù)來(lái)定義偏移值和范圍值。在某些實(shí)施例中,可以使用成本最小化編索引來(lái)定義偏移值和范圍值。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到在本領(lǐng)域中已知用于隱式地定義范圍值和偏移值并用于確保編碼器和解碼器利用對(duì)于預(yù)定義偏移和范圍值的相同的值進(jìn)行操作的許多方法。
在本發(fā)明的某些實(shí)施例中,用信號(hào)發(fā)送范圍值可以是可選的。在某些實(shí)施例中,當(dāng)范圍值未用信號(hào)發(fā)送時(shí),那么可以將范圍值設(shè)置成預(yù)定義值。在示例性實(shí)施例中,預(yù)定義值可以是零。在另一示例性實(shí)施例中,預(yù)定義值可以是非零整數(shù)值。
在關(guān)于圖29描述的示例性實(shí)施例中,可以約束與熵片相關(guān)聯(lián)的熵片報(bào)頭、重構(gòu)片內(nèi)的片數(shù)目n以在從重構(gòu)片報(bào)頭的開(kāi)頭或重構(gòu)片報(bào)頭內(nèi)的其他給定位置起nk-p比特之后開(kāi)始,其中,k表示偏移值且p表示范圍??梢詮钠錅y(cè)量nk-p比特的位置可以稱(chēng)為參考位置。在替換實(shí)施例中,參考位置可以不與特定重構(gòu)片相關(guān)聯(lián),并且可以是對(duì)于所有熵片而言在比特流內(nèi)的同一固定位置。在替換實(shí)施例中,熵片報(bào)頭可以是字節(jié)對(duì)準(zhǔn)的,并且約束可以與字節(jié)數(shù)目相關(guān)聯(lián)。雖然關(guān)于圖29圖示出的示例是在比特方面描述的,但本領(lǐng)域的技術(shù)人員可以認(rèn)識(shí)到替換的字節(jié)對(duì)準(zhǔn)實(shí)施例。
圖29是示例性比特流的示例性部分1000的圖片表示。比特流部分1000包括用實(shí)線黑色矩形表示的重構(gòu)片報(bào)頭1002、用實(shí)線灰色矩形表示的四個(gè)熵片報(bào)頭(對(duì)應(yīng)于第零熵片的熵片報(bào)頭1003,稱(chēng)為零熵片報(bào)頭、對(duì)應(yīng)于第一熵片的熵片報(bào)頭1004,稱(chēng)為第一熵片報(bào)頭、對(duì)應(yīng)于第二熵片的熵片報(bào)頭1005,稱(chēng)為第二熵片報(bào)頭,對(duì)應(yīng)于第三熵片的熵片報(bào)頭1006,稱(chēng)為第三熵片報(bào)頭)以及用細(xì)黑白條紋表示的熵片的其余部分。在本示例中,參考位置可以是重構(gòu)片報(bào)頭1002的開(kāi)始1001。在本發(fā)明的某些實(shí)施例中,可以將對(duì)應(yīng)于第零熵片的熵片報(bào)頭1003約束于位于緊接在重構(gòu)片報(bào)頭1002之后。在本發(fā)明的某些實(shí)施例中,對(duì)應(yīng)于第零熵片的熵片報(bào)頭可以是重構(gòu)片報(bào)頭的一部分。也就是說(shuō),重構(gòu)片報(bào)頭還能夠充當(dāng)對(duì)應(yīng)于第零熵片的熵片報(bào)頭。在這些實(shí)施例中,重構(gòu)片報(bào)頭可以包括重構(gòu)部分和熵部分。在圖29中所描繪的本發(fā)明的某些實(shí)施例中,可以將第一熵片報(bào)頭1004約束于從參考位置1001開(kāi)始位于k-p比特1007之后,可以將第二熵片報(bào)頭1005約束于從參考位置1001開(kāi)始位于2k-p比特1008之后,可以將第二熵片報(bào)頭1006約束于從參考位置1001開(kāi)始位于3k-p比特1009之后。在這些實(shí)施例中,分配用于解碼熵片n的熵解碼器從參考位置1001開(kāi)始在nk-p比特之后開(kāi)始搜索對(duì)應(yīng)的熵片報(bào)頭。
在本發(fā)明的替換實(shí)施例中,熵片位置信息可以不包括范圍參數(shù)。在這些實(shí)施例中,熵解碼器可以從參考位置開(kāi)始在nk比特之后開(kāi)始搜索第n熵片報(bào)頭。
在關(guān)于圖30所述的另一示例性實(shí)施例中,可以將與熵片相關(guān)聯(lián)的熵片報(bào)頭、重構(gòu)片內(nèi)的片數(shù)目n約束于從重構(gòu)片報(bào)頭的開(kāi)頭或重構(gòu)片報(bào)頭內(nèi)的其他固定位置起在nk-p比特之后開(kāi)始,其中,k表示偏移值且p表示范圍,并且還可以將熵片報(bào)頭約束于從受約束的起始位置開(kāi)始在2p比特范圍內(nèi)??梢詮钠錅y(cè)量nk-p比特的位置可以稱(chēng)為參考位置。在替換實(shí)施例中,參考位置可以不與特定重構(gòu)片相關(guān)聯(lián),并且可以是對(duì)于所有熵片而言在比特流內(nèi)的同一固定位置。在替換實(shí)施例中,熵片報(bào)頭可以是字節(jié)對(duì)準(zhǔn)的,并且約束可以與字節(jié)數(shù)目相關(guān)聯(lián)。雖然關(guān)于圖30圖示出的示例是在比特方面描述的,但本領(lǐng)域的技術(shù)人員可以認(rèn)識(shí)到替換的字節(jié)對(duì)準(zhǔn)實(shí)施例。
圖30是示例性比特流的示例性部分1020的圖片表示。比特流部分1020包括用實(shí)線黑色矩形表示的重構(gòu)片報(bào)頭1022、用實(shí)線灰色矩形表示的四個(gè)熵片報(bào)頭(對(duì)應(yīng)于第零熵片的熵片報(bào)頭1023,稱(chēng)為零熵片報(bào)頭、對(duì)應(yīng)于第一熵片的熵片報(bào)頭1024,稱(chēng)為第一熵片報(bào)頭、對(duì)應(yīng)于第二熵片的熵片報(bào)頭1025,稱(chēng)為第二熵片報(bào)頭,對(duì)應(yīng)于第三熵片的熵片報(bào)頭1026,稱(chēng)為第三熵片報(bào)頭)以及用細(xì)黑白條紋表示的熵片的其余部分。在本示例中,參考位置可以是重構(gòu)片報(bào)頭1022的開(kāi)始1021。在本發(fā)明的某些實(shí)施例中,可以將對(duì)應(yīng)于第零熵片的熵片報(bào)頭1023約束于位于緊接在重構(gòu)片報(bào)頭1022之后。在本發(fā)明的某些實(shí)施例中,對(duì)應(yīng)于第零熵片的熵片報(bào)頭可以是重構(gòu)片報(bào)頭的一部分。在這些實(shí)施例中,重構(gòu)片報(bào)頭可以包括重構(gòu)部分和熵部分。在圖30中所描繪的本發(fā)明的某些實(shí)施例中,熵片報(bào)頭1024可以被約束于從參考位置1021開(kāi)始在k-p比特1027之后位于2p比特1031內(nèi),第二熵片報(bào)頭1025可以被約束于從參考位置1021開(kāi)始在2p-p比特1028之后位于2p比特1032內(nèi),第二熵片報(bào)頭1026可以被約束于從參考位置1021開(kāi)始在3k-p比特1029之后位于2p比特1033內(nèi)。在這些實(shí)施例中,分配用于解碼熵片n的熵解碼器可以從參考位置開(kāi)始在nk-p比特之后開(kāi)始搜索對(duì)應(yīng)的熵片報(bào)頭,并且可以在識(shí)別到熵片報(bào)頭之后或在搜索2p比特之后終止搜素。
可以關(guān)于圖31來(lái)描述本發(fā)明的某些實(shí)施例。在這些實(shí)施例中,熵解碼器可以接收1050熵片數(shù)目,該熵片數(shù)目指示要熵解碼的當(dāng)前重構(gòu)塊中的熵片的數(shù)目。該熵解碼器可以確定1052熵片位置信息。在本發(fā)明的某些實(shí)施例中,可以在比特流中用信號(hào)發(fā)送熵片位置信息,也稱(chēng)為熵片位置參數(shù),并且解碼器可以通過(guò)檢查比特流來(lái)確定1052熵片信息。在替換實(shí)施例中,可以不在比特流中用信號(hào)發(fā)送熵片位置信息,而是可以由解碼器根據(jù)熵片參數(shù)來(lái)確定1052,例如,在任何給定熵片中允許的二元位的固定數(shù)目、在任何給定熵片中允許的比特的固定數(shù)目及其他熵片參數(shù)。在本發(fā)明的替換實(shí)施例中,可以用其他標(biāo)準(zhǔn)手段來(lái)定義和確定1052熵片位置信息,例如,可以在屬性約束、層級(jí)約束、應(yīng)用約束或其他約束中指定該信息,或者可以將該信息作為補(bǔ)充信息來(lái)用信號(hào)發(fā)送,或者用其他不受限定的手段來(lái)用信號(hào)發(fā)送。
熵解碼器可以計(jì)算1054熵片搜索開(kāi)始位置,在該位置之前,在比特流中,熵片報(bào)頭被限制由編碼器寫(xiě)入。在本發(fā)明的某些實(shí)施例中,可以使用根據(jù)熵片位置信息而確定的偏移值和范圍值來(lái)計(jì)算1054熵片搜索開(kāi)始位置。在本發(fā)明的替換實(shí)施例中,可以使用根據(jù)熵片位置信息而確定的偏移值來(lái)計(jì)算1054熵片搜索開(kāi)始位置。熵解碼器可以在比特流中前進(jìn)1056至熵片搜索開(kāi)始位置,并且可以在比特流中檢查1058熵片報(bào)頭。在本發(fā)明的某些實(shí)施例中,可以用開(kāi)始碼來(lái)指示熵片報(bào)頭。
可以關(guān)于圖32來(lái)描述本發(fā)明的某些實(shí)施例。在這些實(shí)施例中,熵解碼器可以接收1070熵片數(shù)目,該熵片數(shù)目指示要熵解碼的當(dāng)前重構(gòu)塊中的熵片的數(shù)目。該熵解碼器可以確定1072熵片位置信息。在本發(fā)明的某些實(shí)施例中,可以在比特流中用信號(hào)發(fā)送熵片位置信息,稱(chēng)為熵片位置參數(shù),并且解碼器可以通過(guò)檢查比特流來(lái)確定1072熵片信息。在替換實(shí)施例中,可以不在比特流中用信號(hào)發(fā)送熵片位置信息,而是可以由解碼器根據(jù)熵片參數(shù)來(lái)確定1072,例如,在任何給定熵片中允許的二元位的固定數(shù)目、在任何給定熵片中允許的比特的固定數(shù)目及其他熵片參數(shù)。在本發(fā)明的替換實(shí)施例中,可以用其他標(biāo)準(zhǔn)手段來(lái)定義和確定1072熵片位置信息,例如,可以在屬性約束、層級(jí)約束、應(yīng)用約束或其他約束中指定該信息,或者可以將該信息作為補(bǔ)充信息來(lái)用信號(hào)發(fā)送,或者用其他不受限定的手段來(lái)用信號(hào)發(fā)送。
熵解碼器可以計(jì)算1074熵片搜索開(kāi)始位置,在該位置之前,在比特流中,熵片報(bào)頭被限制由編碼器寫(xiě)入。在本發(fā)明的某些實(shí)施例中,可以使用根據(jù)熵片位置信息而確定的偏移值和范圍值來(lái)計(jì)算1074熵片搜索開(kāi)始位置。在本發(fā)明的替換實(shí)施例中,可以使用根據(jù)熵片位置信息而確定的偏移值來(lái)計(jì)算1074熵片搜索開(kāi)始位置。熵解碼器可以在比特流中前進(jìn)1076至熵片搜索開(kāi)始位置,并且可以在比特流中檢查1078熵片報(bào)頭。在本發(fā)明的某些實(shí)施例中,可以用開(kāi)始碼來(lái)指示熵片報(bào)頭。
可以在熵片搜索開(kāi)始位置處開(kāi)始依次檢查1078比特流中的比特。如果1080識(shí)別了1081熵片報(bào)頭,則熵解碼器可以將與所識(shí)別的熵片報(bào)頭相關(guān)聯(lián)的熵片熵解碼1082。如果1080未識(shí)別1083熵片報(bào)頭,則熵解碼器可以終止1084搜索。在某些實(shí)施例中,熵解碼器可以在未識(shí)別1083熵片報(bào)頭時(shí)指示錯(cuò)誤。
可以關(guān)于圖33來(lái)描述本發(fā)明的某些實(shí)施例。在這些實(shí)施例中,熵解碼器可以接收1100熵片數(shù)目,該熵片數(shù)目指示要熵解碼的當(dāng)前重構(gòu)塊中的熵片的數(shù)目。該熵解碼器可以確定1102熵片位置信息。在本發(fā)明的某些實(shí)施例中,可以在比特流中用信號(hào)發(fā)送熵片位置信息,稱(chēng)為熵片位置參數(shù),并且解碼器可以通過(guò)檢查比特流來(lái)確定1102熵片信息。在替換實(shí)施例中,可以不在比特流中用信號(hào)發(fā)送熵片位置信息,而是可以由解碼器根據(jù)熵片參數(shù)來(lái)確定1102,例如,在任何給定熵片中允許的二元位的固定數(shù)目、在任何給定熵片中允許的比特的固定數(shù)目及其他熵片參數(shù)。在本發(fā)明的替換實(shí)施例中,可以用其他標(biāo)準(zhǔn)手段來(lái)定義和確定1102熵片位置信息,例如,可以在屬性約束、層級(jí)約束、應(yīng)用約束或其他約束中指定該信息,或者可以將該信息作為補(bǔ)充信息來(lái)用信號(hào)發(fā)送,或者用其他不受限定的手段來(lái)用信號(hào)發(fā)送。
熵解碼器可以計(jì)算1104熵片搜索開(kāi)始位置,在該位置之前,在比特流中,熵片報(bào)頭被限制由解碼器寫(xiě)入。在本發(fā)明的某些實(shí)施例中,可以使用根據(jù)熵片位置信息而確定的偏移值和范圍值來(lái)計(jì)算1104熵片搜索開(kāi)始位置。在本發(fā)明的替換實(shí)施例中,可以使用根據(jù)熵片位置信息而確定的偏移值來(lái)計(jì)算1104熵片搜索開(kāi)始位置。熵解碼器可以在比特流中前進(jìn)1106至熵片搜索開(kāi)始位置,并且可以在比特流中檢查1108熵片報(bào)頭。在本發(fā)明的某些實(shí)施例中,可以用開(kāi)始碼來(lái)指示熵片報(bào)頭。
可以在熵片搜索開(kāi)始位置處開(kāi)始依次檢查1108比特流中的比特。如果1110識(shí)別了1111熵片報(bào)頭,則熵解碼器可以將與所識(shí)別的熵片報(bào)頭相關(guān)聯(lián)的熵片熵解碼1112。如果1110未識(shí)別1113熵片報(bào)頭,則如果1114滿(mǎn)足了1115搜索準(zhǔn)則,則熵解碼器可以終止1116。該搜索準(zhǔn)則可以提供標(biāo)準(zhǔn),通過(guò)該標(biāo)準(zhǔn)可以進(jìn)行關(guān)于是否仍將搜索關(guān)于熵片報(bào)頭開(kāi)始的有效位置的確定。在某些實(shí)施例(未示出)中,如果仍將檢查有效位置,則可以滿(mǎn)足搜索準(zhǔn)則。在替換實(shí)施例中,如果不存在仍要檢查1115的有效位置,則可以滿(mǎn)足搜索準(zhǔn)則,并且搜索可以終止1116。在某些實(shí)施例中,熵解碼器可以在未識(shí)別1115熵片報(bào)頭時(shí)指示錯(cuò)誤。如果1114未滿(mǎn)足1117搜索準(zhǔn)則,則比特流的檢查1108可以在在比特流中前進(jìn)1118至下一搜索位置之后繼續(xù)。
在本發(fā)明的某些實(shí)施例中,搜索準(zhǔn)則可以與范圍值有關(guān),例如可以使熵片報(bào)頭的開(kāi)始位置被限制為以nk為中心的2p比特范圍,其中,k表示偏移值,p表示范圍值且n是重構(gòu)片內(nèi)的熵片數(shù)目。在這些實(shí)施例中,可以使與熵片n相關(guān)聯(lián)的熵片報(bào)頭的開(kāi)始位置被限制為范圍nk-p至nk+p。在某些實(shí)施例中,可以使搜索準(zhǔn)則與對(duì)熵片尺寸的一個(gè)或多個(gè)限制有關(guān)。在某些實(shí)施例中,可以使搜索準(zhǔn)則與限制的組合有關(guān)。
在本發(fā)明的某些實(shí)施例中,解碼器可以對(duì)熵片進(jìn)行填充以便滿(mǎn)足對(duì)下一熵片報(bào)頭的位置的限制。
在本發(fā)明的某些實(shí)施例中,編碼器可以在滿(mǎn)足其他熵片尺寸限制之前終止熵片以便滿(mǎn)足對(duì)下一熵片報(bào)頭的位置的限制。
在本發(fā)明的某些實(shí)施例中,當(dāng)重構(gòu)片內(nèi)的最后一個(gè)熵片不包含滿(mǎn)足對(duì)下一熵片報(bào)頭的位置的約束所需的比特(或字節(jié),在字節(jié)對(duì)準(zhǔn)實(shí)施例中)數(shù)時(shí),編碼器可以對(duì)重構(gòu)片內(nèi)的最后一個(gè)熵片進(jìn)行填充以滿(mǎn)足對(duì)下一熵片報(bào)頭的位置的約束。
在替換實(shí)施例中,熵片報(bào)頭可以包括最后熵片標(biāo)志,其中,最后熵片標(biāo)志的值可以指示與熵片報(bào)頭相關(guān)聯(lián)的熵片是否是重構(gòu)片中的最后熵片。在某些實(shí)施例中,可以使為零的最后熵片標(biāo)志值與最后熵片相關(guān)聯(lián)。在替換實(shí)施例中,可以使為一的最后熵片標(biāo)志值與最后熵片相關(guān)聯(lián)。在某些實(shí)施例中,當(dāng)最后熵片標(biāo)志的值指示熵片是重構(gòu)片中的最后熵片時(shí),則后續(xù)熵片報(bào)頭可以在沒(méi)有填充的情況下位于緊接在當(dāng)前熵片之后。
表7示出了用于用信號(hào)發(fā)送最后熵片標(biāo)志、稱(chēng)為“next_entropy_slice_flag”的示例性語(yǔ)法和語(yǔ)義。在包括表7中所示的示例性語(yǔ)法和語(yǔ)義的示例性實(shí)施例中,“next_entropy_slice_flag”標(biāo)志用信號(hào)發(fā)送是否存在用于當(dāng)前重構(gòu)片的附加熵片。如果“next_entropy_slice_flag”標(biāo)志指示不存在用于當(dāng)前重構(gòu)片的附加熵片,則比特流中的下一熵片報(bào)頭中的位置可以不受熵片位置參數(shù)的約束。
在本發(fā)明的某些實(shí)施例中,可以以樹(shù)格式來(lái)組織熵片報(bào)頭的位置,根節(jié)點(diǎn)指向熵片報(bào)頭位置。在某些實(shí)施例中,由根節(jié)點(diǎn)指向的熵片報(bào)頭可以是相對(duì)的。在替換實(shí)施例中,由根節(jié)點(diǎn)指向的熵片報(bào)頭可以是絕對(duì)的。樹(shù)的其余節(jié)點(diǎn)可以包含相對(duì)于它們的父節(jié)點(diǎn)的偏移距離??梢愿鶕?jù)設(shè)計(jì)約束來(lái)設(shè)計(jì)該樹(shù),例如以減少用于確定熵片報(bào)頭位置的時(shí)間,限定確定熵片報(bào)頭位置所需的最壞情況時(shí)間,用信號(hào)發(fā)送熵片解碼的優(yōu)選順序,用于樹(shù)的存儲(chǔ)成本最小化及其他設(shè)計(jì)約束。在某些實(shí)施例中,可以基于熵片報(bào)頭位置信息中的期望并行性水平來(lái)控制樹(shù)中的每個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn)的數(shù)目。
表7:用于最后熵片標(biāo)志的示例性語(yǔ)法表
在本發(fā)明的某些實(shí)施例中,可以每當(dāng)滿(mǎn)足上下文模型重置條件時(shí)在熵片內(nèi)將上下文模型重置。在這些實(shí)施例中的某些中,上下文模型可以被重置到的值可以基于熵片內(nèi)的鄰近基本單元的上下文模型,并且如果鄰近基本單元不在熵片內(nèi),則可以使用默認(rèn)值。在替換實(shí)施例中,可以將上下文模型重置成默認(rèn)值。在替換實(shí)施例中,可以基于其標(biāo)識(shí)符可以在比特流內(nèi)用信號(hào)發(fā)送的上下文模型來(lái)將上下文模型重置,該標(biāo)識(shí)符指示多個(gè)預(yù)定義上下文模型中的一個(gè)。預(yù)定義上下文模型可以取決于比特流中的一個(gè)或多個(gè)參數(shù)。在示例性實(shí)施例中,可以基于比特流內(nèi)的用信號(hào)發(fā)送的、指示多個(gè)預(yù)定義上下文模型中的一個(gè)的“cabac_init_idc”值來(lái)將上下文模型重置。
在某些實(shí)施例中,可以使用上下文表來(lái)將多個(gè)上下文模型初始化,其中,上下文表指的是上下文模型集合。在某些實(shí)施例中,上下文表中的上下文模型集合可以基于比特流中的一個(gè)或多個(gè)參數(shù)而經(jīng)歷自適應(yīng),參數(shù)例如是量化參數(shù)、片類(lèi)型參數(shù)或其他參數(shù)。
在圖34中所示的一個(gè)示例性實(shí)施例中,除在開(kāi)始熵片中的宏塊時(shí)被重置,在當(dāng)前宏塊是一行中的第一宏塊時(shí),也可以在熵片內(nèi)將上下文模型重置。圖34描繪了包含被劃分成以下三個(gè)熵片的48個(gè)宏塊1208-1255的示例性重構(gòu)片1200:熵片“0”(用交叉影線示出)1202、熵片“1”(用白色示出)1204和熵片“2”(用點(diǎn)影線示出)1206。熵片“0”1202包含15個(gè)宏塊1208-1222。熵片“1”1204包含17個(gè)宏塊1223-1239,并且熵片“2”1206包含16個(gè)宏塊1240-1255??梢灾刂蒙舷挛哪P吞幍暮陦K由粗黑邊1260-1266指示,并且是每個(gè)熵片開(kāi)始處的那些宏塊1208、1223、1240以及每行中的第一宏塊1216、1224、1232、1240、1248。
可以將熵片開(kāi)始處的基本單元、例如宏塊稱(chēng)為片開(kāi)始基本單元。例如,對(duì)于圖34中的示例性重構(gòu)片1200中的熵片1202、1204、1206而言,相應(yīng)的片開(kāi)始基本單元是1208、1223和1240。作為熵片中的一行中的第一基本單元的基本單元可以被稱(chēng)為行開(kāi)始基本單元,例如圖34中的宏塊1208、1216、1224、1232、1240和1248。
在某些實(shí)施例中,如果鄰近宏塊在熵片內(nèi),可以基于鄰近宏塊的上下文模型將上下文模型重置,并且如果鄰近宏塊不在熵片內(nèi),則可以使用默認(rèn)值。例如,如果當(dāng)前宏塊上方的宏塊在同一熵片中,則可以基于在當(dāng)前宏塊上方的宏塊的上下文模型來(lái)將上下文模型重置,但是如果在當(dāng)前宏塊上方的宏塊不在同一熵片中,則將上下文模型設(shè)置成默認(rèn)值。
在另一示例性實(shí)施例中,在當(dāng)前基本單元是一行中的第一基本單元時(shí),在熵片內(nèi),可以將上下文模型重置。在替換實(shí)施例中,上下文模型重置條件可以基于其他準(zhǔn)則,例如在熵片內(nèi)處理的二元位的數(shù)目、在片內(nèi)處理的比特?cái)?shù)、當(dāng)前基本單元的空間位置及其他準(zhǔn)則。
在本發(fā)明的某些實(shí)施例中,可以使用上下文模型重置標(biāo)志來(lái)指示每當(dāng)滿(mǎn)足上下文模型重置條件時(shí),在熵片內(nèi)是否可以將上下文模型重置。在某些實(shí)施例中,上下文模型重置標(biāo)志可以在熵片報(bào)頭中。在替換實(shí)施例中,上下文模型重置標(biāo)志可以在重構(gòu)片報(bào)頭中。在某些實(shí)施例中,上下文模型重置標(biāo)志可以是二進(jìn)制標(biāo)志,并且上下文模型重置條件可以是默認(rèn)條件。在替換實(shí)施例中,上下文模型重置標(biāo)志可以是用多值標(biāo)志,進(jìn)一步指示上下文模型重置條件。
在包括上下文自適應(yīng)編碼,例如cabac編碼、cav2v編碼及其他上下文自適應(yīng)編碼的一個(gè)示例性實(shí)施例中,“l(fā)cu_row_cabac_init_flag”標(biāo)志可以用信號(hào)通知是否可以在最大編碼單元(lcu)行開(kāi)始處將熵解碼初始化。在某些實(shí)施例中,lcu是在h.264中使用的宏塊概念到高效率視頻編碼(hevc)的廣義化,并且圖片被分成片,其中,片由lcu序列組成。在替換實(shí)施例中,lcu是可以用單個(gè)、傳送的模式值來(lái)表示的像素值位置的最大塊。在替換實(shí)施例中,lcu是可以用單個(gè)、傳送的預(yù)測(cè)模式值來(lái)表示的像素值位置的最大塊。在本發(fā)明的某些實(shí)施例中,值為“1”的“l(fā)cu_row_cabac_init_flag”標(biāo)志可以用信號(hào)通知熵編碼上下文被重置。熵編碼上下文可以表示與熵編碼器相關(guān)聯(lián)的所有上下文模型集合。在本發(fā)明的某些實(shí)施例中,值為“1”的“l(fā)cu_row_cabac_init_flag”標(biāo)志可以用信號(hào)通知熵編碼上下文被重置且自適應(yīng)掃描被重置。自適應(yīng)掃描可以指的是其中編解碼器基于先前傳送的變換系數(shù)值來(lái)適配變換系數(shù)的掃描排序的處理。被整體地通過(guò)引用結(jié)合到本文中的jctvc文獻(xiàn)jctvc-b205_draft005中的小節(jié)7.6.1概述了自適應(yīng)掃描基于鄰居中的顯著系數(shù)而在兩個(gè)不同掃描順序之間進(jìn)行選擇的示例。在一個(gè)示例中,可以通過(guò)選擇預(yù)定義掃描順序在每個(gè)lcu行開(kāi)始處將自適應(yīng)掃描重置。在一個(gè)實(shí)施例中,通過(guò)生成系數(shù)顯著映射來(lái)確定掃描排序,并且可以在對(duì)應(yīng)于小于或等于預(yù)定值的系數(shù)顯著性值的變換系數(shù)值之前傳送對(duì)應(yīng)于大于預(yù)定值的系數(shù)顯著性值的變換系數(shù)值。在一個(gè)實(shí)施例中,隨后可以增加對(duì)應(yīng)于大于預(yù)定值的變換系數(shù)值的系數(shù)顯著性值。在替換實(shí)施例中,隨后可以減小對(duì)應(yīng)于小于或等于預(yù)定值的變換系數(shù)值的系數(shù)顯著性值??梢酝ㄟ^(guò)將系數(shù)顯著映射設(shè)置成預(yù)定義值來(lái)將自適應(yīng)掃描過(guò)程重置。在某些實(shí)施例中,對(duì)于“l(fā)cu_row_cabac_init_flag”標(biāo)志而言,在未發(fā)送標(biāo)志時(shí)采取的默認(rèn)值可以是“0”?!發(fā)cu_row_cabac_init_idc_flag”標(biāo)志可以用信號(hào)通知是否將在每個(gè)lcu行開(kāi)始處傳送cabac_init_idc值。在某些實(shí)施例中,當(dāng)“l(fā)cu_row_cabac_init_idc_flag”標(biāo)志的值是“1”時(shí),將在每個(gè)lcu行開(kāi)始處傳送值。在某些實(shí)施例中,對(duì)于“l(fā)cu_row_cabac_init_idc_flag”標(biāo)志而言,在未發(fā)送標(biāo)志時(shí)采取的默認(rèn)值可以是“0”。在某些實(shí)施例中,“cabac_init_idc_present_flag”標(biāo)志可以用信號(hào)通知是否針對(duì)lcu傳送了cabac_init_idc值。在某些實(shí)施例中,當(dāng)針對(duì)lcu未傳送cabac_init_idc值時(shí),然后使用用于比特流中的cabac_init_idc的先前值來(lái)將熵編碼上下文重置。在本發(fā)明的某些實(shí)施例中,例如當(dāng)“entropy_slice_flag”的值是“0”時(shí),可以在規(guī)則片報(bào)頭中用信號(hào)發(fā)送“l(fā)cu_row_cabac_init_flag”和“l(fā)cu_row_cabac_init_idc_flag”。表8和表9示出了用于這些實(shí)施例的示例性語(yǔ)法。在本發(fā)明的某些實(shí)施例中,例如當(dāng)“entropy_slice_flag”的值是“1”時(shí),可以在熵片報(bào)頭中用信號(hào)發(fā)送“l(fā)cu_row_cabac_init_flag”和“l(fā)cu_row_cabac_init_idc_flag”。表8示出了示例性片報(bào)頭語(yǔ)法,并且表9示出了示例性片數(shù)據(jù)語(yǔ)法(coding_unit)。
表8:用于在lcu行開(kāi)始處用信號(hào)通知熵編碼的初始化的示例性語(yǔ)法表
表9:用于用信號(hào)通知用于lcu的初始上下文的示例性語(yǔ)法表
在包括上下文自適應(yīng)編碼,例如cabac編碼、cav2v編碼及其他上下文自適應(yīng)編碼的另一示例性實(shí)施例中,“mb_row_cabac_init_flag”表示可以用信號(hào)通知是否可以在一行中的第一宏塊處將熵解碼初始化。在本發(fā)明的某些實(shí)施例中,值為“1”的“mb_row_cabac_init_flag”標(biāo)志可以用信號(hào)通知熵編碼上下文在每個(gè)宏塊行開(kāi)始處被重置。在本發(fā)明的替換實(shí)施例中,值為“1”的“mb_row_cabac_init_flag”標(biāo)志可以用信號(hào)通知在每個(gè)宏塊行開(kāi)始處?kù)鼐幋a上下文被重置且自適應(yīng)掃描被重置。在某些實(shí)施例中,對(duì)于“mb_row_cabac_init_flag”的標(biāo)志而言,在未發(fā)送標(biāo)志時(shí)采取的默認(rèn)值可以是“0”?!癿b_row_cabac_init_idc_flag”標(biāo)志可以用信號(hào)通知是否將在每個(gè)宏塊行開(kāi)始處傳送cabac_init_idc值。在某些實(shí)施例中,當(dāng)“mb_row_cabac_init_idc_flag”標(biāo)志的值是“1”時(shí),將在每個(gè)宏塊行開(kāi)始處傳送值。在某些實(shí)施例中,對(duì)于“mb_row_cabac_init_idc_flag”的標(biāo)志而言,在未發(fā)送標(biāo)志時(shí)采取的默認(rèn)值可以是“0”。在某些實(shí)施例中,“cabac_init_idc_present_flag”標(biāo)志可以用信號(hào)通知是否針對(duì)宏塊傳送了cabac_init_idc值。在某些實(shí)施例中,當(dāng)針對(duì)宏塊未傳送cabac_init_idc值時(shí),然后使用用于比特流中的cabac_init_idc的先前值來(lái)將熵編碼上下文重置。在本發(fā)明的某些實(shí)施例中,例如當(dāng)“entropy_slice_flag”的值是“0”時(shí),可以在規(guī)則片報(bào)頭中用信號(hào)發(fā)送“mb_row_cabac_init_flag”標(biāo)志和“mb_row_cabac_init_idc_flag”標(biāo)志。在本發(fā)明的某些實(shí)施例中,例如當(dāng)“entropy_slice_flag”的值是“1”時(shí),可以在熵片報(bào)頭中用信號(hào)發(fā)送“mb_row_cabac_init_flag”標(biāo)志和“mb_row_cabac_init_idc_flag”標(biāo)志。表10和表11示出了用于這些實(shí)施例的示例性語(yǔ)法。表10示出了示例性片報(bào)頭語(yǔ)法,并且表11示出了示例性片數(shù)據(jù)語(yǔ)法(coding_unit)。
表10:用于在宏塊行開(kāi)始處用信號(hào)通知熵編碼的初始化的示例性語(yǔ)法表
表11:用于用信號(hào)通知用于宏塊的初始上下文的示例性語(yǔ)法表
在本發(fā)明的某些實(shí)施例中,可以在比特流中用信號(hào)發(fā)送熵片在比特流中的位置。在某些實(shí)施例中,可以使用標(biāo)志來(lái)用信號(hào)通知熵片在比特流中的位置將要在比特流中用信號(hào)發(fā)送。某些示例性實(shí)施例可以包括:“entropy_slice_locations_flag”如果為“真”則可以指示熵片報(bào)頭在比特流中的位置將在比特流中用信號(hào)發(fā)送。在某些實(shí)施例中,位置數(shù)據(jù)可以被不同地編碼。在某些實(shí)施例中,可以在每個(gè)重構(gòu)片中發(fā)送位置數(shù)據(jù)。在替換實(shí)施例中,可以每個(gè)圖片發(fā)送一次位置數(shù)據(jù)。
在本發(fā)明的某些實(shí)施例中,可以在比特流中用信號(hào)發(fā)送lcu行在比特流中的位置。在某些實(shí)施例中,可以使用標(biāo)志來(lái)用信號(hào)通知每行中的第一lcu在比特流中的位置將在比特流中用信號(hào)發(fā)送。某些示例性實(shí)施例可以包括:“l(fā)cu_row_location_flag”如果為“真”則可以指示每行中的第一lcu在比特流中的位置將在比特流中用信號(hào)發(fā)送。在某些實(shí)施例中,位置數(shù)據(jù)可以被不同地編碼。在某些實(shí)施例中,可以在每個(gè)熵片中發(fā)送位置數(shù)據(jù)。在替換實(shí)施例中,可以每個(gè)重構(gòu)片發(fā)送一次位置數(shù)據(jù)。
表12示出了用于用信號(hào)通知lcu行和熵片在比特流中的位置的示例性語(yǔ)法。針對(duì)此示例性語(yǔ)法,語(yǔ)義是:
“entropy_slice_locations_flag”用信號(hào)通知是否發(fā)送熵片報(bào)頭位置。如果“entropy_slice_locations_flag”的值被設(shè)置成“1”,則傳送熵片報(bào)頭位置,否則不傳送。“entropy_slice_locations_flag”的默認(rèn)值是“0”。
·“num_of_entropy_slice_minus1”用信號(hào)通知重構(gòu)片中的熵片的數(shù)目減1。
·“entropy_slice_offset[i]”指示第i熵片與先前熵片的偏移。
·“l(fā)cu_row_locations_flag”用信號(hào)通知是否正在傳送lcu行位置信息。如果“l(fā)cu_row_locations_flag”的值是“1”,則傳送lcu行位置信息,否則不傳送。用于“l(fā)cu_row_locations_flag”的默認(rèn)值是“0”。
·“num_of_lcu_rows_minus1”用信號(hào)通知熵片中的lcu行的數(shù)目減1。
·“l(fā)cu_row_offset[i]”指示第i個(gè)lcu行與先前l(fā)cu行的偏移。
在本發(fā)明的某些實(shí)施例中,可以用“宏塊”來(lái)替換表12中的“l(fā)cu”。例如,可以分別地用“first_mb_in_slice”、“mb_row_cabac_init_flag”、“mb_row_cabac_init_idc_flag”、“mb_row_locations_flag”、“mb_row_locations()”、“num_of__mb_rows_minus1”和“mb_row_offset[i]”來(lái)替換表12中的“first_lcu_in_slice”、“l(fā)cu_row_cabac_init_flag”、“l(fā)cu_row_cabac_init_idc_flag”、“l(fā)cu_row_locations_flag”、“l(fā)cu_row_locations()”、“num_of_lcu_rows_minus1”和“l(fā)cu_row_offset[i]”。
表12:用于用信號(hào)通知一行中的第一lcu在比特流中的位置的示例性語(yǔ)法表
可以通過(guò)用信號(hào)發(fā)送用于基本單元、例如宏塊的零值變換系數(shù)的位置和非零變換系數(shù)的層級(jí)值來(lái)實(shí)現(xiàn)殘余數(shù)據(jù)從編碼器到解碼器的高效傳輸。許多編碼系統(tǒng)可以嘗試將零值變換系數(shù)定位于用于基本單元的殘余數(shù)據(jù)的結(jié)尾處,從而允許在最后顯著變換系數(shù)之后使用“塊結(jié)尾”碼以高效地用信號(hào)通知其余變換系數(shù)值是零。
某些編碼系統(tǒng)可以跟蹤先前針對(duì)先前處理的基本單元傳送的殘余數(shù)據(jù)中的零值變換系數(shù)的位置,這可以允許在后續(xù)殘余數(shù)據(jù)中最后傳送具有先前零值變換系數(shù)的位置。替換地,某些編碼系統(tǒng)可以跟蹤先前傳送的殘余數(shù)據(jù)中的非零值變換系數(shù)的位置。雖然這可以改善編碼效率,但是使得需要完全解碼先前的殘余數(shù)據(jù)以便解碼當(dāng)前的殘余數(shù)據(jù),這是由于下述事實(shí),即殘余數(shù)據(jù)的編碼使用上下文模型,也稱(chēng)為概率模型,這是由變換系數(shù)標(biāo)識(shí)符來(lái)確定的,變換系數(shù)標(biāo)識(shí)符僅可以利用被識(shí)別為在殘余數(shù)據(jù)結(jié)束處傳送的位置的知識(shí)來(lái)確定。
例如,如圖35中所示,如果掃描自適應(yīng)已經(jīng)生成以下掃描順序:用于與當(dāng)前基本單元相關(guān)聯(lián)的熵編碼處理的s={coeff0,coeff10,coeff1,…},其中,coeffi表示第i變換系數(shù),然后需要針對(duì)編碼變換系數(shù)coeff0獲取對(duì)應(yīng)于coeff0的、可以表示為ctxt0的上下文。接下來(lái),需要針對(duì)編碼變換系數(shù)coeff10獲取對(duì)應(yīng)于coeff10的上下文ctxt10,等等。因此,可能執(zhí)行關(guān)于基本單元的編碼的時(shí)間排序,這是由于需要知道掃描順序s={coeff0,coeff10,coeff1,…},這在先前基本單元已被編碼之前不能獲得。
在本發(fā)明的某些實(shí)施例中,為了允許熵片的并行編碼,可以在每個(gè)熵片的片開(kāi)始基本單元處將自適應(yīng)掃描重置成熵片默認(rèn)掃描順序,從而允許并行地對(duì)單獨(dú)熵片進(jìn)行編碼。
在本發(fā)明的某些實(shí)施例中,可以在熵片的每個(gè)lcu行的行開(kāi)始基本單元處將自適應(yīng)掃描計(jì)算的掃描順序設(shè)置成已知掃描順序,也稱(chēng)為行默認(rèn)值。
在本發(fā)明的替換實(shí)施例中,可以將可以為了編碼變換系數(shù)而獲取的塊變換系數(shù)掃描順序和也稱(chēng)為上下文的對(duì)應(yīng)的上下文模型解耦,從而允許并行編碼。在這些實(shí)施例中,位于比特流中的第一位置處的變換系數(shù)可以基于其相對(duì)于比特流中的其他變換系數(shù)的位置使與按照上下文獲取順序?qū)?yīng)地定位的上下文相關(guān)聯(lián)。在這些實(shí)施例中,可以預(yù)定義上下文獲取順序,上下文獲取順序可以表示為f={ctxta,ctxtb,ctxtc,...},其中,ctxt表示在變換域中并未與變換系數(shù)位置相關(guān)聯(lián)而是與比特流中的變換系數(shù)的相對(duì)位置相關(guān)聯(lián)的上下文。因此,對(duì)于示例性變換系數(shù)掃描順序s={coeff0,coeff10,coeff1,…}而言,編碼處理可以用ctxta對(duì)coeff0進(jìn)行編碼、用ctxtb對(duì)coeff10進(jìn)行編碼、用ctxtc對(duì)coeff1進(jìn)行編碼等等。在這些實(shí)施例中,熵編碼處理可以獨(dú)立于掃描順序進(jìn)行操作??梢躁P(guān)于圖36來(lái)描述某些編碼器實(shí)施例。編碼器可以獲取1280要進(jìn)行編碼的下一變換系數(shù),并且可以從上下文的預(yù)定義獲取列表獲取1282下一上下文。可以使用獲取的上下文對(duì)獲取的變換系數(shù)進(jìn)行熵編碼1284,并且可以進(jìn)行關(guān)于是否存在仍要編碼的顯著變換系數(shù)的確定1286。如果存在1287仍要編碼的顯著變換系數(shù),則可以獲取1280下一顯著變換系數(shù),并且該處理可以繼續(xù)。如果不存在1289,則該處理可以終止1290??梢躁P(guān)于圖37來(lái)描述某些解碼器實(shí)施例。解碼器可以獲取1300下一上下文并使用獲取的上下文對(duì)來(lái)自比特流的下一顯著變換系數(shù)進(jìn)行熵解碼1302。可以存儲(chǔ)1304解碼的變換系數(shù),并且可以進(jìn)行關(guān)于是否存在要解碼的剩余顯著變換系數(shù)的確定1306。如果存在1307,則可以獲取1300下一上下文,并且該處理可以繼續(xù)。如果不存在1309,則該處理可以終止1310。
在本發(fā)明的替換實(shí)施例中,可以使系數(shù)掃描順序被限制為所有可能掃描組合的子集,并且可以顯式地用信號(hào)通知。在熵片開(kāi)始處,可以將掃描順序設(shè)置成信號(hào)發(fā)送的掃描順序。在某些實(shí)施例中,可以將掃描順序作為標(biāo)準(zhǔn)語(yǔ)法來(lái)用信號(hào)發(fā)送。在替換實(shí)施例中,可以用非標(biāo)準(zhǔn)消息,例如sei消息或其他非標(biāo)準(zhǔn)消息來(lái)用信號(hào)發(fā)送掃描順序。
在本發(fā)明的替換實(shí)施例中,可以使系數(shù)掃描順序被限制為所有可能掃描組合的子集,并且可以顯式地用信號(hào)通知。在熵片中的lcu行開(kāi)始處,可以將掃描順序設(shè)置成信號(hào)發(fā)送的掃描順序。在某些實(shí)施例中,可以將掃描順序作為標(biāo)準(zhǔn)語(yǔ)法來(lái)用信號(hào)發(fā)送。在替換實(shí)施例中,可以用非標(biāo)準(zhǔn)消息,例如sei消息或其他非標(biāo)準(zhǔn)消息來(lái)用信號(hào)發(fā)送掃描順序。
在替換實(shí)施例中,在熵片開(kāi)始時(shí),可以將系數(shù)掃描順序設(shè)置成先前解碼的基本單元的掃描順序。在某些實(shí)施例中,可以將掃描順序設(shè)置成在上方的基本單元中使用的掃描順序。在替換實(shí)施例中,可以將掃描順序設(shè)置成在上方和右側(cè)基本單元中使用的掃描順序。
在本發(fā)明的替換實(shí)施例中,在熵片中的lcu行開(kāi)始時(shí),可以將系數(shù)掃描順序設(shè)置成先前解碼的基本單元的掃描順序。在某些實(shí)施例中,可以將掃描順序設(shè)置成在上方基本單元中使用的掃描順序。在替換實(shí)施例中,可以將掃描順序設(shè)置成在上方和右側(cè)基本單元中使用的掃描順序。
參考圖43,在本發(fā)明的某些實(shí)施例中,可以將用于p片的上下文初始化方法應(yīng)用于前向預(yù)測(cè)b片,則可以導(dǎo)致較高壓縮效率,這是由于賦予b片的更大自由度和b預(yù)測(cè)的多假設(shè)性質(zhì)。在前向預(yù)測(cè)b片中使用的參考片始終來(lái)自與規(guī)則b片不同的在時(shí)間上較早的幀/圖片,其中,可以從在時(shí)間上未來(lái)和/或過(guò)去的幀/圖片中選擇參考。因此,前向預(yù)測(cè)b片可以包括具有與規(guī)則b片的那些不同的統(tǒng)計(jì)特性的殘余數(shù)據(jù)。如圖43中所示,該技術(shù)可以接收b片、p片以及i片,并且基于接收到的片的類(lèi)型來(lái)選擇上下文初始化技術(shù)。另外,在前向預(yù)測(cè)b片的情況下,使用用于p片的上下文初始化技術(shù)。更具體地,執(zhí)行以下步驟:
4301:可以從比特流解碼片類(lèi)型;
4302:確定該片類(lèi)型是否是b片;
4303:如果片類(lèi)型是b片(在4302中為是),則確定該片是否是前向預(yù)測(cè)的。如果該片是前向預(yù)測(cè)的,則用第二初始化技術(shù)將上下文初始化,否則用第一初始化技術(shù)來(lái)將上下文初始化;
4304:如果片類(lèi)型不是b片(在4302中為否),則確定片類(lèi)型是否是p片。如果片類(lèi)型是p片,則用第二初始化技術(shù)將該上下文初始化;以及
4305:如果片類(lèi)型不是p片(在4303中為否),則確定片類(lèi)型是否是i片。如果片類(lèi)型是i片,則用第三初始化技術(shù)將上下文初始化。
根據(jù)本發(fā)明的一個(gè)方面,可以?xún)H針對(duì)前向預(yù)測(cè)b幀通過(guò)訓(xùn)練來(lái)生成用來(lái)初始化熵編碼器的初始概率分布。根據(jù)本發(fā)明的另一方面,可以基于用來(lái)編碼當(dāng)前視頻數(shù)據(jù)編碼的、可以表示為qp的量化參數(shù)來(lái)適配上下文的初始化。
在本發(fā)明的某些實(shí)施例中,編碼器可以替換地將用于p片的上下文初始化方法應(yīng)用于前向預(yù)測(cè)b片,并且可以用信號(hào)通知該替換的發(fā)生。在本發(fā)明的某些實(shí)施例中,信令可以是明示的。在本發(fā)明的替換實(shí)施例中,信令可以是隱式的。在包括明示信令的本發(fā)明的某些實(shí)施例中,可以每當(dāng)用前向預(yù)測(cè)b片來(lái)替換p片時(shí)向解碼器發(fā)送標(biāo)志。在這些實(shí)施例中的某些中,可以將標(biāo)志作為標(biāo)準(zhǔn)語(yǔ)法用信號(hào)發(fā)送。在替換實(shí)施例中,可以在非標(biāo)準(zhǔn)消息內(nèi)用信號(hào)發(fā)送標(biāo)志,例如sei消息或其他非標(biāo)準(zhǔn)消息。
參考圖41,在本發(fā)明的某些實(shí)施例中,可以將用于p片的上下文初始化方法應(yīng)用于單向預(yù)測(cè)b片,這可以導(dǎo)致較高壓縮效率,這是由于賦予b片的更大自由度而。在單向預(yù)測(cè)b片中所使用的參考片是在時(shí)間上較早的幀/圖片或在時(shí)間上較遲的幀/圖片的一部分。因此,單向預(yù)測(cè)b片可以包括具有與雙向b片的那些不同的統(tǒng)計(jì)特性的殘余數(shù)據(jù)。在時(shí)間上可以指的是解碼的圖片/幀的顯示順序。如圖41中所示,該技術(shù)可以接收b片、p片以及i片,并且基于接收到的片的類(lèi)型來(lái)選擇上下文初始化技術(shù)。另外,在單向預(yù)測(cè)b片的情況下,使用用于p片的上下文初始化技術(shù)。更具體地,執(zhí)行以下步驟:
4101:可以從比特流解碼片類(lèi)型;
4102:確定該片類(lèi)型是否是b片;
4103:如果片類(lèi)型是b片(在4102中為是),則確定該片是否是前向或后向預(yù)測(cè)的但不是兩者。如果片是前向或后向預(yù)測(cè)的但不是兩者,則用第二初始化技術(shù)將上下文初始化,否則用第一初始化技術(shù)來(lái)將上下文初始化;
4104:如果片類(lèi)型不是b片(在4102中為否),則確定片類(lèi)型是否是p片。如果片類(lèi)型是p片,則用第二初始化技術(shù)將該上下文初始化;以及
4105:如果片類(lèi)型不是p片(在4104中為否),則確定片類(lèi)型是否是i片。如果片類(lèi)型是i片,則用第三初始化技術(shù)將上下文初始化。
參考圖42,在本發(fā)明的某些實(shí)施例中,可以以不同于后向預(yù)測(cè)b片和/或雙向預(yù)測(cè)b片的方式將前向預(yù)測(cè)b片初始化,這可以導(dǎo)致較高壓縮效率,這是由于賦予b片的不同自由度。在前向預(yù)測(cè)b片中所使用的參考片是在時(shí)間上較早的幀/圖片的一部分。因此,前向預(yù)測(cè)b片可以包括具有與后向和/或雙向b片的那些不同的統(tǒng)計(jì)特性的殘余數(shù)據(jù)。在時(shí)間上可以指的是解碼的圖片/幀的顯示順序。如圖42中所示,該技術(shù)可以接收b片、p片以及i片,并且基于接收到的片的類(lèi)型來(lái)選擇上下文初始化技術(shù)。另外,在前向預(yù)測(cè)b片的情況下,可以使用不同于b片、p片以及i片的上下文初始化技術(shù)。更具體地,執(zhí)行以下步驟:
4201:可以從比特流解碼片類(lèi)型;
4202:確定該片類(lèi)型是否是b片;
4203:如果片類(lèi)型是b片(在4202中為是),則確定該片是否是前向預(yù)測(cè)的。如果該片是前向預(yù)測(cè)的,則用第四初始化技術(shù)將上下文初始化,否則用第一初始化技術(shù)來(lái)將上下文初始化;
4204:如果片類(lèi)型不是b片(在4202中為否),則確定片類(lèi)型是否是p片。如果片類(lèi)型是p片,則用第二初始化技術(shù)將該上下文初始化;以及
4205:如果片類(lèi)型不是p片(在4204中為否),則確定片類(lèi)型是否是i片。如果片類(lèi)型是i片,則用第三初始化技術(shù)將上下文初始化。
上下文初始化方法可以由設(shè)置熵編碼器的操作所需的熵編碼器的值組成。例如,可以針對(duì)將概率估計(jì)用于編碼數(shù)據(jù)的熵編碼器,諸如在算術(shù)編碼器中,設(shè)置第一概率估計(jì)。上下文初始化方法可以使用初始化技術(shù)來(lái)確定該值。在一個(gè)實(shí)施例中,第一初始化方法對(duì)應(yīng)于使用預(yù)先計(jì)算值的第一表格來(lái)設(shè)置值。類(lèi)似地,第二初始化方法對(duì)應(yīng)于使用預(yù)先計(jì)算值的第二表格來(lái)設(shè)置該值。在另一實(shí)施例中,第一初始化方法使用針對(duì)在幀之間使用不止一個(gè)預(yù)測(cè)的幀而設(shè)計(jì)的預(yù)先計(jì)算值的第一表格來(lái)設(shè)置該值,其中,當(dāng)按照顯示順序來(lái)排序時(shí)被用于預(yù)測(cè)的一個(gè)或多個(gè)幀在時(shí)間上在當(dāng)前幀之前且發(fā)起當(dāng)前幀兩者。第二初始化方法使用從在幀之間使用不止一個(gè)預(yù)測(cè)的幀設(shè)計(jì)的預(yù)先計(jì)算值的第二表格來(lái)設(shè)置值,其中,當(dāng)按照顯示順序來(lái)排序時(shí)被用于預(yù)測(cè)的幀在時(shí)間上在當(dāng)前幀之前或者在時(shí)間上發(fā)起當(dāng)前幀,但是并不是在時(shí)間上在之前且在時(shí)間上發(fā)起當(dāng)前幀兩者。第三初始化方法使用針對(duì)在幀之間使用至多一個(gè)預(yù)測(cè)的幀而設(shè)計(jì)的預(yù)先計(jì)算值的第三表格來(lái)設(shè)置值。第四初始化方法使用針對(duì)在幀之間不使用預(yù)測(cè)的幀而設(shè)計(jì)的預(yù)先計(jì)算值的第四表格來(lái)設(shè)置值。
在本發(fā)明的一個(gè)實(shí)施例中,refpiclist0包含在當(dāng)前幀的顯示之前顯示的先前解碼的幀列表,后面是在當(dāng)前幀的顯示之后顯示的先前解碼的幀列表,并且refpiclist1包含在當(dāng)前幀的顯示之后顯示的先前解碼的幀列表,后面是在當(dāng)前幀的顯示之前顯示的先前解碼的幀列表。在本實(shí)施例中,以上條件(2)對(duì)于單向b片而言為真,因?yàn)樵诋?dāng)前幀的顯示之后顯示的先前解碼的幀的數(shù)目是零,或者在當(dāng)前幀的顯示之前顯示的解碼的幀的數(shù)目是零。在本發(fā)明的另一實(shí)施例中,picordercnt表示解碼的幀的顯示順序。在本實(shí)施例中,以上條件(3)對(duì)于單向b片而言為真,因?yàn)榻獯a的幀全部是在當(dāng)前幀的顯示之前或在當(dāng)前幀的顯示之后顯示的。
在包括隱式信令的本發(fā)明的某些實(shí)施例中,當(dāng)在預(yù)測(cè)中所使用的參考片(幀/圖片)基于片將被顯示的順序而全部是過(guò)去片(幀/圖片)時(shí),可以在解碼器處推斷用于被應(yīng)用到前向預(yù)測(cè)b片的p片的上下文初始化方法的發(fā)生。在某些實(shí)施例中,當(dāng)以下條件為真時(shí),可以推斷用單向b片替換p片的發(fā)生:(1)參考圖片列表refpiclist1具有一個(gè)或多個(gè)條目,(2)參考圖片列表refpiclist1和refpiclist0包含相同的圖片集合,以及(3)參考圖片列表refpiclist1和refpilist0中的所有幀具有比當(dāng)前幀的picordercnt更小的picordercnt,其中,picordercnt按升序指示幀的顯示順序。在某些實(shí)施例中,當(dāng)以下條件為真時(shí),可以推斷用單向b片替換p片的發(fā)生:(1)參考圖片列表refpiclist1具有一個(gè)或多個(gè)條目,(2)參考圖片列表refpiclist1和refpiclist0包含相同的圖片集合,以及(3)參考圖片列表refpiclist1和refpilist0中的所有幀具有比當(dāng)前幀的picordercnt更大的picordercnt,其中,picordercnt按升序指示幀的顯示順序。在某些實(shí)施例中,當(dāng)以下條件為真時(shí),可以推斷用單向b片替換p片的發(fā)生:(1)參考圖片列表refpiclist1具有一個(gè)或多個(gè)條目,以及(2)參考圖片列表refpiclist1中的第一幀和refpiclist0中的第一幀具有比當(dāng)前幀的picordercnt更小(或更大)的picordercnt,其中,picordercnt按升序指示幀的顯示順序。在某些實(shí)施例中,當(dāng)以下條件為真時(shí),可以推斷用單向b片替換p片的發(fā)生:(1)參考圖片列表refpiclist1具有不止一個(gè)條目,以及(2)參考圖片列表refpiclist1中的幀[0,n]和refpiclist0中的幀[0,n]具有比當(dāng)前幀的picordercnt更小(或更大)的picordercnt,其中,picordercnt按升序指示幀的顯示順序。在某些實(shí)施例中,當(dāng)以下條件為真時(shí),可以推斷用單向b片替換p片的發(fā)生:(1)參考圖片列表refpiclist1具有不止一個(gè)條目,(2)參考圖片列表refpiclist1中的第一幀和參考圖片列表refpiclist0中的第二幀相同,(3)參考圖片列表refpiclist1中的第二幀和參考圖片列表refpiclist0中的第一幀相同,(4)參考圖片列表refpiclist1中的幀[0,n]和refpiclist0中的幀[0,n]具有比當(dāng)前幀的picordercnt更小(或更大)的picordercnt,其中,picordercnt按升序指示幀的顯示順序。在某些實(shí)施例中,refpiclist0和refpiclist1中的順序不需要是等同的以包含相同的圖片集合。在示例性實(shí)施例中,當(dāng)參考圖片列表refpiclist1具有不止一個(gè)條目且refpiclist1與參考圖片列表refpiclist0等同時(shí),那么可以將前兩個(gè)條目refpiclist1[0]和refpiclist1[1]交換。n可以指的是小于參考圖片列表中的幀/圖片的總數(shù)。picordercnt還可以指的是解碼器圖片緩沖器中的相對(duì)顯示順序。
當(dāng)指示了由前向預(yù)測(cè)b片替換p片的發(fā)生時(shí),可以使用p片方法將用于熵片的上下文初始化。在另一實(shí)施例中,可以使用p片方法將片的上下文初始化。
表13示出了用于顯式地用信號(hào)通知將使用p片方法初始化b片的初始上下文的示例性語(yǔ)法。在與表13相關(guān)聯(lián)的示例性實(shí)施例中,“cabac_init_p_flag”是針對(duì)b片熵編碼器初始化指示應(yīng)選擇b片方法還是p片方法的標(biāo)志。在某些實(shí)施例中,如果“cabac_init_p_flag”標(biāo)志的值是“0”,則選擇b片方法以用于初始化,并且如果“cabac_init_p_flag”標(biāo)志的值是“1”,則選擇p片方法以用于初始化。
表13:示出了使用p片方法的b片初始化的明示信令的示例性語(yǔ)法表
在本發(fā)明的某些實(shí)施例中,用于熵片的上下文初始化狀態(tài)可以是基于由熵編碼器處理的二元位的數(shù)目。熵編碼器可以在被正確地初始化時(shí)更快速地向信源統(tǒng)計(jì)收斂。更快的收斂可以導(dǎo)致較少的比特被浪費(fèi)和因此更高的壓縮效率。在本發(fā)明的某些實(shí)施例中,可以估計(jì)可以傳送的二元位的數(shù)目,并且當(dāng)估計(jì)的二元位數(shù)目滿(mǎn)足第一準(zhǔn)則時(shí),然后可以使用第一初始化方法。當(dāng)估計(jì)的二元位數(shù)目不滿(mǎn)足第一準(zhǔn)則時(shí),可以使用第二初始化方法。
可以關(guān)于圖38來(lái)理解本發(fā)明的示例性實(shí)施例。在這些實(shí)施例中,可以估計(jì)1320已處理的二元位的數(shù)目??梢詫⒈硎緸閚bins的已處理二元位的估計(jì)數(shù)目與表示為tbins的門(mén)限值相比較1322。隨著已處理二元位的數(shù)目增加,基于qp的上下文初始化的預(yù)測(cè)準(zhǔn)確度可能降低。用于上下文初始化的較高預(yù)測(cè)準(zhǔn)確度可以導(dǎo)致更好的壓縮效率。如果已處理二元位的估計(jì)數(shù)目大于1324門(mén)限值,則可以選擇1326單個(gè)上下文初始化值。如果已處理二元位的估計(jì)數(shù)目不大于1328門(mén)限值,則可以基于qp自適應(yīng)地將上下文初始化1330。可以基于例如均方誤差、相對(duì)熵及其他距離度量的所選度量的訓(xùn)練和最優(yōu)化來(lái)選擇單個(gè)上下文初始化值?;趒p的自適應(yīng)初始化可以是ca*qp+cb形式的仿射自適應(yīng),其中,ca和cb是常數(shù)。在某些實(shí)施例中,可以基于在先前片中處理的二元位的數(shù)目來(lái)估計(jì)二元位的數(shù)目。在替換實(shí)施例中,可以基于在先前幀中處理的二元位的數(shù)目來(lái)估計(jì)二元位的數(shù)目。
在關(guān)于以圖片方式表示已處理的一定范圍的二元位數(shù)目的圖39所述的本發(fā)明的某些實(shí)施例中,可以確定已處理二元位的數(shù)目的多個(gè)、分隔范圍(示出了三個(gè)1342、1344、1346),并關(guān)于許多門(mén)限值(示出了兩個(gè)1348、1350)進(jìn)行描述,并且可以基于已處理的二元位的估計(jì)數(shù)目落在范圍1342、1344、1346中的哪一個(gè)內(nèi)來(lái)選擇上下文初始化值,例如,針對(duì)三個(gè)范圍1342、1344、1346,當(dāng)nbins≤tmin1342時(shí),可以基于qp自適應(yīng)地將上下文初始化,當(dāng)tmin<nbins≤t11344時(shí),可以將上下文初始化成第一固定上下文值,并且當(dāng)t1<nbins1346時(shí),可以將上下文初始化成第二、不同的固定上下文值。
可以關(guān)于圖40來(lái)理解本發(fā)明的另一替換示例性實(shí)施例。在本示例性實(shí)施例中,可以確定1400的qp值并相對(duì)于表示為tqp的門(mén)限值來(lái)進(jìn)行檢查1402。一般地,隨著qp減小,所處理二元位的數(shù)目可以增加。如果qp并不小于1404該門(mén)限值,則可以基于qp自適應(yīng)地初始化1406上下文。如果qp的值小于1408門(mén)限值,則可以選擇1410單個(gè)上下文初始化值??梢曰诶缇秸`差、相對(duì)熵及其他距離度量的所選度量的訓(xùn)練和最優(yōu)化來(lái)選擇單個(gè)上下文初始化值。
在本發(fā)明的某些實(shí)施例中,可以確定qp的多個(gè)、分隔范圍,并且可以基于qp值落在哪個(gè)范圍內(nèi)來(lái)選擇上下文初始化值。
表14示出了用于全內(nèi)部編碼的率失真性能的比較。在第三列的兩個(gè)子列中所示的第一比較是在使用多個(gè)片的編碼,其中,用于片的熵解碼和宏塊重構(gòu)并不取決于其他片,與不使用片的編碼之間,使用h.264/avc聯(lián)合模型(jm)軟件版本13.0進(jìn)行的比較。平均起來(lái),對(duì)于相同比特率而言,使用多個(gè)片的編碼相比于不使用片而言,質(zhì)量下降-0.3380db。平均起來(lái),針對(duì)相同質(zhì)量水平,使用多個(gè)片的編碼相比于不使用片而言,比特率增加了7%。
第四列的兩個(gè)子列中所示的第二比較是在使用根據(jù)本發(fā)明的實(shí)施例被劃分成多個(gè)熵片(每個(gè)熵片兩行宏塊)的一個(gè)重構(gòu)片的編碼與使用不具有片的jm13.0的編碼之間的比較。平均起來(lái),針對(duì)相同比特率,使用具有多個(gè)熵片的一個(gè)重構(gòu)片相比于不使用片的編碼而言,質(zhì)量下降-0.0860db。平均起來(lái),針對(duì)相同質(zhì)量水平,使用具有多個(gè)熵片的一個(gè)重構(gòu)片相比于不使用片的編碼而言,比特率增加1.83%。
表14:率失真性能的比較——全內(nèi)部編碼
表15示出了用于ibbp編碼的率失真性能的比較。在第三列的兩個(gè)子列中所示的第一比較是在使用多個(gè)片的編碼,其中,用于片的熵解碼和宏塊重構(gòu)并不取決于其他片,與不使用片的編碼之間,使用h.264/avc聯(lián)合模型(jm)軟件版本13.0進(jìn)行的比較。平均起來(lái),對(duì)于相同比特率而言,使用多個(gè)片進(jìn)行編碼,質(zhì)量下降-0.5460db。平均起來(lái),針對(duì)相同質(zhì)量水平,使用多個(gè)片的編碼相比于不使用片而言,比特率增加了21.41%。
第四列的兩個(gè)子列中所示的第二比較是在使用根據(jù)本發(fā)明的實(shí)施例被劃分成多個(gè)熵片(每個(gè)熵片兩行宏塊)的一個(gè)重構(gòu)的編碼片與使用不具有片的jm13.0的編碼之間的比較。平均起來(lái),針對(duì)相同比特率,使用具有多個(gè)熵片的一個(gè)重構(gòu)片相比于不使用片的編碼而言,質(zhì)量下降-0.31db。平均起來(lái),針對(duì)相同質(zhì)量水平,使用具有多個(gè)熵片的一個(gè)重構(gòu)的片編碼相比于不使用片的編碼而言,比特率增加11.45%。
表15:率失真性能的比較——ibbp編碼
比較結(jié)果,在一個(gè)重構(gòu)片中使用多個(gè)熵片的編碼相比于使用片的編碼而言對(duì)于全內(nèi)部和ibpp編碼分別提供5.17%和9.96%的比特率節(jié)省,其中,用于片的熵解碼和宏塊重構(gòu)并不取決于其他片,雖然兩者都允許并行解碼。
表16示出了對(duì)于全內(nèi)部和ibbp編碼的率失真性能的比較。在此表中,比較是在不使用片的編碼與使用根據(jù)本發(fā)明的實(shí)施例被劃分成熵片的一個(gè)重構(gòu)片的編碼之間的比較,其中每個(gè)熵片具有最大尺寸26k二元位。第2列的兩個(gè)子列中所示的第一比較是使用全內(nèi)部編碼的比較。平均起來(lái),針對(duì)相同的比特率,通過(guò)使用具有多個(gè)熵片的重構(gòu)片的編碼,質(zhì)量下降-0.062db。平均起來(lái),針對(duì)相同質(zhì)量水平,通過(guò)使用具有多個(gè)熵片的重構(gòu)片的編碼,比特率增加1.86%。因此,對(duì)于使用每個(gè)熵片最大尺寸26k二元位的熵片的全內(nèi)部編碼而言,相比于兩行宏塊的固定熵片尺寸,存在約0.64%的平均比特率節(jié)省。
第3列的兩個(gè)子列中所示的第二比較是使用ibbp編碼的比較。平均起來(lái),針對(duì)相同比特率,使用具有多個(gè)熵片的一個(gè)重構(gòu)片相比于不使用片的編碼而言,質(zhì)量下降-0.022db。平均起來(lái),針對(duì)相同質(zhì)量水平,使用具有多個(gè)熵片的一個(gè)重構(gòu)片的編碼相比于不使用片的編碼而言,比特率增加0.787%。因此,對(duì)于使用每個(gè)熵片最大尺寸26k二元位的熵片的ibbp編碼而言,相比于兩行宏塊的固定熵片尺寸,存在約10.66%的平均比特率節(jié)省。
表16:率失真性能的比較——全內(nèi)部和使用具有每個(gè)熵片小于26k二元位的熵片ibbp編碼
熵片的使用允許并行解碼以及重構(gòu)片到熵片的編碼器劃分,其中,每個(gè)熵片小于二元位的最大數(shù)目,相比于固定數(shù)目的宏塊的熵片而言可以提供相當(dāng)大的比特率節(jié)省。
雖然圖中的圖表和圖示可以示出特定的執(zhí)行順序,但應(yīng)理解的是執(zhí)行順序可以與所描繪的不同。例如,可以相對(duì)于所示的順序改變塊的執(zhí)行順序。并且,作為另一示例,可以同時(shí)地或以部分同時(shí)性來(lái)執(zhí)行在圖中接連地示出的兩個(gè)或更多塊。本領(lǐng)域的技術(shù)人員應(yīng)理解的是可以由本領(lǐng)域的技術(shù)人員來(lái)創(chuàng)建軟件、硬件和/或固件以執(zhí)行本文所述的各種邏輯功能。
本發(fā)明的某些實(shí)施例可以包括計(jì)算機(jī)程序產(chǎn)品,其包括在其上/其中存儲(chǔ)有可以用來(lái)對(duì)計(jì)算系統(tǒng)進(jìn)行編程以執(zhí)行本文所述的任何特征和方法的指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。示例性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以包括但不限于閃速存儲(chǔ)器件、盤(pán)存儲(chǔ)介質(zhì),例如軟盤(pán)、光盤(pán)、磁光盤(pán)、數(shù)字多功能磁盤(pán)(dvd)、壓縮盤(pán)(cd)、微驅(qū)動(dòng)及其他盤(pán)存儲(chǔ)介質(zhì)、只讀存儲(chǔ)器(rom)、可編程只讀存儲(chǔ)器(prom)、可擦可編程只讀存儲(chǔ)器(eproms)、電可擦可編程只讀存儲(chǔ)器(eeprom)、隨機(jī)存取存儲(chǔ)器(rams)、視頻隨機(jī)存取存儲(chǔ)器(vram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)或適合于存儲(chǔ)指令和/或數(shù)據(jù)的任何類(lèi)型的介質(zhì)或器件。
在本發(fā)明的某些實(shí)施例中,可以在熵片開(kāi)始處將掃描圖案初始化。
在本發(fā)明的某些實(shí)施例中,可以在熵片中的行中的起始基本單元處將掃描圖案初始化。
在本發(fā)明的某些實(shí)施例中,可以在熵片開(kāi)始處將與自適應(yīng)掃描計(jì)算相關(guān)聯(lián)的狀態(tài)初始化。
在本發(fā)明的某些實(shí)施例中,可以在熵片中的行中的起始基本單元處將與自適應(yīng)掃描計(jì)算相關(guān)聯(lián)的狀態(tài)初始化。
在本發(fā)明的某些實(shí)施例中,可以將系數(shù)掃描順序與上下文獲取順序解耦。
在本發(fā)明的某些實(shí)施例中,可以檢測(cè)前向預(yù)測(cè)b片,并且可以根據(jù)p片方法將與熵編碼前向預(yù)測(cè)b片相關(guān)聯(lián)的上下文初始化。
在本發(fā)明的某些實(shí)施例中,可以基于二元位計(jì)數(shù)將上下文初始化。
在本發(fā)明的某些實(shí)施例中,可以基于量化參數(shù)值將上下文初始化。
本發(fā)明的一個(gè)實(shí)施例公開(kāi)了一種用于將視頻序列的視頻幀解碼的方法,包括:
(a)在視頻解碼器中接收片;
(b)識(shí)別片是否是前向預(yù)測(cè)b片或后向預(yù)測(cè)b片,并且不是前向和后向預(yù)測(cè)b片兩者;
(c)使用p片技術(shù)將與片相關(guān)聯(lián)的上下文初始化。
在本發(fā)明的某些實(shí)施例中,識(shí)別可以?xún)H包括后向預(yù)測(cè)b片。
在本發(fā)明的某些實(shí)施例中,識(shí)別可以是基于:(1)識(shí)別參考圖片的第一列表具有至少一個(gè)條目,(2)識(shí)別參考圖片的第一列表和第二列表包含相同的圖片集合,(3)第一列表和第二列表中的所有圖片將在當(dāng)前片之前被顯示。
在本發(fā)明的某些實(shí)施例中,識(shí)別可以是基于:(1)識(shí)別參考圖片的第一列表具有至少一個(gè)條目,(2)識(shí)別參考圖片的第一列表和第二列表包含相同的圖片集合,(3)第一列表和第二列表中的所有圖片將在當(dāng)前片之后被顯示。
在本發(fā)明的某些實(shí)施例中,識(shí)別可以是基于:(1)識(shí)別參考圖片的第一列表具有至少一個(gè)條目,(2)識(shí)別參考圖片的第一列表和第二列表包含非共同擴(kuò)展的圖片集合,并且該非共同擴(kuò)展的圖片集合將在當(dāng)前片之前被顯示。
在本發(fā)明的某些實(shí)施例中,識(shí)別可以是基于:(1)識(shí)別參考圖片的第一列表具有至少一個(gè)條目,(2)識(shí)別參考圖片的第一列表和第二列表包含非共同擴(kuò)展的圖片集合,并且該非共同擴(kuò)展的圖片集合將在當(dāng)前片之后被顯示。
在本發(fā)明的某些實(shí)施例中,識(shí)別可以是基于:(1)識(shí)別參考圖片的第一列表具有至少一個(gè)條目,(2)第一列表中的第一參考圖片與第二列表中的第二參考圖片相同,(3)第二列表中的第一參考圖片與第一列表中的第二參考圖片相同,(4)識(shí)別參考圖片的第一列表和第二列表包含非共同擴(kuò)展的圖片集合,并且該非共同擴(kuò)展的圖片集合將在當(dāng)前片之前被顯示。
本發(fā)明的一個(gè)實(shí)施例公開(kāi)了一種用于將視頻序列的視頻幀解碼的方法,包括:
(a)在視頻解碼器中接收片;
(b)識(shí)別片是否是前向預(yù)測(cè)b片;
(c)使用不同于被用于b片、p片以及i片中的任何一個(gè)的技術(shù)來(lái)將與片相關(guān)聯(lián)的上下文初始化。
在前述說(shuō)明書(shū)中已采用的術(shù)語(yǔ)和表達(dá)在本文中被用作描述而非限制的術(shù)語(yǔ),并且在此類(lèi)術(shù)語(yǔ)和表達(dá)的使用中并不意圖排除所示和所述特征或其部分的等價(jià)物,應(yīng)認(rèn)識(shí)到的是本發(fā)明的范圍僅僅由隨后的權(quán)利要求來(lái)定義和限制。