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

對視頻數(shù)據(jù)幀編碼的視頻編碼器和方法

文檔序號:7659420閱讀:299來源:國知局
專利名稱:對視頻數(shù)據(jù)幀編碼的視頻編碼器和方法
技術(shù)領(lǐng)域
本發(fā)明涉及對視頻數(shù)據(jù)進(jìn)行幀編碼,更具體地講,涉及一種在視頻編碼器中跳過一些視頻幀以控制比特率的設(shè)備和方法。

背景技術(shù)
通常,視頻編碼器可具有各種視頻序列,以使視頻編碼器提供編碼方法上的靈活性。然而,無線網(wǎng)絡(luò)環(huán)境中的傳輸信道具有一些傳輸限制約束。例如,存在這樣的約束在無線網(wǎng)絡(luò)環(huán)境中被不變地使用的比特數(shù)量(例如,384[kb])。因此,在無線網(wǎng)絡(luò)環(huán)境中發(fā)送端發(fā)送幀數(shù)據(jù)允許限制比特數(shù)量,然后執(zhí)行幀編碼。
此外,由于約束,傳統(tǒng)的視頻編碼器配備有緩沖器,以限制可被發(fā)送到接收端的比特的數(shù)量。圖1是示出傳統(tǒng)視頻編碼器的示例的結(jié)構(gòu)的框圖。
參照圖1,當(dāng)從視頻數(shù)據(jù)產(chǎn)生單元100創(chuàng)建了視頻數(shù)據(jù)時,以按圖像組(GOP)的形式被量化和存儲的幀的形式將該視頻數(shù)據(jù)輸入到視頻編碼器102。如果上述情況發(fā)生,則視頻編碼器102將接收的視頻數(shù)據(jù)的幀(以下,稱為“視頻數(shù)據(jù)幀”)提供給編碼器106,以對接收的幀編碼,所述編碼器106將編碼幀提供給用于存儲按規(guī)定的比特率被發(fā)送到發(fā)送單元104的編碼幀緩沖器108。原因在于當(dāng)視頻編碼器在如上所述的視頻編碼器102的編碼方法中提供靈活性時,比特的數(shù)量是可變的。因此,如上所述,一般的視頻編碼器102配備有緩沖器108,以對正被發(fā)送的編碼幀中的每一幀保持恒定數(shù)量的比特(恒定比特率(CBR))。
為了如上所述的限制比特的數(shù)量,該傳統(tǒng)視頻編碼器102使用用于改變每一視頻數(shù)據(jù)幀的量化參數(shù)以產(chǎn)生視頻數(shù)據(jù)的方法。盡管該方法控制在產(chǎn)生視頻數(shù)據(jù)幀時創(chuàng)建的視頻數(shù)據(jù)的比特數(shù)量,但是視頻數(shù)據(jù)幀的比特數(shù)量隨著量化參數(shù)的增加而減小,反之,視頻數(shù)據(jù)幀的比特數(shù)量隨量化參數(shù)的減小而增加。
通常對緩沖器108的存儲容量有限制。因而,為了防止將被緩沖的視頻數(shù)據(jù)幀的量超過緩沖器108的存儲容量,在傳統(tǒng)視頻編碼器102中限定了上界,以使創(chuàng)建的比特被控制在允許的限度范圍內(nèi)。
然而,如上所述,即使使用了用于改變量化參數(shù)的方法,仍可能發(fā)生如下情況根據(jù)當(dāng)前設(shè)置的限制,編碼幀的比特數(shù)量不適合環(huán)境。即,即使將量化參數(shù)設(shè)置為最大值,也可能發(fā)生如下情況編碼的視頻數(shù)據(jù)幀的比特數(shù)量超過緩沖器108的預(yù)設(shè)上界。例如,可發(fā)生如下情況隨著在預(yù)測圖像運動(圖像運動是大運動并且復(fù)雜)之后殘余數(shù)據(jù)的量增加,可能產(chǎn)生超過上界的比特數(shù)量。在這種情況下,為了滿足恒定比特率的限制條件,傳統(tǒng)視頻編碼器102跳過下一幀。然后,由于跳過了下一幀,所以當(dāng)對有關(guān)幀編碼時,產(chǎn)生的比特變成0,因此,緩沖器中的比特數(shù)量減小了被發(fā)送的比特數(shù)量。
然而,在傳統(tǒng)視頻編碼器102中,在發(fā)生了緩沖器的存儲容量超過上界的這種溢出情況下,根據(jù)緩沖器的比特數(shù)量來執(zhí)行跳幀。因此,有關(guān)幀是I幀還是P幀對執(zhí)行跳幀沒有影響。通常,I幀和最初的P幀(以下,稱為“第一P幀”)成為有關(guān)GOP中包括的其他幀的參考幀。因此,因為在包括I幀的GOP的開始部分中的P幀對以后的其他幀有很大影響,所以這些P幀非常重要。然而,由于傳統(tǒng)視頻編碼器102不考慮I幀或第一P幀來執(zhí)行跳幀,所以當(dāng)情況需要時,重要幀(例如,I幀或與特定GOP的開始部分相應(yīng)的P幀)可被跳過。在這種情況下,隨著在預(yù)測被跳過的幀之后的運動期間誤差變大,較大的誤差被傳播,并可對畫面質(zhì)量具有大的影響。
此外,在許多運動(例如,激烈的體育運動)出乎意料并同時發(fā)生的情況下,在特定時刻,一些幀被分配多個比特,但是可發(fā)生另外的連續(xù)跳幀。這里,存在許多運動的一部分對應(yīng)于重要部分。在接連發(fā)生跳過的情況下,被跳過部分的內(nèi)容不能被感知,并且連續(xù)的跳過降低了畫面的整體質(zhì)量。


發(fā)明內(nèi)容
因此,通過提供一種通過有效指定跳過編碼幀的位置以防止跳過參考幀來對視頻數(shù)據(jù)幀編碼的視頻編碼器和方法,做出本發(fā)明以解決在現(xiàn)有技術(shù)中發(fā)生的上述問題,并提供另外的優(yōu)點。
本發(fā)明的另一方面在于提供一種在防止跳過重要參考幀的同時通過防止發(fā)生連續(xù)跳過來防止降低畫面的整體質(zhì)量的對視頻數(shù)據(jù)幀編碼的視頻編碼器和方法。
在一個實施例中,提供了一種根據(jù)本發(fā)明實施例的視頻編碼器,所述編碼器包括編碼器,用于在接收的視頻數(shù)據(jù)幀被編碼的情況下預(yù)測總編碼容量,對從接收的視頻數(shù)據(jù)幀中除去分別與確定跳過的位置相應(yīng)的視頻數(shù)據(jù)幀而產(chǎn)生的視頻數(shù)據(jù)幀編碼,并提供編碼的視頻數(shù)據(jù)幀;緩沖器,用于緩沖從編碼器提供的編碼的視頻數(shù)據(jù)幀;可用容量測量單元,用于測量緩沖器的可用容量;溢出量測量單元,用于從編碼器輸入關(guān)于總編碼容量的信息;用于從可用容量測量單元輸入關(guān)于可用容量的信息;用于將關(guān)于總編碼容量的信息與關(guān)于可用容量的信息進(jìn)行比較;和用于預(yù)測溢出量;平均容量計算單元,用于檢查關(guān)于從編碼器提供的編碼數(shù)據(jù)的容量的信息,以存儲檢查的信息,并用于計算存儲的編碼數(shù)據(jù)的平均容量;和P幀跳過估計單元,用于通過使用預(yù)測的溢出量和計算的平均容量來計算預(yù)料溢出的編碼幀的數(shù)量,并根據(jù)計算的預(yù)料溢出的編碼幀的數(shù)量來確定將被跳過編碼的視頻數(shù)據(jù)幀中每一幀的位置。
在另一實施例中,提供了一種根據(jù)本發(fā)明實施例的對視頻數(shù)據(jù)幀編碼的方法,所述方法包括以下步驟在與輸入視頻數(shù)據(jù)幀相應(yīng)的整個圖像組(GOP)的幀被編碼的情況下,預(yù)測總編碼容量;根據(jù)預(yù)設(shè)順序來選擇輸入視頻數(shù)據(jù)幀中的任何一幀,檢查所選擇的視頻數(shù)據(jù)幀是否對應(yīng)于GOP的I幀或與GOP的初始P幀相應(yīng)的第一P幀,如果所選擇的視頻數(shù)據(jù)幀對應(yīng)于I幀或第一P幀,則對所選擇的視頻數(shù)據(jù)幀編碼;作為檢查幀的結(jié)果,在當(dāng)前選擇的視頻數(shù)據(jù)幀不對應(yīng)于I幀或第一P幀的情況下,確定是否存在預(yù)設(shè)幀跳過位置;作為確定跳過位置的結(jié)果,在不存在預(yù)設(shè)幀跳過位置的情況下,根據(jù)從在所述GOP之前編碼的GOP的P幀計算的平均容量和在視頻編碼器的緩沖器中的可用容量來設(shè)置跳過位置;和作為確定跳過位置的結(jié)果,在存在預(yù)設(shè)幀跳過位置的情況下,確定所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀是否對應(yīng)于所述預(yù)設(shè)幀跳過位置,并根據(jù)確定的結(jié)果來執(zhí)行對所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀的編碼。



