亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于解碼視頻的方法與流程

文檔序號:11778936閱讀:382來源:國知局
用于解碼視頻的方法與流程
本申請是于2014年1月28日進入中國國家階段的、pct申請?zhí)枮閜ct/jp2012/069924、國際申請日為2012年7月30日、中國申請?zhí)枮?01280037854.6、發(fā)明名稱為“用于解碼視頻的方法”的申請的分案申請。本發(fā)明涉及用于解碼視頻的方法。
背景技術
:相關申請的交叉引用:本申請是于2011年3月10日提交的美國專利申請no.13/045,442的部分連續(xù)案,該美國專利申請是于2011年3月10日提交的美國專利申請no.13/045,425的部分連續(xù)案。數(shù)字視頻通常被表示為一系列圖像或幀,每個圖像或幀包含像素陣列。每個像素包括諸如強度和/或顏色信息的信息。在很多情況下,每個像素被表示為三種顏色的集合,每種顏色由八位顏色值定義。例如h.264/mpeg-4avc(h.264/avc)的視頻編碼技術通常以增加復雜性為代價提供較高編碼效率。對于視頻編碼技術的增加圖像質(zhì)量要求和增加圖像分辨率要求也增加編碼復雜性。適用于并行解碼的視頻解碼器可以改進解碼處理的速度并且降低內(nèi)存需求;適用于并行編碼的視頻編碼器可以改進編碼處理的速度并且降低內(nèi)存需求。h.264/mpeg-4avc[itu-tvceg和iso/iecmpeg的聯(lián)合視頻組,“h.264:advancedvideocodingforgenericaudiovisualservices,”itu-trec.h.264和iso/iec14496-10(mpeg4-part10),2007年11月]以及類似地jct-vc,[“drafttestmodelunderconsideration”,jctvc-a205,jct-vc會議,德累斯頓,2010年4月(jct-vc)],這兩者的全部內(nèi)容通過引用的方式包含在本申請中,是視頻編解碼器(編碼器和/解碼器)規(guī)范,其使用宏塊預測繼之以剩余編碼,以減少視頻序列中的時間和空間冗余,以實現(xiàn)壓縮效率。技術實現(xiàn)要素:本發(fā)明的一個實施例披露了一種用于解碼視頻的方法,包括:(a)接收包括至少一個片(slice)和至少一個瓦片(tile)的、比特流中的所述視頻的幀,其中,所述至少一個片中的每個的特征在于,其獨立于其他所述至少一個片被解碼,其中,所述至少一個瓦片中的每個的特征在于,其是所述幀的矩形區(qū)域并且具有以光柵掃描順序布置的用于所述解碼的編碼單元,其中,所述幀的所述至少一個瓦片以所述幀的光柵掃描順序被共同布置;(b)接收填補所述比特流以直到達到字節(jié)對齊的位置的、所述比特流中的字節(jié)對齊數(shù)據(jù);(c)所述位置是所述瓦片中的一個的開始;(d)所述字節(jié)對齊數(shù)據(jù)不被熵解碼。本發(fā)明的另一個實施例披露了一種用于解碼視頻的方法,包括步驟:接收包括至少一個片和多個瓦片的、比特流中的所述視頻的幀,其中,所述至少一個片中的每個的特征在于,其獨立于其他所述至少一個片被解碼,其中,所述多個瓦片中的每個的特征在于,其是所述幀的矩形區(qū)域并且具有以光柵掃描順序布置的用于所述解碼的編碼單元,其中,所述幀的所述多個所述瓦片以所述幀的光柵掃描順序被共同布置;其中,所述瓦片中的每個是關于彼此字節(jié)對齊的,并且其中,填補在所述瓦片之間的字節(jié)對齊數(shù)據(jù)不被熵解碼。結(jié)合附圖,當考慮本發(fā)明的以下詳細說明時,將更容易理解本發(fā)明的以上和其他目標、特征以及優(yōu)點。附圖說明圖1示出h.264/avc視頻編碼器。圖2示出h.264/avc視頻解碼器。圖3示出示范性片結(jié)構。圖4示出另一個示范性片結(jié)構。圖5示出熵片的重構。圖6示出熵片的并行重構。圖7示出具有一個片和九個瓦片的幀。圖8示出具有三個片和三個瓦片的幀。圖9a和圖9b示出用于瓦片的熵選擇。圖10a和圖10b示出用于瓦片的另一個熵選擇。圖11示出用于瓦片的又一個熵選擇。圖12a和圖12b示出示范性語法。圖13示出用于瓦片開始的顯式信號。圖14示出用于瓦片開始的隱式信號。圖15示出輕量瓦片頭的集合。圖16示出片參數(shù)索引集的集合。圖17示出瓦片標記的結(jié)束。圖18示出顯式字節(jié)對齊技術。圖19示出隱式字節(jié)對齊技術。具體實施方式雖然在此描述的實施例可以采納使用熵編碼/解碼的任何視頻編碼器/解碼器(編解碼器),但是僅用于說明目的,關于h.264/avc編碼器和h.264/avc解碼器描述示范性實施例。很多視頻編碼技術以基于塊的混合視頻編碼方法為基礎,其中,源編碼技術是圖片間(還被稱作幀間)預測、圖片內(nèi)(還被稱作幀內(nèi))預測以及預測剩余的變換編碼的混合。幀間預測可以采用時間冗余,并且?guī)瑑?nèi)和預測剩余的變換編碼可以使用空間冗余。圖1示出示范性h.264/avc視頻編碼器2的框圖??梢猿尸F(xiàn)輸入圖片4(還被稱作幀)以用于編碼??梢援a(chǎn)生預測信號6和剩余信號8,其中,預測信號6可以基于幀間預測10或幀內(nèi)預測12。可以由運動補償部14使用一個或多個所存儲的參考圖片16(還被稱作參考幀)和在輸入幀4和參考幀16之間處理的運動估計部18確定的運動信息19來確定幀間預測10??梢允褂媒獯a信號22,由幀內(nèi)預測部20確定幀內(nèi)預測12??梢酝ㄟ^從預測信號6減去輸入幀4,確定剩余信號8。通過變換/縮放/量化部24變換、縮放和量化剩余信號8,由此產(chǎn)生量化后的變換系數(shù)26。可以通過將預測信號6添加到由逆(變換/縮放/量化)部30使用量化后的變換系數(shù)26生成的信號28,生成解碼信號22。運動信息19和量化后的變換系數(shù)26可以通過熵編碼部32被熵編碼并且寫入到壓縮視頻比特流34??梢允褂弥貥嫷念A濾波信號22,通過去塊濾波器36在編碼器2處生成輸出圖像區(qū)域38,例如參考幀的一部分。該輸出幀可以被用作用于對隨后輸入圖片編碼的參考幀。圖2示出示范性h.264/avc視頻解碼器50的框圖??梢猿尸F(xiàn)輸入信號52(還被稱作比特流)以用于解碼??梢酝ㄟ^熵解碼部54熵解碼所接收的符號,由此產(chǎn)生運動信息56、幀內(nèi)預測信息57、以及量化縮放后的變化系數(shù)58。運動信息56可以通過運動補償部60與可能駐留在幀存儲器64中的一個或多個參考幀84的一部分相結(jié)合,并且可以生成幀間預測68??梢酝ㄟ^逆(變換/縮放/量化)部62逆量化、縮放和逆變換量化縮放后的變換系數(shù)58,由此產(chǎn)生解碼后的剩余信號70??梢詫⑹S嘈盘柼砑拥筋A測信號78:幀間預測信號68或者幀內(nèi)預測信號76。可以根據(jù)當前幀72中的先前解碼的信息由幀內(nèi)預測部74預測幀內(nèi)預測信號76。可以通過去塊濾波器80濾波組合信號72,并且可以將濾波后的信號82寫入到幀存儲器64。在h.264/avc中,輸入圖片可以被劃分為固定尺寸的宏塊,其中,每個宏塊覆蓋亮度分量的16×16采樣以及兩個色度分量中的每個的8×8采樣的矩形圖片區(qū)域。h.264/avc標準的解碼處理被指定用于作為宏塊的處理單元。熵解碼器54解析壓縮視頻比特流52的語法元素,并且對它們解多路復用。h.264/avc指定熵解碼的兩種可選方法:基于利用基于上下文的自適應變長編碼的低復雜性技術,稱為cavlc,以及基于上下文的自適應二進制算術編碼的計算要求更高的技術,稱為cabac。在這樣的兩種熵解碼技術中,當前符號的解碼可能依賴先前正確解碼的符號和自適應更新的上下文模型。另外,可以將例如預測數(shù)據(jù)信息、剩余數(shù)據(jù)信息和不同色彩平面的不同數(shù)據(jù)信息多路復用在一起。解多路復用可以等待,直到元素被熵解碼為止。在熵解碼之后,可以通過獲得以下來重構宏塊:經(jīng)過逆量化和逆變換的剩余信號、以及為幀內(nèi)預測信號或幀間預測信號的預測信號??梢酝ㄟ^將去塊濾波器應用至解碼后的宏塊,來減少塊失真。通常,在輸入信號被熵解碼之后,開始這樣的隨后處理,由此導致熵解碼成為解碼中的潛在瓶頸。類似地,在使用可選預測機制的編解碼器中,例如,h.264/avc中的層間預測或者其他可縮放編解碼器中的層間預測,在解碼器處,在處理之前,熵解碼可能是必須的,由此使得熵解碼是潛在瓶頸。包括多個宏塊的輸入圖片可以被劃分為一個或多個片。假設在編碼器和解碼器處使用的參考圖片相同并且去塊濾波不使用跨過片邊界的信息,在不使用來自其他片的數(shù)據(jù)的情況下,可以適當?shù)亟獯a片表示的圖片的區(qū)域中的采樣的值。從而,用于片的熵解碼和宏塊重構不取決于其他片。特別是,熵編碼狀態(tài)可以在每個片的開始被重置。當定義鄰域可用性時,對于熵解碼和重構,其他片中的數(shù)據(jù)可以被標記為不可用??梢圆⑿械仂亟獯a和重構片。優(yōu)選地,不允許幀內(nèi)預測和運動矢量預測跨過片的邊界。相反地,去塊濾波可以使用跨過片邊界的信息。圖3示出在水平方向上包括十一個宏塊和并且在垂直方向上包括九個宏塊(標記為91-99的九個示范性宏塊)的示范性視頻圖片90。圖3示出三個示范性片:表示為“片#0”100的第一片、表示為“片#1”101的第二片、以及表示為“片#2”102的第三片。h.264/avc解碼器可以并行地解碼和重構三個片100、101、102。每個片可以以順序的方式按照掃描線順序被發(fā)送。在開始用于每片的解碼/重構處理時,上下文模型被初始化或者重置,并且對于熵解碼和宏塊重構,其他片中的宏塊被標記為不可用。從而,對于在“片#1”中的宏塊,例如,被標記為93的宏塊,在“片#0”中的宏塊(例如,被標記為91和92的宏塊)可能不被用于上下文模型選擇或重構。然而,對于“片#1”中的宏塊,例如被標記為95的宏塊,“片#1”中的其他宏塊(例如,標記為93和94的宏塊)將被用于上下文模型選擇或重構。從而,在一個片內(nèi)連續(xù)地進行熵解碼和宏塊重構。除了使用靈活宏塊排序(fmo)定義片之外,按照光柵掃描的順序處理片內(nèi)的宏塊。靈活宏塊排序定義了片組,以修改圖片如何被劃分為片。通過圖片參數(shù)集的內(nèi)容和片頭中的附加信息而用信號發(fā)送的宏塊到片組映射來定義片組中的宏塊。宏塊到片組映射由用于圖片中的每個宏塊的片組標識號構成。片組標識號指定相關聯(lián)宏塊屬于哪個片組。每個片組可以被劃分為一個或多個片,其中,片是在特定片組的宏塊集合內(nèi)按照光柵掃描的順序處理的相同片組內(nèi)的一系列宏塊。在片組內(nèi)連續(xù)地進行熵解碼和宏塊重構。圖4示出分為三個片組的示范性宏塊分配:表示為“片組#0”103的第一片組、表示為“片組#1”104的第二片組、以及表示為“片組#2”105的第三片組。這些片組103、104、105可以分別與圖片90中的兩個前景區(qū)域和一個背景區(qū)域相關聯(lián)??梢詫D片劃分為一個或多個重構片,其中在如下方面重構片可以是自包含的:假設所使用的參考圖片在編碼器和解碼器處相同,在可以在不使用來自其他重構片的數(shù)據(jù)的情況下,可以正確地重構在重構片表示的圖片的區(qū)域中的采樣的值。在重構片內(nèi)的所有重構宏塊在用于重構的鄰域定義中可用。重構片可以被劃分為多于一個熵片,其中,在不使用來自其他熵片的數(shù)據(jù)的情況下,可以正確地熵解碼在熵片表示的圖片的區(qū)域中的符號值方面,熵片可以是自包含的。熵編碼狀態(tài)可以在每個熵片的解碼開始時被重置。其他熵片中的數(shù)據(jù)可以在定義鄰域可用性時對于熵解碼被標記為不可用。在當前塊的上下文模型選擇中,可能不使用其他熵片中的宏塊??梢詢H在熵片內(nèi)更新上下文模型。從而,與熵片相關聯(lián)的每個熵解碼器可以保持其自己的上下文模型的集合。編碼器可以確定是否將重構片劃分為熵片,并且編碼器可以在比特流中用信號發(fā)送決定。信號可以包括熵片標記,其可以表示為“entropy_slice_flag”。參考圖5,可以檢驗130熵片標記,并且如果熵片標記指示不存在132與圖片相關聯(lián)的熵片或者重構片,則頭可以作為常規(guī)片頭被解析134。熵解碼器狀態(tài)可以被重置136,并且可以定義138用于熵解碼和重構的鄰域信息。然后,熵解碼140片數(shù)據(jù),并且可以重構142片。如果熵片標記指示存在146與圖片相關聯(lián)的熵片或者重構片,然后頭可以作為熵片頭被解析148。熵解碼器狀態(tài)可以被重置150,可以定義152用于熵解碼的鄰域信息,并且可以熵解碼154熵片數(shù)據(jù)。然后,可以定義156用于重構的鄰域信息,并且可以重構142片。在片重構142之后,可以檢驗158下一個片或圖片。參考圖6,例如,考慮包括并行解碼n個熵片的能力的解碼器,解碼器能夠并行解碼并且可以定義其自己的并行度。解碼器可以識別170n個熵片。如果在當前圖片或重構片中少于n個熵片可用,如果隨后圖片或重構片可用,則解碼器可以從隨后圖片或重構片解碼熵片。可替換地,在對隨后圖片或重構片的多個部分解碼之前,解碼器可以等待,直到當前圖片或重構片完全被處理為止。在識別170多達n個熵片之后,可以獨立地熵解碼每個所識別的熵片??梢詫Φ谝混仄獯a172-176。第一熵片的解碼172-176可以包括重置解碼器狀態(tài)172。如果使用cabac熵解碼,則可以重置cabac狀態(tài)??梢远x174用于第一熵片的熵解碼的鄰域信息,并且對第一熵片數(shù)據(jù)解碼176。對于多達n個熵片中的每個,可以執(zhí)行這些步驟(用于第n個熵片的178-182)。當對所有或一部分熵片熵解碼時,解碼器可以重構184熵片。當存在多于n個熵片時,在完成熵片的熵解碼時,解碼線程可以開始對下一個熵片熵解碼。從而,當線程結(jié)束對低復雜性熵片熵解碼時,線程可以在不等待其他線程結(jié)束它們的解碼的情況下,開始對附加熵片解碼。如圖3中所示的片的布置可以限于以圖像掃描順序(還被稱為光柵掃描或光柵掃描順序)定義在一對宏塊之間的每個片。該掃描順序片的布置在計算上是有效的,但是不傾向于適于高效并行編碼和解碼。而且,該片掃描順序定義也不傾向于將很可能具有非常適用于編碼效率的共有特征的圖像的較小局部化區(qū)域分組到一起。如圖4中所示的片的布置在其布置上非常靈活,但是不傾向于使其本身適于高效率并行編碼或解碼。而且,在解碼器中實現(xiàn)該片的非常靈活定義在計算上是復雜的。參考圖7,瓦片技術將圖像劃分為一組矩形(包括正方形)區(qū)域。以光柵掃描順序?qū)γ總€瓦片內(nèi)的宏塊(例如,最大編碼單元)編碼和解碼。同樣以光柵掃描順序?qū)ν咂牟贾镁幋a和解碼。從而,可以存在任何合適數(shù)量的列邊界(例如,0或更大),并且可以存在任何合適數(shù)量的行邊界(例如,0或更大)。從而,幀可以定義一個或多個片,諸如,圖7中所示的一個片。在一些實施例中,位于不同瓦片中的宏塊對于幀間預測、運動補償、熵編碼上下文選擇或依賴鄰近宏塊信息的其他處理不可用。參考圖8,示出將圖像劃分為一組三個矩形列的瓦片技術。以光柵掃描順序?qū)γ總€瓦片內(nèi)的宏塊(例如,最大編碼單元)編碼和解碼。同樣以光柵掃描順序?qū)ν咂幋a和解碼。可以按照瓦片的掃描順序定義一個或多個片。每個片獨立可解碼。例如,片1可以被定義為包括宏塊1-9,片2可以被定義為包括宏塊10-28,并且片3可以被定義為包括跨越三個瓦片的宏塊29-126。瓦片的使用通過在幀的更局部化區(qū)域中處理數(shù)據(jù)而促進了編碼效率。在一個實施例中,在每個瓦片的開始處初始化熵編碼和解碼處理。在編碼器處,該初始化可以包括將熵編碼器中的剩余信息寫入比特流的處理,被稱為沖洗(flushing)的處理,用附加數(shù)據(jù)填充比特流以達到比特流位置預定義組中的一個,以及將熵編碼器設置為預定義或者編碼器和解碼器已知的已知狀態(tài)。經(jīng)常地,已知狀態(tài)為值的矩陣的形式。另外,預定義比特流位置可以是與多個位對齊的位置,例如,字節(jié)對齊。在解碼器處,該初始化處理可以包括將熵解碼器設置為編碼器和解碼器均已知的已知狀態(tài),并且忽略比特流中的位,直到從比特流位置預定義組讀取為止的處理。在一些實施例中,多個已知狀態(tài)對于編碼器和解碼器可用,并且可以用于初始化熵編碼和/或解碼處理。傳統(tǒng)上,將被用于初始化的已知狀態(tài)被在片頭中通過熵初始化指示符值用信號發(fā)送。通過圖7和圖8中所示的瓦片技術,瓦片和片相互不對齊。從而,由于瓦片和片不對齊,傳統(tǒng)上不存在被發(fā)送用于瓦片的熵初始化指示符值,該值不包含與片中的第一宏塊定位在同一地點的為光柵掃描順序的第一宏塊。例如參考圖7,使用在片頭中發(fā)送的熵初始化指示符值初始化宏塊1,但是不存在用于下一個瓦片的宏塊16的類似熵初始化指示符值。對于用于單個片(具有用于宏塊1的片頭)的相應瓦片的宏塊34、43、63、87、99、109和121,通常不給出類似熵初始化指示符信息。參考圖8,以用于三個片的類似方式,熵初始化指示符值被提供在用于片1的宏塊1的片頭中、用于片2的宏塊10的片頭中以及在用于片3的宏塊29的片頭中。然而,以類似于圖7的方式,缺少用于中心瓦片(從宏塊37開始)和右手瓦片(從宏塊100開始)的熵初始化指示符值。在沒有用于中間和右手瓦片的熵初始化指示符值的情況下,以并行方式并且通過高編碼效率,有效地編碼和解碼瓦片的宏塊是有問題的。對于使用幀中的一個或多個瓦片和一個或多個片的系統(tǒng),優(yōu)選地與瓦片的第一宏塊(例如,最大編碼單元)一起提供熵初始化指示符值。例如,與圖7的宏塊16一起,提供熵初始化指示符值,以顯式地選擇熵初始化信息。顯式確定可以使用任何合適技術,諸如例如,指示應該使用諸如在先前片頭中的先前熵初始化指示符值,或者另外發(fā)送與各個宏塊/瓦片相關聯(lián)的熵初始化指示符值。以此方式,雖然片可以包括包括熵索引值的頭,但是瓦片中的第一宏塊可以同樣包括熵初始化指示符值。參考圖9a,該附加信息的編碼可以是如下:if(num_column_minus1>=0&&num_rows_minus1>=0)thentile_cabac_init_idc_present_flagnum_column_minus1>=0確定瓦片中的列數(shù)是否不為0,并且num_rows_minus1>=0確定瓦片中的行數(shù)是否不為0,兩者均有效地確定在編碼和解碼中是否使用瓦片。如果使用瓦片,則tile_cabac_init_idc_present_flag是指示如何將熵初始化指示符值從編碼器傳送至解碼器的標記。例如,如果將標記設置為第一值,則可以選擇第一選項,諸如使用先前傳送的熵初始化指示符值。作為特定實例,該先前傳送的熵初始化指示符值可以等于在對應于包含瓦片的第一宏塊的片的片頭中發(fā)送的熵初始化指示符值。例如,如果將標記設置為第二值,則可以選擇第二選項,諸如在用于相應瓦片的比特流中提供熵初始化指示符值。作為特定實例,在對應于瓦片的第一宏塊的數(shù)據(jù)中提供熵初始化指示符值。用于用信號發(fā)送指示如何將熵初始化指示符值從編碼器發(fā)送至解碼器的標記的語法可以是如下:參考圖9b,可以使用其他技術來確定是否使用瓦片,諸如,在序列參數(shù)集(例如,關于一系列幀的信息)和/或圖片參數(shù)集(例如,關于特定幀的信息)中包括標記。語法可以如下:tile_enable_flag確定在當前圖片中是否使用瓦片。參考圖10a和圖10b,提供用于瓦片的合適熵初始化指示符值信息的技術可以如下。首先,核查宏塊(例如,編碼單元)是否是瓦片中的第一宏塊。從而,該技術確定可以包括熵初始化指示符值的瓦片的第一宏塊。參考圖7,這是指宏塊1、16、34、43、63、87、99、109和121。參考圖8,這是指宏塊1、37和100。第二,核查瓦片的第一宏塊(例如,編碼單元)是否不是片的第一宏塊(例如,編碼單元)。從而,該技術識別片內(nèi)的附加瓦片。參考圖7,這是指宏塊16、34、43、63、87、99、109和121。參考圖8,這是指宏塊37和100。第三,核查tile_cabac_init_idc_flag是否等于第一值并且是否啟動瓦片。在一個特定實施例中,該值等于0。在第二實施例中,該值等于1。在附加實施例中,當(num_column_min1>=0&&num_rows_minus1>=0)時,啟動瓦片。在另一個實施例中,當tile_enavle_flag等于1時,啟動瓦片。對于這樣識別的宏塊,可以設置cabac_init_ide_present_flag。然后,如果存在tile_cabac_init_ide_flag并且如果(num_column_minus1>=0&&num_rows_minus1>=0),則系統(tǒng)可以僅用信號發(fā)送tile_cabac_init_ide_present_flag。從而,如果使用瓦片并且標記指示發(fā)送熵信息(即,cabac_init_idcflag),則系統(tǒng)僅發(fā)送熵信息。編碼語法可以是如下:通常,與瓦片的第一宏塊(例如,編碼單元)相關聯(lián)而不與片的第一宏塊相關聯(lián)的的一個或多個標記可以定義熵初始化指示符值。標記可以指示熵初始化指示符值是先前提供的信息、默認值、還是另外將提供的熵初始化指示符值。再次參考圖7,由于直到宏塊15被熵解碼為止,熵編碼都不知曉描述宏塊16的位在比特流中的位置,但是解碼器知曉圖片幀中的宏塊16的位置。解碼和識別下一個宏塊的該方式保持低位開銷,這是所期望的。然而,不便于瓦片被并行解碼。為了提高識別用于幀中的特定瓦片的比特流中的特定位置的能力,使得在解碼器中可以同時并行解碼不同瓦片,而不等待熵解碼的完成,可以在比特流中包括識別比特流中的瓦片的位置的信號。參考圖11,優(yōu)選地在片的頭中提供比特流中的瓦片的位置的信號發(fā)送。如果標記指示在片內(nèi)發(fā)送比特流中的瓦片的位置,則除了片內(nèi)的每個瓦片的第一宏塊內(nèi)的位置之外,還優(yōu)選地包括幀內(nèi)的這樣的瓦片的數(shù)量。而且,如果期望,可以包括僅用于瓦片的所選集合的位置信息。編碼語法可以如下:如果在比特流中發(fā)送瓦片位置,則用信號發(fā)送tile_locations_flag。可以使用絕對位置值或者微分粒度值(瓦片尺寸關于先前編碼瓦片的改變)或者任何合適技術,用信號發(fā)送tile_offset[i]。雖然該技術具有低開銷,但是編碼器通常不能發(fā)送比特流,直到所有瓦片被編碼為止。在一些實施例中,期望包括與連續(xù)瓦片的最大絕對位置值或最大微分粒度值(還被稱作最大值)相關聯(lián)的數(shù)據(jù)。通過這樣的信息,編碼器可以僅發(fā)送支持所識別的最大值所必須的位數(shù);解碼器可以僅接收支持所識別的最大值所必須的位數(shù)。例如,由于相對小的最大值,僅小位深度必須用于瓦片位置信息。例如,由于相對大的最大值,大位深度必須用于瓦片位置信息。作為提高識別不同瓦片的能力,使得可以在解碼器中并行處理不同瓦片,而不等待熵解碼的另一種技術,可以在與每個瓦片的開始相關聯(lián)的比特流內(nèi)使用標記符。這些瓦片標記符以可以在不對比特流的特定部分熵解碼的情況下被識別的方式,包括在比特流內(nèi)。在一個實施例中該標記符可以以0x000001開始,在另一實施例中該標記符可以以0x000002開始,在另一實施例中該標記符可以以0x000004或者任何其他適當?shù)奈恍蛄虚_始。而且,標記符可以包括與瓦片和/或瓦片的第一宏塊相關聯(lián)的附加頭。以此方式,在不等待直到所有瓦片均被編碼的情況下被編碼之后,編碼器可以將每個瓦片寫入到比特流中,雖然作為結(jié)果,位速率增加。另外,特別是當結(jié)合緩沖使用時,解碼器可以解析比特流,以更有效的方式識別不同瓦片。瓦片頭可以類似于片頭,但是通常包括較少信息。所要求的主要信息是下一個塊的宏塊數(shù)量、熵初始化數(shù)據(jù)以及片索引(指示瓦片中的開始cu屬于哪個片)。這樣的瓦片頭的編碼語法可以如圖12a中所示??商鎿Q地,主要信息還可以包括初始量化參數(shù)。這樣的瓦片頭的編碼語法可以如圖12b中所示。不在片頭中并且不在瓦片頭中發(fā)送的值可以被重置為在片頭中發(fā)送的值。在一些實施例中,標記符包括在比特流中并且與瓦片的開始相關聯(lián)。然而,標記符可以不包括在比特流中用于每個瓦片。這便于編碼器和解碼器操作不同等級的并行度。例如,編碼器可以使用64個瓦片,但是僅在比特流中包括四個標記符。這使能與64個處理的并行編碼以及與4個處理的并行解碼。在一些實施例中,以編碼器和解碼器均已知的方式指定比特流中的標記符的數(shù)量。例如,標記符的數(shù)量可以在比特流中用信號發(fā)送或者通過簡檔或?qū)蛹墎矶x。在一些實施例中,位置數(shù)據(jù)包括在比特流中并且與瓦片的開始相關聯(lián)。然而,在比特流中不必包括針對每個瓦片的位置數(shù)據(jù)。這便于編碼器和解碼器操作不同等級并行度。例如,編碼器可以使用64個瓦片,但是僅在比特流中包括4個位置。這使能與64個處理的并行編碼以及與4個處理的并行解碼。在一些實施例中,以編碼器和解碼器均已知的方式指定比特流中的位置的數(shù)量。例如,標記符的數(shù)量可以在比特流中用信號發(fā)送或者通過簡檔或?qū)蛹墎矶x。參考圖13,示出用于顯式標識瓦片的開始的一個示例性技術。瓦片索引的值被初始化(tileidx=0),先前瓦片位置的值被初始化(previouslocation=0),先前瓦片大小的值被初始化(previoustilesize=0),并且多個瓦片的值被初始化(tilecount=(num_columns_minus1+1)*(1+num_rows_minus1+1)300。瓦片數(shù)據(jù)被寫入到瓦片310的第一最大編碼單元(lcu)的比特流,在圖片的初始情況下其典型地是左上角的lcu。瓦片數(shù)據(jù)是重構瓦片之內(nèi)的像素值所必需的數(shù)據(jù)。如果存在要寫入的另一瓦片320,那么可以修改值的集合??梢愿庐斍巴咂笮?30,其指示瓦片中的最大編碼單元的數(shù)目(currenttilesize=currentlocation-previouslocation),其中currentlocation是當前瓦片在比特流中的開始位置。在替代實施例中,可以更新當前瓦片大小以指示瓦片中的編碼單元的數(shù)目??梢愿峦咂盍科?40,其指示當前瓦片大小與先前瓦片大小之間的偏移。可以將先前位置設置為當前位置(previouslocation=currentlocation),可以將先前瓦片大小設置為當前瓦片大小(previoustilesize=currenttilesize),并且可以使瓦片索引加1(tileidx=tileidx+1)350。下一瓦片的第一lcu可以被以數(shù)據(jù)寫入310。重復遞歸處理,直到片之內(nèi)不存在要寫的附加瓦片355。如果瓦片計數(shù)大于一(tilecount>1)360,那么可以設置存在瓦片位置信息標記(tilelocationinformationpresentflag=.t.)370。此外,可以寫入值的集合380,例如包括tilelocationinformationpresentflag、tiledifferentialoffset[0]、tiledifferentialoffset[1],…,tiledifferentialoffset[numberoftileminus1-1],其中numberoftileminus1等于tilecount-1。在一些實施例中將值的集合380寫入到片頭。在僅存在一個瓦片的情況下360,則跳過對與該瓦片有關的附加數(shù)據(jù)的存儲385。在一些實施例中,tiledifferentialoffset指示當前片之內(nèi)的瓦片大小。參考圖14,示出用于隱式地標識瓦片的開始的一個示例性技術。瓦片索引的值被初始化(tileidx=0),先前瓦片位置被初始化(previouslocation=0),先前瓦片大小被初始化(previoustilesize=0)400。瓦片數(shù)據(jù)被寫入到瓦片的第一最大編碼單元(lcu)的比特流410,在圖片的初始情況下去典型地是左上角的lcu。如果存在要寫入的另一瓦片420,那么將值的集合寫入到瓦片的編碼單元425。寫入425的值可以包括標記符和/或瓦片頭信息,其中瓦片頭是具有l(wèi)ightweight_slice_flag或等效物的片頭。瓦片頭信息可以包括例如最大編碼單元地址、片索引、以及量化參數(shù)信息。下一瓦片的第一lcu可以被以數(shù)據(jù)寫入410。重復該遞歸處理,直到不存在要寫的附加瓦片430。應理解的是,對瓦片開始位置的隱式和/或顯式信令可以被包含在比特流之內(nèi)。參考圖15,除了lcu地址、片索引、和/或量化參數(shù)信息之外,瓦片頭可以包括一個或多個瓦片索引值。在一些情況下,lcu地址被瓦片索引值tileidx所替代。在一些情況下,片索引被用于指示先前在比特流之內(nèi)傳送的片參數(shù)集的片參數(shù)集索引所替代。片參數(shù)集可以包含但不局限于用于量化參數(shù)、熵編碼器初始化參數(shù)、參考列表參數(shù)、或者環(huán)路濾波器參數(shù)的值。瓦片索引值可以是任何適當?shù)闹?,諸如例如,瓦片索引減1。以這種方式,以第一瓦片具有0編號,來以連續(xù)方式對瓦片編號。通過包含瓦片索引值,瓦片的解碼不太計算復雜。在本發(fā)明的一些實施例中,瓦片索引值僅在不與比特流中或片的第一瓦片相對應的瓦片頭中。另外,對于特定片,下述標記可以被包含在瓦片頭中,所述標記指示使用片頭中的當前信息還是片頭中的先前傳送的信息。這進一步降低了系統(tǒng)的計算復雜性并且還降低了比特流的比特率。在本發(fā)明的一個實施例中,可以用slice_parameter_set_present_flag在比特流中指示標記的存在。slice_parameter_set_present_flag的語法可以如下:pic_parameter_set_rbsp(){descriptorpic_parameter_set_idue(v)…slice_parameter_set_present_flagu(1)rbsptrailingbits()}slice_parameter_set_present_flag用信號通知在比特流中是否傳送片參數(shù)集。一個示例性語法用于圖片參數(shù)集。僅在slice_parameter_set_present標記指示在比特流中傳送片參數(shù)集的情況下,在比特流中傳送片參數(shù)集索引。如果存在“slice_parameter_set_present_flag”并且將其設置為true(真)值,那么用信號通知slice_parameter_set_flag。如果存在“slice_parameter_set_present_flag”并且將其設置為false(偽)值,那么不用信號通知slice_parameter_set_flag。在一些實施例中,當將“slice_parameter_set_present_flag”設置為false值時,則使用來自先前傳送的片頭的信息。在一些實施例中,true值可以等于1。在一些實施例中,false值可以等于0。對于一些瓦片頭,如下所示,由于通過標記slice_parameter_set_flag來用信號通知,可以跳過該處理。對于本發(fā)明的一些實施例,標記slice_parameter_set_flag被推斷為真值。參考圖16,瓦片頭還可以包括片參數(shù)集索引值。片參數(shù)集索引值可以指片參數(shù)集的一個或多個集合,其是片頭中的先前傳送的信息。片參數(shù)集的每個可以包括例如量化參數(shù)(qp)、基于上下文的自適應二進制運算編碼信息(cabac_init_idc)、參考圖片列表修改、或者環(huán)路濾波器信息。環(huán)路濾波器信息典型地例如包括自適應環(huán)路濾波器信息、樣本自適應偏移信息、或者去塊濾波器信息。瓦片頭的示例性語法如下:tile_header(){descriptortile_idx-1u(v)if(slice_parameter_set_present_flag){slice_parameter_set_flagu(1)if(slice_parameter_set_flag)slice_parameter_set_idue(v)}…slice_parameter_set_id:表示片參數(shù)集索引值并且指先前在比特流內(nèi)傳送的特定片參數(shù)集。圖16示出不同瓦片頭如何可以包含兩個不同slice_parameter_set_id并且指先前在比特流內(nèi)傳送的兩個不同片參數(shù)集。tile_idx-1可以指定瓦片索引減1。tile_idx-1可以是無符號數(shù)。tile_idx-1可以使用v位,其中v是根據(jù)圖片中的瓦片的最大數(shù)目而確定的。例如,v可以被如下計算:roundabove(log2(tilecount-1)),其中roundabove(x)表示湊整到等于或大于x的第一個整數(shù)值。如先前所述,slice_parameter_set_flag指定是否在比特流中傳送slice_parameter_set_id。如果slice_parameter_set_flag是第一個值,那么不在比特流中傳送slice_parameter_set_id并且現(xiàn)有的活動片參數(shù)集被用于該瓦片。在一個實施例中,活動片參數(shù)集是先前瓦片所使用的片參數(shù)集。在第二實施例中,活動片參數(shù)集是先前瓦片中的最后編碼單元所使用的片參數(shù)集。如果slice_parameter_set_flag是第二個值,那么在比特流中傳送slice_parameter_set_id。在一個實施例中,第一個和第二個值分別是0和1。slice_parameter_set_id通過瓦片指定所涉及到的片參數(shù)集id。參考圖17,在瓦片的結(jié)束可以包括用于指示其結(jié)束的標記。以這種方式,可使確定瓦片結(jié)束的計算復雜度簡單化。在一些情況下,本描述已示出用于利用用于片和/或瓦片的適當數(shù)據(jù)來創(chuàng)建比特流的技術。通過以適當方式使該信息包含在比特流之內(nèi),解碼器可類似地接收該數(shù)據(jù)并且使用它以對比特流更有效地解碼。如先前就圖7和圖8所描述的,瓦片的使用有利于更高的壓縮效率并且進一步有利于對圖片的并行編碼和解碼。瓦片可以或者可以不彼此無關。為了更有效地確定特定瓦片的長度,一起以降低比特流中的信令開銷的方式,期望的是在用于圖片的片頭(或任何其他適當位置)包括用于指示不同瓦片之間何時達到字節(jié)對齊的數(shù)據(jù)。通過提供字節(jié)對齊指示,該系統(tǒng)可以以每次一字節(jié)的向前查找方式來確定瓦片的結(jié)束。在達到字節(jié)對齊之后所寫的任何數(shù)據(jù)開始于關于比特流中的參考點的字節(jié)邊界處。在一個實施例中,可以關于片頭的結(jié)束測量字節(jié)對齊。在第二實施例中,可以關于網(wǎng)絡抽象單元層的開始測量字節(jié)對齊,所述網(wǎng)絡抽象單元層可以包含片頭、片數(shù)據(jù)、和/或網(wǎng)絡抽象層開始碼。另外,該系統(tǒng)可以包括比特流中的不同瓦片之間的不同長度的位補零以便于字節(jié)對齊。在一些情況下,在一些瓦片之間不必補零。參考圖18,每個瓦片可以在比特流中被顯式地用信號通知。如所示出,每個瓦片可以在比特流中以連續(xù)方式被提供??梢栽谟糜趫D片、片、或者例如與第一最大編碼單元相關的其他方面的頭提供字節(jié)對齊的瓦片位置數(shù)據(jù)的集合,其標識關于比特流中的參考位置對于每個瓦片的字節(jié)對齊。例如,存儲在第一片頭中的瓦片位置信息可以包括用于片之內(nèi)的所有剩余瓦片(或其子集)的信息,但是不必包括用于第一瓦片的信息,因為它緊接著位于片頭之后。在每個瓦片的結(jié)束,該系統(tǒng)可以結(jié)束對于相應瓦片的相應熵解碼處理,并且可以包括一系列補零以直到下面的瓦片字節(jié)對齊。典型地,補零數(shù)據(jù)不被熵解碼。同樣地對最后瓦片補零以直到達到字節(jié)對齊。熵解碼可以使用cabac或cavlc處理。如果需要的話,可以為每個瓦片重置熵解碼器。參考圖19,每個瓦片可以在比特流中被隱式地用信號通知。如所示出,每個瓦片可以在比特流中以連續(xù)的方式被提供??梢栽诒忍亓髦袨槊總€相應瓦片(或其子集)提供對于瓦片的字節(jié)對齊的瓦片標記符的開始。瓦片標記符的開始可以是十六進制的0x000002。該系統(tǒng)不必包括用于第一瓦片的瓦片標記符的開始,因為它緊接著位于片頭之后。在每個瓦片的結(jié)束,該系統(tǒng)可以結(jié)束對于相應瓦片的相應熵解碼處理,并且可以包括一系列補零以直到下面的瓦片字節(jié)對齊。典型地,補零數(shù)據(jù)不被熵解碼。同樣地對最后瓦片補零以直到達到字節(jié)對齊。熵解碼可以使用cabac或cavlc處理,其中cabac表示上下文自適應二進制運算編碼方法并且cavlc表示上下文自適應可變長度編碼方法。如果需要的話,可以為每個瓦片重置熵解碼器。在另一實施例中,降低搜索瓦片的開始的開銷的一個技術要求每個瓦片字節(jié)對齊。因而,每個瓦片將開始于關于比特流中的參考位置的字節(jié)邊界。此外,瓦片可以包括補零以直到達到字節(jié)對齊。片的最后瓦片同樣可以包括補零以直到達到字節(jié)對齊。補零可以有助于瓦片的字節(jié)對齊,并且兩個補零可以是不同的位數(shù)。在此使用在以上說明書中采用的術語和表達作為說明書的術語并且不限于此,在使用這樣的術語和表達時,不旨在排除所示出和描述的特征或其部分的等價物,將認識到,本發(fā)明的范圍僅由以下權利要求來定義和限制。這樣描述本發(fā)明,但是明顯地,相同方式可以以多種方式改變。這樣的改變不被認為脫離本發(fā)明的精神和范圍,并且對于本領域技術人員來說明顯的所有這樣的修改旨在包括在以下權利要求的范圍內(nèi)。當前第1頁12
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1