欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于上下文的自適應二進制算術編碼(cabac)的視頻流兼容性的制作方法

文檔序號:7516392閱讀:201來源:國知局
專利名稱:基于上下文的自適應二進制算術編碼(cabac)的視頻流兼容性的制作方法
技術領域
本發(fā)明涉及在基于上下文的自適應二進制算術編碼(CABAC)的視頻流中嵌入水印。
背景技術
當今,強烈需求作為反盜版技術的數(shù)字水印加注。為了使得盜版者更難以規(guī)避水印,重要的是提出并使用許多潛在水印。然而,重要的是水印不干擾預期觀眾(intended audience)的預期觀看體驗。這樣,需要更有效的水印加注技術。如此,本發(fā)明的目的是生成通常與水印加注相關聯(lián)的可能改變的列表,所述可能改變遵循CABAC/AVC并且也不產生可見偽像,由此最終提供一種用于在CABAC視頻流中嵌入水印的有效方法。

發(fā)明內容
一種提供兼容CABAC的改變(諸如水印)的方法,包括訪問包括至少兩個塊的編碼數(shù)據(jù),諸如視頻數(shù)據(jù);創(chuàng)建或訪問對該編碼數(shù)據(jù)的改變的列表,所述改變包括對塊的直接改變;確定非緊接塊的運動特征或運動矢量差值,非緊接塊與緊鄰所述塊的緊接塊相鄰; 基于所述塊和所述非緊接塊的原始運動特征確定對所述緊接塊的改變,以及將由所述改變的應用所導致的所述塊的運動特征;如果所述改變不造成對所述緊接塊的不同,則將該改變存儲至所述列表;并且如果其它潛在改變可用,則評估其它潛在改變,其中所述其它潛在改變經歷與所述直接改變相同的處理步驟。塊可以是任何尺寸或數(shù)目的集合元素或像素,緊接塊可以是與所述塊共享某個有限邊界的塊,而非緊接塊可以是與所述緊接塊共享某個有限邊界但不與所述塊共享邊界的塊。該方法可以包括解碼所述編碼數(shù)據(jù)以及編碼所述編碼數(shù)據(jù),解碼所述編碼數(shù)據(jù)以及編碼所述編碼數(shù)據(jù)可以包括使用已經存儲在所述列表中的改變。所述方法可以包括對于至少一個塊確定所述編碼數(shù)據(jù)的上下文和/或確定所述編碼數(shù)據(jù)的上下文索引,其中上下文索引(ctxldx)是初始值(CtxIdxOffset)和增量 (ctxldxlnc)之和。所述方法還可以包括算出或計算所述緊接塊的原始增量以及與對所述塊的直接改變相關聯(lián)的所述緊接塊的新增量;并且使用所述原始增量和新增量作為用于在存儲步驟中確定所述不同的準則,其中可以將所述非緊接塊的運動矢量差值以及所述塊的原始運動矢量差值和新運動矢量差值用作用于在存儲步驟中確定所述不同的準則。如果對于一個改變而言,所述緊接塊的原始增量和所述緊接塊的新增量不同,則在存儲步驟中可以從所述列表中移除所述改變。所述方法還可以包括以下步驟如果對于所述緊接塊而言原始增量和緊接增量不同,則算出或計算另一緊接塊的原始增量以及與對所述塊的直接改變相關聯(lián)的所述另一緊接塊的新增量;并且使用所述另一緊接塊的原始增量和新增量作為用于在存儲步驟中確定所述不同的附加準則??梢詫⑴c所述另一緊接塊相鄰的另一非緊接塊的運動矢量差值以及所述塊的原始運動矢量差值和新運動矢量差值用作用于在存儲步驟中確定所述不同的附加準則。另外,如果所述另一緊接塊的原始增量和新增量不同,則在存儲步驟中將所述改變添加到所述列表中。