從下面結(jié)合附圖進(jìn)行的詳細(xì)描述中,本發(fā)明的以上特征和優(yōu)點將更清楚,其中 圖1是示出傳統(tǒng)視頻編碼器的示例的結(jié)構(gòu)的框圖; 圖2是示出根據(jù)本發(fā)明示例性實施例的視頻編碼器的結(jié)構(gòu)的框圖; 圖3是示出根據(jù)在根據(jù)本發(fā)明示例性實施例的視頻編碼器中的緩沖器的當(dāng)前可用容量來跳過視頻數(shù)據(jù)幀的示例性操作的流程圖; 圖4是根據(jù)本發(fā)明示例性實施例的視頻編碼器中對幀編碼并存儲關(guān)于容量的信息的示例性操作的流程圖; 圖5是示出在根據(jù)本發(fā)明示例性實施例的視頻編碼器中跳過幀并重置跳過計數(shù)值的示例性操作的流程圖; 圖6是示出在根據(jù)本發(fā)明示例性實施例的視頻編碼器中,如果當(dāng)前選擇的幀是緊在最后幀之前的幀,則根據(jù)緩沖器的可用容量不管預(yù)設(shè)跳過位置而跳過幀的示例性操作的流程圖; 圖7是示出根據(jù)本發(fā)明示例性實施例的如果當(dāng)前選擇的幀是I幀或第一P幀則對該幀編碼的示例性操作的流程圖;和 圖8是示出在根據(jù)本發(fā)明示例性實施例的視頻編碼器中,如果當(dāng)前選擇的幀是緊在最后幀之前的幀,則在視頻編碼器中基于緩沖器的可用容量足以接受I幀和第一P幀來跳過該幀的示例性操作的流程圖。

