低時(shí)延速率控制系統(tǒng)和方法
【專利摘要】在視頻傳輸系統(tǒng)內(nèi)的編碼器在子幀級(jí)別上控制比特分配。幀被分成更小的塊,被稱為速率控制塊。速率控制塊被用作比特分配的基本單元。這種比特分配實(shí)現(xiàn)系統(tǒng)所期望的目標(biāo)比特速率以及滿足時(shí)延限制。該編碼器使用片分割功能以使用圖像幀的一個(gè)或多個(gè)片生成該速率控制塊。這種特征允許譯碼器對(duì)該速率控制塊獨(dú)立地進(jìn)行譯碼,并且保證針對(duì)每個(gè)速率控制塊已編碼的數(shù)據(jù)大小被分配。該編碼器還針對(duì)緩沖器檢測(cè)溢出狀況,并且基于圖像幀是否是幀間還是幀內(nèi)執(zhí)行用于避免所述溢出狀況的操作。
【專利說(shuō)明】低時(shí)延速率控制系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及在網(wǎng)絡(luò)上傳輸視頻信號(hào)。更具體地,本發(fā)明涉及在具有低時(shí)延限制的網(wǎng)絡(luò)上發(fā)送和接收復(fù)雜的視頻信號(hào)。
【背景技術(shù)】
[0002]在已知的視頻發(fā)送/接收系統(tǒng)中,來(lái)自數(shù)字媒體服務(wù)器的數(shù)據(jù)內(nèi)容被編碼,并且被發(fā)送以被譯碼,用于在數(shù)字媒體渲染器上播放。但是,視頻內(nèi)容可能是相當(dāng)復(fù)雜的,因?yàn)樗S著時(shí)間變化。由于復(fù)雜度變化,比特速率也需要變化以用于內(nèi)容的高質(zhì)量傳輸。對(duì)于給定的壓縮質(zhì)量級(jí)別,視頻數(shù)據(jù)的復(fù)雜度導(dǎo)致更高的比特速率用于編碼數(shù)據(jù)。但是,網(wǎng)絡(luò)的容量可能在時(shí)間上保持不變,并且不會(huì)由于視頻數(shù)據(jù)的復(fù)雜度或增加的比特速率而變化。
[0003]為了適應(yīng)在視頻編碼器處的這個(gè)比特速率波動(dòng),速率控制被使用以創(chuàng)建在網(wǎng)絡(luò)上在所有的時(shí)間上不變的比特速率。即使在視頻的復(fù)雜度劇烈地變化時(shí),諸如在場(chǎng)景變化或視頻捕捉許多移動(dòng)或精細(xì)特征時(shí),不變的比特速率對(duì)于數(shù)據(jù)的傳輸仍然有效。速率控制努力保持視頻播放質(zhì)量盡可能的穩(wěn)定。速率控制盡力在質(zhì)量穩(wěn)定性和不變的比特速率要求之間達(dá)到折中。
[0004]由于速率控制的限制以及滿足網(wǎng)絡(luò)容量所帶來(lái)的限制,已知系統(tǒng)在傳輸之前緩沖數(shù)據(jù)。已編碼數(shù)據(jù)被緩沖,以使得瞬時(shí)視頻編碼器比特速率能夠更高,并且低于網(wǎng)絡(luò)容量,但是發(fā)送給網(wǎng)絡(luò)的已緩沖數(shù)據(jù)的速率常常等于或低于網(wǎng)絡(luò)容量。由于比特速率可能大大地增加超過(guò)網(wǎng)絡(luò)容量,所以已知的系統(tǒng)實(shí)施更大的緩沖器以適應(yīng)這些可能的大的增加。但是,更大的緩沖器將時(shí)延引入到數(shù)據(jù)的傳輸中,以使得延遲出現(xiàn)。
[0005]例如,已知的系統(tǒng)可以在編碼之后、經(jīng)過(guò)網(wǎng)絡(luò)發(fā)送數(shù)據(jù)之前緩沖多個(gè)幀。大的緩沖器容量導(dǎo)致系統(tǒng)內(nèi)高的時(shí)延。在一些應(yīng)用中,這種時(shí)延是不可接受的。實(shí)時(shí)視頻播放和交互式應(yīng)用可能不會(huì)承擔(dān)高的時(shí)延,并且,所以不能只增加緩沖器的容量來(lái)處理復(fù)雜的視頻傳輸。實(shí)際上,一些應(yīng)用可能不允許網(wǎng)絡(luò)中任何顯著的時(shí)延。因此,緩沖器容量可以被最小化以降低時(shí)延,但是之后系統(tǒng)可能不能夠處理由于復(fù)雜的數(shù)據(jù)而增加的比特速率波動(dòng)。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的實(shí)施例針對(duì)要求傳輸時(shí)延低于網(wǎng)絡(luò)中單個(gè)幀的持續(xù)時(shí)間的場(chǎng)景,控制視頻編碼器輸出比特流速率。本發(fā)明的實(shí)施例不實(shí)施大的緩沖器以處理由于復(fù)雜的視頻數(shù)據(jù)編碼而帶來(lái)的比特速率增加,而是轉(zhuǎn)而執(zhí)行允許在低時(shí)延下進(jìn)行編碼的過(guò)程。根據(jù)所公開的實(shí)施例,一個(gè)幀或更少可以被緩沖。所提出的速率控制還可以在更高的時(shí)延下工作,以還覆蓋不要求低時(shí)延的系統(tǒng)。
[0007]所公開的實(shí)施例在幀內(nèi)分配必要的比特以實(shí)現(xiàn)特定的最大比特速率。通過(guò)保持低于網(wǎng)絡(luò)容量,視頻發(fā)送/接收系統(tǒng)獲得實(shí)時(shí)視頻播放所期望的低時(shí)延。
[0008]所公開的實(shí)施例在子幀級(jí)別上控制比特分配。幀被分成更小的塊,被稱為速率控制塊。速率控制塊被用作比特分配的基本單元。這種比特分配實(shí)現(xiàn)系統(tǒng)所期望的目標(biāo)比特速率以及滿足時(shí)延限制。所公開的實(shí)施例可以使用視頻編碼器的片分割能力。這種特征允許譯碼器獨(dú)立地對(duì)速率控制塊進(jìn)行譯碼。每當(dāng)針對(duì)每個(gè)速率控制塊的已編碼數(shù)據(jù)大小低于速率控制所分配的比特速率時(shí),針對(duì)每個(gè)速率控制塊的端到端時(shí)延將和特定的最大時(shí)延差不多。
[0009]為了獲得低網(wǎng)絡(luò)時(shí)延,所公開的實(shí)施例使用能導(dǎo)致滿意結(jié)果的估計(jì)和預(yù)測(cè)的數(shù)值。然而,產(chǎn)生錯(cuò)誤估計(jì)的概率是存在的,其可以導(dǎo)致針對(duì)速率控制塊的已分配比特沒有被實(shí)現(xiàn)的實(shí)例。換句話說(shuō),比特速率可以高于目標(biāo)比特速率并且超過(guò)緩沖器容量,因此使得時(shí)延要求處于危險(xiǎn)中。為了避免這個(gè)緩沖器溢出的問(wèn)題,所公開的實(shí)施例可以基于速率控制塊的“非編碼”部分實(shí)施緩沖器保護(hù)機(jī)制。其他的保護(hù)機(jī)制也可以被使用。
[0010]根據(jù)優(yōu)選的實(shí)施例,用于在視頻傳輸系統(tǒng)內(nèi)編碼圖像幀的方法被公開。該方法包括選擇圖像幀的速率控制塊。該速率控制塊包括多個(gè)宏塊。該方法還包括根據(jù)比特速率對(duì)速率控制塊的多個(gè)宏塊進(jìn)行編碼。
[0011]進(jìn)一步根據(jù)優(yōu)選的實(shí)施例,視頻傳輸編碼系統(tǒng)被公開。該視頻傳輸編碼系統(tǒng)包括片分割器,其保證來(lái)自圖像幀的速率控制塊將有整數(shù)個(gè)片。這個(gè)特征允許速率控制塊被獨(dú)立地譯碼。該速率控制塊包括多個(gè)宏塊。視頻傳輸編碼系統(tǒng)還包括針對(duì)速率控制塊對(duì)多個(gè)宏塊進(jìn)行編碼的編碼器。視頻傳輸編碼系統(tǒng)還包括針對(duì)每個(gè)速率控制塊存儲(chǔ)已編碼數(shù)據(jù)的緩沖器。根據(jù)針對(duì)速率控制塊的參數(shù)集,視頻傳輸系統(tǒng)的比特速率和緩沖器的容量被設(shè)置。
[0012]進(jìn)一步根據(jù)優(yōu)選的實(shí)施例,用于在視頻傳輸內(nèi)對(duì)圖像幀進(jìn)行編碼的方法被公開。該方法包括收集被用作幀和速率控制塊初始設(shè)置二者的一部分的統(tǒng)計(jì)值。該方法還包括設(shè)置緩沖器的容量以接收速率控制的已編碼數(shù)據(jù)。該方法還包括根據(jù)對(duì)應(yīng)于緩沖器容量的比特速率,對(duì)在速率控制塊內(nèi)的多個(gè)宏塊進(jìn)行編碼。
【專利附圖】
【附圖說(shuō)明】
[0013]附圖被包括以提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說(shuō)明書的一部分。下面所列出的圖示出本發(fā)明的實(shí)施例,并且和描述一起用來(lái)解釋本發(fā)明的原理,如權(quán)利要求和它們的等效形式所公開的。
[0014]圖1圖示根據(jù)所公開的實(shí)施例用于發(fā)送和接收視頻信號(hào)數(shù)據(jù)的系統(tǒng)。
[0015]圖2A圖不根據(jù)所公開的實(shí)施例不出系統(tǒng)內(nèi)編碼、傳輸和譯碼時(shí)間的圖。
[0016]圖2B圖示根據(jù)所公開的實(shí)施例示出系統(tǒng)內(nèi)隨著時(shí)間比特速率波動(dòng)的圖。
[0017]圖3圖示根據(jù)所公開的實(shí)施例具有速率控制塊的視頻幀。
[0018]圖4圖示根據(jù)所公開的實(shí)施例用于使用速率控制在視頻傳輸編碼器內(nèi)控制比特速率的流程圖。
[0019]圖5圖示根據(jù)所公開的實(shí)施例用于執(zhí)行宏塊級(jí)別速率控制的流程圖。
【具體實(shí)施方式】
[0020]本發(fā)明的方面在下面的描述中被公開。在不背離本發(fā)明的精神和范圍的情況下,本發(fā)明的備選實(shí)施例和他們的等效形式被設(shè)計(jì)。將注意,下面所公開的相同的元件由圖中相同的附圖數(shù)字來(lái)指示。
[0021]圖1描繪了根據(jù)所公開的實(shí)施例用于發(fā)送和接收視頻信號(hào)數(shù)據(jù)的系統(tǒng)100。系統(tǒng)100可以是任何系統(tǒng)或在網(wǎng)絡(luò)上連接以共享信息的設(shè)備集合。視頻信號(hào)內(nèi)的圖像幀被接收以在網(wǎng)絡(luò)上被發(fā)送。圖像幀內(nèi)的數(shù)據(jù)被使用各種編碼技術(shù)來(lái)編碼用于傳輸。
[0022]例如,系統(tǒng)100可以是游戲系統(tǒng),其中視頻內(nèi)容在游戲控制臺(tái)中被生成,然后被發(fā)送給高清晰度數(shù)字媒體渲染器,諸如平面電視。備選地,系統(tǒng)100可以是使用高清晰度(HD)視頻的安全監(jiān)控系統(tǒng)。這種實(shí)踐在監(jiān)視行業(yè)正成為規(guī)范,因?yàn)楝F(xiàn)在越來(lái)越多的安全攝像機(jī)制造商聲稱提供HD攝像機(jī),這允許監(jiān)控具有實(shí)時(shí)高質(zhì)量視頻。
[0023]數(shù)字媒體服務(wù)器102生成帶發(fā)送的視頻內(nèi)容。數(shù)字媒體服務(wù)器102可以是捕捉視頻數(shù)據(jù)的任何設(shè)備、控制臺(tái)、攝像機(jī)等。例如,數(shù)字媒體服務(wù)器102是播放存儲(chǔ)在磁盤或其他介質(zhì)上的視頻游戲的游戲控制臺(tái)。從玩游戲生成的內(nèi)容被顯示給用戶以觀看并且實(shí)時(shí)交互。備選地,數(shù)字媒體服務(wù)器102是捕捉數(shù)據(jù)的計(jì)算機(jī)、錄像機(jī)、數(shù)字?jǐn)z像機(jī)、掃描儀等。
[0024]將無(wú)壓縮數(shù)據(jù)信號(hào)104從數(shù)字媒體服務(wù)器102輸出到編碼器106。編碼器106可以編碼或壓縮信號(hào)104用于在系統(tǒng)100內(nèi)傳輸。編碼器106可以使用有損壓縮技術(shù)以對(duì)信號(hào)104進(jìn)行編碼。這些技術(shù)的強(qiáng)度可以基于信號(hào)104內(nèi)數(shù)據(jù)的復(fù)雜度而變化。
[0025]例如,游戲中向?qū)κ治鑴Φ慕巧囊曨l數(shù)據(jù),比只是站著的角色的視頻更加復(fù)雜或非常忙碌,并且可能需要不同編碼過(guò)程以保持類似的質(zhì)量。編碼器106包括片分割器134,其在下面被更詳細(xì)的公開。
[0026]編碼器106輸出已壓縮信號(hào)108到緩沖器110。緩沖器110存儲(chǔ)來(lái)自信號(hào)108的數(shù)據(jù),直到它能夠通過(guò)系統(tǒng)100被傳輸。如果網(wǎng)絡(luò)比特速率不允許信號(hào)108的傳輸,那么緩沖器110保留數(shù)據(jù)直到它能夠被發(fā)收機(jī)114傳輸?shù)倪@個(gè)時(shí)間。
[0027]緩沖器110可以具有緩沖器容量的數(shù)值。被速率控制用于實(shí)現(xiàn)它的目標(biāo)(時(shí)延和比特速率)的緩沖器容量的數(shù)值將直接地與所允許的最大的傳輸時(shí)延相關(guān)。緩沖器110輸出信號(hào)112至發(fā)收機(jī)114。
[0028]發(fā)收機(jī)114在網(wǎng)絡(luò)118上發(fā)送信號(hào)116。使用上面的游戲示例,網(wǎng)絡(luò)118可以是用于如下位置的無(wú)線網(wǎng)絡(luò),在該位置,路由器從數(shù)字媒體服務(wù)器102接收信號(hào)116,并且將其轉(zhuǎn)發(fā)給數(shù)字媒體渲染器132用于顯示。備選地,網(wǎng)絡(luò)118可以是從示出實(shí)時(shí)視頻的遠(yuǎn)程攝像機(jī)接收信號(hào)116的計(jì)算機(jī)網(wǎng)絡(luò)。
[0029]發(fā)收機(jī)120接收信號(hào)116并且輸出信號(hào)122至緩沖器124。緩沖器124可以具有和緩沖器110類似的緩沖器容量的數(shù)值。信號(hào)126從緩沖器110流至譯碼器128。譯碼器128譯碼或解壓縮信號(hào)126以生成無(wú)壓縮信號(hào)130。無(wú)壓縮信號(hào)130優(yōu)選地是無(wú)壓縮數(shù)據(jù)信號(hào)104的高質(zhì)量備份,其由于編碼過(guò)程存在輕微的波動(dòng)。
[0030]數(shù)字媒體渲染器132接收無(wú)壓縮信號(hào)130,并且給用戶顯示視頻數(shù)據(jù)內(nèi)容。數(shù)字媒體渲染器132可以是具有顯示分辨率1,280x720像素(720p)或1,920x1,080像素(1080i/1080p)的高清晰度電視。因此,在系統(tǒng)100內(nèi)被編碼和譯碼的數(shù)據(jù)量可能由于數(shù)字媒體服務(wù)器102和數(shù)字媒體渲染器132所施加給它的要求而是復(fù)雜的。
[0031]系統(tǒng)100受到各種限制和參數(shù)的影響。系統(tǒng)100可以在網(wǎng)絡(luò)118上以不變的比特速率傳輸。這個(gè)比特速率在時(shí)間上保持相同,但是可以在某些情況下變化。在緩沖器110填滿時(shí),延遲或積分時(shí)間可能出現(xiàn),這導(dǎo)致在數(shù)據(jù)在網(wǎng)絡(luò)118上被發(fā)送時(shí)系統(tǒng)100內(nèi)的時(shí)延。
[0032]圖2A描繪了示出根據(jù)所公開的實(shí)施例的系統(tǒng)內(nèi)編碼、傳輸和譯碼時(shí)間的圖200。圖200包括時(shí)間線202,其示出編碼時(shí)間204、傳輸時(shí)間206和譯碼時(shí)間208。編碼時(shí)間204可以表示用于由編碼器106編碼或壓縮的最小可譯碼單元的時(shí)間加上在開始編碼過(guò)程之前所需的某個(gè)數(shù)量的視頻線的時(shí)間。
[0033]對(duì)于所公開的實(shí)施例,最小可譯碼單元可以是一片。在這個(gè)時(shí)間之后,編碼器106能夠開始發(fā)送這個(gè)第一片。傳統(tǒng)的方案在開始編碼前等到一幀,并且在整個(gè)幀被編碼后開始發(fā)送比特流。這個(gè)可以包括2幀的編碼時(shí)間。系統(tǒng)100通過(guò)最小化在開始編碼前的等待來(lái)最小化編碼時(shí)間,并且使得最小可譯碼單元更小。
[0034]編碼時(shí)間204優(yōu)選地小于或等于最小可譯碼單元所流逝的時(shí)間。例如,如果最小可譯碼單元是一幀,并且?guī)?10的時(shí)間長(zhǎng)度是1/60秒,那么編碼時(shí)間204比系統(tǒng)100內(nèi)的更小。
[0035]傳輸時(shí)間206表不在網(wǎng)絡(luò)118上傳輸數(shù)據(jù)的時(shí)間。傳輸時(shí)間206也小于或等于在網(wǎng)絡(luò)上以預(yù)期的容量(等于或小于為速率控制所配置的比特速率)發(fā)送緩沖器容量數(shù)量的比特所需要的時(shí)間段。因此,數(shù)據(jù)不會(huì)以任何可感知的時(shí)間長(zhǎng)度被緩沖,或者系統(tǒng)100可能不會(huì)滿足傳輸上的這些要求。譯碼時(shí)間208表示用于譯碼或解壓縮視頻數(shù)據(jù)的最小可譯碼單元以重構(gòu)視頻信號(hào)的時(shí)間。譯碼時(shí)間208也小于或等于用于最小可譯碼單元的時(shí)間段。如果最小可譯碼單元是一幀,這個(gè)時(shí)間將小于I幀。
[0036]因此,由于編碼時(shí)間204、傳輸時(shí)間206和譯碼時(shí)間208被保持低于幀210的時(shí)間段,系統(tǒng)100內(nèi)的時(shí)延被減少。已知的系統(tǒng)可能包含相反的方法,其中這些時(shí)間超過(guò)了幀的持續(xù)時(shí)間。這些延遲在過(guò)程中的每一步累積,導(dǎo)致高的時(shí)延。更大的緩沖器也增加這些時(shí)間。圖2A示出如何將時(shí)延降低到在系統(tǒng)100中移動(dòng)幀正好位于實(shí)時(shí)視頻渲染所需要的限制以內(nèi)的級(jí)別。
[0037]圖2B描繪了示出根據(jù)所公開的實(shí)施例的、系統(tǒng)內(nèi)隨著時(shí)間比特速率波動(dòng)的圖220。圖220示出時(shí)間線222和視頻數(shù)據(jù)比特速率線224。視頻數(shù)據(jù)比特速率線224隨著時(shí)間線222延伸時(shí)變化。視頻數(shù)據(jù)比特速率線224隨著視頻編碼復(fù)雜度的變化而變化。例如,復(fù)雜度增加時(shí)視頻數(shù)據(jù)比特速率線224上升。
[0038]圖2B還包括存儲(chǔ)視頻數(shù)據(jù)的緩沖器226。緩沖器226可以對(duì)應(yīng)于圖1的緩沖器110和124。如所示出的,針對(duì)視頻數(shù)據(jù)比特速率線224的所有數(shù)據(jù)適合于緩沖器226內(nèi)。視頻數(shù)據(jù)比特速率線224不會(huì)超過(guò)緩沖器226的限制,不管線224變化多大。緩沖器226還可以具有緩沖器容量。該緩沖器容量可以取決于預(yù)期的最小傳輸時(shí)延,根據(jù)所公開的實(shí)施例為小于一巾貞。這個(gè)容量保證時(shí)延被最小化。
[0039]可以在系統(tǒng)100內(nèi)設(shè)置數(shù)值以適配圖2A和圖2B上示出的關(guān)系。針對(duì)網(wǎng)絡(luò)118的不變比特速率可以設(shè)置特定的最大比特速率數(shù)值以用于發(fā)送和接收視頻內(nèi)容。換句話說(shuō),確定所需比特的數(shù)值以對(duì)視頻內(nèi)容幀進(jìn)行編碼。幀比特?cái)?shù)值和預(yù)期的時(shí)延可以設(shè)置緩沖器226的緩沖器容量。例如,如果比特速率是1000比特,并且如果幀的預(yù)期大小和預(yù)期的傳輸時(shí)延是半個(gè)幀,那么緩沖器容量將是500比特。緩沖器226 (或緩沖器110和124)中所存儲(chǔ)的數(shù)據(jù)量可以不超過(guò)這個(gè)數(shù)值。因此,系統(tǒng)100內(nèi)的任何延遲或時(shí)延大概等于或小于幀的時(shí)間(1/60秒,如果傳輸?shù)降囊曨l的幀速率是每秒60幀),如圖2A所示。
[0040]圖3描繪了根據(jù)所公開的實(shí)施例的、具有速率控制塊310的視頻幀300。優(yōu)選地,每個(gè)視頻幀300具有相同數(shù)目的比特。如果圖片非常繁忙并且要求復(fù)雜的編碼以捕捉所有的動(dòng)作,則用于視頻幀300的比特速率可以增加。[0041]視頻幀300可以由分組形成宏塊302的像素組成。每個(gè)宏塊302包括兩個(gè)或更多個(gè)像素。優(yōu)選地,宏塊302是16像素xl6像素。宏塊302由編碼器106來(lái)編碼,并且被發(fā)送給使用壓縮方案或其他算法的譯碼器128。所發(fā)送的信息可以包括視頻幀300內(nèi)的宏塊的地址、亮度信息、色度或顏色信息、壓縮級(jí)別數(shù)值和運(yùn)動(dòng)矢量信息。
[0042]因此,視頻幀300可以被分割成多個(gè)宏塊302。在傳統(tǒng)的視頻發(fā)送和接收系統(tǒng)中,視頻幀300內(nèi)的所有宏塊302被編碼、緩沖,然后通過(guò)網(wǎng)絡(luò)118發(fā)送。所公開的實(shí)施例將視頻幀300分割成速率控制塊310,并且使用這些速率控制塊作為編碼、傳輸和譯碼視頻數(shù)據(jù)的基礎(chǔ)。
[0043]編碼器106的片分割器134保證每個(gè)速率控制塊有整數(shù)個(gè)片。速率控制塊310也可以被稱作子幀。速率控制塊310可以被用作在系統(tǒng)100內(nèi)進(jìn)行比特分配的基本單元,并且包括多個(gè)宏塊302。優(yōu)選地,在每個(gè)速率控制塊310內(nèi)的宏塊302的個(gè)數(shù)在5和15之間。速率控制塊310可以包括幀300的一個(gè)或多個(gè)片。
[0044]備選地,宏塊的個(gè)數(shù)將依賴于所預(yù)期的或要求的最大傳輸時(shí)延。速率控制塊310的大小越大,可實(shí)現(xiàn)的最小時(shí)延越高。注意,相反也成立,所要求的時(shí)延越高,所要求的速率控制塊越小。
[0045]基于宏塊302的個(gè)數(shù),速率控制塊310可以具有對(duì)應(yīng)于速率控制塊310的持續(xù)時(shí)間的目標(biāo)比特速率。換句話說(shuō),由于有更少的信息來(lái)編碼,針對(duì)速率控制塊310的目標(biāo)比特速率應(yīng)該低于針對(duì)視頻幀300的速率。這個(gè)特征將比特速率波動(dòng)很好地保持在針對(duì)單個(gè)視頻幀300的緩沖器容量以下。
[0046]緩沖器110包括至少等于速率控制塊310的緩沖器容量。編碼器106可以在每個(gè)速率控制塊310內(nèi)的最后一個(gè)宏塊302被編碼之后轉(zhuǎn)發(fā)每個(gè)速率控制塊310。譯碼器128可以獨(dú)立地開始每個(gè)速率控制塊310的譯碼過(guò)程。因此,信息在系統(tǒng)100內(nèi)以增加的速率和減少的時(shí)延被發(fā)送。比特速率可能在速率控制塊310之間波動(dòng)以適應(yīng)視頻幀300的“繁忙”的部分,但是決不會(huì)高過(guò)為速率控制所配置的比特速率。
[0047]圖4描繪了根據(jù)所公開的實(shí)施例的、用于使用速率控制塊310在視頻傳輸編碼器106內(nèi)控制比特速率的流程圖400。步驟402通過(guò)為視頻幀300確定幀級(jí)別初始設(shè)置來(lái)執(zhí)行。這些設(shè)置可以包括每幀比特?cái)?shù)、每幀宏塊302的個(gè)數(shù)、速率控制塊310上宏塊302的個(gè)數(shù)、目標(biāo)比特速率等。步驟404通過(guò)在視頻幀300內(nèi)生成速率控制塊310來(lái)執(zhí)行。如上所注意的,視頻幀300可以包括幾個(gè)速率控制塊310,該速率控制塊310包括宏塊302。
[0048]步驟406通過(guò)選擇速率控制塊310用于編碼和傳輸來(lái)執(zhí)行。例如,參考視頻幀300,頂部的速率控制塊310可以被初始地選擇,依此類推,直到底部的速率控制塊310被編碼。步驟408通過(guò)確定速率控制塊初始設(shè)置來(lái)執(zhí)行。目標(biāo)比特速率被選擇,并且對(duì)應(yīng)于速率控制塊310的持續(xù)時(shí)間的緩沖器被設(shè)置。
[0049]編碼器106可以基于所選擇的速率控制塊310的大小分配一些比特。基于這個(gè)設(shè)置,步驟410通過(guò)基于速率控制塊310的大小使用目標(biāo)比特速率執(zhí)行宏塊級(jí)別的速率控制來(lái)執(zhí)行。步驟410通過(guò)圖5被更詳細(xì)地公開。
[0050]步驟412通過(guò)對(duì)速率控制塊310內(nèi)的一個(gè)宏塊302進(jìn)行編碼來(lái)執(zhí)行。步驟414通過(guò)確定所編碼的宏塊302是否是速率控制塊310內(nèi)最后的宏塊來(lái)執(zhí)行。如果否,那么流程圖400回到步驟410以對(duì)剩余的宏塊302進(jìn)行編碼。如果是,那么步驟416通過(guò)執(zhí)行虛擬緩沖器管理來(lái)執(zhí)行。緩沖器Iio內(nèi)已編碼的數(shù)據(jù)被轉(zhuǎn)發(fā)到收發(fā)機(jī)114用于通過(guò)網(wǎng)絡(luò)118傳輸。因?yàn)榫彌_器110對(duì)應(yīng)于速率控制塊310的大小,來(lái)自上面的速率控制塊310的數(shù)據(jù)沒有被延遲,同時(shí)對(duì)后續(xù)的速率控制塊310進(jìn)行編碼。
[0051]步驟418通過(guò)確定視頻幀300內(nèi)最后的宏塊302是否被編碼來(lái)執(zhí)行。如果否,那么流程圖400回到步驟406以選擇下一個(gè)速率控制塊310。如果是,那么所有視頻幀300已經(jīng)被編碼,并且新的視頻幀應(yīng)該被接收。因此,流程圖400回到步驟402。
[0052]圖5描繪了根據(jù)所公開的實(shí)施例的、用于執(zhí)行宏塊級(jí)別速率控制的流程圖500。圖500進(jìn)一步公開圖4的步驟410。為了實(shí)現(xiàn)低時(shí)延,所公開的實(shí)施例可以使用估計(jì)和預(yù)測(cè)的針對(duì)宏塊302的編碼數(shù)值。這些過(guò)程在編碼期間“預(yù)測(cè)”針對(duì)宏塊302的該數(shù)值以減少編碼時(shí)間。但是,這些預(yù)測(cè)存在產(chǎn)生錯(cuò)誤估計(jì)的風(fēng)險(xiǎn)。特別地,這種錯(cuò)誤特別地可能出現(xiàn)在和之前幀相比具有很多移動(dòng)和變化的繁忙的視頻幀中。
[0053]例如,如果視頻幀300描繪了具有一些云彩的藍(lán)天,編碼器106可以預(yù)測(cè)針對(duì)速率控制塊310內(nèi)宏塊302的數(shù)值對(duì)于藍(lán)天背景是相同的。在宏塊302具有在宏塊中飛行的飛機(jī)的開始數(shù)據(jù)時(shí),編碼器106預(yù)測(cè)到它具有針對(duì)藍(lán)天的數(shù)值,那么錯(cuò)誤可能出現(xiàn)。飛機(jī)可能是白的,從而宏塊302具有和藍(lán)天不同的數(shù)值,但是編碼器106不管怎樣仍然使用預(yù)測(cè)的數(shù)值。這種錯(cuò)誤可能導(dǎo)致用于處理復(fù)雜的數(shù)值變化的高比特速率。
[0054]由于系統(tǒng)100上的低時(shí)延限制,諸如這些的錯(cuò)誤必須要避免。圖5所示出的公開的實(shí)施例可以執(zhí)行一些操作以阻止緩沖器溢出以及導(dǎo)致的時(shí)延。一種這樣的操作可以針對(duì)速率控制塊310避免接近緩沖器容量的限制。緩沖器110內(nèi)應(yīng)留有空間以處理由于復(fù)雜的變化而導(dǎo)致的比特速率上任何突然的尖峰。然而,盡管有空間,緩沖器溢出仍可能發(fā)生,并且需要相應(yīng)地進(jìn)行處理。
[0055]步驟502通過(guò)確定針對(duì)所選擇的速率控制塊310的當(dāng)前比特速率是否接近緩沖器溢出來(lái)執(zhí)行。如果否,那么步驟504通過(guò)執(zhí)行針對(duì)下一個(gè)宏塊預(yù)測(cè)的壓縮級(jí)別的確定來(lái)執(zhí)行。使用壓縮級(jí)別的結(jié)果,所公開的實(shí)施例可以將類似的宏塊302預(yù)測(cè)為在之前已編碼視頻幀300上正編碼的一個(gè)宏塊。步驟506通過(guò)回到流程圖400來(lái)執(zhí)行。
[0056]如果步驟502為是,那么步驟508確定宏塊302是否在整個(gè)空間已預(yù)測(cè)幀(幀內(nèi)或I幀)或整個(gè)時(shí)間已預(yù)測(cè)幀(幀間)視頻設(shè)置內(nèi)。如果否,那么步驟510為速率控制塊310內(nèi)剩下的宏塊302跳過(guò)編碼過(guò)程。作為代替,逸出(escape)宏塊可以被使用。編碼器106通知譯碼器128,當(dāng)前的幀和之前的幀類似,并且這些宏塊可以被用于填充速率控制塊310。因此,緩沖器溢出被避免,因?yàn)楸忍厮俾什粫?huì)超過(guò)緩沖器110的容量。
[0057]如果步驟508為是,那么步驟512在速率控制塊310內(nèi)剩下的宏塊302上執(zhí)行特殊的操作。在1-幀環(huán)境中,編碼器106可能不使用逸出宏塊,因?yàn)橐曨l數(shù)據(jù)不涉及之前的視頻幀。
[0058]幀內(nèi)編碼指代這樣的事實(shí),即僅涉及包含在當(dāng)前幀內(nèi)的信息而不涉及視頻序列中任何其他幀而執(zhí)行各種無(wú)損和有損壓縮技術(shù)。換句話說(shuō),在當(dāng)前圖片或幀之外,不執(zhí)行時(shí)間處理。
[0059]因此,預(yù)測(cè)場(chǎng)景可能對(duì)于1-幀視頻幀無(wú)法工作。步驟512部分地或全部地去除預(yù)測(cè)殘留,以使得最小的信息被發(fā)送。編碼器106保持使用1-幀宏塊302,但是剩余宏塊302將具有被設(shè)置為O的大部分的預(yù)測(cè)殘留以降低要使用的比特個(gè)數(shù)。結(jié)果是,比特速率被降低以適配在針對(duì)緩沖器Iio所分配的比特速率之內(nèi)。流程500然后通過(guò)步驟506返回流程圖 400。
[0060]對(duì)本領(lǐng)域的技術(shù)人員而言是清楚的,在不背離本發(fā)明的精神或范圍的情況下,各種修改和變形可以在隱私卡封面(privacy card cover)的所公開的實(shí)施例中進(jìn)行。因此,本發(fā)明旨在涵蓋上面所公開的實(shí)施例的修改和變形,假設(shè)修改和變形在任何權(quán)利要求和他們的等價(jià)形式的范圍之內(nèi)。
【權(quán)利要求】
1.一種用于在視頻傳輸系統(tǒng)內(nèi)對(duì)圖像幀進(jìn)行編碼的方法,所述方法包括: 選擇所述圖像幀的速率控制塊,其中所述速率控制塊包括多個(gè)宏塊; 確定速率控制塊設(shè)置以分配比特速率;以及 根據(jù)所述比特速率對(duì)所述速率控制塊的所述多個(gè)宏塊進(jìn)行編碼。
2.根據(jù)權(quán)利要求1所述的方法,其中所述確定步驟包括所述速率控制塊設(shè)置對(duì)應(yīng)于所述速率控制塊的大小。
3.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括根據(jù)所述比特速率設(shè)置所述視頻傳輸系統(tǒng)內(nèi)的緩沖器的容量。
4.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括將所述圖像幀分割成多個(gè)速率控制塊。
5.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括執(zhí)行宏塊級(jí)別的速率控制。
6.根據(jù)權(quán)利要求5所述的方法,進(jìn)一步包括確定所述緩沖器是否由于已編碼的所述多個(gè)宏塊的大小而處于溢出狀態(tài)。
7.根據(jù)權(quán)利要求5所述的方法,其中所述執(zhí)行宏塊級(jí)別的速率控制包括復(fù)制之前幀的宏塊。
8.根據(jù)權(quán)利要求5所述的方法,其中所述執(zhí)行宏塊級(jí)別的速率控制包括從幀內(nèi)宏塊中去除宏塊殘留的部分。
9.一種視頻傳輸編·碼系統(tǒng),包括: 片分割器,用于保證圖像幀內(nèi)的速率控制塊是由整數(shù)個(gè)來(lái)自所述圖像幀的片所組成,其中所述速率控制塊包括多個(gè)宏塊; 編碼器,用于針對(duì)所述速率控制塊對(duì)所述多個(gè)宏塊進(jìn)行編碼;以及 緩沖器,用于存儲(chǔ)針對(duì)每個(gè)速率控制塊的已編碼數(shù)據(jù), 其中根據(jù)針對(duì)所述速率控制塊的參數(shù),設(shè)置所述視頻傳輸系統(tǒng)的比特速率和所述緩沖器的容量。
10.根據(jù)權(quán)利要求9所述的視頻傳輸編碼系統(tǒng),其中用于設(shè)置所述比特速率和所述緩沖器的容量的所述參數(shù)與所述速率控制塊的大小有關(guān)。
11.根據(jù)權(quán)利要求9所述的視頻傳輸編碼系統(tǒng),其中所述片分割器從所述圖像幀生成多個(gè)速率控制塊。
12.根據(jù)權(quán)利要求9所述的視頻傳輸編碼系統(tǒng),其中所述編碼器被配置為在所述緩沖器處于溢出狀態(tài)時(shí)執(zhí)行宏塊級(jí)別的速率控制。
13.根據(jù)權(quán)利要求9所述的視頻傳輸編碼系統(tǒng),進(jìn)一步包括譯碼器,其使用所述比特速率對(duì)所述速率控制塊的所述多個(gè)宏塊進(jìn)行譯碼。
14.一種用于在視頻傳輸內(nèi)對(duì)圖像幀進(jìn)行編碼的方法,所述方法包括: 從多個(gè)速率控制塊中選擇速率控制塊; 確定所述速率控制塊的初始設(shè)置; 設(shè)置用于接收所述速率控制的已編碼數(shù)據(jù)的緩沖器的容量;以及 根據(jù)對(duì)應(yīng)于所述緩沖器的所述容量的比特速率,對(duì)所述速率控制塊內(nèi)的多個(gè)宏塊進(jìn)行編碼。
15.根據(jù)權(quán)利要求14所述的方法,進(jìn)一步包括將所述圖像幀分割成所述多個(gè)速率控制塊。
16.根據(jù)權(quán)利要求14所述的方法,進(jìn)一步包括確定針對(duì)所述緩沖器的溢出狀況,并且基于所述圖像幀是否是幀內(nèi)來(lái)執(zhí)行用于避免所述溢出狀況的操作。
17.根據(jù)權(quán)利要求14所述的方法,進(jìn)一步包括在所述速率控制塊的最后一個(gè)宏塊被編碼時(shí),選擇新的速率控制塊。
18.根據(jù)權(quán)利要求17所述的方法,進(jìn)一步包括根據(jù)所述新的速率控制塊的所述初始設(shè)置,設(shè)置所述緩沖器的所述容量和所述比特速率。
19.根據(jù)權(quán)利要求1所述的方法,其中所述速率控制塊包括所述圖像幀的一個(gè)或多個(gè)片。
20.根據(jù)權(quán)利要求14所 述的方法,其中所述速率控制塊包括所述圖像幀的一個(gè)或多個(gè)片。
【文檔編號(hào)】H04N19/15GK103718555SQ201280031677
【公開日】2014年4月9日 申請(qǐng)日期:2012年5月4日 優(yōu)先權(quán)日:2011年5月4日
【發(fā)明者】A·杜納斯, F·R·伊茲奎爾多, G·加西亞 申請(qǐng)人:凱為公司