將參考附圖通過示例描述本發(fā)明。
圖1是CABAC編碼的流程圖。
圖2是CABAC編碼的更詳細的流程圖。
圖3圖示受改變影響的塊的運動矢量差值。
圖4圖示受改變影響的塊的另一組運動矢量差值。
圖5圖示用于避免編碼中的錯誤的第一解決方案的流程圖。
圖6圖示用于避免編碼中的錯誤的第二解決方案和第三解決方案的流程圖。
圖7圖示用于避免編碼中的錯誤的第四解決方案的流程圖。
具體實施例方式在此通過改變諸如CABAC (基于上下文的自適應二進制算術編碼)編碼視頻流之類的編碼視頻流中的數(shù)據(jù)字節(jié),來執(zhí)行水印嵌入。重要的是指出自始至終在H. 264/AVC視頻編碼器背景下提及CABAC編碼,以便強調所公開的發(fā)明將一般地可應用于這樣的CABAC 編碼視頻流。然而,本發(fā)明的范圍一般可應用于其它的編碼數(shù)據(jù)流以及其它類型的編碼器。
在理解了水印加注可能引起AVC解碼器故障、毀壞等的情況下,呈現(xiàn)旨在避免負面事件的實施例。
主要的是理解在保持CABAC兼容性的同時,不能盲目地修改編碼視頻比特流的部分,諸如符合H. 264/AVC視頻編碼標準的那些。在允許在保持CABAC兼容性的約束下的修改的系統(tǒng)中,改變可能意圖對視頻數(shù)據(jù)加標記或加水印。這樣的修改可以被設計來識別可以作出的修改,使得所述修改不影響任何CABAC上下文。然而,可能出現(xiàn)特殊情況,其中修改可能影響被用于隨后語法元素的編碼/解碼的上下文。具體地,修改可能不改變編碼器的當前上下文,盡管如此但仍可能改變在解碼器處選擇的上下文。在這種情況發(fā)生時, CABAC解碼器將應用錯誤的上下文,典型地引起解碼錯誤。本申請描述了一個或多個實施例,所述實施例識別其中可能發(fā)生這種錯誤的特殊情況并且避免將引起這樣的錯誤的修改。
本發(fā)明上下文可應用于H. 264/AVC CABAC編碼算法的操作,其中使用算術編碼系統(tǒng)來改進熵編碼。CABAC通過以下操作來實現(xiàn)良好的壓縮性能(a)根據(jù)每個語法元素的上下文選擇該語法元素的概率模型;(b)基于局部統(tǒng)計來適配概率估計;以及(c)使用算術編碼。
圖1示出了 CABAC中用于編碼單一語法元素100的通用框圖。編碼處理包括多至三個基本步驟1) 二進制化評估101 ;2)上下文建模102 ;以及3) 二進制算術編碼103。
在圖2中提供了更詳細的視圖。在塊200中提供一語法元素,接著在判定塊201 中評估該語法元素,其中非二進制元素前進到步驟204。在塊204中非二進制元素分量唯一地映射到二進制序列,即所謂的二進制串(bin string)。映射后的序列和在判定塊201中最初被二進制估值的語法元素將前進到判定塊205。在判定塊205中,將以常規(guī)編碼模式或以旁路編碼模式處理二進制串的每個元素或每個二進制估值的元素。
在常規(guī)編碼模式中,執(zhí)行上下文建模步驟206,其中選擇概率模型使得上下文的對應選擇依賴于先前編碼的語法元素或二進制。在指派了上下文模式之后,二進制值207及其相關聯(lián)的模型208被傳遞到常規(guī)編碼引擎209,其中處理算術編碼的最后階段以及隨后的模型更新。
在旁路編碼模式中,為了加速整個編碼處理,應用不使用概率估計和更新處理的簡化的非自適應算術編碼引擎或旁路編碼引擎210。
H. 264/AVC壓縮的最后步驟可以是熵編碼,其中所述標準支持的熵編碼方法中的至少一個是CABAC。CABAC是一種二進制算術編碼技術,其中具體AVC語法元素的編碼是關于由一組變量(總稱為上下文)確定的特定的概率模型來執(zhí)行的。CABAC編碼器保存許多上下文,并且為每個語法元素的編碼、或者甚至為同一語法元素的不同比特位置處的每個比特的編碼選擇一個。在許多情況下,編碼處理導致上下文變量的修改。每個上下文保存一組上下文變量。編碼處理可能改變該上下文內部的變量。
H. 264/AVC解壓縮的第一步驟是熵解碼。當流被CABAC編碼時,解碼是CABAC解碼。CABAC解碼器保存許多上下文并且使用不同的上下文來解碼不同的語法元素或者甚至同一語法元素的不同比特位置處的比特。每個上下文保存一組上下文變量。在許多情況下, 解碼處理導致對應上下文的上下文變量的修改。不同的上下文由上下文索引來標識。重要的是以使得解碼器和編碼器保持同步的方式來編碼數(shù)據(jù)。對于任何具體元素,解碼器需要使用適當?shù)纳舷挛?即,被用來編碼該元素的那個上下文)。該上下文的變量或該上下文的狀態(tài)需要如在編碼器中預測的那樣。
在不修改任何上下文狀態(tài)的情況下,可以修改比特流中的某些CABAC編碼語法元素,并且這樣做是有用的。然而,可能出現(xiàn)特殊情況,其中修改導致錯誤的上下文被用于隨后語法元素的解碼。
現(xiàn)在,運動矢量差值(MVD)的二進制化可以包括前綴,并且如果MVD大于9,還包括后綴,其中二進制化的MVD可以被表示或定義為MVDBIN。被用來解碼幀間預測塊的MVDBIN 的前綴的CABAC上下文由如在H. 264/AVC標準中規(guī)定的上下文索引“ctxldx”確定。該索引是從兩個變量的和計算的,所述兩個變量是ctxIdxOffset和ctxldxlnc,分別為初始索引值和增量,如在下式中所示 ctxldx = CtxIdxOffset+ctxldxlnc 在該標準中規(guī)定了 ctxIdxOffset。具體地,對于MVDBIN的水平分量而言, ctxIdxOffset為40,對于MVDBIN的垂直分量而言,ctxIdxOffset為47。對于MVDBIN前綴的不同比特位置,ctxldxlnc是不同的。對于除了第一比特之外的比特,根據(jù)比特位置來確定ctxldxlnc。具體地,在比特位置1、2、3、4、5、6(或更大)處,ctxldxlnc分別為3、4、5、6、 6、6。對于MVD前綴的第一比特(比特位置0),CABAC編碼器和解碼器通過檢查相鄰塊(具體地,如圖3中所示的左側相鄰塊(A)和上方相鄰塊(B))的MVD(整個MVD)的絕對值來確定增量的值ctxldxlnc,在圖3中當前塊被標記為“Cur”。對于除了 MVDBIN的前綴的第一比特之外的比特,比特位置確定ctxldxlnc。圖3中的塊A和B可以被稱為緊接塊,這是因為它們與當前塊共享邊界。
為了編碼/解碼幀內預測塊的MVDBIN的前綴的第一比特,如下面所解釋的,存在可以使用的三種可能的上下文。第一上下文被編索引為ctxIdxOffset,第二上下文被編索引為ctxldx0ffset+l,而第三上下文被編索引為ctxIdx0ffset+2。因此,變量ctxldxlnc 可以取值0、1或2,并且該變量被用來從所述三種可用上下文中進行選擇。這些上下文中的第一上下文被用于其中預期當前MVD較小的情況,在預期當前MVD的值為中等時使用第二上下文,而在預期當前MVD較大時使用第三上下文。該預期如下地基于相鄰MVD值 如果(absMvd_A+absMvd_B)小于3,則 ctxldxlnc 被設置為等于 0。
如果(absMvd_A+absMvd_B)在3 到 32 的范圍內(包括 3 和 32),則 ctxldxlnc 被設置為等于1。
如果(absMvd_A+absMvd_B)大于32,則 ctxldxlnc 被設置為等于 2。
簡言之,(absMvd_A+absMvd_B)可以落入三個區(qū)域
以及(32, +⑴)。(符號為階理論(order theory)符號,分別為右開區(qū)間、閉區(qū)間、和開區(qū)間)。
所附應用的一個或多個實施例可能導致對一些塊的MVD的修改,而同時不關注造成任何上下文狀態(tài)改變。然而,如果在這樣的實施例中由于修改而引起塊A的MVD或塊B的 MVD改變、或者如果兩者都改變,則(absMvcLA+absMvcLB)的新值可能落入與原始區(qū)域不同的區(qū)域。在此情況下,ctxldxlnc將改變,并且錯誤的上下文將被用于當前塊的MVDBIN的前綴的解碼。因此,CABAC解碼器在對塊Cur的MVD進行解碼時將不同地動作,并且可能導致解碼錯誤??梢宰鞒鰧τ趯儆跐撛谛薷牡倪@些解碼錯誤的第一解決方案,其不包括上下文狀態(tài)中的任何改變并且如圖5中所圖示的??梢酝ㄟ^多個準則來評估這些潛在修改中的每一個,所述多個準則包括其表示數(shù)據(jù)的能力、其對解碼圖像的保真度的影響、作為結果的像素改變的魯棒性等。在所識別的潛在修改的列表中,通常僅僅選擇滿足依賴于具體應用的準則的那些來用于水印加注處理,而通常丟棄其余的潛在修改。
可以通過檢查每個潛在修改以確定其是否將引起任何其它塊的ctxldxlnc中的改變、由此可能造成解碼錯誤,來擴展該評估。在至少一個實現(xiàn)方式中,丟棄引起另一塊的 ctxldxlnc中的改變的潛在修改。
對于塊A中的將影響塊A的MVD的潛在修改,如圖4所示,塊A的兩個相鄰塊R (右側)和D(下方)的MVD可能受到影響。這里,塊R和D是緊接塊,而M和N是非緊接塊,這是因為M和N不與當前塊A共享邊界卻與緊接塊共享邊界。
為了檢查修改是否將造成解碼錯誤,該解決方案檢查塊A中的MVD的該修改是否將造成塊R中MVD的前綴或者塊D中的MVD的前綴的ctxldxlnc中的改變。這導致圖5中描述的算法。這里,在步驟505中,確定塊A中的替換MVD。對于影響塊A的MVD的潛在修改,檢查或確定塊R和塊D中的ctxldxlnc。在這兩種情況的每一種中,計算如果沒有作出塊A中的改變將被使用的舊ctxldxlnc。此外,在步驟515中對于R塊,計算如果作出塊A 中的改變將使用的新ctxldxlnc,以及在步驟525中對于D塊,計算如果作出塊A中的改變將使用的新ctxldxlnc,其中在圖5中示出了對于當前塊A的這些示例相鄰塊。在任一情況下,在至少一個實施例中,在判定塊520中對于R塊和在判定塊535中對于D塊,如果舊ctxidxinc和新ctxldxlnc不同,則在步驟M5中丟棄該潛在修改,這是因為其具有造成上述的解碼錯誤的可能性。如果舊ctxldxlnc和新ctxldxlnc相同,則在步驟MO中保存塊 A中的替換MVD。
注意,用于塊R的ctxldxlnc不僅依賴于塊A的MVD,而且依賴于緊鄰塊R的塊M 的MVD。用于塊R的ctxlcbdnc由(absMvd_A+absMvd_M)所落入的范圍來確定。類似地, 塊D的ctxldxlnc依賴于塊A的MVD以及塊N(塊N是塊D的相鄰塊)的MVD兩者,如由 (absMvd_A+absMvd_N)所落入的范圍來確定。
可以將圖5的算法認為是“以塊A為中心的”。這里,考慮塊A中的潛在改變,并且評估對下游的影響。
存在以下情況其中,上面描述的并在圖5中示出的算法不能檢測或識別到任何解碼錯誤。參考圖3,圖5的評估處理將不必完全解決在塊A和塊B兩者的MVD都被修改時的情況。提出另一解決方案來考慮這一情況。
圖6中圖示了第二解決方案和第三解決方案,其示出了圖5的解決方案的擴展版本。第二解決方案和第三解決方案的區(qū)別在于第二解決方案使用步驟640a選項,而第三解決方案步驟640b選項。
關于第二解決方案,本質上,對于塊A中的每個替換MVD,考慮或處理對圖4中的塊 D和R的ctxlcbdnc的影響。在該解決方案中的不同在于以下情況其中,對于塊M和N的 MVD本身,考慮替換值。這里,期望保留將不改變塊D或R的ctxldxlnc的塊A的替換MVD, 而不管對于塊M或N選擇哪些替換者。
圖6示出了一種這樣做的算法。對于塊A的每個替換MVD,首先考慮或處理對于塊 M的所有可能MVD??梢栽u估每種組合,以便確定是否任何組合將改變塊R的ctxlcbdnc。 如果任何組合改變塊R的ctxlcbdnc,則可以丟棄對于塊A的該替換MVD。如果沒有(對于塊A的給定替換MVD的)組合改變塊R的ctxlcbdnc,則可以考慮對于塊N的所有可能MVD。 可以評估每種組合,以便確定是否任何組合將改變塊D的ctxlcbdnc。如果任何組合改變塊 D的ctxlcbdnc,則可以丟棄對于塊A的該替換MVD。如果沒有組合改變塊D的ctxlcbdnc, 則保存對于塊A的該替換MVD。
具體地,圖6以在步驟605中基于塊A和M以及塊A和N的原始MVD對來計算塊R和D的原始ctxldxlnc而開始。在步驟610,檢查塊A中的每個替換MVD,之后在步驟 615,檢查塊M中的每個MVD。在步驟620,基于M的替換MDV和A的替換MDV,執(zhí)行對R的修改ctxlcbdnc的計算。之后接著判定步驟625,其中,如果塊R的修改ctxldxlnc等于原始ctxlcbdnc,則在步驟630檢查塊M的另外的替換MVD,而如果塊R的修改ctxldxlnc不等于原始ctxlcbdnc,則在步驟640a丟棄塊A中的替換MVD。在丟棄步驟640a之后是另一判定步驟645,其中考慮塊A的另外的替換MVD。如果不存在塊A的其它的替換MVD,則第二解決方案完成,這由步驟680表示。另一方面,如果存在塊A的另外的替換MVD,則該解決方案前進到步驟650,其中訪問塊A中的下一替換MVD,然后循環(huán)到步驟610以及到如上所述地步驟610之后的步驟。
進一步參考圖6,當在步驟625中塊R的修改ctxldxlnc等于原始ctxldxlnc并且在判定步驟630中存在塊M的另外的替換MVD時,則處理前進到步驟635中評估塊M中的下一可用替換MVD,然后循環(huán)回到步驟615以及到如上所述地在步驟615之后的步驟。
此外,參考圖6,當在步驟625塊R的修改ctxldxlnc等于原始ctxldxlnc并且在判定步驟630不存在塊M的另外的替換MVD時,則處理前進到在步驟655中訪問塊N中的每個替換MVD,并且然后前進到在步驟660中基于塊N的替換MVD和塊A的替換MVD計算塊 D的修改ctxlcbdnc。在步驟660之后,在判定塊665中如果塊D的修改ctxldxlnc等于原始ctxlcbdnc,則處理前進到判定塊670,其中訪問塊N的另外的替換MVD。如果存在塊N的另外的替換MVD,則前進到塊675,其中訪問塊N中的下一 MVD,然后循環(huán)回到步驟655以及如上所述地在步驟655之后的步驟。在判定塊665中,如果塊D的修改ctxldxlnc不等于原始ctxlcbdnc,則處理前進到步驟640a,并且根據(jù)以上關于步驟640a提及的步驟前進。
如果在判定步驟670中不存在塊N的另外的替換MVD,則該解決方案前進到步驟 685,其中保存塊A中的一個或多個替換MVD,之后前進到判定步驟645,其中訪問塊A的另外的替換MVD。如果不存在塊A的更多的替換MVD,則第二解決方案完成,這由步驟680表示。另一方面,如果存在塊A的另外的替換MVD,則該解決方案前進到步驟650,其中訪問塊 A中的下一替換MVD,之后循環(huán)到步驟610以及如上所述地在步驟610之后的步驟。
該解決方案丟棄對于塊A的以下任何替換MVD,所述替換MVD與對于塊M或N的任何替換MVD的組合將使得該組合造成塊D或R的ctxlcbdnc的改變。
在一些情況下,移除塊A的替換MVD可能不是優(yōu)選的,并且可能需要被避免。這樣, 在圖6中圖示了第三解決方案,其中使用步驟640b選項而不是使用步驟640a選項。該第三解決方案移除其它的替換MVD,諸如與塊M或N相關聯(lián)的替換MVD,而不是對于塊A的替換者。對第二解決方案的該修改使得在丟棄列表中記錄潛在不利的組合。稍后可以處理該丟棄列表,以決定應當移除哪些替換者。
存在可以被采用來處理該丟棄列表的許多方式。這里列出一些 1. 一種方式是考慮該丟棄列表上的、其中替換MVD之一是原始MVD的任何組合。 通過移除該組合的其它替換MVD來從該列表中移除該組合。
2.另一種方式是通過首先建立柱狀圖來最小化移除的替換MVD的數(shù)目并且對于丟棄列表上的每個替換MVD,對其出現(xiàn)的次數(shù)進行計數(shù)。之后,移除出現(xiàn)最頻繁的替換MVD, 由此從該丟棄列表中移除包含該替換MVD的任何組合。此外,可以從最頻繁出現(xiàn)到最不頻繁出現(xiàn)地繼續(xù)移除替換MVD,直至該丟棄列表為空。
3.在第三種方式中,可以對于該丟棄列表上的每個替換MVD建立柱狀圖,并且可以對其出現(xiàn)的次數(shù)進行計數(shù)。然后保真度模型和/或魯棒性模型可以向每個替換MVD指派成本。該成本可以與出現(xiàn)頻率的柱狀圖一起使用,作為移除替換MVD的基礎,直至該丟棄列表為空。
與前三種解決方案相反,第四種解決方案可以被認為是“以塊C為中心”或“以塊 Cur為中心”,在于評估塊Cur中的潛在改變并且檢查塊A或塊B以確定塊A或B是否具有可以影響塊Cur的ctxldxlnc的改變。該第四種解決方案在圖7中圖示。在至少一個實現(xiàn)方式中,對于圖像序列中每個具有替換MVD的碼片執(zhí)行圖7的處理。
第一步驟705創(chuàng)建應用于當前碼片中的塊的潛在修改的列表。應指出本發(fā)明的實施例意圖包括訪問和/或修改現(xiàn)有列表的特征。在這點上,可以編譯、訪問、或生成具有用于一碼片的所有替換MVD的列表。
接下來,在步驟710,對于給定幀間預測塊,考慮所有可能的MVD。所有幀間預測塊將具有至少一個MVD ;然而,對于一些MVD,存在已經被識別的潛在改變。每個潛在改變將導致對于當前塊(塊C)的不同MVD,其中該MVD被稱為MVDc。對于當前塊(塊C),存在兩個感興趣的相鄰塊,左側的塊A和上方的塊B,如圖3所示。這些塊的每一個將具有MVD,然而, 對于一些相鄰塊而言,存在已經識別的潛在改變。每個潛在改變將導致對于該相鄰塊(塊 A或塊B)的不同MVD。對于塊C中的MVDc,在步驟715,考慮或收集MVDa和MVDb的所有可能組合或替換值,并且塊A和B的替換MVD分別包括這些塊的原始MVD。在步驟720,累計替換的所有可能組合并且將其分級(stage)以發(fā)送通過步驟725。這里,在步驟725,對于每個組合,對于塊C計算ctxlcbdnc。在判定步驟730中,如果任何組合造成ctxldxlnc從使用塊A和B的原始MVD生成的值的改變,則在步驟735中從該列表中丟棄替換MVDa或替換MVDb之一,并且在步驟720中開始考慮下一可能組合。如果新ctxldxlnc沒有不同于對于C的原始ctxlcbdnc,則在步驟720從該列表中移除該改變。可以使用與在第三種解決方案中提出的處理該丟棄列表的方式相似的方式。
替換實現(xiàn)方式檢查先前創(chuàng)建的列表,并且提取應用于當前碼片中的塊的那些子集。該方法然后一次一個地考慮當前碼片中的每個幀間預測塊。
可以在H. 264/MPEG-4AVC(AVC)標準的背景下使用在該申請中描述的若干實現(xiàn)方式和特征。然而,這些實現(xiàn)方式和特征可以在另一標準(現(xiàn)有的或將來的)的背景下、或者在不涉及標準的背景下使用。因此,這里提供了具有具體特征和方面的一個或多個實現(xiàn)方式。然而,所描述的實現(xiàn)方式的特征和方面也可以被適配于其它實現(xiàn)方式。
這里描述的實現(xiàn)方式可以以例如方法或處理、裝置、軟件程序、數(shù)據(jù)流或信號來實現(xiàn)。即使僅僅在單種形式的實現(xiàn)方式(諸如僅僅被描述為方法)的背景下進行討論,所討論的實現(xiàn)方式或特征也可以被以其它形式(諸如裝置或程序)來實現(xiàn)。可以以例如適當硬件、軟件和固件來實現(xiàn)裝置。可以以例如裝置(諸如例如計算機或其它處理設備)來實現(xiàn)該方法。另外,可以通過由處理設備或其它裝置執(zhí)行的指令來實現(xiàn)該方法,并且這樣的指令可以存儲在諸如CD之類的計算機可讀介質上、或其它計算機可讀存儲設備、或集成電路上。此外,計算機可讀介質可以存儲由實現(xiàn)方式所產生的數(shù)據(jù)值。
如對于本領域技術人員應該顯而易見的,實施方式還可以產生被格式化為承載可以被例如存儲或傳輸?shù)男畔⒌男盘?。該信息可以包括例如用于?zhí)行方法的指令、或由所描述的實施方式之一產生的數(shù)據(jù)。例如,信號可以被格式化為承載已加注水印的流、未加注水印的流、或水印加注信息。
另外,許多實現(xiàn)方式可以在編碼器、解碼器、處理來自解碼器的輸出的后處理器、 或向編碼器提供輸入的預處理器的一個或多個中實現(xiàn)。此外,根據(jù)該公開可以預期其它實現(xiàn)方式。例如,可以通過組合、刪除、修改或補充所公開的實現(xiàn)方式的各種特征來創(chuàng)建另外的實現(xiàn)方式。
權利要求
1.一種方法,包括訪問(505)編碼數(shù)據(jù),該編碼數(shù)據(jù)包括至少兩個塊; 編譯對該編碼數(shù)據(jù)的改變的列表,所述改變包括對塊的直接改變; 確定(515,525)非緊接塊的運動特征,非緊接塊與緊鄰所述塊的緊接塊相鄰; 基于所述塊和所述非緊接塊的原始運動特征確定(515,525)對所述緊接塊的改變,以及確定由所述改變的應用所導致的所述塊的運動特征;如果所述改變不造成對所述緊接塊的不同,則將該改變存儲(540)至所述列表;以及如果其它潛在改變可用,則評估其它潛在改變,其中所述其它潛在改變經歷與之前改變相同的處理步驟。
2.如權利要求1所述的方法,其中,編譯步驟包括以下之一 生成可能改變的列表;從現(xiàn)有列表訪問可能改變;或者生成一些可能改變并從現(xiàn)有列表訪問其它的可能改變。
3.如權利要求1所述的方法,包括對于至少一個塊,選擇運動矢量差值作為運動特征。
4.如權利要求1所述的方法,包括解碼所述編碼數(shù)據(jù)以及編碼所述編碼數(shù)據(jù)。
5.如權利要求4所述的方法,包括對于至少一個塊確定所述編碼數(shù)據(jù)的上下文。
6.如權利要求5所述的方法,包括確定所述編碼數(shù)據(jù)的上下文索引,其中上下文索引 (ctxldx)是初始值(CtxIdxOffset)和增量(ctxldxlnc)之和。
7.如權利要求6所述的方法,包括計算(515,525)所述緊接塊的原始增量以及與對所述塊的直接改變相關聯(lián)的所述緊接塊的新增量;以及使用所述原始增量和新增量作為用于在存儲步驟中確定所述不同的準則。
8.如權利要求6所述的方法,包括對于至少一個塊,選擇運動矢量差值作為運動特征;計算所述緊接塊的原始增量以及與對所述塊的直接改變相關聯(lián)的所述緊接塊的新增量;以及使用所述非緊接塊的運動矢量差值、以及所述塊的原始運動矢量差值和新運動矢量差值作為用于在存儲步驟中確定所述不同的準則。
9.如權利要求6所述的方法,包括確定所述緊接塊的原始增量和所述緊接塊的新增量是否不同;以及如果所述原始增量和新增量不同,則在存儲步驟中將所述改變存儲到所述列表中。
10.如權利要求6所述的方法,包括如果所述原始增量和緊接增量對于所述緊接塊不同,則計算另一緊接塊的原始增量以及與對所述塊的直接改變相關聯(lián)的所述另一緊接塊的新增量;以及使用所述另一緊接塊的原始增量和新增量作為用于在存儲步驟中確定所述不同的附加準則。
11.如權利要求6所述的方法,包括如果所述原始增量和新增量對于所述緊接塊不同,則計算另一緊接塊的原始增量以及與對所述塊的直接改變相關聯(lián)的所述另一緊接塊的新增量;以及使用與所述另一緊接塊相鄰的另一非緊接塊的運動矢量差值以及所述塊的原始運動矢量差值和新運動矢量差值作為用于在存儲步驟中確定所述不同的附加準則。
12.如權利要求9所述的方法,包括如果所述原始增量和新增量對于所述緊接塊不同,則計算另一緊接塊的原始增量以及與對所述塊的直接改變相關聯(lián)的所述另一緊接塊的新增量;確定所述緊接塊的原始增量與所述另一緊接塊的新增量是否不同;以及如果所述另一緊接塊的原始增量和新增量不同,則在存儲步驟中將所述改變存儲到所述列表中。
13.一種方法,包括步驟a)提供或訪問塊形式的數(shù)據(jù),其中該形式包括當前塊(A),當前塊(A)具有至少第一和第二緊接塊(R,D),第一和第二緊接塊(R,D)與當前塊(A)相鄰并且與當前塊(A) 共享有限共同邊界,并且該形式包括至少第一和第二非緊接塊(M,N),第一和第二非緊接塊 (M,N)分別與第一和第二緊接塊相鄰并且與第一和第二緊接塊共享有限邊界,而不與當前塊相鄰;步驟b)基于當前塊A和相應緊接塊的非緊接塊(M,N)的原始運動矢量差值(MVD)對來計算或確定(605)緊接塊的原始語法增量ctxldxlnc ;步驟c)基于第一非緊接塊(M)的替換MVD和當前塊(A)的替換MVD,計算或提供 (620)第一緊接塊(R)的修改語法增量ctxldxlnc ;步驟d)比較(625)第一緊接塊(R)的修改語法增量和原始語法增量; 步驟e)如果第一緊接塊(R)的修改語法增量和原始語法增量不相等,則將當前塊(A) 的替換MVD添加(640)到丟棄列表。
14.如權利要求13所述的方法,包括步驟f)如果第一緊接塊(R)的修改語法增量和原始語法增量相等并且不存在第一非緊接塊(M)的另外的替換MVD,則獲得或生成(655)第二非緊接塊(N)的替換MVD ;步驟g)基于第二非緊接塊(N)的替換MVD和當前塊(A)的另一替換MVD,計算或提供 (660)第二緊接塊(D)的修改語法增量ctxldxlnc ;步驟h)比較(665)第二緊接塊(D)的修改語法增量和原始語法增量;以及步驟i)如果第二緊接塊(D)的修改語法增量和原始語法增量不相等,則將當前塊(A) 的替換MVD和第二緊接塊(D)的替換MVD添加(640)到丟棄列表。
15.如權利要求14所述的方法,包括如果第二緊接塊(D)的修改語法增量和原始語法增量相等并且存在第二非緊接塊(N) 的另外的替換MVD,則獲得或生成(675)第二非緊接塊(N)的另外的替換MVD ;以及循環(huán)回到計算或提供步驟(660)的步驟g以及隨后的其它步驟。
16.如權利要求15所述的方法,包括如果第二緊接塊(D)的修改語法增量和原始語法增量相等并且不存在非緊接塊(N)的另外的替換MVD,則將當前塊㈧的替換MVD保存(685)在兼容列表中;如果存在當前塊A的更多的替換MVD,則獲得或生成(650)當前塊A的下一替換MVD ; 以及循環(huán)回到計算或提供步驟(620)的步驟b以及隨后的其它步驟。
17.如權利要求14所述的方法,包括如果第一緊接塊(R)的修改語法增量和原始語法增量相等并且存在第一非緊接塊(M) 的另外的替換MVD,則獲得或生成(635)第一非緊接塊(M)的另外替換MVD ;以及循環(huán)回到計算或提供步驟(620)的步驟b以及隨后的其它步驟。
18.如權利要求13所述的方法,其中,所述數(shù)據(jù)是視頻數(shù)據(jù),并且所述語法增量與水印相關。
19.如權利要求18所述的方法,包括選擇與兼容列表中的條目相關聯(lián)的水印并且編碼視頻數(shù)據(jù)。
20.一種方法,包括a)生成或訪問(705)視頻數(shù)據(jù)的碼片的替換運動矢量差值的列表,該替換運動矢量差值與對視頻數(shù)據(jù)的潛在改變或水印相關聯(lián);b)訪問該碼片內的當前塊(C);c)確定(710)被用來計算當前塊(C)的上下文索引(CtxIdx)的增量(ctxldxlnc)的當前塊(C)的第一相鄰塊(A)和第二相鄰塊(B)的運動矢量差值是否在該列表中;d)對于在步驟c中在列表中出現(xiàn)的第一相鄰塊(A)和第二相鄰塊(B)的那些運動矢量差值,收集(715)第一相鄰塊(A)和第二相鄰塊(B)的運動矢量差值(MVDa,MVDb)的替換值;e)生成或分級(720)所收集的運動矢量差值的替換值和原始運動矢量差值(MVDa, MVDb)的組合,但排除僅具有原始運動矢量差值的組合,以及確定與原始運動矢量差值 (MVDa, MVDb)相關聯(lián)的原始增量(ctxldxlnc);f)確定(725)與所述組合之一相關聯(lián)的新增量(newctxldxlnc);g)比較(730)新增量(newctxldxlnc)與原始增量(ctxldxlnc);h)如果新增量(newctxldxlnc)與原始增量(ctxldxlnc)不同,則丟棄(735)列表中的替換運動矢量差值之一;i)對于其它組合循環(huán)步驟f至步驟h。
全文摘要
一種提供兼容CABAC的改變(諸如水印)的方法,包括訪問包括至少兩個塊的編碼數(shù)據(jù),諸如視頻數(shù)據(jù);創(chuàng)建或訪問對該編碼數(shù)據(jù)的改變的列表,所述改變包括對塊的直接改變;確定非緊接塊的運動特征或運動矢量差值,非緊接塊與緊鄰所述塊的緊接塊相鄰;基于所述塊和所述非緊接塊的原始運動特征確定對所述緊接塊的改變,以及確定由所述改變的應用所導致的所述塊的運動特征;如果所述改變不造成對所述緊接塊的不同,則將該改變存儲至所述列表;以及如果其它潛在改變可用,則評估其它潛在改變,其中所述其它潛在改變經歷與所述直接改變相同的處理步驟。
文檔編號H03M7/00GK102187583SQ200980141373
公開日2011年9月14日 申請日期2009年8月17日 優(yōu)先權日2008年8月19日
發(fā)明者鄒德坤, 杰弗里·A·布盧姆, 何杉 申請人:湯姆森特許公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
扶绥县| 永兴县| 朝阳区| 博野县| 日照市| 南皮县| 英德市| 高碑店市| 大连市| 巴马| 西盟| 肇庆市| 乌兰县| 阳泉市| 望谟县| 稻城县| 定结县| 揭东县| 柳州市| 崇明县| 永吉县| 开鲁县| 宁阳县| 甘肃省| 桑日县| 英吉沙县| 康马县| 奎屯市| 鄢陵县| 同仁县| 南宁市| 舟曲县| 莫力| 泸州市| 茂名市| 开原市| 宜昌市| 凤山市| 永嘉县| 赤城县| 静乐县|