專利名稱:視頻編碼方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及應(yīng)用于數(shù)字電視傳輸?shù)母倪M(jìn)的幀內(nèi)數(shù)字圖像編碼系統(tǒng)和方法。
背景技術(shù):
數(shù)字電視為觀看者提供了高質(zhì)量的視頻娛樂,例如按次計費(fèi)、電子節(jié)目導(dǎo)航、視頻點(diǎn)播、天氣和股票信息以及因特網(wǎng)接入等。打包在信息流中的視頻圖像通過架構(gòu)在衛(wèi)星、電纜或者陸上傳輸媒質(zhì)之上的寬帶通信網(wǎng)絡(luò)傳輸給用戶。由于帶寬和功率的限制,有效的電影和視頻傳輸需要廣泛地應(yīng)用壓縮和格式化技術(shù)。例如MPEG1和MPEG2的協(xié)議針對電影和視頻信息傳輸,通過在空間壓縮算法中加入時間分量來最大化帶寬的利用率。
電影或者視頻的圖像序列中的每個單圖像稱為幀。每個幀都由大量的圖形元素(像素)組成來定義圖像。每幀中冗余像素描述了場景的部分,例如藍(lán)色的天空。不同種類的壓縮算法都用來消除冗余空間元素從而減少圖像傳輸?shù)膸捫枨?。電影或者視頻上的幀序列通常包括非常近似或相同的像素。為了最大化帶寬利用率,典型地應(yīng)用例如MPEG的壓縮和運(yùn)動補(bǔ)償協(xié)議來最小化這些相鄰幀間的冗余像素。用于預(yù)測相鄰幀圖像運(yùn)動的編碼器參考幀稱為錨幀(anchor frame)。這些錨幀的種類可以是內(nèi)幀(I-幀)或者預(yù)測幀(P-幀)。不需要參考其它幀就可以形成映射的像素組(宏塊)組成I-幀,而P-幀需要幀序列中在前編碼的幀作為參考。第三種幀稱為雙向幀(B-幀),包括參考之前遇到幀的宏塊和該幀之后當(dāng)前正在分析幀的宏塊。這需要一種預(yù)測機(jī)制根據(jù)即將到來的圖像來描述當(dāng)前分析圖像。在參考幀中B-幀和P-幀編碼通過計算與宏塊相關(guān)聯(lián)的運(yùn)動矢量減少了像素的重復(fù),減少了帶寬需要。MPEG-2編碼和MPEG-1編碼的不同在于它們所支持的幀片斷。片斷是為可以獨(dú)立參考的幀定義的一個單行之內(nèi)的連續(xù)的宏塊組。典型地,片斷屬于相同類型,也就是說所有P-幀編碼類型或者所有I-幀編碼類型。圖像的復(fù)雜度決定了特定幀編碼類型的選擇。
MPEG-2數(shù)字視頻系統(tǒng)中,通過用于該幀編碼的量化級別和該幀編碼比特數(shù)的乘積對視頻幀的復(fù)雜度進(jìn)行測量。也就是說,幀的復(fù)雜度只有在對它進(jìn)行編碼之后才能知道。結(jié)果,復(fù)雜度信息總是滯后于在編碼之前需要緩沖大量幀的真實編碼過程,因此增加了消耗和復(fù)雜度。
更進(jìn)一步地,,I-幀和P-幀編碼協(xié)議的選取特別要求多重編碼傳遞單幀,來決定編碼的復(fù)雜度。如果P-幀編碼比利用I-幀編碼實現(xiàn)導(dǎo)致更大的復(fù)雜度,那將選擇I-幀編碼。理想化地,在前級編碼器中對錨幀進(jìn)行兩次編碼以產(chǎn)生I和P情況的復(fù)雜度測量,但是預(yù)先進(jìn)行的計算通常限制了這種方法。從帶寬利用角度看,除了圖像復(fù)雜度要求I-幀編碼的情況之外,例如,在場景變換情況中,用P-幀進(jìn)行編碼是最有效的。用多重編碼傳遞單幀的一個問題是引入了增加的計算復(fù)雜度,從而減少了編碼器的吞吐量。此方法的另一個問題是內(nèi)在的對幀進(jìn)行兩次編碼所帶來的低效率。
因此,需要一種改進(jìn)了復(fù)雜度的編碼系統(tǒng)。本系統(tǒng)可以實現(xiàn)有效的場景變化檢測。進(jìn)一步地,系統(tǒng)基本上可以用于任何種類的圖像數(shù)據(jù),包括高清晰度(HD)和標(biāo)準(zhǔn)清晰度(SD)電視(TV)。本發(fā)明提供了處理這些問題的解決方法的同時提供了增強(qiáng)的、電影或視頻幀編碼的吞吐量。
發(fā)明內(nèi)容
本發(fā)明提出了指定連續(xù)視頻信號的數(shù)字視頻幀類型和圖像組(GOP)長度的方法和附隨的設(shè)備。
本發(fā)明可替換地在單幀內(nèi)對I-幀和P-幀的宏塊進(jìn)行編碼。通過這樣做,不通過對相同幀的兩次編碼就可以計算出I和P編碼的復(fù)雜度。這種安排使后級編碼器取代前級編碼器作出I-幀決定,因此采用預(yù)測流水線的方法使具有場景變化的I-幀的對齊更為有效。本方法同時減少了編碼的計算復(fù)雜度。
本發(fā)明包括級聯(lián)(tow-pass)視頻編碼系統(tǒng),其中前級編碼把每個連續(xù)錨幀指定為預(yù)測幀(P-幀)的編碼類型,與例如兩個連續(xù)的雙向編碼幀(B-幀)相交替。通常,幀編碼類型指定可以是內(nèi)幀(I-幀),預(yù)測幀(P-幀)或者雙向幀(B-幀)編碼。
為在單級上計算每個視頻幀的復(fù)雜度,每個P-幀分割成交織的內(nèi)幀編碼宏塊(例如I-片斷)和預(yù)測幀編碼宏塊(例如P-片斷)。在兩個相鄰P-幀之間這些片斷交換位置進(jìn)行編碼。對每個編碼幀,計算復(fù)雜度量度并且發(fā)送到后級編碼器來進(jìn)行進(jìn)一步的處理。每一幀的復(fù)雜度度量等于幀內(nèi)片斷產(chǎn)生的總比特數(shù)目和量化級別與產(chǎn)生的比特之間的非線性映射關(guān)系相關(guān)的數(shù)值的乘積。為每個單獨(dú)錨幀計算P-幀編碼和I-幀編碼復(fù)雜度度量的步驟在同一級中進(jìn)行,允許在后級而不是前級中指定I-幀。由于可能在后繼幀中引入的需要指派I-幀類型的場景變化幀使得本發(fā)明具有先進(jìn)性。通過從它的缺省長度擴(kuò)展圖像組(GOP)和包括具有指定I-幀類型的場景變化幀,使本發(fā)明更加有效。場景變化幀通過前級編碼器利用場景變化檢測算法進(jìn)行檢測,然而,幀類型在后級編碼器中進(jìn)行指定。通過計算某幀的P-幀復(fù)雜度量度和I-幀復(fù)雜度量度之間的相關(guān)差異以及利用參考閾值的評價計算來識別場景變化幀。與每個場景變化幀相關(guān)聯(lián)的場景變化通知被傳送到后級編碼器中用于處理。
后級編碼器的流水線結(jié)構(gòu)為有效地為連續(xù)視頻幀編碼提供預(yù)測緩沖能力。它用于P-幀和B-幀編碼算法并用于識別后繼幀中的場景變化幀,從而內(nèi)在確定I-幀,直到后繼幀得到處理。每處理一幀計數(shù)器加一。后級編碼器中,與每個場景變化幀相關(guān)的場景變化通知被傳送到連續(xù)的延遲單元,它們在這里得到緩沖并且同時用后級編碼器來分析相應(yīng)幀。每檢測到一個場景變化,計數(shù)器加一,幀處理期間,計數(shù)器減一。通過分析前級編碼器提供的復(fù)雜度系數(shù),在連續(xù)的幀中利用流水線處理結(jié)構(gòu)為每幀指定幀編碼類型(P,B或者I)。場景變化幀只能指定為I-幀或P-幀。圖像組(GOP)開始的第一幀指定為I-幀,同時幀計數(shù)器按照每個GOP指定而重新初始化。如果沒有場景變化發(fā)生,GOP長度遵循事先設(shè)定的標(biāo)稱刷新率。在場景變化發(fā)生時,幀長度按照需要進(jìn)行調(diào)整。如果幀計數(shù)超出了最大值,即使場景變化不斷發(fā)生的情況下也進(jìn)行I-幀編碼。同樣,在幀緩沖填滿時,進(jìn)行I-幀編碼來防止丟失視頻信息。在場景變化發(fā)生的情況下,通常在場景變化幀上進(jìn)行新GOP編碼。然而,除了場景變化突發(fā)的最后一次場景變化幀之外,只要場景變化計數(shù)擁有大于零的值就不進(jìn)行內(nèi)編碼(I)幀的編碼。
圖1說明根據(jù)本發(fā)明的處理結(jié)構(gòu)框圖;圖2說明根據(jù)本發(fā)明的圖像組(GOP)中每幀的編碼類型;圖3說明根據(jù)本發(fā)明的場景變化處理流水線;圖4說明根據(jù)本發(fā)明的圖像編碼類型決定算法。
具體實施例方式
本發(fā)明涉及應(yīng)用于增強(qiáng)數(shù)字電視信號傳輸?shù)母倪M(jìn)的視頻幀編碼子系統(tǒng)和方法。特別地,在視頻幀編碼過程中,滿足了減少計算復(fù)雜度的要求,從而提供更有效的I-幀和場景變化對齊和執(zhí)行更有效的場景變化檢測算法。
圖1是根據(jù)本發(fā)明的視頻幀編碼子系統(tǒng)的處理結(jié)構(gòu)框圖。該子系統(tǒng)是數(shù)字視頻編碼系統(tǒng)的一部分。
本子系統(tǒng)包括下列組件前級編碼器100降噪預(yù)處理器102后級編碼器104主壓縮控制器(MCC)106包處理器108視頻FIFO隊列和包生成器110系統(tǒng)概述前級編碼器100,降噪預(yù)處理器102和后級編碼器104配合使用來估計輸入視頻幀的復(fù)雜度,濾除輸入視頻的噪聲,同時擔(dān)負(fù)壓縮輸入視頻圖像的任務(wù)。后級編碼器準(zhǔn)備需要的參數(shù),同時提供這個信息給流量控制處理器(圖中未畫出),該處理器反過來為后級編碼器提供對應(yīng)的編碼比特率。事實上,前級和后級編碼器的級連對單輸入數(shù)據(jù)信道進(jìn)行編碼,并且進(jìn)行包括運(yùn)動壓縮(對P-和B-幀)的數(shù)據(jù)壓縮、離散余弦變換(DCT)和量化的操作。編碼器可以根據(jù)真實編碼比特率為流量控制處理器提供反饋信息。主壓縮控制器(MCC)106通過周邊元件擴(kuò)展接口(PCI)總線對編碼器進(jìn)行數(shù)據(jù)壓縮控制。編碼后的數(shù)據(jù)提供給與包處理器108協(xié)同工作的包生成器110,來提供多路復(fù)用的視頻數(shù)據(jù)比特流。與包生成器110相關(guān)的視頻先入先出(FIFO)緩沖存儲壓縮數(shù)據(jù),同時包處理器108形成帶有適當(dāng)頭信息的壓縮數(shù)據(jù)包,例如根據(jù)MPEG-2或其它視頻標(biāo)準(zhǔn)。之后,數(shù)據(jù)送到發(fā)射器通過通信信道用于輸出流傳輸。
在解碼端,為輸出解碼視頻信號,例如顯示在電視上,提供接收器、緩沖器和解復(fù)用器。
變量列表
復(fù)雜度估計前級編碼器在標(biāo)稱的固定量化級別(例如用q=20標(biāo)識1到112級別)上通過對視頻幀編碼為每個視頻幀產(chǎn)生預(yù)測復(fù)雜度。通過前級編碼產(chǎn)生的比特數(shù)目用作幀復(fù)雜度的測量。為了利用這個預(yù)測復(fù)雜度,在后級編碼中幀的圖像編碼類型必須與前級編碼中相同幀的圖像編碼類型相匹配。然而,由于可能的場景變化,I-幀的位置無法在后級編碼之前確定。理想化地,錨幀(非B-幀)應(yīng)該在前級編碼器中進(jìn)行兩次編碼,為I和P的情況產(chǎn)生復(fù)雜度度量,可是實際上編碼器可能沒有足夠的處理能力來支持這種方法。
本發(fā)明的處理結(jié)構(gòu)利用新的算法(在下邊進(jìn)行討論),不需要兩次編碼就可以通過前級編碼器產(chǎn)生I和P的復(fù)雜度度量。
對前級編碼器中的每個錨幀進(jìn)行P-幀的編碼,也就是說,前級編碼幀序列擁有下述形式...PBBPBBPBBPBBP...
在P-幀內(nèi),宏塊可按照內(nèi)幀或預(yù)測幀進(jìn)行編碼。這些宏塊可以按所需放置在幀內(nèi)。連續(xù)的、顯示相同編碼類型(I或P)的宏塊可以連接到編碼單元。如果它們發(fā)生在該幀的同一行,稱它們?yōu)槠瑪?。I-片斷可以與P-片斷交織。例如,每個相間片段可以按照I-片斷進(jìn)行編碼并且I-片斷和標(biāo)準(zhǔn)P-片斷的位置在每相鄰幀112中互換,如圖2所示??商鎿Q地,可以在另外幀中不互換形式的情況下使用相同編碼。同樣,幀內(nèi)片段的方向可以指定為垂直來代替水平,代表類編碼宏塊的列連續(xù)性。可以設(shè)想使用這個概念的大量的其它編碼機(jī)制。
圖2所示的例子中,同樣顯示出B-幀114的位置。I,P和B幀的復(fù)雜度值可以通過下列方法計算得出complexity[I]=f(Q)*(2*P-幀中的I片斷產(chǎn)生的所有比特數(shù))complexity[P]=f(Q)*(2*P幀中的標(biāo)稱P片斷產(chǎn)生的所有比特數(shù))complexity[B]=f(Q)*(B幀中的所有片斷產(chǎn)生的所有比特數(shù))這里Q是用在前級編碼的固定量化級的值,f(Q)是由查找表實現(xiàn)的非線性映射,用于補(bǔ)償量化級別和生成比特之間的非線性關(guān)系。對于所述實例,非線性映射定義為平方限函數(shù),也就是f(Q)=Q的平方根。
處理之后,前級編碼器計算復(fù)雜度系數(shù)并且把這個評價作為32比特的浮點(diǎn)數(shù)發(fā)送到后級編碼器。由于檢測場景變化在指定幀編碼類型中的重要性,本算法將在下面的部分進(jìn)行描述。
處理流水線在編碼器硬件結(jié)構(gòu)中,幀在處理流程的第一階段(亮度預(yù)處理)分為B-幀或者P-幀。一旦圖像劃分為B-幀,圖像編碼類型在處理流程的后繼階段就無法改變。然而,如果圖像劃分為P-幀,當(dāng)該圖像在流程的最后階段進(jìn)行真實編碼的時候它可能轉(zhuǎn)化成為I-幀來開始新的GOP。
圖3中展示了場景變化處理流水線。按照視頻處理結(jié)構(gòu),場景變化檢測在前級編碼器中進(jìn)行,如框圖116所示,這里進(jìn)行視頻獲取,水平采樣,和電影模式效果(detelecine)等操作,隨后進(jìn)行前級視頻編碼和場景變化檢測。場景變化標(biāo)志寫入到后級編碼器的隊列118中,在那里將得到進(jìn)一步的處理。直到最后的編碼階段之前,隊列延遲了場景變化標(biāo)志的應(yīng)用,在這里它用來決定I/P圖像的編碼類型,如框圖120所示。圖中,縮寫詞LUPP是亮度預(yù)處理的縮寫,CHPP是色彩預(yù)處理的縮寫,LUMDEC是亮度采樣的縮寫,而ME是運(yùn)動估計的縮寫。后級編碼器進(jìn)一步起作用來執(zhí)行視頻捕捉以及幀重排序和編碼的功能。降噪預(yù)處理器進(jìn)行濾波并且為視頻流提供了預(yù)測延遲。
場景變化檢測場景變化在進(jìn)行復(fù)雜度度量計算之后進(jìn)行檢測。場景變化標(biāo)志只對P-幀定義并且通過比較從P-幀的前級編碼估計的I復(fù)雜度和P復(fù)雜度來確定。I-復(fù)雜度和P-復(fù)雜度值通過在P-幀內(nèi)按照I片斷和P片斷的交替片斷編碼進(jìn)行計算。計算I-復(fù)雜度,作為所有I片斷比特的和;計算P-復(fù)雜度作為所有P片斷比特的和。算法如下如果(alpha*ComplexityP>ComplexityI)sceneChange=TRUEelsesceneChange=FALSEalpha是常數(shù),例如alpha=0.9。
一旦設(shè)置了場景變化標(biāo)志,更容易決定圖像編碼類型。
I/P圖像編碼類型確定通常,當(dāng)每個幀由后級編碼器進(jìn)行編碼的時候幀計數(shù)器加一。當(dāng)幀計數(shù)器值(FrameCount)達(dá)到預(yù)設(shè)標(biāo)稱的刷新率(GopLen)的時候,P-幀轉(zhuǎn)化成為刷新的I-幀來開始新的圖像組(GOP)。幀計數(shù)器在I-幀處重新置0。在后繼的P-幀中檢測到場景變化時,算法直到處理完觸發(fā)場景變化標(biāo)志的P-幀才會發(fā)布I-幀。在這時,P-幀轉(zhuǎn)化成為I-幀并且處理擴(kuò)展GOP來將新的I-幀與場景變化對齊。如果場景變化P-幀在預(yù)測窗口之外發(fā)生,算法將把表達(dá)場景變化P-幀轉(zhuǎn)化為I-幀,從而通過減小GOP長度使場景變化和I幀對齊。
I-幀與通常刷新的偏差由預(yù)測窗口中的幀數(shù)量決定(圖3中的延遲2)。延遲2設(shè)置為8個視頻幀(如果輸入為電影則變?yōu)?或者7個幀)。假設(shè)刷新率為十五幀和雙B-幀結(jié)構(gòu),這個預(yù)測數(shù)量保證了在場景變化幀和I-幀之間最少有9幀,也就是說,最壞情況GOP是...IBBPBBPBBI...,而場景變化幀(新I-幀)和正常刷新I-幀(舊I-幀)之間的最大距離是(15+6)=21幀。
由前級編碼器決定的場景變化標(biāo)志存儲在后級編碼器的隊列當(dāng)中。場景變化標(biāo)志延遲總數(shù)(L-1)幀,假定延遲為常數(shù),這里L(fēng)是視頻幀在MAP上的總延遲。為允許速率控制算法在電影或視頻模式中來預(yù)測至少15幀,L設(shè)置為12幀并且因此延遲1中的延遲數(shù)量為(12-8)=4視頻幀,如圖3所示。
當(dāng)多個場景變化由于閃光或特殊效果編輯而接連發(fā)生的時候,為避免多I-幀,算法延緩發(fā)布I-幀直到在預(yù)測流水線中沒有新的場景變化。這通過當(dāng)場景變化幀進(jìn)入(延遲2)預(yù)測流水線時加一、當(dāng)場景變化標(biāo)志離開流水線時減一的場景變化計數(shù)器(ScCount)來實現(xiàn)。只要場景變化計數(shù)器為非零值時就會避免出現(xiàn)I-幀。
算法同時檢查編碼器緩沖的填滿程度(Bufferlevel)以在它發(fā)布I-幀之前確認(rèn)在緩沖中是否有足夠的空間分配給I-幀。BufferLevel與閾值(ThBuf)進(jìn)行比較,閾值由下式?jīng)Q定ThBuf=TargetBufferLevel+(0.5*GopLen*BitRate/FrameRate)
if(ThBuf>0.5*MaxDecoderBufferLevel)ThBuf=0.5*MaxDecoderBufferLevelMaxDecoderBufferLevel是解碼器能夠擁有的最大比特數(shù),是系統(tǒng)延遲和比特率的乘積。TargetBufferLevel設(shè)置為1/5的MaxDecoderBufferLevel。
即使輸入擁有重復(fù)的場景變化,為保證I-幀的產(chǎn)生,當(dāng)幀計數(shù)器的值達(dá)到上限的時候算法強(qiáng)制發(fā)布I-幀,該上限設(shè)置為兩倍于標(biāo)稱的刷新率的值。
詳細(xì)的圖像編碼類型決定算法在如圖4所示的流程圖中進(jìn)行了描述。該流程圖在允許設(shè)定I-幀之前通過一系列測試運(yùn)算,從而指示GOP。最初,圖像編碼類型在編碼階段決定,如框圖122所示。如果檢測到延遲的場景變化標(biāo)志(DelayedSC),框圖124,在進(jìn)一步操作開始之前場景變化計數(shù)(ScCount)減一,框圖126。對發(fā)生在預(yù)測窗口之外的場景變化P-幀進(jìn)行條件測試。FrameCount與最大允許GOP長度(MaxGopLen)作比較。如果發(fā)現(xiàn)條件為真那么在算法繼續(xù)之前設(shè)置StartNewGop,框圖134。如果條件不滿足,那么對滿緩沖進(jìn)行測試,框圖132。如果緩沖填滿了,那么就在算法繼續(xù)之前清空StartNewGOP,框圖134。可替換地,如果沒有達(dá)到緩沖滿條件,那么對場景變化進(jìn)行條件測試,框圖136。如果ScCount為非零值,那么在算法繼續(xù)之前通過清空StartNewGOP延緩I-幀。但是,如果ScCount為零并且設(shè)置了DelayedSC,那么處理觸發(fā)場景變化標(biāo)志的P-幀,框圖138,并且在算法繼續(xù)之前設(shè)置StartNewGOP標(biāo)志。如果場景變化計數(shù)(ScCount)為零但未設(shè)置DelayedSC,那么算法處理到框圖140來檢測幀計數(shù)是否大于GOP長度。如果滿足條件,那么在算法繼續(xù)運(yùn)行之前通過設(shè)置StarNewGOP標(biāo)志發(fā)布I-幀。但是,如果幀計數(shù)小于GOP長度,那么清除StartNewGOP標(biāo)志,并且算法繼續(xù)。
如上設(shè)置StartNewGOP標(biāo)志之后,算法運(yùn)行到框圖142來決定PrePicType是否設(shè)置為雙向(B-幀)。如果設(shè)置了,那么無論StartNewGop標(biāo)志為何狀態(tài),當(dāng)前幀的圖像類型(PictureType)設(shè)置為B-幀并且?guī)嫈?shù)器(FrameCount)增加??商鎿Q地,如果PrePicType沒有設(shè)置為B-幀,那么對StartNewGOP標(biāo)志的狀態(tài)進(jìn)行分析,框圖146,并且圖像類型(PictureType)根據(jù)設(shè)置或者清除標(biāo)志的狀態(tài)分別設(shè)置為I-幀或P-幀。I-幀圖像類型的情況下,清除FrameCount以標(biāo)識新GOP的開始。
因此,可以看出本發(fā)明為減少數(shù)字電視視頻數(shù)據(jù)的編碼復(fù)雜度提供了改進(jìn)的編碼器。盡管上面的詳細(xì)說明是參考優(yōu)選實施例而描述的,應(yīng)該可以理解,在不背離所附權(quán)利要求中所闡述的本發(fā)明的范圍的前提下,可以做出多種不同的修改和改編。
權(quán)利要求
1.一種用于指定連續(xù)視頻幀的數(shù)字視頻幀類型和圖像組(GOP)長度的方法,包括如下步驟在前級編碼中分割連續(xù)錨幀的預(yù)測幀(P-幀)為交織的內(nèi)幀宏塊組和預(yù)測幀宏塊組,為每個連續(xù)視頻幀計算與幀編碼類型相關(guān)的復(fù)雜度度量,并且發(fā)送每個所述復(fù)雜度度量到后級編碼,在連續(xù)錨幀中檢測場景變化幀,和發(fā)送與每個所述場景變化幀相關(guān)的場景變化通知到所述后級編碼;和在所述后級編碼中連續(xù)地在多個延遲元素之一中存儲所述與每個所述場景變化幀相關(guān)的場景變化通知,為所述連續(xù)視頻幀中的每個所述視頻幀指定幀編碼類型,為GOP規(guī)定指定所述視頻幀的子集,并以I-幀編碼幀開始所述子集。
2.如權(quán)利要求1所述的方法,其中由所述后級編碼執(zhí)行的幀編碼類型指定包括為每個視頻幀指定內(nèi)幀(I-幀)、預(yù)測幀(P-幀)和雙向幀(B-幀)類型之一。
3.如權(quán)利要求1所述的方法,其中把所述P-幀分割為交織的內(nèi)幀宏塊組和預(yù)測幀宏塊組的操作可以在所述P-幀內(nèi)以任意順序和任意方向發(fā)生。
4.如權(quán)利要求1所述的方法,其中復(fù)雜度度量計算步驟包括為每個幀類型計算由特定幀類型的幀內(nèi)宏塊生成的總比特數(shù)和關(guān)聯(lián)于量化級別與所述生成比特之間的非線性映射關(guān)系的值的乘積。
5.如權(quán)利要求4所述的方法,進(jìn)一步包括在一次編碼的情況下為單錨幀計算P-幀編碼和I-幀編碼的復(fù)雜度量度的步驟,以及允許在后級編碼而非前級編碼中指定I-幀的步驟。
6.如權(quán)利要求1所述的方法,其中前級幀編碼類型指定進(jìn)一步包括通過計算一幀的P-幀復(fù)雜度度量和I-幀復(fù)雜度度量的相對差別來識別場景變化幀的步驟,和利用相關(guān)閾值評價所述計算的步驟。
7.如權(quán)利要求1所述的方法,其中所述前級編碼步驟指定每個連續(xù)錨幀為預(yù)測幀(P-幀)編碼類型,其與至少一個雙向編碼幀(B-幀)交替出現(xiàn)。
8.一種用于對擁有連續(xù)視頻幀的數(shù)字視頻信號進(jìn)行編碼的設(shè)備,包括前級編碼器,用于分割連續(xù)錨幀的預(yù)測幀(P-幀)為交織的內(nèi)幀(I-幀)宏塊組和預(yù)測幀(P-幀)宏塊組,為每個連續(xù)視頻幀計算與幀編碼類型相關(guān)的復(fù)雜度度量,并且發(fā)送每個所述復(fù)雜度度量到后級編碼,在連續(xù)錨幀中檢測場景變化幀,和發(fā)送與每個所述場景變化幀相關(guān)的場景變化通知到所述后級編碼;和后級編碼器,用于連續(xù)地在多個延遲元素之一中存儲所述與每個所述場景變化幀相關(guān)的場景變化通知,為所述連續(xù)視頻幀中的每個所述視頻幀指定幀編碼類型,為GOP規(guī)定指定所述視頻幀的子集,并以I-幀編碼幀開始所述子集。
9.如權(quán)利要求8所述的設(shè)備,其中降噪預(yù)處理器起到對輸入視頻信號濾波以增加信噪比的作用。
10.如權(quán)利要求8所述的設(shè)備,其中主壓縮控制器起到控制整個系統(tǒng)壓縮和視頻信號流的作用。
11.如權(quán)利要求8所述的設(shè)備,其中視頻緩沖起到臨時存儲視頻幀和壓縮的數(shù)據(jù)的作用。
12.如權(quán)利要求8所述的設(shè)備,其中包處理器利用適當(dāng)?shù)囊曨l標(biāo)準(zhǔn)形成壓縮數(shù)據(jù)包用于在數(shù)字網(wǎng)絡(luò)上傳輸。
13.如權(quán)利要求8所述的設(shè)備,其中前級編碼器分派給每個連續(xù)錨幀為預(yù)測幀(P-幀)編碼類型,其與至少一個雙向編碼幀(B-幀)交替出現(xiàn)。
14.一種用于在數(shù)字電視傳輸?shù)膸瑑?nèi)進(jìn)行數(shù)字圖像編碼的方法,包括對從前級編碼器接收的連續(xù)幀中的每個錨幀作為預(yù)測幀(P-幀)進(jìn)行編碼;對P-幀中的宏塊組交替地作為內(nèi)幀組(I-幀)和P-幀組進(jìn)行編碼;和決定是否在后級編碼器中對特定幀作為I-幀進(jìn)行編碼;其中,使用預(yù)測流水線機(jī)制有效地把I-幀和所述連續(xù)幀中檢測到的場景變化對齊。
15.如權(quán)利要求14所述的方法,其中所述宏塊組包括P-幀片斷。
16.如權(quán)利要求14所述的方法,其中所述后級編碼器指定所述連續(xù)幀中的每個所述幀為內(nèi)幀(I-幀)、預(yù)測幀(P-幀)或者雙向幀(B-幀)類型之一。
全文摘要
本發(fā)明公開一種適用于數(shù)字電視傳輸?shù)母倪M(jìn)的幀內(nèi)數(shù)字圖像編碼系統(tǒng)和方法。在前級編碼器中對每個錨幀按照P-幀進(jìn)行編碼。例如P-幀中片斷的宏塊組交替地按照I-片斷和P片斷進(jìn)行編碼。這允許經(jīng)過單次操作就可計算出I和P的編碼復(fù)雜度,而不需要對同一幀進(jìn)行兩次編碼。從而,后級編碼器可以代替前級編碼器得出I-幀決策,這樣利用預(yù)測流水線機(jī)制的優(yōu)勢可以更有效地把I幀與場景變化對齊。
文檔編號H04N7/36GK1605209SQ02816025
公開日2005年4月6日 申請日期2002年8月9日 優(yōu)先權(quán)日2001年8月15日
發(fā)明者胡少偉, 文森特·劉 申請人:通用儀表公司