具體實施例方式 以下,將參照附圖描述本發(fā)明的實施例。在下面的描述和附圖中,相同的標(biāo)號表示相同的部件,盡管所述相同部件在不同的附圖中示出。因為對這里所包含的公知功能和結(jié)構(gòu)的詳細(xì)描述將使本發(fā)明的主題不清晰,所以為了簡明和簡單,將省略對這里所包含的公知功能和結(jié)構(gòu)的詳細(xì)描述。
首先將描述本發(fā)明的基本原理。在本發(fā)明中,視頻編碼器的編碼器檢查將被編碼的視頻數(shù)據(jù)幀的總?cè)萘?,并通過使用從前一GOP中提取的P幀的平均容量根據(jù)檢查的總?cè)萘縼眍A(yù)測將被編碼的P幀的數(shù)量。然后,根據(jù)緩沖器的可用容量從預(yù)測的P幀的數(shù)量來計算由于緩沖器溢出而將被跳過的幀的數(shù)量。接著,根據(jù)預(yù)測的P幀的數(shù)量和GOP的幀的數(shù)量把將被跳過的幀的位置設(shè)置為不連續(xù)。此外,當(dāng)對視頻數(shù)據(jù)幀執(zhí)行編碼的同時,在所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀被安排在與將被跳過的幀被安排的位置相同的位置的情況下,跳過對該視頻數(shù)據(jù)幀的編碼。這里,從視頻數(shù)據(jù)幀中成為其他視頻數(shù)據(jù)幀的參考幀的I幀或從除了第一P幀(成為另一視頻數(shù)據(jù)幀的參考幀)之外的P幀來確定跳過的幀。
圖2是示出根據(jù)本發(fā)明示例性實施例的視頻編碼器的結(jié)構(gòu)的框圖。
參照圖2,視頻編碼器200從視頻數(shù)據(jù)產(chǎn)生單元100接收構(gòu)成幀的視頻數(shù)據(jù),并且該視頻編碼器200包括編碼器250內(nèi)的容量預(yù)測單元262、緩沖器252、可用容量測量單元256、溢出量測量單元254、P幀平均容量計算單元260、P幀數(shù)量預(yù)測單元264和P幀跳過位置估計單元258。容量預(yù)測單元262檢查在所有的視頻數(shù)據(jù)幀被編碼的情況下的總編碼容量。編碼器250根據(jù)預(yù)設(shè)編碼方案僅對接收的視頻數(shù)據(jù)幀中的與預(yù)設(shè)跳過位置不相應(yīng)的視頻數(shù)據(jù)幀編碼。緩沖器252從編碼器250接收編碼的視頻數(shù)據(jù)幀,并輸出規(guī)定數(shù)量的比特??捎萌萘繙y量單元256測量緩沖器的可用容量。溢出量測量單元254從可用容量測量單元256接收可用容量的測量結(jié)果,從編碼器250接收總的編碼容量,如果存在溢出的話,則測量溢出量。P幀平均容量計算單元260檢查關(guān)于從編碼器250提供的P幀的容量的信息(以下,稱為“容量信息”),以存儲檢查的關(guān)于P幀的容量的信息,并計算存儲的P幀的平均容量,并存儲所計算的存儲的P幀的平均容量。P幀數(shù)量預(yù)測單元264根據(jù)從P幀平均容量計算單元260接收的P幀的平均容量來計算從溢出量測量單元254接收的溢出量,并測量將被跳過的P幀的數(shù)量。P幀跳過位置估計單元258根據(jù)通過P幀數(shù)量預(yù)測單元264預(yù)測的P幀的數(shù)量來設(shè)置將被跳過的P幀的位置,并將設(shè)置的位置提供給編碼器250。
更詳細(xì)地描述,當(dāng)根據(jù)本發(fā)明實施例的視頻編碼器200的編碼器250從視頻數(shù)據(jù)產(chǎn)生單元100接收視頻數(shù)據(jù)幀時,編碼器250通過容量預(yù)測單元262預(yù)測包括當(dāng)前接收的視頻數(shù)據(jù)幀的整個GOP的編碼容量。然后,編碼器250將預(yù)測的整個GOP的編碼容量提供給溢出量測量單元254。
接著,在接收的視頻數(shù)據(jù)幀對應(yīng)于I幀或第一P幀的情況下,編碼器250執(zhí)行編碼,以將編碼幀提供給緩沖器252。然而,在接收的視頻數(shù)據(jù)幀不對應(yīng)于I幀或第一P幀的情況下,編碼器250檢查是否存在預(yù)設(shè)跳過位置。在存在預(yù)設(shè)跳過位置的情況下,編碼器250檢查當(dāng)前選擇的視頻數(shù)據(jù)幀是否是對應(yīng)于預(yù)設(shè)跳過位置的幀。這里,上述預(yù)設(shè)跳過位置可被設(shè)置為由P幀跳過位置估計單元258設(shè)置的跳過的計數(shù)值(以下,稱為“跳過計數(shù)值”)。即,例如,在跳過計數(shù)值等于‘6’的情況下,每當(dāng)一個視頻數(shù)據(jù)幀被編碼,跳過計數(shù)值減小1。當(dāng)跳過計數(shù)值最終等于‘0’時,可跳過對隨后所選擇的將被編碼的視頻數(shù)據(jù)幀的編碼。
此外,在所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀對應(yīng)于緊在當(dāng)前被執(zhí)行編碼的GOP的最后幀之前的P幀的情況下,通常,可不考慮跳過位置根據(jù)緩沖器252的可用容量來跳過對該所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀的編碼。這是為了防止由于緩沖器252的容量限制而導(dǎo)致在對下一GOP的I幀或第一P幀編碼時跳過下一GOP的I幀或第一P幀。
之后,緩沖器252順序地將從編碼器250提供的編碼幀輸出到發(fā)送單元104。接著,可用容量測量單元256連續(xù)地檢查緩沖器252的當(dāng)前可用容量,以將檢查的可用容量提供給溢出量測量單元254。此時,溢出量測量單元254將編碼器250的容量預(yù)測單元262測量的整個GOP的編碼容量與可用容量測量單元256測量的緩沖器252的可用容量進(jìn)行比較。結(jié)果,溢出量測量單元254確定是否產(chǎn)生溢出,并在預(yù)料發(fā)生溢出的情況下檢查溢出量。
接著,P幀平均容量計算單元260檢查從編碼器250提供的P幀的容量,以將檢查的P幀的容量存儲在P幀平均容量計算單元260的存儲單元266中。此外,在完成對一GOP編碼的情況下,即,在從緩沖器252提供的P幀對應(yīng)于與特定GOP的最后視頻數(shù)據(jù)幀有關(guān)的編碼的P幀(以下,稱為“最后P幀”)的情況下,如果與該P(yáng)幀有關(guān)的容量信息被存儲在存儲單元266中,則P幀平均容量計算單元260計算與有關(guān)最后P幀相應(yīng)的有關(guān)GOP的P幀的平均容量(數(shù)量),并存儲計算的P幀的平均數(shù)量。
之后,P幀跳過位置估計單元258從溢出量測量單元254接收由容量預(yù)測單元262預(yù)測的關(guān)于整個GOP的編碼容量的信息。然后,P幀跳過位置估計單元258從P幀平均容量計算單元260接收P幀的平均容量信息。如果P幀的平均容量信息被輸入,則P幀跳過位置估計單元258初始化預(yù)設(shè)跳過位置。如果通過使用跳過計數(shù)值來設(shè)置跳過位置,則跳過計數(shù)值被初始化。此外,如果P幀的容量與根據(jù)平均容量信息的容量相同,則P幀數(shù)量預(yù)測單元264根據(jù)整個GOP的編碼容量來預(yù)測P幀的總數(shù)量。即,例如,在P幀的平均容量等于359K字節(jié)的情況下,如果整個GOP的編碼容量等于10500K字節(jié),則估計的P幀的數(shù)量是‘30’。
之后,P幀跳過位置估計單元258通過P幀數(shù)量預(yù)測單元264根據(jù)溢出量來預(yù)測P幀的數(shù)量。即,P幀數(shù)量預(yù)測單元264預(yù)測在計算的P幀之中與溢出量測量單元254測量的溢出量相應(yīng)的P幀。即,例如,如果緩沖器的當(dāng)前可用容量等于9800K字節(jié),則溢出量測量單元254當(dāng)前測量的溢出量變成700K字節(jié),然后如上所述,如果P幀的平均容量等于350K字節(jié),則計算可顯示比容量大2個P幀。因此,P幀跳過位置估計單元258預(yù)測在還沒有編碼的視頻數(shù)據(jù)幀之中大于所述容量的P幀的數(shù)量將是2。
因此,P幀跳過位置估計單元258根據(jù)預(yù)測的P幀的數(shù)量來設(shè)置將被跳過的P幀的跳過位置。即,例如,在上述情況(即,預(yù)測的P幀的數(shù)量等于‘2’)下,在還沒有編碼的P幀的數(shù)量等于‘28’時,基于‘28’除以2等于14的表述式,可設(shè)置幀的跳過位置為在每一第14 P幀跳過P幀。在這種情況下,跳過計數(shù)值可被設(shè)置為‘14’。在將該跳過計數(shù)值輸入到編碼器250的情況下,因為每當(dāng)一個視頻數(shù)據(jù)幀被編碼時,當(dāng)前設(shè)置的跳過計數(shù)值就減小1,所以如果跳過計數(shù)值最終被計數(shù)為‘0’,則可跳過對有關(guān)視頻數(shù)據(jù)幀的編碼。如果編碼幀的計數(shù)值變成與從P幀跳過位置估計單元258提供的值相同,則可跳過對有關(guān)視頻數(shù)據(jù)幀的編碼。在跳過對有關(guān)視頻數(shù)據(jù)幀的編碼的情況下,編碼器250初始化跳過計數(shù)值或編碼幀的計數(shù)值,以跳過在下一跳過位置安排的視頻數(shù)據(jù)幀。
圖3是示出根據(jù)在根據(jù)本發(fā)明實施例的視頻編碼器中的緩沖器的當(dāng)前可用容量來跳過視頻數(shù)據(jù)幀的示例性操作的流程圖。
參照圖3,當(dāng)將視頻數(shù)據(jù)幀輸入到視頻編碼器200的編碼器250中時,編碼器250進(jìn)行到步驟300以接收視頻數(shù)據(jù)幀。然后,編碼器進(jìn)行到步驟302,以從接收的視頻數(shù)據(jù)幀檢查在完成了對整個GOP的視頻數(shù)據(jù)幀的編碼的情況下的總編碼容量。編碼器250進(jìn)行到步驟304,以在接收的視頻數(shù)據(jù)幀中選擇將被編碼的視頻數(shù)據(jù)幀。接著,編碼器250進(jìn)行到步驟306,以檢查當(dāng)前選擇的視頻數(shù)據(jù)幀是否對應(yīng)于I幀或第一P幀。這里,編碼器250可從關(guān)于接收的視頻數(shù)據(jù)幀的頭的信息來確定當(dāng)前選擇的視頻數(shù)據(jù)幀是否對應(yīng)于I幀或第一P幀。
如果當(dāng)前選擇的視頻數(shù)據(jù)幀對應(yīng)于I幀或第一P幀,則編碼器250進(jìn)行到步驟308,以無條件地對當(dāng)前選擇的視頻數(shù)據(jù)幀執(zhí)行編碼。隨著編碼的完成,編碼器250將編碼的視頻數(shù)據(jù)幀輸出到緩沖器252。
盡管如此,但是毋庸置疑,緩沖器252的當(dāng)前可用容量可能不足以接受I幀或第一P幀。因此,如果緩沖器252的當(dāng)前可用容量不足以接受I幀或第一P幀,則跳過對與I幀或第一P幀相應(yīng)的當(dāng)前選擇的視頻數(shù)據(jù)幀的編碼。
因此,為了防止發(fā)生這種情況,在步驟304,如果選擇了將被編碼的視頻數(shù)據(jù)幀,則檢查當(dāng)前選擇的視頻數(shù)據(jù)幀是否對應(yīng)于緊在最后幀之前的幀,然后可根據(jù)緩沖器252的可用容量跳過對當(dāng)前選擇的視頻數(shù)據(jù)幀的編碼。在這種情況下,如果當(dāng)前選擇的視頻數(shù)據(jù)幀對應(yīng)于緊在最后幀之前的幀,則視頻編碼器200檢查緩沖器252的當(dāng)前可用容量,以確定緩沖器252的當(dāng)前可用容量是否足以接受隨后的I幀或第一P幀。如果緩沖器252的當(dāng)前可用容量足以接受I幀或第一P幀,則跳過對當(dāng)前選擇的視頻數(shù)據(jù)幀的編碼。
參照圖6,將給出詳細(xì)描述作為在如下情況下的操作的示例在緩沖器252的可用容量大于預(yù)設(shè)量的這種基礎(chǔ)上,對當(dāng)前選擇的視頻數(shù)據(jù)幀的編碼執(zhí)行跳過。此外,參照圖8,將給出詳細(xì)描述作為在下如情況下的操作的示例基于緩沖器252的可用容量大于通過將I幀的容量加上第一P幀的容量所得出的平均容量,對當(dāng)前選擇的視頻數(shù)據(jù)幀的編碼執(zhí)行跳過,其中,所述I幀和第一P幀包括在已經(jīng)完成編碼的前一GOP中。
返回圖3,如果在步驟306中當(dāng)前選擇的視頻數(shù)據(jù)幀不對應(yīng)于I幀或第一P幀,則編碼器250進(jìn)行到步驟310,以檢查是否從P幀跳過位置估計單元258輸入了跳過計數(shù)值,或檢查是否存在當(dāng)前測量的跳過位置。在存在當(dāng)前測量的跳過位置的情況下,編碼器250進(jìn)行到步驟322,以檢查當(dāng)前選擇的視頻數(shù)據(jù)幀是否是與預(yù)設(shè)跳過位置相應(yīng)的幀。如果當(dāng)前選擇的視頻數(shù)據(jù)幀是與預(yù)設(shè)跳過位置相應(yīng)的幀,則編碼器250進(jìn)行到步驟324,以跳過對選擇的有關(guān)幀的編碼。相反,如果當(dāng)前選擇的視頻數(shù)據(jù)幀不是與預(yù)設(shè)跳過位置相應(yīng)的幀,則編碼器250進(jìn)行到步驟326,以執(zhí)行對當(dāng)前選擇的視頻數(shù)據(jù)幀的編碼。如果完成了步驟324或步驟326,則編碼器250進(jìn)行到步驟304,以選擇在下一順序中將被編碼的視頻數(shù)據(jù)幀。
然后,在步驟326,根據(jù)本發(fā)明實施例的視頻編碼器200通過P幀平均容量計算單元260檢查當(dāng)前已完成編碼的P幀的容量,并還可執(zhí)行存儲P幀容量的過程。如上詳細(xì)的描述,這是根據(jù)本發(fā)明描述的實施例的視頻編碼器200采用前一GOP的P幀的平均容量以設(shè)置將被跳過的幀的位置的原因。在當(dāng)前編碼的P幀對應(yīng)于當(dāng)前正被編碼的GOP的最后P幀的情況下,還可執(zhí)行以下過程在存儲所述P幀的容量信息之后,計算當(dāng)前已完成編碼的GOP的P幀的平均容量,以存儲計算的平均容量。還參照圖4詳細(xì)描述該操作。
返回圖3,在步驟310,如果不存在預(yù)設(shè)并測量的跳過位置,則根據(jù)本發(fā)明實施例的視頻編碼器200進(jìn)行到步驟312,以通過可用容量測量單元256來檢查緩沖器252的當(dāng)前可用容量。接著,如果通過可用容量測量單元256檢查了緩沖器252的當(dāng)前可用容量,則視頻編碼器200進(jìn)行到步驟314,并將預(yù)測的總編碼容量與緩沖器252的可用容量進(jìn)行比較,以檢查預(yù)料引起溢出的量。
之后,視頻編碼器200進(jìn)行到步驟316,以加載關(guān)于P幀平均容量計算單元260中存儲的前一GOP的P幀的平均容量的信息。接著,視頻編碼器200進(jìn)行到步驟318,通過P幀跳過位置估計單元258根據(jù)加載的P幀的平均容量來預(yù)測當(dāng)前引起溢出的P幀的數(shù)量。這里,P幀跳過位置估計單元258基于預(yù)測的總編碼容量和加載的P幀的平均容量來預(yù)測所有P幀的數(shù)量,并可計算在預(yù)測的P幀之中根據(jù)溢出量的P幀數(shù)量。除此之外,在步驟314,P幀跳過位置估計單元258執(zhí)行在步驟314中預(yù)測的溢出量和加載的P幀的平均容量的操作,并預(yù)測將引起溢出的P幀數(shù)量。
此外,作為步驟318的結(jié)果,如果將引起溢出的P幀數(shù)量被預(yù)測,則P幀跳過位置估計單元258執(zhí)行還沒有編碼的P幀(除了第一P幀)和被預(yù)測引起溢出的P幀的數(shù)量的操作,并可設(shè)置那些將被跳過的P幀的位置。可依據(jù)從等式1找到的跳過計數(shù)值來設(shè)置該跳過位置。
SC=Tf/Pf,[1] 其中,跳過計數(shù)(SC)表示跳過計數(shù)值;總幀(Tf)表示還沒有編碼的所有幀;預(yù)測幀(Pf)表示預(yù)料引起溢出的P幀的數(shù)量。
即,例如,如上所詳細(xì)描述的,在還沒有編碼的P幀的數(shù)量等于‘28’(GOP的幀的總數(shù)量等于‘30’的情況下除了I幀和第一P幀之外的幀的數(shù)量一因為在本發(fā)明中不管對跳過位置的設(shè)置對I幀和第一P幀無條件編碼)的情況下,如果Pf等于‘2’,則可將SC設(shè)置為通過將‘28’除以‘2’所得到的‘14’。然后,P幀跳過位置估計單元258將SC發(fā)送到編碼器250,然后,編碼器250檢查所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀是否對應(yīng)于根據(jù)輸入的SC被設(shè)置為編碼跳過的幀。接著,如果有關(guān)視頻數(shù)據(jù)幀對應(yīng)于被設(shè)置為編碼跳過的幀,則跳過對有關(guān)視頻數(shù)據(jù)幀的編碼。
即,例如,如果SC等于‘14’,編碼器250每14個視頻數(shù)據(jù)幀跳過‘1’個視頻數(shù)據(jù)幀。從而,如果除了I幀和第一P幀之外的視頻數(shù)據(jù)幀的數(shù)量等于‘28’,則在除了彼此不連續(xù)的兩個視頻數(shù)據(jù)幀(即,I幀和第一P幀)之外的視頻數(shù)據(jù)幀之中可跳過對第14視頻數(shù)據(jù)幀(第14P幀)和第28視頻數(shù)據(jù)幀(第28P幀)的編碼。
因此,根據(jù)本發(fā)明實施例的視頻編碼器可防止比其他幀重要的參考幀被跳過,并可通過防止發(fā)生連續(xù)跳過來防止畫面的整體質(zhì)量下降。
如上所述,圖4是詳細(xì)示出以下過程的流程圖在當(dāng)前被編碼的P幀對應(yīng)于當(dāng)前正被編碼的GOP的最后P幀的情況下,在存儲了P幀的容量信息之后,計算當(dāng)前已完成編碼的GOP的P幀的平均容量,并存儲計算的平均容量。以下,在圖4的描述中,讓我們假設(shè)使用了如下方法通過將跳過計數(shù)值從P幀跳過位置估計單元258提供給編碼器250來為幀設(shè)置跳過編碼的幀的位置。另外,在圖4的描述中,讓我們假設(shè)每當(dāng)對一幀編碼時,編碼器250就從當(dāng)前設(shè)置的跳過計數(shù)值減去‘1’,其后,如果跳過計數(shù)值被計數(shù)為‘0’,則跳過對有關(guān)視頻數(shù)據(jù)幀的編碼。然而,由于所述假設(shè)僅為本發(fā)明實施例的一部分,所以以下情況并不限定本發(fā)明的范圍通過使用跳過計數(shù)值來設(shè)置將被編碼的幀的跳過位置,或當(dāng)通過從跳過計數(shù)值減去‘1’,跳過計數(shù)值等于‘0’時,跳過對幀的編碼。
參照圖4,在步驟322,如果當(dāng)前選擇的視頻數(shù)據(jù)幀是對應(yīng)于預(yù)設(shè)跳過位置的幀,則本發(fā)明的所描述的實施例的編碼器250進(jìn)行到步驟400,以對當(dāng)前選擇的視頻數(shù)據(jù)幀執(zhí)行編碼。然后,編碼器250進(jìn)行到步驟402,以將從P幀跳過位置估計單元258接收的跳過計數(shù)值減去‘1’。如果從編碼器250輸出編碼的P幀,則根據(jù)本發(fā)明的所描述的實施例的視頻編碼器200通過P幀平均容量計算單元260來檢查輸出的P幀的容量,并將檢查的輸出的P幀的容量存儲在存儲單元266中(步驟404)。
在步驟406,P幀平均容量計算單元260檢查從編碼器250提供的P幀是否對應(yīng)于有關(guān)GOP的最后編碼的幀。此時,為了檢查從編碼器250提供的P幀是否對應(yīng)于有關(guān)GOP的最后編碼的幀,P幀平均容量計算單元260不僅可使用用于檢查關(guān)于當(dāng)前輸出幀的頭的信息的方法,而且還可使用在從編碼器250當(dāng)前提供的幀對應(yīng)于I幀的情況下識別出當(dāng)前存儲在存儲單元266中的P幀為特定GOP的最后P幀的方法。
此時,作為在步驟406中的檢查結(jié)果,如果當(dāng)前輸出的P幀不是所述特定GOP的最后P幀,則視頻編碼器200進(jìn)行到步驟304(圖3),以選擇在下一順序中將被編碼的視頻數(shù)據(jù)幀。作為在步驟406中的檢查結(jié)果,如果當(dāng)前輸出的P幀對應(yīng)于所述特定GOP的最后P幀,則視頻編碼器200進(jìn)行到步驟408,以通過P幀平均容量計算單元260計算當(dāng)前存儲在存儲單元266中的P幀的容量的平均值,并計算P幀的平均容量。
此外,在步驟410,視頻編碼器200的P幀平均容量計算單元260將計算的P幀的平均容量存儲在P幀平均容量計算單元260的存儲單元266中。接著,P幀平均容量計算單元260將計算的P幀的平均容量輸入到P幀跳過位置估計單元258。當(dāng)接收到計算的P幀的平均容量時,在步驟412,P幀跳過位置估計單元258響應(yīng)于此初始化當(dāng)前設(shè)置的跳過計數(shù)值。因此,如果對新的GOP的視頻數(shù)據(jù)幀編碼,則視頻編碼器200通過使用前一GOP的視頻數(shù)據(jù)幀之中除了第一P幀之外的P幀和I幀的平均容量來設(shè)置新的跳過計數(shù)值,并估計新的跳過位置。
可選擇地,不僅在對屬于一個GOP的所有視頻數(shù)據(jù)幀編碼都被完成時,而且在發(fā)生跳過對任何視頻數(shù)據(jù)幀的編碼時,都可產(chǎn)生跳過計數(shù)值。在這種情況下,當(dāng)一個GOP結(jié)束時,P幀平均容量計算單元260不計算前一GOP的P幀的平均容量,而是存儲當(dāng)前從編碼器250輸出的P幀的容量信息,然后,當(dāng)產(chǎn)生跳過編碼時,毋庸置疑,可計算在該時刻之前已完成編碼的P幀的平均容量。
在發(fā)生了跳過對幀的編碼的情況下,圖5是詳細(xì)示出重置跳過位置的操作過程的流程圖。
參照圖5,在步驟324(圖3),在視頻編碼器200中包括的編碼器250進(jìn)行到步驟500,以在所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀是對應(yīng)于預(yù)設(shè)跳過位置的幀的情況下,跳過對所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀的編碼。編碼器250進(jìn)行到步驟502,以檢查緩沖器252的可用容量。在步驟504,視頻編碼器200通過溢出量測量單元254將當(dāng)前接收的視頻數(shù)據(jù)幀之中將被編碼的幀的剩余容量與緩沖器252的可用容量進(jìn)行比較,并檢查該時刻的溢出量。
接著,視頻編碼器200進(jìn)行到步驟506,以通過P幀跳過位置估計單元258根據(jù)檢查的溢出量來檢查引起溢出的P幀的數(shù)量。這里,檢查引起溢出的P幀的數(shù)量所必須的P幀的平均容量可以是在當(dāng)前正被編碼的GOP的P幀之中到目前為止已完成編碼的P幀的平均容量。
隨后,視頻編碼器200進(jìn)行到步驟508,以根據(jù)檢查的P幀的數(shù)量來重置跳過位置。這里,重置跳過位置的操作可以是重置跳過計數(shù)值的過程。因此,在這種情況下,如果跳過了對特定視頻數(shù)據(jù)幀的編碼,則可根據(jù)緩沖器252的當(dāng)前可用容量來重置新的跳過計數(shù)值。因此,即使對視頻數(shù)據(jù)幀編碼時的容量與先前P幀的平均容量顯著不同(這不符合初始預(yù)測),也可通過使用到目前為止編碼的P幀的平均容量來更準(zhǔn)確地估計溢出量,從而,可設(shè)置P幀的跳過位置。
圖6是示出在步驟304通過檢查當(dāng)前選擇的視頻數(shù)據(jù)幀是否對應(yīng)于最后幀之前的幀,在根據(jù)緩沖器252的當(dāng)前可用容量跳過當(dāng)前選擇的視頻數(shù)據(jù)幀的情況下的操作過程的流程圖。如根據(jù)本發(fā)明實施例所詳細(xì)描述和顯示的,即使跳過了對幀的編碼,在緩沖器252的當(dāng)前可用容量不足以接受I幀和第一P幀的情況下,也可防止發(fā)生跳過I幀或第一P幀的情況。因此,在這種情況下,除了當(dāng)前正被編碼的GOP的P幀之中的最后幀之外,視頻編碼器200還可不管預(yù)設(shè)跳過位置根據(jù)緩沖器252的可用容量跳過另一P幀。這是通常最后幀變成與根據(jù)本發(fā)明優(yōu)選實施例的跳過位置相應(yīng)的幀的原因。
在這種情況下,如果在步驟302檢查了將被編碼的GOP的總編碼容量,則視頻編碼器200的編碼器250進(jìn)行到步驟600,以按預(yù)設(shè)順序選擇將被編碼的GOP的視頻數(shù)據(jù)幀。然后,視頻編碼器200的編碼器250進(jìn)行到步驟602,以檢查當(dāng)前選擇的視頻數(shù)據(jù)幀是否對應(yīng)于在將被編碼的GOP的視頻數(shù)據(jù)幀之中緊在最后幀之前的幀。此外,如果當(dāng)前選擇的視頻數(shù)據(jù)幀不是在將被編碼的GOP的視頻數(shù)據(jù)幀之中緊在最后幀之前的幀,則編碼器250進(jìn)行到步驟310,其中,檢查是否存在當(dāng)前測量的跳過位置,即,例如,是否存在當(dāng)前設(shè)置的跳過計數(shù)值。
然而,作為步驟602的結(jié)果,如果當(dāng)前選擇的視頻數(shù)據(jù)幀對應(yīng)于在將被編碼的GOP的視頻數(shù)據(jù)幀之中緊在最后幀之前的幀,則在步驟604,視頻編碼器200通過可用容量測量單元256來測量檢查的緩沖器252的可用容量,并檢查測量的緩沖器252的可用容量是否小于預(yù)設(shè)量。這里,可將為緩沖器252的可用容量預(yù)設(shè)的量用作從用于優(yōu)化緩沖器252的可用容量的實驗產(chǎn)生的值。
此外,作為在步驟604的檢查結(jié)果,如果測量的緩沖器252的可用容量不小于所述預(yù)設(shè)量,則視頻編碼器200的編碼器250進(jìn)行到步驟310,以檢查是否存在當(dāng)前測量的跳過位置。然而,作為步驟604的檢查結(jié)果,如果測量的緩沖器252的可用容量小于所述預(yù)設(shè)量,則視頻編碼器200的編碼器250進(jìn)行到步驟606,以跳過對所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀的編碼。然后,視頻編碼器200返回步驟600,以選擇用于編碼的下一視頻數(shù)據(jù)幀。
同時,參照圖6,對以下情況給出了描述預(yù)先確定為緩沖器252的可用容量預(yù)設(shè)的量,響應(yīng)于預(yù)設(shè)量跳過緊在最后幀之前的視頻數(shù)據(jù)幀。毋庸置疑,不必預(yù)設(shè)用于緩沖器252的可用容量的量,可通過將已完成編碼的前一GOP的I幀和第一P幀的容量與緩沖器252的當(dāng)前可用容量進(jìn)行比較來跳過緊在最后幀之前的視頻數(shù)據(jù)幀。在這種情況下,如果從編碼器250輸出I幀和第一P幀,則P幀平均容量計算單元260檢查輸出的I幀和第一P幀的容量信息,還將所檢查的輸出的I幀和第一P幀的容量信息存儲在P幀平均容量計算單元260的存儲單元266中,還計算存儲的I幀的平均容量和存儲的第一P幀的平均容量。
以下,圖7和圖8是示出根據(jù)本發(fā)明的該優(yōu)選實施例的在當(dāng)前選擇的幀對應(yīng)于緊在最后幀之前的幀的情況下,基于緩沖器252的可用容量足以接受I幀和第一P幀,跳過編碼的操作的流程圖。這里,圖7是示出如下處理的流程圖如上所述,存儲前一GOP的I幀和第一P幀的容量,以將前一GOP的I幀和第一P幀的容量與緩沖器252的可用容量進(jìn)行比較,并計算存儲的I幀和第一P幀的平均容量,以存儲計算的I幀和第一P幀的平均容量。圖8是示出如下操作過程的流程圖在通過如圖7所示的處理計算了I幀和第一P幀的容量或I幀和第一P幀的平均容量的情況下,通過使用I幀和第一P幀的容量或I幀和第一P幀的平均容量來跳過對緊在最后幀之前的幀的編碼。
參照圖7,如果當(dāng)前選擇的視頻數(shù)據(jù)幀對應(yīng)于I幀或第一P幀,則視頻編碼器200的編碼器250進(jìn)行到步驟700,以對當(dāng)前選擇的I幀或第一P幀編碼。如果從編碼器250輸出已完成編碼的I幀或第一P幀,則P幀平均容量計算單元260進(jìn)行到步驟702,以檢查輸出的I幀或第一P幀的容量信息,并將檢查的I幀或第一P幀的容量信息存儲在存儲單元266中。
此時,P幀平均容量計算單元260進(jìn)行到步驟704,以計算存儲在存儲單元266中的I幀和第一P幀中的每一種的平均容量。接著,如果計算了I幀和第一P幀中每一種的平均容量,則P幀平均容量計算單元260進(jìn)行到步驟706,以將通過將I幀的平均容量加上第一P幀的平均容量所求得的總平均容量存儲在存儲單元266中。其后,視頻編碼器200進(jìn)行到步驟304,以選擇將被編碼的下一視頻數(shù)據(jù)幀。
在這種情況下,根據(jù)本發(fā)明的所述實施例的視頻編碼器200現(xiàn)在具有通過將I幀的平均容量加上第一P幀的平均容量所求得的總平均容量。另外,如果所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀對應(yīng)于緊在最后幀之前的幀,則根據(jù)總平均容量和緩沖器252的當(dāng)前可用容量跳過對所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀的編碼??蓪⑷媸境龈鶕?jù)本發(fā)明的操作的圖8的流程圖應(yīng)用于這種情況。
參照圖8,如果在步驟304檢查了將被編碼的GOP的總編碼容量,則視頻編碼器200的編碼器250進(jìn)行到步驟800,以按預(yù)設(shè)順序選擇正好將被編碼的GOP的視頻數(shù)據(jù)幀。然后,視頻編碼器200的編碼器250進(jìn)行到步驟802,以確定當(dāng)前選擇的視頻數(shù)據(jù)幀是否對應(yīng)于在將被編碼的GOP的視頻數(shù)據(jù)幀之中緊在最后幀之前的幀。如果當(dāng)前選擇的視頻數(shù)據(jù)幀不是在將被編碼的GOP的視頻數(shù)據(jù)幀之中緊在最后幀之前的幀,則視頻編碼器200進(jìn)行到步驟310,在所述步驟310中,檢查是否存在當(dāng)前測量的跳過位置,即,例如,是否存在當(dāng)前設(shè)置的跳過計數(shù)值。
相反,作為步驟802的確定結(jié)果,如果當(dāng)前選擇的視頻數(shù)據(jù)幀對應(yīng)于在將被編碼的GOP的視頻數(shù)據(jù)幀之中緊在最后幀之前的幀,則視頻編碼器200通過可用容量測量單元256測量檢查的緩沖器252的可用容量。在步驟804,視頻編碼器200確定測量的緩沖器252的可用容量是否小于通過將I幀的平均容量加上第一P幀的平均容量所求得的總平均容量,其中,所述總平均容量已在圖7示出的過程中被計算。
作為在步驟804中的確定結(jié)果,如果測量的緩沖器252的可用容量不小于總平均容量,則視頻編碼器200的編碼器250進(jìn)行到步驟310,以檢查是否存在當(dāng)前測量的跳過位置。相反,作為在步驟804中的確定結(jié)果,如果測量的緩沖器252的可用容量小于總平均容量,則視頻編碼器200的編碼器250進(jìn)行到步驟806,以跳過對所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀的編碼。其后,視頻編碼器200的編碼器250返回步驟800,以選擇用于編碼的下一視頻數(shù)據(jù)幀。因此,在本發(fā)明中,盡可能地防止發(fā)生跳過I幀或第一P幀。
根據(jù)本發(fā)明的上述方法可被實現(xiàn)為硬件或軟件,或者被實現(xiàn)為可被存儲在記錄介質(zhì)(例如,CD ROM、RAM、軟盤、硬盤或磁光盤)中或通過網(wǎng)絡(luò)被下載的計算機(jī)代碼,以使這里描述的方法可由通過使用通用計算機(jī)或?qū)S糜嬎銠C(jī)的這種軟件或按可編程或?qū)S糜布?例如,ASIC或FPGA)被實施。在本領(lǐng)域中應(yīng)該理解,計算機(jī)、處理器或可編程硬件包括可存儲或接收軟件或計算機(jī)代碼的存儲部件(例如,RAM、ROM、閃存等),當(dāng)計算機(jī)、處理器或硬件訪問或執(zhí)行所述軟件并計算機(jī)代碼時,所述軟件或計算機(jī)代碼實現(xiàn)這里描述的處理方法。加載有代碼或訪問了代碼的計算機(jī)或處理器被表現(xiàn)為用于執(zhí)行在這里描述的處理的設(shè)備。
還如下描述了在本發(fā)明中公開的實施例的優(yōu)點和效果。
在本發(fā)明中,對幀指定跳過編碼的位置,并防止跳過比其他幀重要的參考幀。此外,在防止跳過重要的參考幀的同時,防止連續(xù)跳過的發(fā)生,從而防止降低畫面的整體質(zhì)量。
盡管參照本發(fā)明的特定優(yōu)選實施例顯示和描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人員應(yīng)該理解,在不脫離本發(fā)明的精神和范圍的情況下,可在形式和細(xì)節(jié)方面進(jìn)行各種修改。在本發(fā)明的實施例中,給出了使用跳過計數(shù)值以對幀設(shè)置跳過位置的示例,但是毋庸置疑,本發(fā)明不限于使用跳過計數(shù)值以設(shè)置跳過位置。例如,可為跳過位置直接選擇幀號,然后可將選擇的幀號輸入到編碼器250。另外,在本發(fā)明的其他實施例中,在測量溢出量之后,通過將預(yù)測的總編碼容量除以P幀的平均容量來預(yù)測P幀的數(shù)量,并通過將引起溢出的量與預(yù)測的P幀的數(shù)量進(jìn)行比較來預(yù)測引起溢出的P幀的數(shù)量??蛇x擇地,如果測量了溢出量,則可通過將測量的溢出量除以P幀的平均容量來預(yù)測引起溢出的P幀的數(shù)量。因此,上述兩種方法提供了相同效果的原因在于,在測量溢出量之后,通過將測量的溢出量除以P幀的平均容量來預(yù)測引起溢出的P幀的數(shù)量。因此,本發(fā)明的精神和范圍不是必須由本發(fā)明的描述的實施例來限定,而是由權(quán)利要求和權(quán)利要求的等同物來限定。
權(quán)利要求
1.一種視頻編碼器,包括
編碼器,用于在接收的視頻數(shù)據(jù)幀被編碼的情況下預(yù)測總編碼容量,對從接收的視頻數(shù)據(jù)幀中除去與確定跳過的位置相應(yīng)的視頻數(shù)據(jù)幀而產(chǎn)生的視頻數(shù)據(jù)幀編碼,并提供編碼的視頻數(shù)據(jù)幀;
緩沖器,用于緩沖從編碼器提供的編碼的視頻數(shù)據(jù)幀;
可用容量測量單元,用于測量緩沖器的可用容量;
溢出量測量單元
用于從編碼器輸入關(guān)于總編碼容量的信息;
用于從可用容量測量單元輸入關(guān)于可用容量的信息;
用于將關(guān)于總編碼容量的信息與關(guān)于可用容量的信息進(jìn)行比較;和
用于預(yù)測溢出量;
平均容量計算單元,用于檢查關(guān)于從編碼器提供的編碼數(shù)據(jù)的容量的信息,以存儲檢查的關(guān)于所述容量的信息,并用于計算存儲的編碼數(shù)據(jù)的平均容量;和
P幀跳過估計單元,用于通過使用預(yù)測的溢出量和計算的平均容量來計算預(yù)料引起溢出的編碼幀的數(shù)量,并根據(jù)計算的預(yù)料溢出的編碼幀的數(shù)量來確定將被跳過編碼的視頻數(shù)據(jù)幀中每一幀的至少一個位置。
2.如權(quán)利要求1所述的視頻編碼器,其中,與被確定跳過的位置相應(yīng)的視頻數(shù)據(jù)幀包括
從視頻數(shù)據(jù)幀中的I幀和除去與最初P幀相應(yīng)的第一P幀之外的剩余P幀中的至少一幀。
3.如權(quán)利要求2所述的視頻編碼器,其中,P幀跳過估計單元根據(jù)預(yù)測將引起溢出的編碼幀的數(shù)量來對將被跳過的視頻數(shù)據(jù)幀設(shè)置跳過計數(shù)的值。
4.如權(quán)利要求3所述的視頻編碼器,其中,當(dāng)跳過計數(shù)等于‘0’時,編碼器識別所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀為與確定跳過的位置相應(yīng)的幀。
5.如權(quán)利要求4所述的視頻編碼器,其中,當(dāng)跳過計數(shù)等于‘0’時,
可用容量測量單元檢查緩沖器的當(dāng)前可用容量;
溢出量測量單元將當(dāng)前將被編碼的視頻數(shù)據(jù)幀的總編碼容量與緩沖器的當(dāng)前可用容量進(jìn)行比較,并測量溢出量;和
P幀跳過估計單元,根據(jù)緩沖器的當(dāng)前可用容量和當(dāng)前將被編碼的視頻數(shù)據(jù)幀來預(yù)測溢出量,并根據(jù)預(yù)測的溢出量和到目前為止已編碼的幀的平均容量來重新計算將被忽略的視頻數(shù)據(jù)幀的跳過位置。
6.如權(quán)利要求1所述的視頻編碼器,其中,在所選擇的將被編碼的視頻數(shù)據(jù)幀對應(yīng)于緊在最后幀之前的幀的情況下,基于緩沖器的當(dāng)前可用容量小于規(guī)定量,編碼器跳過對所選擇的將被編碼的視頻數(shù)據(jù)幀的編碼。
7.如權(quán)利要求1所述的視頻編碼器,其中,平均容量計算單元存儲從編碼器提供的編碼數(shù)據(jù)之中的I幀的容量和除了第一P幀之外的P幀的容量,并在將被編碼的圖像組的最后P幀被輸出的情況下,計算I幀的容量和除了第一P幀之外的P幀的容量。
8.如權(quán)利要求1所述的視頻編碼器,其中,平均容量計算單元接收從編碼器提供的編碼數(shù)據(jù)之中的I幀的容量信息和除了第一P幀之外的P幀的容量信息,存儲接收的I幀的容量信息和除了第一P幀之外的P幀的容量信息,并在將被編碼的圖像組的最后P幀被輸出的情況下,計算I幀、第一P幀和除了第一P幀之外的其他P幀的平均容量。
9.如權(quán)利要求8所述的視頻編碼器,其中,在所選擇的將被編碼的視頻數(shù)據(jù)幀對應(yīng)于緊在所述最后幀之前的幀的情況下,如果緩沖器的當(dāng)前可用容量小于通過將I幀的平均容量加上第一P幀的平均容量而求得的總平均容量,則編碼器跳過對所選擇的將被編碼的視頻數(shù)據(jù)幀的編碼。
10.一種對視頻數(shù)據(jù)幀編碼的方法,所述方法包括以下步驟
(1)在與輸入視頻數(shù)據(jù)幀相應(yīng)的整個圖像組的幀被編碼的情況下,預(yù)測總編碼容量;
(2)根據(jù)預(yù)設(shè)編碼順序來選擇輸入視頻數(shù)據(jù)幀中的任何一幀,檢查所選擇的視頻數(shù)據(jù)幀是否對應(yīng)于圖像組的I幀或與圖像組的初始P幀相應(yīng)的第一P幀,如果所選擇的視頻數(shù)據(jù)幀對應(yīng)于I幀或第一P幀,則對所選擇的視頻數(shù)據(jù)幀編碼;
(3)作為檢查幀的結(jié)果,在當(dāng)前選擇的視頻數(shù)據(jù)幀不對應(yīng)于I幀或第一P幀的情況下,確定是否存在預(yù)設(shè)幀跳過位置;
(4)作為確定跳過位置的結(jié)果,在不存在預(yù)設(shè)幀跳過位置的情況下,根據(jù)從在所述圖像組之前編碼的圖像組的P幀計算的平均容量和在視頻編碼器的緩沖器中的可用容量來設(shè)置跳過位置;和
(5)確定所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀是否對應(yīng)于所述預(yù)設(shè)幀跳過位置,并根據(jù)確定的結(jié)果來執(zhí)行對所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀的編碼。
11.如權(quán)利要求10所述的方法,其中,步驟(4)包括以下步驟
檢查緩沖器的可用容量;
將檢查的緩沖器的可用容量與總的編碼容量進(jìn)行比較,以預(yù)測預(yù)料引起溢出的量;
通過使用存儲的平均值根據(jù)溢出量來預(yù)測預(yù)料引起溢出的編碼幀的數(shù)量;和
對還沒有編碼的視頻數(shù)據(jù)幀的數(shù)量和預(yù)料引起預(yù)測的溢出的幀的數(shù)量執(zhí)行運算,并設(shè)置將被跳過的幀的位置。
12.如權(quán)利要求10所述的方法,其中,步驟(5)包括以下步驟
(5-1)作為確定跳過位置的結(jié)果,在存在預(yù)設(shè)幀跳過位置的情況下,確定所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀是否是對應(yīng)于預(yù)設(shè)幀跳過位置的幀;
(5-2)如果所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀不是對應(yīng)于預(yù)設(shè)幀跳過位置的幀,則對所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀編碼;以及
(5-3)如果所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀是對應(yīng)于預(yù)設(shè)幀跳過位置的幀,則跳過對所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀的編碼。
13.如權(quán)利要求12所述的方法,其中,步驟(5-2)包括以下步驟
對當(dāng)前選擇的視頻數(shù)據(jù)幀編碼;
檢查編碼視頻數(shù)據(jù)幀的容量,以存儲檢查的編碼視頻數(shù)據(jù)幀的容量;以及
檢查當(dāng)前編碼的視頻數(shù)據(jù)幀是否是在與接收的視頻數(shù)據(jù)幀相應(yīng)的圖像組的視頻數(shù)據(jù)幀之中被最后編碼的幀;
作為檢查編碼幀的結(jié)果,如果當(dāng)前編碼的視頻數(shù)據(jù)幀是在與接收的視頻數(shù)據(jù)幀相應(yīng)的圖像組的視頻數(shù)據(jù)幀之中被最后編碼的幀,則計算存儲的視頻數(shù)據(jù)幀的編碼容量的平均值;以及
存儲計算的平均值,并通過使用存儲的平均值來設(shè)置新的幀跳過位置。
14.如權(quán)利要求12所述的方法,其中,步驟(5-2)包括以下步驟
對當(dāng)前選擇的視頻數(shù)據(jù)幀編碼;
檢查編碼視頻數(shù)據(jù)幀的容量,以存儲檢查的編碼視頻數(shù)據(jù)幀的容量;以及
計算與在存儲的視頻數(shù)據(jù)幀的編碼容量之中當(dāng)前正被編碼的圖像組的視頻數(shù)據(jù)幀的編碼容量有關(guān)的當(dāng)前幀平均值。
15.如權(quán)利要求14所述的方法,其中,步驟(5-3)包括以下步驟
跳過對所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀的編碼;
預(yù)測目前沒有執(zhí)行編碼的視頻數(shù)據(jù)幀的編碼容量;
檢查緩沖器的當(dāng)前可用容量;
將當(dāng)前編碼容量與檢查的當(dāng)前可用容量進(jìn)行比較,以預(yù)測預(yù)料引起溢出的量;
通過使用幀平均值根據(jù)當(dāng)前溢出量來預(yù)測預(yù)料引起溢出的編碼幀的數(shù)量;以及
對還沒有編碼的視頻數(shù)據(jù)幀的數(shù)量和預(yù)料引起預(yù)測溢出的幀的數(shù)量執(zhí)行運算,并設(shè)置幀跳過位置。
16.如權(quán)利要求10所述的方法,其中,步驟(2)包括以下步驟
(2-1)根據(jù)預(yù)設(shè)編碼順序來選擇輸入的視頻數(shù)據(jù)幀中的任何一幀;
(2-2)檢查所選擇的視頻數(shù)據(jù)幀是否對應(yīng)于圖像組的I幀或第一P幀;以及
(2-3)在所選擇的視頻數(shù)據(jù)幀對應(yīng)于圖像組的I幀或第一P幀的情況下,對所選擇的視頻數(shù)據(jù)幀編碼。
17.如權(quán)利要求16所述的方法,其中,步驟(2-1)包括以下步驟
選擇當(dāng)前將被編碼的視頻數(shù)據(jù)幀;
檢查當(dāng)前選擇的視頻數(shù)據(jù)幀是否是對應(yīng)于圖像組的幀之中緊在最后幀之前的幀;
在當(dāng)前選擇的視頻數(shù)據(jù)幀是對應(yīng)于緊在所述最后幀之前的幀的情況下,檢查視頻編碼器的緩沖器的當(dāng)前可用容量是否小于預(yù)設(shè)量;以及
如果緩沖器的當(dāng)前可用容量小于所述預(yù)設(shè)量,則跳過對當(dāng)前選擇的視頻數(shù)據(jù)幀的編碼。
18.如權(quán)利要求16所述的方法,其中,步驟(2-3)包括以下步驟
如果當(dāng)前選擇的視頻數(shù)據(jù)幀對應(yīng)于I幀或第一P幀,則對當(dāng)前選擇的視頻數(shù)據(jù)幀編碼;
基于編碼視頻數(shù)據(jù)幀對應(yīng)于I幀或第一P幀,將I幀的容量信息或P幀的容量信息存儲在編碼視頻數(shù)據(jù)幀的容量值中;
通過將I幀的容量信息中和P幀的容量信息中所包括的容量相加取平均值所求得的總?cè)萘康钠骄担灰约?br> 存儲所述總?cè)萘康钠骄怠?br> 19.如權(quán)利要求18所述的方法,其中,步驟(2-1)包括以下步驟
選擇當(dāng)前將被編碼的視頻數(shù)據(jù)幀;
檢查當(dāng)前選擇的視頻數(shù)據(jù)幀是否對應(yīng)于在圖像組的幀之中緊在最后幀之前的幀;
在當(dāng)前選擇的視頻數(shù)據(jù)幀對應(yīng)于緊在所述最后幀之前的幀的情況下,檢查視頻編碼器的緩沖器的當(dāng)前可用容量是否小于總?cè)萘康钠骄?;以?br> 如果視頻編碼器的緩沖器的當(dāng)前可用容量小于總?cè)萘康钠骄?,則跳過對當(dāng)前選擇的視頻數(shù)據(jù)幀的編碼。
全文摘要
公開了一種對視頻數(shù)據(jù)幀編碼的視頻編碼器和方法。視頻編碼器的編碼器檢查將被編碼的視頻數(shù)據(jù)幀的總?cè)萘?,并通過使用從前一GOP提取的P幀的平均容量根據(jù)檢查的總?cè)萘縼眍A(yù)測隨后將被編碼的P幀的數(shù)量。根據(jù)緩沖器的可用容量從預(yù)測的P幀的數(shù)量來計算由于緩沖器溢出而將被跳過的幀的數(shù)量。根據(jù)預(yù)測的P幀的數(shù)量和GOP的幀的數(shù)量把將被跳過的那些幀的位置設(shè)置為不連續(xù)。此外,在對視頻數(shù)據(jù)幀執(zhí)行編碼的同時,所選擇的當(dāng)前將被編碼的視頻數(shù)據(jù)幀被安排在與將被跳過的幀被安排的位置相同的位置,并跳過對該視頻數(shù)據(jù)幀的編碼。
文檔編號H04N7/32GK101115203SQ20071013919
公開日2008年1月30日 申請日期2007年7月27日 優(yōu)先權(quán)日2006年7月28日
發(fā)明者金鋒坤, 李相祚, 周永勛 申請人:三星電子株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1