亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于畫面組的并行多線程視頻編碼的i幀去閃爍的制作方法

文檔序號(hào):7737425閱讀:486來源:國知局
專利名稱:用于畫面組的并行多線程視頻編碼的i幀去閃爍的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及視頻編碼,并且更具體地涉及視頻被編碼為畫面組(GOP)情況下的I 幀閃爍偽像消除。
背景技術(shù)
在播放GOP編碼視頻時(shí),對于同一場景中的GOP而言,惱人的跳動(dòng)(annoying pulsing)或者所謂的閃爍偽像通常將在周期性的I幀處看到。尤其對于低比特率或中等比特率視頻編碼,非常明顯地看到該I幀閃爍,這大大損害了編碼視頻的整體感知質(zhì)量。原始的視頻信號(hào)具有原本平滑的光流。然而,在質(zhì)量差的視頻編碼之后,在編碼視頻信號(hào)中原來的光流將失真。然后,作為結(jié)果的、在編碼幀上的時(shí)間不一致性/不連貫性將被感知為閃爍偽像。實(shí)際上,更經(jīng)常在編碼視頻的靜止的或低運(yùn)動(dòng)區(qū)域/部分處感知到閃爍。例如,幾個(gè)連續(xù)幀可能共享相同的靜止背景。因此,在這些幀上在靜止背景中所有的位于同一位置的像素在原始輸入視頻中具有相同或相似的像素值。然而,在視頻編碼中,位于同一位置的像素可能從不同幀中的不同參考像素預(yù)測而來,并且因此在對殘差進(jìn)行量化之后,產(chǎn)生不同的重構(gòu)值。在視覺上,在編碼視頻播放期間,在這些幀上增加的幀間差異將被感知為閃爍。這樣,由于粗糙量化,對于低比特率編碼或中等比特率編碼而言,閃爍偽像更密集。而且,在I幀上比P幀或B幀上更明顯地觀察到閃爍偽像。這主要是因?yàn)閷τ谙嗤撵o止區(qū)域,在P幀或B幀中由幀間預(yù)測產(chǎn)生的預(yù)測殘差通常比在I幀中由幀內(nèi)預(yù)測或無預(yù)測產(chǎn)生的預(yù)測殘差更小。因此,利用粗糙量化,I幀中重構(gòu)的靜止區(qū)域展示了更容易注意到的、與之前的P幀或B幀中位于同一位置的區(qū)域的差異,并且因此展示了更容易注意到的閃爍偽像。因此,如何減少I幀閃爍是大大影響整體感知視頻編碼質(zhì)量的關(guān)鍵問題。大多數(shù)現(xiàn)有的基于編碼器的I幀去閃爍機(jī)制被設(shè)計(jì)用于GOP順序單線程視頻編碼情況,在該情況下,當(dāng)編碼I幀時(shí),緊接在該I幀之前的幀已經(jīng)被編碼。因此,可以容易地使用重構(gòu)的之前幀來導(dǎo)出當(dāng)前幀的無閃爍參考,其然后可以被用于當(dāng)前I幀的去閃爍。圖1圖示了常用的用于GOP順序單線程編碼的兩回合(Pass)I幀去閃爍方法。在此情況下,在編碼I_next 8之前,P_last 4已經(jīng)被編碼,由此總可以被用來導(dǎo)出I_next 8 的無閃爍參考以用于其去閃爍。由于P_last 4緊接在I_next 8之前,因此通常這兩幀是高度相關(guān)的,并且因而所導(dǎo)出的無閃爍參考通常很好地用于去閃爍。使用多編碼線程而不使用一個(gè)單線程,是用于在實(shí)時(shí)視頻編碼系統(tǒng)中大大加速計(jì)算密集的視頻編碼處理的常用的有效并行化策略。盡管在實(shí)踐中可以以許多不同的方式來采用多線程,一種直接的并且因而通常被采用的方法是使多線程分別且同時(shí)編碼多個(gè)G0P。 這是用于GOP并行編碼的情形。注意,貫穿該說明書,術(shù)語“GOP并行,,和“多線程,,將被互換地使用,并且“G0P順序”和“單線程”將同樣地被互換地使用。多線程編碼使I幀閃爍消除成為比在GOP順序單線程編碼的情況下的I幀閃爍消除更具挑戰(zhàn)的任務(wù)。在單線程編碼中,當(dāng)編碼I幀時(shí),緊接在其之前的幀已經(jīng)被編碼,可以容易地采用該之前幀的重構(gòu)來導(dǎo)出用于當(dāng)前I幀的去閃爍編碼的良好的無閃爍參考(例如,經(jīng)由用于第一編碼回合的窮盡性(exhaustive)或簡化P幀編碼)。然而,在GOP并行多線程編碼情況下,最有可能的是當(dāng)編碼I幀時(shí),緊接在其之前的幀尚未被編碼,這是因?yàn)檫@兩幀可能屬于兩個(gè)不同的G0P,而這兩個(gè)不同的GOP被兩個(gè)不同的編碼線程編碼。在此情況下,一種解決方案是使用最靠近當(dāng)前I幀的之前GOP中的編碼幀來產(chǎn)生其無閃爍參考以用于去閃爍。然而,如果該幀距當(dāng)前幀太遠(yuǎn)使得這兩幀沒有很好地相關(guān),則可能不能從該幀中導(dǎo)出良好的無閃爍參考,因而可能不能實(shí)現(xiàn)合適的閃爍消除。通常,通過適當(dāng)?shù)匦薷木幋a處理或者通過在解碼器處增加一些有效的后處理,可能消除或減少I幀閃爍以及任何其它編碼偽像。然而,在實(shí)際的視頻編碼應(yīng)用中,基于后處理的去閃爍通常不是好的解決方案,這是因?yàn)榫幋a視頻比特流可能被來自大量不同制造商的解碼器/播放器解碼,所述大量不同制造商中的一些可能沒有采用該特定的后處理技術(shù) (例如,為了降低產(chǎn)品成本)。

