專利名稱:用于并行視頻編碼和解碼的方法、設(shè)備和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施例總體涉及視頻編碼。
背景技術(shù):
以比傳統(tǒng)方法和標(biāo)準(zhǔn)更高的復(fù)雜度為代價(jià),本領(lǐng)域最新的視頻編碼方法和標(biāo)準(zhǔn) (例如H. 264/MPEG-4 AVC (H. 264/AVC))可以提供更高的編碼效率。對于視頻編碼方法和標(biāo) 準(zhǔn)的日益增加的質(zhì)量要求和分辨率要求也可能增加其復(fù)雜度。支持并行解碼的解碼器可以 提高解碼速度并降低存儲器要求。此外,多核處理器的發(fā)展可以使支持并行解碼的編碼器 和解碼器成為值得期望的。H. 264/MPEG-4 AVC[Joint Video Team of ITU-T VCEG and IS0/IEC MPEG, "H. 264 Advanced video coding for generic audiovisual services", ITU-T Rec H. 264 and IS0/IEC 14496-10 (MPEG4_Part 10), November 2007]是為了壓縮效率而使用后接殘 差編碼的宏塊預(yù)測來減少視頻序列中的時(shí)間和空間冗余的視頻編解碼規(guī)范,在此將其全部 并入作為參考。
發(fā)明內(nèi)容
本發(fā)明的一些實(shí)施例包括基于將數(shù)據(jù)劃分成可以獨(dú)立進(jìn)行熵編碼和解碼的熵 片,對視頻比特流進(jìn)行并行熵編碼和解碼的方法、設(shè)備和系統(tǒng)。根據(jù)本發(fā)明的一方面,提供了一種用于對視頻比特流進(jìn)行解碼的方法。該方法包 括對視頻比特流的第一部分進(jìn)行熵解碼,其中,視頻比特流的第一部分與視頻幀相關(guān)聯(lián), 從而生成解碼數(shù)據(jù)的第一部分;對視頻比特流的第二部分進(jìn)行熵解碼,其中,視頻比特流的 第二部分與視頻幀相關(guān)聯(lián),從而生成解碼數(shù)據(jù)的第二部分,其中,對視頻比特流的第二部分 的熵解碼獨(dú)立于對視頻比特流的第一部分的熵解碼;以及使用解碼數(shù)據(jù)的第一部分和解碼 數(shù)據(jù)的第二部分來重構(gòu)與視頻比特流相關(guān)聯(lián)的視頻幀的第一部分。根據(jù)本發(fā)明的另一方面,提供了一種用于對視頻序列中的視頻幀進(jìn)行解碼的方 法。該方法包括接收比特流;識別比特流中的重構(gòu)片;識別與比特流中的重構(gòu)片相關(guān)聯(lián)的 多個(gè)熵片;對與重構(gòu)片相關(guān)聯(lián)的多個(gè)熵片中的每一個(gè)進(jìn)行熵解碼,從而生成多個(gè)熵解碼熵 片;以及使用多個(gè)熵解碼熵片來重構(gòu)與重構(gòu)片相關(guān)聯(lián)的視頻幀的一部分。根據(jù)本發(fā)明的另一方面,提供了一種用于對視頻序列中的視頻幀進(jìn)行編碼的方 法。該方法包括將視頻序列中的第一幀劃分成至少一個(gè)重構(gòu)片,從而生成第一重構(gòu)片;以 及將第一重構(gòu)片劃分成多個(gè)熵片。根據(jù)本發(fā)明的另一方面,提供了一種用于產(chǎn)生用于并行解碼的視頻比特流的方 法。該方法包括接收第一視頻比特流;識別視頻比特流中的重構(gòu)片;對來自重構(gòu)片的多個(gè) 符號進(jìn)行熵解碼,從而生成與重構(gòu)片相關(guān)聯(lián)的熵解碼數(shù)據(jù);將與重構(gòu)片相關(guān)聯(lián)的熵解碼數(shù) 據(jù)劃分成與重構(gòu)片相關(guān)聯(lián)的多個(gè)熵片;對多個(gè)熵片中的每一個(gè)熵片的熵解碼數(shù)據(jù)獨(dú)立地進(jìn) 行熵編碼,從而生成多個(gè)熵編碼熵片;以及產(chǎn)生包括多個(gè)熵編碼熵片在內(nèi)的第二視頻比特流。在本發(fā)明的一些實(shí)施例中,可以對輸入的壓縮視頻比特流的第一部分和第二部分 獨(dú)立地進(jìn)行熵解碼??梢允褂脕碜缘谝徊糠趾偷诙糠值慕獯a數(shù)據(jù),重構(gòu)與輸入的壓縮視 頻比特流的第二部分相關(guān)聯(lián)的視頻幀的采樣塊。從而,重構(gòu)相鄰定義和熵解碼相鄰定義并 不相同。在本發(fā)明的一些實(shí)施例中,編碼器可以將輸入數(shù)據(jù)劃分成熵片。編碼器可以對熵 片獨(dú)立地進(jìn)行熵編碼。編碼器可以形成包括熵片首部在內(nèi)的比特流,每一個(gè)熵片首部可以 指示熵片的相關(guān)數(shù)據(jù)在比特流中的位置。在本發(fā)明的一些實(shí)施例中,解碼器可以解析接收 到的比特流,以得到熵片首部,并且解碼器可以根據(jù)解碼器定義的并行等級對多個(gè)熵片進(jìn) 行熵解碼。在本發(fā)明的一些實(shí)施例中,可以在畫面級對數(shù)據(jù)進(jìn)行復(fù)用以形成熵片。在一些實(shí) 施例中,一個(gè)或多個(gè)熵片可以與預(yù)測數(shù)據(jù)相對應(yīng),并且一個(gè)或多個(gè)熵片可以與殘差數(shù)據(jù)相 對應(yīng)。在本發(fā)明的備選實(shí)施例中,一個(gè)或多個(gè)熵片可以與多個(gè)色平面的每一個(gè)相對應(yīng)。在本發(fā)明的一些實(shí)施例中,可以對比特流進(jìn)行代碼變換以包括熵片。在這些實(shí)施 例中,可以對接收到的比特流進(jìn)行熵解碼,可以構(gòu)建多個(gè)熵片,并且熵片中的每一個(gè)可以被 獨(dú)立編碼,并寫至具有相關(guān)聯(lián)的熵片首部的經(jīng)代碼變換的比特流。在考慮以下結(jié)合附圖進(jìn)行的本發(fā)明的詳細(xì)描述時(shí),將更容易理解本發(fā)明的前述和 其它目的、特征和優(yōu)勢。
圖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í)施例的示例性片劃分的圖,其中,可以將畫面劃分 成至少一個(gè)重構(gòu)片,并且可以將重構(gòu)片劃分成多于一個(gè)的熵片;圖6是示出了包括熵片的本發(fā)明的示例性實(shí)施例的圖;圖7是示出了本發(fā)明的示例性實(shí)施例的圖,包括后接片重構(gòu)的對多個(gè)熵片進(jìn)行并 行熵解碼;圖8是示出了本發(fā)明的示例性實(shí)施例的圖,包括在畫面級對預(yù)測數(shù)據(jù)/殘差數(shù)據(jù) 進(jìn)行復(fù)用,以進(jìn)行熵片構(gòu)建;圖9是示出了本發(fā)明的示例性實(shí)施例的圖,包括在畫面級進(jìn)行色平面復(fù)用,以進(jìn) 行熵片構(gòu)建;以及圖10是示出了本發(fā)明的示例性實(shí)施例的圖,包括通過熵解碼、形成熵片和熵編碼 來對比特流進(jìn)行代碼轉(zhuǎn)換。附圖標(biāo)記2 H. 264/AVC 視頻編碼器32熵編碼54熵解碼
80 H. 264/AVC 視頻解碼器110視頻幀111、112、113 重構(gòu)片112-1、112-2、112-3 熵片115、116、117、118、119、120、121、122、123 宏塊
具體實(shí)施例方式將參考附圖來最佳地理解本發(fā)明的實(shí)施例,其中,相同的部分由相同的數(shù)字來指 出。將以上列出的圖明確地并入,作為該詳細(xì)描述的一部分。易于理解的是,可以通過廣泛多樣的配置來設(shè)置和設(shè)計(jì)此處在附圖中大致描述和 示意的本發(fā)明的組件。從而,以下本發(fā)明的方法、設(shè)備和系統(tǒng)的實(shí)施例的更詳細(xì)描述并非意 在限制本發(fā)明的范圍,相反其僅表示本發(fā)明當(dāng)前優(yōu)選實(shí)施例??梢砸杂布⒐碳?或軟件的形式來實(shí)施本發(fā)明的實(shí)施例的元件。雖然在此揭 示的示例性實(shí)施例可能僅描述了這些形式中的一種,但應(yīng)理解本領(lǐng)域技術(shù)人員能夠以這些 形式中的任意形式來實(shí)現(xiàn)這些元件,同時(shí)仍保持在本發(fā)明的范圍之內(nèi)。雖然本發(fā)明的實(shí)施例可以適于使用熵編碼/解碼的任何視頻編碼器/解碼器(編 解碼器),但將結(jié)合H. 264/AVC編碼器和H. 264/AVC解碼器來示意本發(fā)明的示例性實(shí)施例。 這樣做旨在示意本發(fā)明的實(shí)施例而不是限制性的。與比傳統(tǒng)方法和標(biāo)準(zhǔn)更高的復(fù)雜度為代價(jià),本領(lǐng)域最新的視頻編碼方法和標(biāo)準(zhǔn) (例如H. 264/AVC)可以提供更高的編碼效率。對于視頻編碼方法和標(biāo)準(zhǔn)的日益增加的質(zhì)量 要求和分辨率要求也可能增加其復(fù)雜度。支持并行解碼的解碼器可以提高解碼速度并降低 存儲器要求。此外,多核處理器的發(fā)展可以使支持并行解碼的編碼器和解碼器成為值得期望的。H. 264/AVC和很多其它視頻編碼標(biāo)準(zhǔn)和方法基于基于塊的混合視頻編碼途徑,其 中,源編碼算法是畫面間(還考慮幀間)預(yù)測、畫面內(nèi)(還考慮幀內(nèi))預(yù)測以及預(yù)測殘差的 變換編碼的混合。幀間預(yù)測可以利用時(shí)間冗余,幀內(nèi)預(yù)測和預(yù)測殘差的變換編碼可以利用 空間冗余。圖1示出了示例性H. 264/AVC視頻編碼器2的框圖??梢砸胼斎氘嬅?(還考 慮輸入幀)用于編碼??梢陨深A(yù)測信號6和殘差信號8,其中,預(yù)測信號6可以基于幀間 預(yù)測10或幀內(nèi)預(yù)測12。可以通過使用所存儲的參考畫面16 (還考慮參考幀)、使用輸入幀 (輸入畫面)4與參考幀(參考畫面)16之間的運(yùn)動(dòng)估計(jì)18處理所確定的運(yùn)動(dòng)信息19進(jìn)行 運(yùn)動(dòng)補(bǔ)償14來確定幀間預(yù)測10??梢允褂媒?jīng)解碼的信號22通過幀內(nèi)預(yù)測20確定幀內(nèi)預(yù) 測12??梢酝ㄟ^從預(yù)測(預(yù)測信號)6中減去輸入幀4來確定殘差信號8。對殘差信號8 進(jìn)行變換、縮放和量化24,從而生成經(jīng)量化的變換系數(shù)26??梢酝ㄟ^將預(yù)測信號6與對經(jīng) 量化的變換系數(shù)26進(jìn)行逆變換、縮放和逆量化30所產(chǎn)生的信號28相加來產(chǎn)生經(jīng)解碼信號 22??梢詫\(yùn)動(dòng)信息19和經(jīng)量化的變換系數(shù)26進(jìn)行熵編碼32并寫至經(jīng)壓縮的視頻比特 流34??梢栽诰幋a器2處通過對重構(gòu)的預(yù)濾波信號(經(jīng)解碼的信號)22進(jìn)行濾波36來產(chǎn) 生輸出圖像區(qū)域38 (例如,參考幀的一部分)。圖2輸出了示例性H. 264/AVC視頻解碼器50的框圖??梢砸胼斎胄盘?2 (還考慮比特流)用于解碼??梢詫邮盏降姆栠M(jìn)行熵解碼54,從而生成運(yùn)動(dòng)信息56和經(jīng)量 化、縮放的變換系數(shù)58??梢酝ㄟ^運(yùn)動(dòng)補(bǔ)償60將運(yùn)動(dòng)信息56與可駐留在幀存儲器64中的 部分參考幀84組合,并可以產(chǎn)生幀間預(yù)測68??梢詫?jīng)量化、縮放的變換系數(shù)58進(jìn)行逆 量化、逆縮放和逆變換62,從而生成經(jīng)解碼的殘差信號70??梢詫埐钚盘?0與預(yù)測信號 78 (幀間預(yù)測信號68或幀內(nèi)預(yù)測信號76)相加,并變成組合信號72??梢杂僧?dāng)前幀中先前 解碼的信息(先前組合信號)72通過幀內(nèi)預(yù)測74預(yù)測幀內(nèi)預(yù)測信號76??梢杂扇K濾波 器80對組合信號72濾波,并可以將經(jīng)濾波的信號82寫至幀存儲器64。在H. 264/AVC中,將輸入畫面劃分成固定大小的宏塊,其中,每一個(gè)宏塊覆蓋由 亮度分量的16x16個(gè)采樣和兩個(gè)色度分量中每一個(gè)的8x8個(gè)采樣構(gòu)成的矩形畫面區(qū)域。 H. 264/AVC標(biāo)準(zhǔn)的解碼處理是針對以宏塊為處理單位而指定的。熵解碼器54解析經(jīng)壓縮的 視頻比特流52的語法元素并對其進(jìn)行解復(fù)用。H. 264/AVC指定了兩種備選的熵解碼方法 低復(fù)雜度技術(shù),基于可變長度碼的上下文自適應(yīng)轉(zhuǎn)換集合的使用,被稱為CAVLC ;以及計(jì)算 上要求更高的算法,基于上下文的自適應(yīng)二進(jìn)制算法編碼,被稱為CABAC。在這兩種熵解碼 方法中,當(dāng)前符號的解碼可以僅依靠先前正確解碼的符號和自適應(yīng)更新的上下文模型。此 外,可以將不同的數(shù)據(jù)信息(例如,預(yù)測數(shù)據(jù)信息、殘差數(shù)據(jù)信息和不同的色平面)復(fù)用在 一起。在對元素進(jìn)行熵解碼前,可以不進(jìn)行解復(fù)用。在熵解碼之后,可通過獲得進(jìn)行了逆量化和逆變換的殘差信號、以及預(yù)測信號 (幀內(nèi)預(yù)測信號或幀間預(yù)測信號)來重構(gòu)宏塊。可以通過對每一個(gè)經(jīng)解碼的宏塊應(yīng)用去塊 濾波來降低塊失真。直到對輸入信號進(jìn)行熵解碼,處理才可以開始,從而使得熵解碼成為解 碼的潛在瓶頸。類似地,在可以允許備選預(yù)測機(jī)制(例如,H. 264/AVC中的層間預(yù)測或其它可縮放 編解碼器中的層間預(yù)測)的編解碼器中,在解碼器處,在所有的處理之前進(jìn)行熵解碼是必 須的,從而使得熵解碼成為潛在的瓶頸。在H. 264/AVC中,可以將包括多個(gè)宏塊在內(nèi)的輸入畫面劃分成一個(gè)或若干個(gè)片。 假設(shè)在編碼器和解碼器處使用的參考畫面是相同的,可以在不使用來自于其它片的數(shù)據(jù)的 情況下正確地對片所表示的畫面的區(qū)域中的采樣的值進(jìn)行解碼。因此,針對片的熵解碼和 宏塊重構(gòu)不取決于其它的片。特別地,在每一片的起始處重置熵編碼狀態(tài)。當(dāng)針對熵解碼 和重構(gòu)定義相鄰可用性時(shí),將其它片中的數(shù)據(jù)標(biāo)記為不可用。在H. 264/AVC中,可以并行地 對片進(jìn)行熵解碼和重構(gòu)。幀內(nèi)預(yù)測和運(yùn)動(dòng)矢量預(yù)測不允許跨越片的邊界。去塊濾波可以使 用跨越片邊界的信息。圖3示出了示例性視頻畫面90,包括在水平方向上的11個(gè)宏塊和在垂直方向上的 9個(gè)宏塊(9個(gè)示例性宏塊被標(biāo)記為91-99)。圖3示出了三個(gè)示例性片第一片被表示為“片 #0” 100,第二片被表示為“片#1” 101,第三片被表示為“片#2” 102。H. 264/AVC解碼器可 以并行地對這三個(gè)片100、101、102進(jìn)行解碼和重構(gòu)。在針對每個(gè)片的解碼/重構(gòu)處理的起 始處,初始化或重置上下文模型,并將其它片中的宏塊標(biāo)記為不可用于熵解碼和宏塊重構(gòu)。 從而,針對宏塊(例如“片#1”中被標(biāo)記為93的宏塊),“片#0”中的宏塊(例如被標(biāo)記為 91和92的宏塊)可以不用于上下文模型選擇或重構(gòu)。反之,針對宏塊(例如“片#1”中被 標(biāo)記為95的宏塊),可以將“片#1”中的其它宏塊(例如被標(biāo)記為93和94的宏塊)用于 上下文模型選擇或重構(gòu)。因此,在片內(nèi)必須連續(xù)地處理熵解碼和宏塊重構(gòu)。除非片是使用
8靈活宏塊排序(FMO)定義的,否則以光柵掃描的順序來處理片內(nèi)的宏塊。靈活宏塊排序定義了片組,以修改如何將畫面劃分成片。通過宏塊至片組的映射 來定義片組中的宏塊,宏塊至片組的映射是由片首部中的畫面參數(shù)集合和附加信息的內(nèi)容 以信號通知的。宏塊至片組的映射由畫面中每一宏塊的片組識別號構(gòu)成。片組識別號指定 了相關(guān)宏塊屬于哪一個(gè)片組??梢詫⒚恳粋€(gè)片組劃分成一個(gè)或更多個(gè)片,其中,片是在特定 片組的宏塊集合內(nèi)以光柵掃描的順序來處理的、相同片組內(nèi)宏塊的序列。在片內(nèi)必須連續(xù) 地處理熵解碼和宏塊重構(gòu)。圖4描述了分配為三個(gè)片組的示例性宏塊分配被表示為“片組#0”103的第一片 組,被表示為“片組#1” 104的第二片組和被表示為“片組#3” 105的第三片組。在畫面90 中,這些片組103、104、105可以分別與兩個(gè)前景區(qū)域和一個(gè)背景區(qū)域相關(guān)聯(lián)。本發(fā)明的一些實(shí)施例可以包括將畫面劃分成一個(gè)或更多個(gè)重構(gòu)片,其中,假設(shè)在 編碼器和解碼器處使用的參考畫面是相同的,就可以在不使用來自于其它重構(gòu)片的數(shù)據(jù)的 情況下對重構(gòu)片所表示的畫面區(qū)域內(nèi)的采樣的值正確地進(jìn)行重構(gòu)這一方面來說,重構(gòu)片可 以是獨(dú)立自足(self-contained)的。針對重構(gòu),重構(gòu)片內(nèi)所有的重構(gòu)宏塊在相鄰定義中是 可用的。本發(fā)明的一些實(shí)施例可包括將重構(gòu)片劃分成多于一個(gè)的熵片,其中,就可以在不 使用來自于其它熵片的數(shù)據(jù)的情況下對熵片所表示的畫面區(qū)域內(nèi)的符號值正確地進(jìn)行熵 解碼這一方面來說,熵片可以是獨(dú)立自足的。在本發(fā)明的一些實(shí)施例中,在每個(gè)熵片的解 碼起始處,可以重置熵編碼狀態(tài)。在本發(fā)明的一些實(shí)施例中,當(dāng)針對熵解碼定義相鄰可用性 時(shí),可以將其它熵片中的數(shù)據(jù)標(biāo)記為不可用。在本發(fā)明的一些實(shí)施例中,在當(dāng)前塊的上下文 模型選擇中,可以不使用其它熵片中的宏塊。在本發(fā)明的一些實(shí)施例中,可以僅在熵片內(nèi)更 新上下文模型。在本發(fā)明的這些實(shí)施例中,與熵片相關(guān)聯(lián)的每一個(gè)熵解碼器可以保持其自 身的上下文模型的集合。本發(fā)明的一些實(shí)施例可以包括CABAC編碼/解碼。CABAC編碼處理包括以下步驟二進(jìn)制化將非二進(jìn)制值的符號(例如,變換系數(shù)、運(yùn)動(dòng)矢量或其它編碼數(shù)據(jù))轉(zhuǎn) 換成二進(jìn)制碼(也稱為bin字符串)。二進(jìn)制化之后為以下步驟針對二進(jìn)制化符號的每一個(gè)bin(還考慮比特),上下文模型選擇上下文模型是針對二進(jìn)制化符號的一個(gè)或更多個(gè)bin的概率模 型。針對每個(gè)bin,上下文模型包括bin的概率是“1”或“0”。取決于最近編碼數(shù)據(jù)符號(如 果可用的話,通?;谧笊系南噜彿?的統(tǒng)計(jì),可以挑選模型來作為可用模型的選集。二進(jìn)制算術(shù)編碼算術(shù)編碼器根據(jù)所選擇的概率模型對每一個(gè)bin進(jìn)行編碼,并 且是基于遞歸間隔細(xì)分的。概率更新基于實(shí)際編碼值對所選擇的上下文模型進(jìn)行更新。在包括CABAC編碼/解碼的本發(fā)明的一些實(shí)施例中,在熵片的解碼起始處,可以將 所有的上下文模型初始化或重置到預(yù)定義模型。可以結(jié)合圖5來理解本發(fā)明的一些實(shí)施例。圖5示出了示例性視頻幀110,包括在 水平方向上的11個(gè)宏塊,在垂直方向上的9個(gè)宏塊(9個(gè)示例性宏塊被標(biāo)記為115-123)。 圖5示出了三個(gè)示例性重構(gòu)片被表示為“重構(gòu)片#0”111的第一重構(gòu)片,被表示為“重構(gòu)片 #1”112的第二重構(gòu)片和被表示為“重構(gòu)片#2” 113的第三重構(gòu)片。圖5還示出了將第二重構(gòu)片“重構(gòu)片#1” 112劃分成三個(gè)熵片交叉陰影線112-1中示出的被表示為“熵片#0,,的 第一熵片,垂直陰影線112-2中示出的被表示為“熵片#1”的第二熵片以及斜陰影線112-3 中示出的被表示為“熵片#2”的第三熵片??梢圆⑿械貙γ恳粋€(gè)熵片112-1、112-2、112-3 進(jìn)行熵解碼。在此,還可以將被表示為“熵片#0”的第一熵片和被表示為“熵片#1”的第二 熵片稱為比特流的第一部分和第二部分。在本發(fā)明的一些實(shí)施例中,在熵片的熵解碼期間,針對上下文模型選擇,僅僅來自 于熵片內(nèi)的宏塊的數(shù)據(jù)是可用的??梢詫⑺衅渌陦K標(biāo)記為不可用。針對該示例性劃 分,當(dāng)對與被標(biāo)記為119的宏塊的區(qū)域相對應(yīng)的符號進(jìn)行解碼時(shí),對于上下文模型選擇,被 標(biāo)記為117和118的宏塊是不可用的,因?yàn)楸粯?biāo)記為117和118的宏塊在包含宏塊119的 熵片之外。然而,當(dāng)重構(gòu)宏塊119時(shí),這些宏塊117、118是可用的。在本發(fā)明的一些實(shí)施例中,編碼器可以確定是否將重構(gòu)片劃分成熵片,并且編碼 器可以在比特流中以信號通知該決定。在本發(fā)明的一些實(shí)施例中,信號可以包括熵片標(biāo) 記(第一熵片中的標(biāo)記可被稱為第一標(biāo)記),在本發(fā)明的一些實(shí)施例中其可以被表示為 "entropy_slice_flag,,。可以結(jié)合圖6來描述本發(fā)明的一些解碼器實(shí)施例。在這些實(shí)施例中,可以檢查熵 片標(biāo)記(S130),并且如果熵片標(biāo)記指示沒有與畫面或重構(gòu)片相關(guān)聯(lián)的熵片(步驟S130中的 否),那么可以將首部解析為規(guī)則片首部(S134)??梢灾刂渺亟獯a器狀態(tài)(S136),并且可以 定義針對熵解碼和重構(gòu)的相鄰信息(S138)。然后,可以對片數(shù)據(jù)進(jìn)行熵解碼(S140),并且 可以對片進(jìn)行重構(gòu)(S142)。如果熵片標(biāo)記指示存在與畫面相關(guān)聯(lián)的熵片(步驟S130中的 是),那么可以將首部解析為熵片首部(S148)。可以重置熵解碼器狀態(tài)(S150),可以定義針 對熵解碼的相鄰信息(S152),并且可以對熵片數(shù)據(jù)進(jìn)行熵解碼(S154)。然后,可以定義針 對重構(gòu)的相鄰信息(S156),并且可以對片進(jìn)行重構(gòu)(S142)。在步驟S142中的片重構(gòu)之后, 可以檢查下一片或畫面??梢越Y(jié)合圖7來描述本發(fā)明的一些備選的解碼器實(shí)施例。在這些實(shí)施例中,解碼 器能夠進(jìn)行并行解碼,并且可以定義其自身的并行程度,例如,考慮具有對N個(gè)熵片進(jìn)行并 行解碼的能力的解碼器。解碼器可識別N個(gè)熵片(S170)。在本發(fā)明的一些實(shí)施例中,如果 在當(dāng)前畫面或重構(gòu)片中有少于N個(gè)熵片是可用的,解碼器可以對來自后續(xù)畫面或者重構(gòu)片 中的熵片(如果這些熵片可用的話)進(jìn)行解碼。在備選實(shí)施例中,解碼器可以等待,直到在 對后續(xù)圖片或重構(gòu)片的部分進(jìn)行解碼之前完全處理完當(dāng)前的圖片或重構(gòu)片。在步驟S170 中識別了至多N個(gè)熵片后,可以對所識別的熵片中的每一個(gè)熵片獨(dú)立地進(jìn)行熵解碼??梢?對第一熵片進(jìn)行解碼(S172-S176)。對第一熵片的解碼可以包括重置解碼器狀態(tài)(S172)。 在包括CABAC熵解碼的一些實(shí)施例中,可以重置CABAC狀態(tài)??梢远x針對對第一熵片進(jìn) 行熵解碼的相鄰信息(S174),并且可以對第一熵片數(shù)據(jù)進(jìn)行解碼(S176)??梢葬槍χ炼郚 個(gè)熵片中的每一個(gè)執(zhí)行這些步驟(針對第N個(gè)熵片,執(zhí)行S178-S182)。在本發(fā)明的一些實(shí) 施例中,當(dāng)對所有的熵片進(jìn)行熵解碼時(shí),解碼器可以重構(gòu)熵片(S184)。在本發(fā)明備選的實(shí)施 例中,在對一個(gè)或更多個(gè)熵片進(jìn)行解碼后,解碼器在步驟S184中開始重構(gòu)。在本發(fā)明的一些實(shí)施例中,當(dāng)存在多于N個(gè)的熵片時(shí),解碼線程可以在完成熵片 的熵解碼時(shí)開始對下一熵片進(jìn)行熵解碼。從而,當(dāng)線程完成對低復(fù)雜度熵片的熵解碼時(shí),線 程可以在不等待另一線程完成其解碼的情況下開始對另外的熵片進(jìn)行解碼。
在可以適應(yīng)現(xiàn)有標(biāo)準(zhǔn)或方法的本發(fā)明的一些實(shí)施例中,根據(jù)現(xiàn)有標(biāo)準(zhǔn)或方法,熵 片可能共享規(guī)則片的大多數(shù)片屬性。因此,熵片可能需要小的首部。在本發(fā)明的一些實(shí)施 例中,熵片首部可以使解碼器能夠識別熵片的開始,并開始熵解碼。在一些實(shí)施例中,在畫 面或重構(gòu)片的起始處,熵片首部可以是規(guī)則首部或重構(gòu)片首部。在包括H. 264/AVC編解碼器的本發(fā)明的一些實(shí)施例中,可以通過將新的比特 “entr0py_SliCe_flag”添加至現(xiàn)有片首部來以信號通知熵片。表1列出了根據(jù)本發(fā)明的實(shí) 施例的用于熵片首部的語法,其中,C指示類別,描述符U(I)、ue(v)指示一些固定長度或可 變長度的編碼方法?!癴irSt_mb_in_SliCe”指定了與熵片首部相關(guān)聯(lián)的熵片中第一宏塊的地址。在一 些實(shí)施例中,熵片可以包括宏塊的序列?!癱abacjnitjdc”指定了用于確定在上下文模式的初始化處理中使用的初始化
表的索引。
權(quán)利要求
一種用于對視頻比特流進(jìn)行解碼的方法,所述方法包括a)對視頻比特流的第一部分進(jìn)行熵解碼,其中,所述視頻比特流的所述第一部分與視頻幀相關(guān)聯(lián),從而生成解碼數(shù)據(jù)的第一部分;b)對所述視頻比特流的第二部分進(jìn)行熵解碼,其中,所述視頻比特流的所述第二部分與所述視頻幀相關(guān)聯(lián),從而生成解碼數(shù)據(jù)的第二部分,其中,對所述視頻比特流的所述第二部分的所述熵解碼獨(dú)立于對所述視頻比特流的所述第一部分的所述熵解碼,以及c)使用解碼數(shù)據(jù)的所述第一部分和解碼數(shù)據(jù)的所述第二部分來重構(gòu)與所述視頻比特流相關(guān)聯(lián)的所述視頻幀的第一部分。
2.根據(jù)權(quán)利要求1所述的方法,還包括a)對解碼數(shù)據(jù)的所述第一部分進(jìn)行解復(fù)用;以及b)對解碼數(shù)據(jù)的所述第二部分進(jìn)行解復(fù)用。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述視頻比特流包括第一標(biāo)記,用于指示所述 視頻比特流是否包括多個(gè)熵片。
4.根據(jù)權(quán)利要求1所述的方法,其中a)對所述視頻比特流的所述第一部分進(jìn)行所述熵解碼的步驟包括i)初始化第一組上下文模型;以及 )在對所述視頻比特流的所述第一部分進(jìn)行所述熵解碼期間,更新所述第一組上下 文模型;并且b)對所述視頻比特流的所述第二部分進(jìn)行所述熵解碼的步驟包括i)初始化第二組上下文模型;以及 )在對所述視頻比特流的所述第二部分進(jìn)行所述熵解碼期間,更新所述第二組上下 文模型。
5.根據(jù)權(quán)利要求1所述的方法,還包括解析所述視頻比特流,以識別所述視頻比特流 的所述第一部分和所述視頻比特流的所述第二部分。
6.根據(jù)權(quán)利要求5所述的方法,其中,所述視頻比特流的所述第一部分是通過第一首 部來識別的。
7.根據(jù)權(quán)利要求1所述的方法,其中,對所述視頻幀的所述第一部分進(jìn)行所述重構(gòu)的 步驟包括a)使用解碼數(shù)據(jù)的所述第一部分來產(chǎn)生第一重構(gòu)宏塊;以及b)使用所述第一重構(gòu)宏塊和解碼數(shù)據(jù)的所述第二部分來產(chǎn)生第二重構(gòu)宏塊。
8.一種用于對視頻序列中的視頻幀進(jìn)行解碼的方法,所述方法包括a)接收比特流;b)識別所述比特流中的重構(gòu)片;c)識別與所述比特流中的所述重構(gòu)片相關(guān)聯(lián)的多個(gè)熵片;d)對與所述重構(gòu)片相關(guān)聯(lián)的所述多個(gè)熵片中的每一個(gè)進(jìn)行熵解碼,從而生成多個(gè)熵解 碼熵片;以及e)使用所述多個(gè)熵解碼熵片來重構(gòu)與所述重構(gòu)片相關(guān)聯(lián)的視頻幀的一部分。
9.根據(jù)權(quán)利要求8所述的方法,其中,所述重構(gòu)片與所述視頻幀的整體相對應(yīng)。
10.根據(jù)權(quán)利要求8所述的方法,其中,對與所述重構(gòu)片相關(guān)聯(lián)的所述多個(gè)熵片中的第一熵片進(jìn)行熵解碼的步驟包括a)初始化多個(gè)上下文模型;以及b)在對與所述重構(gòu)片相關(guān)聯(lián)的所述多個(gè)熵片中的所述第一熵片進(jìn)行所述熵解碼期間, 更新所述多個(gè)上下文模型。
11.根據(jù)權(quán)利要求10所述的方法,其中,所述第一熵片是通過第一首部來識別的。
12.根據(jù)權(quán)利要求8所述的方法,其中,對與所述重構(gòu)片相關(guān)聯(lián)的所述多個(gè)熵片進(jìn)行所 述識別的步驟包括解析所述比特流,以識別與所述重構(gòu)片相關(guān)聯(lián)的所述多個(gè)熵片中的每 個(gè)熵片。
13.根據(jù)權(quán)利要求8所述的方法,其中,對與所述重構(gòu)片相關(guān)聯(lián)的所述視頻幀的所述一 部分進(jìn)行所述重構(gòu)的步驟包括a)使用來自所述多個(gè)熵解碼熵片中的第一熵解碼熵片來產(chǎn)生第一重構(gòu)宏塊;以及 a)使用所述第一重構(gòu)宏塊和來自所述多個(gè)熵解碼熵片中的第二熵解碼熵片來產(chǎn)生第 二重構(gòu)宏塊。
14.一種用于對視頻序列中的視頻幀進(jìn)行編碼的方法,所述方法包括a)將視頻序列中的第一幀劃分成至少一個(gè)重構(gòu)片,從而生成第一重構(gòu)片;以及b)將所述第一重構(gòu)片劃分成多個(gè)熵片。
15.根據(jù)權(quán)利要求14所述的方法,其中a)所述多個(gè)熵片中的第一熵片與所述第一幀的亮度分量殘差數(shù)據(jù)相關(guān)聯(lián);b)所述多個(gè)熵片中的第二熵片與所述第一幀的第一色度分量殘差數(shù)據(jù)相關(guān)聯(lián);以及c)所述多個(gè)熵片中的第三熵片與所述第一幀的第二色度分量殘差數(shù)據(jù)相關(guān)聯(lián)。
16.根據(jù)權(quán)利要求14所述的方法,其中a)所述多個(gè)熵片中的第一組熵片與所述第一幀的亮度分量殘差數(shù)據(jù)相關(guān)聯(lián);b)所述多個(gè)熵片中的第二組熵片與所述第一幀的第一色度分量殘差數(shù)據(jù)相關(guān)聯(lián);以及c)所述多個(gè)熵片中的第三組熵片與所述第一幀的第二色度分量殘差數(shù)據(jù)相關(guān)聯(lián)。
17.根據(jù)權(quán)利要求14所述的方法,還包括針對所述多個(gè)熵片中的第一熵片,對于對所 述第一熵片中的塊進(jìn)行熵解碼的相鄰可用性,將所述多個(gè)熵片中的所述剩余熵片中的所有 數(shù)據(jù)標(biāo)記為不可用。
18.根據(jù)權(quán)利要求14所述的方法,還包括將熵片首部與所述多個(gè)熵片中的每一個(gè)相關(guān)聯(lián)。
19.根據(jù)權(quán)利要求14所述的方法,還包括將熵片標(biāo)記與使用所述多個(gè)熵片產(chǎn)生的比 特流相關(guān)聯(lián)。
20.一種用于產(chǎn)生用于并行解碼的視頻比特流的方法,所述方法包括a)接收第一視頻比特流;b)識別所述視頻比特流中的重構(gòu)片;c)對來自所述重構(gòu)片的多個(gè)符號進(jìn)行熵解碼,從而生成與所述重構(gòu)片相關(guān)聯(lián)的熵解碼 數(shù)據(jù);d)將與所述重構(gòu)片相關(guān)聯(lián)的所述熵解碼數(shù)據(jù)劃分成與所述重構(gòu)片相關(guān)聯(lián)的多個(gè)熵片;e)對所述多個(gè)熵片中的每一個(gè)熵片的熵解碼數(shù)據(jù)獨(dú)立地進(jìn)行熵編碼,從而生成多個(gè)熵 編碼熵片;以及f)產(chǎn)生包括所述多個(gè)熵編碼熵片的第二視頻比特流。
21.根據(jù)權(quán)利要求20所述的方法,還包括將首部與所述多個(gè)熵編碼熵片中的每一個(gè) 熵編碼熵片相關(guān)聯(lián)。
22.根據(jù)權(quán)利要求20所述的方法,還包括將熵片標(biāo)記與所述第二視頻比特流相關(guān)聯(lián)。
23.根據(jù)權(quán)利要求20所述的方法,還包括對與所述重構(gòu)片相關(guān)聯(lián)的所述熵解碼數(shù)據(jù) 進(jìn)行解復(fù)用。
24.根據(jù)權(quán)利要求20所述的方法,其中,針對每一熵片,對所述多個(gè)熵片中的每一個(gè)熵 片的熵解碼數(shù)據(jù)獨(dú)立地進(jìn)行熵編碼的步驟包括a)初始化多個(gè)上下文模型;以及b)在所述熵編碼期間更新所述多個(gè)上下文模型。
25.一種用于對視頻比特流進(jìn)行解碼的設(shè)備,所述設(shè)備包括用于對視頻比特流的第一部分進(jìn)行熵解碼的裝置,其中,所述視頻比特流的所述第一 部分與視頻幀相關(guān)聯(lián),從而生成解碼數(shù)據(jù)的第一部分;用于對所述視頻比特流的第二部分進(jìn)行熵解碼的裝置,其中,所述視頻比特流的所述 第二部分與所述視頻幀相關(guān)聯(lián),從而生成解碼數(shù)據(jù)的第二部分,其中,對所述視頻比特流的 所述第二部分的所述熵解碼獨(dú)立于對所述視頻比特流的所述第一部分的所述熵解碼,以及用于使用解碼數(shù)據(jù)的所述第一部分和解碼數(shù)據(jù)的所述第二部分來重構(gòu)與所述視頻比 特流相關(guān)聯(lián)的所述視頻幀的第一部分的裝置。
26.一種用于產(chǎn)生用于并行解碼的視頻流的設(shè)備,所述設(shè)備包括a)用于接收第一視頻比特流的裝置;b)用于識別所述視頻比特流中的重構(gòu)片的裝置;c)用于對來自所述重構(gòu)片的多個(gè)符號進(jìn)行熵解碼,從而生成與所述重構(gòu)片相關(guān)聯(lián)的熵 解碼數(shù)據(jù)的裝置;d)用于將與所述重構(gòu)片相關(guān)聯(lián)的所述熵解碼數(shù)據(jù)劃分成與所述重構(gòu)片相關(guān)聯(lián)的多個(gè) 熵片的裝置;e)用于對所述多個(gè)熵片中的每一個(gè)熵片的熵解碼數(shù)據(jù)獨(dú)立地進(jìn)行熵編碼,從而生成多 個(gè)熵編碼熵片的裝置;以及f)用于產(chǎn)生包括所述多個(gè)熵編碼熵片的第二視頻比特流的裝置。
全文摘要
公開了一種用于對視頻比特流進(jìn)行解碼的方法。該方法包括對視頻比特流(52)的第一部分(112-1)進(jìn)行熵解碼,其中,視頻比特流的第一部分(112-1)與視頻幀(110)相關(guān)聯(lián),從而生成解碼數(shù)據(jù)的第一部分(112-1);對視頻比特流(52)的第二部分(112-2)進(jìn)行熵解碼,其中,視頻比特流(52)的第二部分(112-2)與視頻幀(110)相關(guān)聯(lián),從而生成解碼數(shù)據(jù)的第二部分(112-2),其中,對視頻比特流(52)的第二部分(112-2)的熵解碼獨(dú)立于對視頻比特流(52)的第一部分(112-1)的熵解碼;以及使用解碼數(shù)據(jù)的第一部分(112-1)和解碼數(shù)據(jù)的第二部分(112-2)來重構(gòu)與視頻比特流(52)相關(guān)聯(lián)的視頻幀(110)的第一部分(112-1)。
文檔編號H04N7/26GK101981934SQ200980110928
公開日2011年2月23日 申請日期2009年3月25日 優(yōu)先權(quán)日2008年3月28日
發(fā)明者克里斯多佛·A·西蓋, 趙杰, 路易斯·J·克羅夫斯基 申請人:夏普株式會社