發(fā)明內(nèi)容
提出了一種編碼視頻的方法,其中形成并在以并行線程編碼多個(gè)畫面組(GOP)。每個(gè)編碼GOP具有一個(gè)初始的I幀以及接下來的一系列P幀。每個(gè)I幀被利用從之前GOP的最靠近的編碼幀導(dǎo)出的第一無閃爍參考來進(jìn)行去閃爍編碼,而該之前GOP的一系列P幀中的最后P幀被利用從去閃爍編碼的I幀導(dǎo)出的第二無閃爍參考來進(jìn)行去閃爍編碼。可以在編碼I幀時(shí)采用小量化參數(shù)(QP)以便非常接近該第一無閃爍參考??梢栽诰幋a最后的P 幀時(shí)采用中等的QP。在該方法中,所導(dǎo)出的第一無閃爍參考可以由一個(gè)回合的簡化P幀編碼來生成。該簡化的P幀編碼可以包括以下步驟對于在I幀和之前GOP的最接近的編碼幀之間的低相關(guān)性,應(yīng)用較大的運(yùn)動(dòng)搜索范圍。該簡化的P幀編碼還可以包括以下步驟對于在I幀和之前GOP的最接近的編碼幀之間的高相關(guān)性,應(yīng)用較小的運(yùn)動(dòng)搜索范圍;或者包括在模式選擇中放棄跳躍模式檢查,其中可以通過總的幀間復(fù)雜度、或者可以通過總的幀間復(fù)雜度來確定該相關(guān)性。簡化的P幀編碼還可能包括以下步驟僅檢查P 16x16模式,使用較小的運(yùn)動(dòng)搜索范圍,編碼當(dāng)前幀MB和預(yù)測參考MB之間的失真匹配,以及在RDO-MS中修改RD成本,由此防止或阻止跳躍模式和幀內(nèi)模式。


現(xiàn)在將參考附圖借助示例來描述本發(fā)明,在附圖中圖1是現(xiàn)有的用于GOP順序單線程編碼的兩回合I幀去閃爍方法的示意圖;圖2是根據(jù)本發(fā)明的用于GOP并行多線性編碼的I幀去閃爍解決方案的示意圖;圖3是圖2的多線程I幀去閃爍解決方案的作為結(jié)果的去閃爍性能的曲線圖;圖4是多線程I幀去閃爍框架的框圖;圖5是示出來自圖4的去閃爍緩存器的合適參考幀加載的框圖;圖6是示出將當(dāng)前幀編碼結(jié)果緩存到圖4的去閃爍緩存器中的框圖;圖7是示出I_neXt MB的去閃爍編碼的框圖;以及圖8是示出P_last MB的去閃爍編碼的框圖。
具體實(shí)施例方式在GOP并行多線程視頻編碼情形下,GOP以IDR幀開始并且以P幀結(jié)束。注意,盡管GOP間預(yù)測(即,跨GOP邊界的預(yù)測)產(chǎn)生或多或少改進(jìn)的編碼效率,但是難以在該GOP 并行多線程編碼架構(gòu)下支持GOP間預(yù)測。因此,上面的假設(shè)一般常常保持為真。不喪失一般性,假設(shè)每個(gè)GOP僅具有一個(gè)I幀,其也是其第一幀。在以下描述中,關(guān)注點(diǎn)在于同一場景中的兩個(gè)連續(xù)GOP的編碼,以及因而關(guān)注點(diǎn)在于第二 GOP中的第一 I幀的去閃爍。第一 GOP和第二 GOP中的最初I幀分別作為“1_ curr"以及“ I_next”。我們將第一 GOP中的最后P幀表示為“P_last”。不喪失一般性,假設(shè)兩個(gè)GOP分別由兩個(gè)不同的編碼線程編碼,并且當(dāng)一個(gè)線程將要開始編碼Ijext時(shí),另一線程僅僅部分地編碼了之前G0P。具有最高顯示順序的第一 GOP中的編碼幀被表示為“P_ curr”。注意,P_curr幀實(shí)際上可以是除了 I幀之外的任何幀類型。這里,使用P_curr僅僅是為了表示方便。還注意,P_curr僅僅是之前GOP中最接近I_next的編碼幀。這些表示如在圖1和圖2中圖示。參考圖2,在GOP并行多線程編碼的情況下,由于兩個(gè)GOP可能由兩個(gè)不同的編碼線程分別編碼,因此,在編碼I_next 18時(shí),P_last 14非常有可能尚未被編碼。因此,1_ next 18去閃爍不得不訴諸于最接近的之前編碼幀,即P_CUrr 12。這里的挑戰(zhàn)在于由于 P_curr 12&P_last 14距I_neXt 18更遠(yuǎn),因此其可能具有與I_neXt 18的非常低的相關(guān)性。在該情況下,如何從P_currl2中導(dǎo)出用于I_next 18的良好的無閃爍參考是比從P_ last 14中導(dǎo)出良好的無閃爍參考更為困難的任務(wù)。在至少一個(gè)實(shí)現(xiàn)方式中,提出了用于解決該問題的新的簡化P幀編碼方案。如下面詳細(xì)解釋的,所提出的方案與之前的簡化P幀編碼方案具有許多顯著差異,其對于良好的多線程去閃爍性能是重要的。除了 I_next 18的新的去閃爍編碼之外,我們的解決方案中的第二種技術(shù)是所提出的P_last 14的去閃爍編碼。在多線程編碼中,非常有可能當(dāng)一線程將要編碼當(dāng)前GOP 中的最后幀(即,P_last 14)時(shí),下一 GOP中的第一 I幀(即,I_next 18)已經(jīng)被另一線程編碼。在此情況下,我們提出同樣進(jìn)行P_last 14的去閃爍編碼。注意,在Ijext 18的去閃爍編碼中,經(jīng)常將更多的比特分配給該幀,使得可以利用小量化參數(shù)(QP)來編碼I_next 18,并且因而I_next 18非??拷錈o閃爍參考。然而,在新的P_last的去閃爍編碼中,不再期望非常接近無閃爍參考。這是因?yàn)楸M14和I_next 18可能高度相關(guān),但 P_curr 12*P_last 14可能并且因而在時(shí)間上不連貫,即在P_lastl4的之前幀和I_next 18之間可能存在閃爍偽像。因此,在該情況下,對于P_last 14而言,更優(yōu)選地在其之前的編碼幀和編碼I_next 18之間進(jìn)行很好的權(quán)衡以得到最佳的整體去閃爍性能,而不是非常接近從其之前的編碼幀或編碼I_next 18導(dǎo)出的無閃爍參考。因此,在所提出的P_last 14 的去閃爍編碼方案中,仍經(jīng)由與在I_next去閃爍編碼中相同的新提出的簡化P幀編碼從編碼I_neXt 18中導(dǎo)出其無閃爍參考。然而,僅將中等量的附加比特進(jìn)一步分配
14。因此,作為結(jié)果的重14表示其之前幀和I_next 18的適當(dāng)混合,其產(chǎn)生它們之間的更平滑的過渡。在圖2和圖3中分別圖示了所提出的整體去閃爍解決方案以及期望的去閃爍性能。在圖4-8中進(jìn)一步詳細(xì)解釋了所提出的去閃爍方案的實(shí)現(xiàn)方式。圖4示出了所提
5出的用于編碼每個(gè)幀的方案的整體流程圖。這示出了由所有的編碼線程分別進(jìn)行所提出的幀編碼方案。在步驟20,當(dāng)一線程正在編碼一幀時(shí),其首先檢查是否是合格的(qualified) P_last 14或I_next幀18。如果是,則該線程將從defIickerJxiffer (去閃爍緩存器)中加載適當(dāng)參考幀以用于該幀的去閃爍編碼。在該實(shí)現(xiàn)方式中,deflickerjxiffer是重要的并且是有用的緩存機(jī)制,其有助于所有的多個(gè)線程緩存并且共享它們的編碼結(jié)果以用于I_next 18或?_1&計(jì)14去閃爍。在我們的當(dāng)前實(shí)現(xiàn)方式中,defIickerJxiffer包括三個(gè)部分l)deflicker_var_buffer 每個(gè)編碼線程一個(gè),由線程ID來編制索引,記錄線程的編碼狀態(tài)變量,例如,當(dāng)前的編碼幀號(hào)(由"CurrFrmNumber”表示),從當(dāng)前幀到GOP結(jié)束的累計(jì)的幀編碼復(fù)雜度(由“SumComplexityFromCurrFrmToGOPEnd”表示)等。2) deflicker_frm_buffer 所有線程一個(gè),緩存最近的P_last或I_next及其相關(guān)的其它信息以用于可能的去閃爍編碼;3)prev_frm_buffer 每個(gè)編碼線程一個(gè),對于每個(gè)線程緩存具有最高顯示順序的編碼幀及其相關(guān)的其它信息。在圖4-8中解釋這些緩存器的使用。注意,為了簡潔,未示出緩存器的初始化。在步驟24,傳統(tǒng)的MB編碼處理采取原始視頻幀作為目標(biāo)幀,并且然后通?;谧钚』穆适д?RD)成本準(zhǔn)則從所有的MB編碼模式選項(xiàng)(即,包括所有的幀間和幀內(nèi)預(yù)測模式)中選擇最佳編碼模式。這是所謂的RD優(yōu)化模式選擇(RDO-MS)。然后,將利用所選擇的最佳編碼模式將MB編碼為輸出比特流。在步驟78和96中也解釋了分別用于I幀和P幀中的MB 的傳統(tǒng)的MB編碼。對于步驟26,在圖8中詳細(xì)解釋了 P_last MB的去閃爍編碼。在圖5 中的步驟42、44、46、48和49中以及在圖6中分別解釋了其參考幀緩存器加載和更新。圖 6提供了步驟28的細(xì)節(jié),其中,如圖5中的步驟49、44和40中所示地管理所涉及的變量 SaveCurrFrm0圖5解釋了從deflicker_buffer加載適當(dāng)參考幀。“curr_thread_ID”是標(biāo)識(shí)當(dāng)前編碼線程的索引。在步驟30,“SUmCOmplexityTOG0PEnd”是每個(gè)幀的被用來度量當(dāng)前幀和i_next之間的相關(guān)性的量。在當(dāng)前實(shí)現(xiàn)方式中,兩個(gè)連續(xù)幀之間的復(fù)雜度被計(jì)算如下。Cmpl = Rmv+MAD(1)這里,Cmpl表示后一幀的復(fù)雜度。瓦_(dá)表示一幀中所有MB上的平均MV編碼比特, 而Gi萬表示一幀中所有MB上的MB運(yùn)動(dòng)估計(jì)誤差的平均的亮度絕對平均差(MAD)。注意, 圖6中的THl和圖7中的TH2是與特定復(fù)雜度度量有關(guān)的閾值。利用(1)中的復(fù)雜度度量, THl = 250,TH2 = 20??梢钥吹礁叩膹?fù)雜度意味著幀之間更低的相關(guān)性。圖5示出了當(dāng)編碼P_last 14時(shí)該處理檢查I_next 18是否已被編碼(步驟32、 34)。如果是,則在步驟36等待P_last編碼完成,然后從deflickerjxiffer加載I_neXt 18 (步驟40)以用于P_last 14的去閃爍編碼。否則,P_last 14將在步驟42和44經(jīng)歷傳統(tǒng)的P幀編碼處理。當(dāng)編碼I_next時(shí),首先在步驟38檢查P_last是否可用。如果是,則加載P_last以對Ijext進(jìn)行去閃爍編碼(步驟40)。否則,在步驟42進(jìn)一步檢查有用的 P_curr是否可用。這里,有用的P_curr被定義為具有SumComplexityToGOPEnd < THl的P_ curr幀,即可能與I_next很好地相關(guān)的P_curr。如果是,則在步驟44將加載P_curr以用于 I_neXt去閃爍。在步驟46,由于多線程編碼,在步驟46—個(gè)線程正在編碼P_last的同時(shí),可能將i_next分配為另一線程,并且已經(jīng)被編碼、或者尚未開始編碼、或者正在編碼中。步驟46檢查I_neXt是否正在編碼中。如果是,則當(dāng)前的編碼線程將等待,直到其它線程結(jié)束 I_neXt編碼。因此,在步驟46之后,I_next已經(jīng)被完全編碼或者尚未開始編碼。然后,步驟 48將檢查哪種情況為真。如果I_next已經(jīng)被編碼,則將前進(jìn)到步驟49。否則,前進(jìn)到步驟 42。如在步驟49中所解釋的,當(dāng)Ijext被編碼,將利用其來生成用于當(dāng)前P_last幀的MB 去閃爍編碼的無閃爍參考。在圖5中,將原始的之前幀和重構(gòu)的之前幀表示為PrevFrmOrig 和PrevFrmRecon。關(guān)于P_last MB編碼,在圖8的步驟82中使用PrevFrmRecon,并且在步驟92中使用這兩者來計(jì)算P 16x16預(yù)測參考MB所包含的重構(gòu)失真。Def IickerCurrFrm是在當(dāng)前實(shí)現(xiàn)方式中所使用的標(biāo)志,其指示去閃爍編碼是否被用于當(dāng)前幀編碼。SaveCurrFrm 是圖6的步驟50中所檢查的用于更新defIickerJxiffer的標(biāo)志。圖6示出了利用當(dāng)前幀編碼結(jié)果的deflickerjxiffer更新。在步驟50,如果 SaveCurrFrm 為真(true),則在步驟 54,I_next 18 或 P_last 14 幀將記錄在 deflicker_ frm_buffer中以便稍后分別用于P_last 14或I_neXt 18的去閃爍編碼。否則,如果當(dāng)前編碼幀到目前為止是對于I_next去閃爍最有用的幀,則將在步驟52、53將當(dāng)前幀結(jié)果記錄在prev_frm_buffer[curr_thread_ID]中,其稍后將被加載為用于I_next去閃爍的P_ curr。注意,僅當(dāng)滿足圖6中的所有四個(gè)條件時(shí),才需要緩存當(dāng)前幀結(jié)果。圖7示出了 I_next MB的去閃爍編碼。這里,QP表示當(dāng)前MB編碼QP。QP_PrevFrm 表示所加載的參考幀的MB平均QP。ME_range表示運(yùn)動(dòng)矢量搜索范圍。這里,ME_SAD表示運(yùn)動(dòng)估計(jì)后所選擇的運(yùn)動(dòng)矢量的預(yù)測殘差的絕對差之和。TH3=10。該條件是在步驟60 和62檢查MB是運(yùn)動(dòng)的還是靜止的。QP_CurrMB表示從率控制計(jì)算的當(dāng)前MB編碼QP。注意,在率控制中,將向Ijext分配更多比特以便確保其低QP編碼,從而使得編碼的I_next 非常接近其無閃爍參考。在圖7中,如果P_last在步驟63被用來生成用于I_neXt去閃爍編碼的I_next無閃爍參考,則將預(yù)期去閃爍編碼與如在步驟64和78中所示的GOP順序單線程方案相同。該情況實(shí)際上表示GOP并行多線程編碼的最佳可實(shí)現(xiàn)去閃爍性能。否則, P_CUrr而不是P_last將被用來生成無閃爍參考并被用于I_next的去閃爍編碼,在步驟 66-76中對其進(jìn)行解釋。圖7示出了新提出的簡化P幀編碼的至少一個(gè)實(shí)現(xiàn)方式的細(xì)節(jié),并且該實(shí)現(xiàn)方式包含許多與用于單線程編碼的簡化P幀編碼方案的顯著差異。將這些差異總結(jié)如下1)自適應(yīng)的ME搜索范圍如果P_curr與I_neXt高度相關(guān),則使用較小的搜索范圍(例如,5)。否則,使用較大的搜索范圍(例如,10)。2)在簡化的RD優(yōu)化模式選擇(RDO-MS)中無跳躍模式檢查3)如果當(dāng)前MB不是靜止MB或者如果經(jīng)由RDO-MS選擇了幀間模式,總使用具有質(zhì)量匹配QP的P 16x1 6模式來生成無閃爍參考。除了這些差異之外,步驟66-76中的經(jīng)由P_curr的I_neXt去閃爍編碼遵循與傳統(tǒng)的單線程I幀去閃爍編碼幾乎相同的方案。簡言之,如果MB的ME_SAD大于閾值并且最佳RD優(yōu)選模式是幀內(nèi)預(yù)測模式,則MB被識(shí)別為高運(yùn)動(dòng),并且因此是閃爍不敏感的MB,對于其而言,去閃爍編碼不是必須的,并且因此其將以如步驟90中所示的將原始MB取為目標(biāo)MB 的傳統(tǒng)方式編碼。否則,MB被識(shí)別為低運(yùn)動(dòng),并且因此是傾向于閃爍的MB,其將被編碼以便去閃爍。在此情況下,將如步驟92中所示地首先生成無閃爍參考MB,然后其將被取為用于當(dāng)前MB編碼的目標(biāo)MB。圖8示出了 P_last MB的去閃爍編碼。與圖7中I_neXt MB的去閃爍編碼的差異在于1)當(dāng)P_last緊接在I_neXt之前時(shí),它們之間的高度相關(guān)區(qū)域必定是低運(yùn)動(dòng)的從而是傾向于閃爍的。因此,在步驟80設(shè)置較小的ME搜索范圍是合適的。類似于步驟66-76, 步驟84-90遵循與傳統(tǒng)的單線程I幀去閃爍編碼幾乎相同的方案。2)如步驟92和94中所示,來自P_last MB去閃爍的率控制的QP_CurrMB具有中間值。這是因?yàn)?,如先前討論的,P_last的中間編碼質(zhì)量是優(yōu)選的,從而為其重構(gòu)產(chǎn)生編碼 I.next及其之前的編碼幀之間的適當(dāng)權(quán)衡或混合。3)在實(shí)際編碼的第二回合中,不使用跳躍模式。相反,將在步驟96使用安全跳躍 (Safe_Skip)模式。安全跳躍模式實(shí)際上是具有與跳躍模式相同的MV的替代P 16x16模式,即不招致MV編碼比特。注意,在該模式中,將編碼預(yù)測殘差,從而防止跳躍模式編碼的不期望的差質(zhì)量。跳躍模式是大多數(shù)的最近視頻編碼標(biāo)準(zhǔn)(例如,H.264/AVC)中的標(biāo)準(zhǔn)化的MB編碼模式,其表明將使用幀間預(yù)測來編碼MB,然而其將簡單地使用依據(jù)運(yùn)動(dòng)補(bǔ)償而從相鄰的編碼MB的運(yùn)動(dòng)矢量預(yù)測的精確運(yùn)動(dòng)矢量,并且不包括預(yù)測殘差的編碼。因此,其表示最少比特消耗的MB編碼模式,然而,往往是所有編碼模式中具有最大編碼失真的模式。 安全跳躍模式是我們提出的對于跳躍模式的新的替代模式,其使用與跳躍模式的運(yùn)動(dòng)矢量相同的運(yùn)動(dòng)矢量,然而,其與P16xl6模式一樣地編碼預(yù)測殘差。因此,與其它幀間預(yù)測模式 (例如P16x8、8x16、8x8、8x4、4x8、4x4等)相比,其在運(yùn)動(dòng)矢量編碼上不耗費(fèi)比特,而同時(shí)由于所包含的殘差編碼而產(chǎn)生類似的編碼失真。而且,注意,在P_last或I_neXt MB無閃爍生成中的簡化RD0-MS都包含每個(gè)候選模式的修改后的RD成本,這對于最終的顯著的和可靠的去閃爍性能而言也是關(guān)鍵的?;旧?,經(jīng)由在RDO-MS中修改RD成本,更阻止跳躍模式和幀內(nèi)模式,而幀間預(yù)測模式是更受歡迎的。這證明是用于實(shí)現(xiàn)更好的去閃爍性能的有效手段。具體地,在無閃爍參考生成中,對于增加的偏好和對于P_last MB而言,幀間模式的RD成本被乘以0. 7,在無閃爍參考生成以及實(shí)際編碼兩者中,對于降低的偏好,幀內(nèi)模式的RD成本被乘以2. 5。最后一點(diǎn)也很重要,如先前所述,率控制必須與I_next 18*P_last 14的去閃爍編碼良好地協(xié)調(diào)?;旧?,在幀級(jí)別的率控制中,需要將更多比特分配給I_next去閃爍,而需要將中等量的比特分配給P_last去閃爍。這通??梢酝ㄟ^在進(jìn)行幀級(jí)別比特分配時(shí)為幀分配合適的QP偏移來實(shí)現(xiàn)。在我們的當(dāng)前實(shí)現(xiàn)方式中,我們分別向Ijext和P_last分配-6和-2的QP偏移。已經(jīng)進(jìn)行了實(shí)驗(yàn)來評估上面提出的GOP并行多線程去閃爍解決方案的性能。結(jié)果表明所提出的方案能夠有效的降低多線程編碼情況下的I幀閃爍偽像,而所招致的附加計(jì)算復(fù)雜度不對實(shí)時(shí)編碼的實(shí)施施加嚴(yán)重挑戰(zhàn)。尤其,我們發(fā)現(xiàn)較短的GOP長度(例如,<60) 比較大的GOP長度(例如,>90)更有希望得到更好的去閃爍性能,這是因?yàn)槔幂^短的 GOP長度,P_curr 12和I_neXt 18之間的間距也更可能地短,這對于良好的去閃爍而言是高度受歡迎的。這里,提供了具有特定特征和方面的一個(gè)或多個(gè)實(shí)現(xiàn)方式。然而,所描述的實(shí)現(xiàn)方式的特征和方面還可以被適配于其它實(shí)現(xiàn)方式。例如,可以使用一個(gè)、兩個(gè)、或多個(gè)回合來執(zhí)行實(shí)現(xiàn)方式,即使這里參考特定數(shù)目的回合來進(jìn)行描述。另外,QP可以對于給定畫面或幀而變化,諸如例如,基于MB的特性而變化。盡管這里描述的實(shí)現(xiàn)方式可能是在特定背景下描述的,但是這樣的描述將決不應(yīng)被當(dāng)作將所述特征和構(gòu)思限制于這樣的實(shí)現(xiàn)方式或背

ο這里描述的實(shí)現(xiàn)方式可以以例如方法或處理、裝置、或軟件程序來實(shí)現(xiàn)。即使僅僅在單個(gè)實(shí)現(xiàn)方式形式的背景下進(jìn)行討論(例如,僅作為方法討論),所討論的實(shí)現(xiàn)方式或特征也可以以其它形式(例如,裝置或程序)來實(shí)現(xiàn)。裝置可以以例如適當(dāng)硬件、軟件和固件來實(shí)現(xiàn)。方法可以以例如在諸如例如計(jì)算機(jī)或其它處理設(shè)備的裝置中實(shí)現(xiàn)。另外,方法可以通過被處理設(shè)備或其它裝置執(zhí)行的指令來實(shí)現(xiàn),并且這樣的指令可以存儲(chǔ)在諸如例如⑶ 的計(jì)算機(jī)可讀介質(zhì)上、或其它計(jì)算機(jī)可讀存儲(chǔ)設(shè)備上或者可以存儲(chǔ)在集成電路上。此外,計(jì)算機(jī)可讀介質(zhì)可以存儲(chǔ)由實(shí)現(xiàn)方式產(chǎn)生的數(shù)據(jù)值。如對于本領(lǐng)域技術(shù)人員而言明顯的,實(shí)現(xiàn)方式還可以產(chǎn)生被格式化為承載可以例如被存儲(chǔ)或傳輸?shù)男畔⒌男盘?hào)。該信息可以包括例如用于執(zhí)行方法的指令、或者由所描述的實(shí)現(xiàn)方式之一產(chǎn)生的數(shù)據(jù)。另外,許多實(shí)現(xiàn)方式可以在編碼器、編碼器的預(yù)處理器、解碼器、或解碼器的后處理器中的一個(gè)或多個(gè)中實(shí)現(xiàn)。此外,根據(jù)該公開可預(yù)期其它實(shí)現(xiàn)方式。例如,通過組合、刪除、修改或補(bǔ)充所公開的實(shí)現(xiàn)方式中的各種特征,可以創(chuàng)建另外的實(shí)現(xiàn)方式。以下列表提供了各種實(shí)現(xiàn)方式的簡短列表。該列表不意圖是窮舉的而僅僅是將許多可能實(shí)現(xiàn)方式中一小部分的簡短描述提供如下1. 一種利用多個(gè)編碼線程對GOP并行實(shí)時(shí)編碼的視頻編碼器,其通過利用從之前 GOP中的最靠近的編碼幀導(dǎo)出的無閃爍參考來首先對I幀進(jìn)行去閃爍編碼、并且然后利用從去閃爍編碼的I幀導(dǎo)出的無閃爍參考來對該之前GOP中的最后P幀進(jìn)行去閃爍編碼,來降低I幀閃爍。2.在實(shí)現(xiàn)方式1中,在第一 I幀的實(shí)際編碼中使用小QP以便非常接近其無閃爍參考,而在最后P幀的實(shí)際編碼中使用中等QP以便為編碼幀產(chǎn)生下一 GOP中的編碼I幀和當(dāng)前GOP中的之前編碼幀的權(quán)衡混合。3.在實(shí)現(xiàn)方式1中,在一幀的去閃爍編碼中,經(jīng)由簡化P幀編碼的一個(gè)回合生成無閃爍參考。4.在實(shí)現(xiàn)方式3中,簡化P幀編碼包含⑴對于當(dāng)前I幀和之前GOP中最靠近的編碼幀之間較低的相關(guān)性,較大的運(yùn)動(dòng)搜索范圍,反之亦然,( )在模式選擇中無跳躍模式檢查,(iii)RDO-MS中修改的RD成本阻止跳躍模式和幀內(nèi)模式。5.在實(shí)現(xiàn)方式1中,使用總的幀間復(fù)雜度來確定當(dāng)前I幀和之前GOP中最靠近的編碼幀之間的相關(guān)性級(jí)別。6.在實(shí)現(xiàn)方式1中,對于GOP中最后P幀的去閃爍編碼,在實(shí)際MB編碼中,使用如在本公開的一個(gè)或多個(gè)實(shí)現(xiàn)方式中定義的安全跳躍模式,而不是傳統(tǒng)的跳躍模式。7.在實(shí)現(xiàn)方式1中,采用如在本公開的一個(gè)或多個(gè)實(shí)現(xiàn)方式中定義的多線程緩存和通信機(jī)制,其分離地對于每個(gè)編碼線程緩存具有GOP中最高顯示順序的重構(gòu)編碼幀、對于所有線程緩存GOP的重構(gòu)的最后P幀和最初I幀。
9
8.從所描述的實(shí)現(xiàn)方式中任一個(gè)產(chǎn)生的信號(hào)。9.根據(jù)在本公開中描述的一個(gè)或多個(gè)實(shí)現(xiàn)方式創(chuàng)建、組合、存儲(chǔ)、傳輸、接收和/ 或處理用于I幀和P幀的視頻編碼信息以便降低閃爍。10. 一種能夠根據(jù)所描述的實(shí)現(xiàn)方式之一或者與所描述的實(shí)現(xiàn)方式之一溝通地操作的設(shè)備(諸如例如編碼器、解碼器、預(yù)處理器、或后處理器)。11. 一種設(shè)備(例如,計(jì)算機(jī)可讀介質(zhì)),其用于存儲(chǔ)根據(jù)在本公開中描述的一個(gè)或多個(gè)實(shí)現(xiàn)方式的I幀或P幀之一或編碼、或者執(zhí)行I幀或P幀的編碼的一組指令。12. 一種信號(hào),其被格式化為包括涉及根據(jù)在本公開中描述的一個(gè)或多個(gè)實(shí)現(xiàn)方式的、I幀或P幀的編碼的信息。13.在實(shí)現(xiàn)方式12中,其中信號(hào)表示數(shù)字信息。14.在實(shí)現(xiàn)方式12中,其中信號(hào)是電磁波。15.在實(shí)現(xiàn)方式12中,其中信號(hào)是基帶信號(hào)。16.在實(shí)現(xiàn)方式12中,其中信息包括殘差數(shù)據(jù)、運(yùn)動(dòng)矢量數(shù)據(jù)、以及參考指示符數(shù)據(jù)中的一個(gè)或多個(gè)。17. 一種對于視頻的多線程編碼降低閃爍的處理、或者一種用于實(shí)現(xiàn)對于視頻的多線程編碼降低閃爍的處理的設(shè)備、或者一組用于實(shí)現(xiàn)對于視頻的多線程編碼降低閃爍的處理的指令。所描述的實(shí)施例提出了用于GOP并行多線程視頻編碼的有效的I幀去閃爍方案。 所提出的方案可以降低緊接在前的重構(gòu)幀的不可用性對當(dāng)前I幀去閃爍的影響。該方案也是高效的,這是因?yàn)槠湔兄律倭康母郊佑?jì)算和存儲(chǔ)器成本,并且因此在實(shí)時(shí)視頻編碼系統(tǒng)中很好地適應(yīng)??傊@里提出了適當(dāng)?shù)馗淖兙幋a器的手段及其方法,其中,以更直接和一般的方式進(jìn)行編碼以便解決上面討論的各種偽像消除問題。盡管一些方案對于所有的幀內(nèi)編碼視頻(利用運(yùn)動(dòng)JPEG2000標(biāo)準(zhǔn)或者利用 H. 264/AVC標(biāo)準(zhǔn)的)都解決去閃爍問題,但是本公開中的至少一個(gè)實(shí)現(xiàn)方式提供與主流視頻編碼標(biāo)準(zhǔn)(即,公知的具有運(yùn)動(dòng)補(bǔ)償和變換編碼的混合編碼模式)兼容的去閃爍技術(shù)范例。此外,本申請涉及按GOP編碼的視頻,其中每個(gè)GOP以I幀開始。
權(quán)利要求
1.一種編碼視頻的方法,包括以下步驟形成多個(gè)畫面組(GOP);開始GOP的并行線程的多個(gè)編碼,每個(gè)GOP具有初始的I幀以及接下來的一系列P幀;利用從之前GOP的最靠近的編碼幀導(dǎo)出的第一無閃爍參考來對每個(gè)I幀進(jìn)行去閃爍編碼;以及利用從去閃爍編碼的I幀導(dǎo)出的第二無閃爍參考來對該之前GOP的一系列P幀中的最后P幀進(jìn)行去閃爍編碼。
2.如權(quán)利要求1所述的方法,其中,在編碼I幀時(shí)采用小量化參數(shù)(QP)以便非常接近該第一無閃爍參考。
3.如權(quán)利要求1所述的方法,其中,在編碼最后的P幀時(shí)采用中等的QP。
4.如權(quán)利要求1所述的方法,其中,所導(dǎo)出的第一無閃爍參考是由一個(gè)回合的簡化P幀編碼生成的。
5.如權(quán)利要求4所述的方法,其中,該簡化的P幀編碼包括以下步驟對于在I幀和之前GOP的最接近的編碼幀之間的低相關(guān)性,應(yīng)用較大的運(yùn)動(dòng)搜索范圍。
6.如權(quán)利要求4所述的方法,其中,該簡化的P幀編碼包括以下步驟對于在I幀和之前GOP的最接近的編碼幀之間的高相關(guān)性,應(yīng)用較小的運(yùn)動(dòng)搜索范圍。
7.如權(quán)利要求4所述的方法,其中,該簡化的P幀編碼包括在模式選擇中放棄跳躍模式檢查。
8.如權(quán)利要求4所述的方法,其中,簡化的P幀編碼包括以下步驟僅檢查P16x 16 模式,使用較小的運(yùn)動(dòng)搜索范圍,編碼當(dāng)前幀MB和預(yù)測參考MB之間的失真匹配,以及在 RDO-MS中修改RD成本,由此防止或阻止跳躍模式和幀內(nèi)模式。
9.如權(quán)利要求5所述的方法,其中,通過總的幀間復(fù)雜度來確定相關(guān)性。
10.如權(quán)利要求6所述的方法,其中,通過總的幀間復(fù)雜度來確定相關(guān)性。
全文摘要
提出了一種編碼視頻的方法,其中形成并在并行線程中編碼多個(gè)畫面組(GOP)。每個(gè)編碼GOP具有初始的I幀以及接下來的一系列P幀。每個(gè)I幀被利用從之前GOP的最接近的編碼幀導(dǎo)出的第一無閃爍參考來進(jìn)行去閃爍編碼,而該之前GOP的一系列P幀中的最后P幀被利用從去閃爍編碼的I幀導(dǎo)出的第二無閃爍參考來進(jìn)行去閃爍編碼。
文檔編號(hào)H04N11/04GK102217315SQ200980145004
公開日2011年10月12日 申請日期2009年11月10日 優(yōu)先權(quán)日2008年11月12日
發(fā)明者楊華 申請人:湯姆森特許公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1