專利名稱:視頻變碼中的速率控制方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及預編碼數字視頻的變碼的速率控制,更具體地說,涉及根據從預編碼視頻抽取的信息,有效計算量化參數,從而實現(xiàn)目標位速率。
背景技術:
當傳送預編碼視頻數據時,通常關心的是如何把預編碼視頻改編到具有不同帶寬的通信信道上。為了確保高質量視頻,以很高的位速率對多數預編碼視頻流編碼。傳送這樣的高位速率視頻流通常成本較高,并且有時辦不到,因為通信信道不能提供足夠的帶寬。降低預編碼視頻位速率的一種常見方法是首先對視頻解碼,產生原始象素數據,隨后以不同的位速率重新對原始象素數據編碼。但是,這種簡單的重新編碼方法既復雜,成本又高,并且會引入起因于幀重新排序的延遲。它需要一個解碼器和一個全功能編碼器對視頻數據重新編碼。此外,由于編碼器需要再次執(zhí)行運動搜索,并根據解碼數據進行新的編碼判定(例如圖像編碼類型,宏塊模式和量化參數),因此視頻質量通常會以稱為生成損耗或級聯(lián)編碼損耗的效果的形式顯著降低。
降低預編碼視頻位速率的另一種方法是使用變碼系統(tǒng),變碼系統(tǒng)重復使用一些初始編碼判定。但是,如果這樣的變碼系統(tǒng)使用一種或多種傳統(tǒng)的速率控制算法,例如運動圖像專家組-2測試模型5(MPEG2TM5)速率控制算法,那么由于許多因素的緣故,變碼視頻的質量通常仍然會降低。一個因素是源系統(tǒng)使用的速率控制參數和變碼系統(tǒng)使用的速率控制參數之間的可能差值。另一因素是初始預編碼流中,變碼系統(tǒng)未考慮的減損,例如量化損耗的存在。另外,這些類型的變碼系統(tǒng)使用的算法計算量大,并且效率低,因為它們通常需要預先知道一組圖像的編碼類型,而該信息事先可能不能得到。此外,通常使用大緩存器抽取該信息,會引入較大的處理延遲。這些常見的變碼系統(tǒng)還需要計算圖像中每個宏塊的活動指示,并且對于每個宏塊,通常需要來自熵編碼模塊的反饋。
在這些局限性的情況下,顯然一種用于預編碼視頻數據的變碼的改進速率控制方法理應是有利的。
參考附圖,根據下面的說明及權利要求,本發(fā)明的各種優(yōu)點,特征和特性,以及結構的相關部件的方法,操作和功能,和產品的部件和經濟性的結合將變得顯而易見,所述附圖構成本說明書的一部分。
圖1是圖解說明根據本發(fā)明的至少一個實施例的提供視頻內容的系統(tǒng)的方框圖;圖2是圖解說明根據本發(fā)明的至少一個實施例的,根據源量化值確定變碼量化值的編碼器的方框圖;圖3是圖解說明把量化比應用于量化矩陣,以便修改量化矩陣的值的方框圖;圖4是圖解說明根據本發(fā)明的至少一個實施例的對視頻內容變碼的方法的流程圖;圖5是圖解說明根據本發(fā)明的至少一個實施例的確定量化比的方法的流程圖。
具體實施例方式
根據本發(fā)明的至少一個實施例,源宏塊的量化值被接收,根據源量化值和視頻緩存器中數據的預期量,確定目的宏塊的量化值。本發(fā)明的一個優(yōu)點在于緩存器大小被降至最小,因為不需要緩存一個以上的視頻圖像來確定位分配。另一優(yōu)點在于能夠避免緩存器上溢和/或下溢。另一優(yōu)點在于由于能夠事先確定整個圖像的量化參數,因此只需較少的努力就能實現(xiàn)宏塊的流水線。另一優(yōu)點在于由于輸出位速率的更準確估計,視頻質量被提高。
圖1-5圖解說明用于預編碼視頻內容的有效速率控制的系統(tǒng)和方法。在至少一個實施例中,本地系統(tǒng)的本地編碼器利用以作為取回的視頻數據的一部分,由在先編碼器提供的源量化值為基礎的變碼量化值,對先前解碼的視頻數據編碼。視頻數據由本地系統(tǒng)編碼,隨后被提供給目標系統(tǒng)進行解碼,隨后被顯示和/或存儲。在至少一個實施例中,通過獲得源量化值與量化比率的比值,確定變碼量化值,這里量化比率以一個或多個因素為基礎,例如變碼選項(控制輸出視頻分辨率和/或幀丟失標記的縮放因素),位預算和位消耗狀態(tài),和/或目標系統(tǒng)的視頻緩存器的特性。視頻緩存器的特性可包括視頻緩存器的充滿度和/或指示多久目標系統(tǒng)才譯解并除去緩存幀的緩存器延遲。在一個實施例中,視頻緩存器的特性直接從目標系統(tǒng)獲得,于是表示實際的特性。在另一實施例中,視頻緩存器的特性由本地系統(tǒng)模擬,例如通過模擬視頻緩存驗證(VBV)緩存器,于是表示預期的特性。通過比較本地系統(tǒng)發(fā)送的,輸入目標系統(tǒng)的視頻緩存器的視頻數據量和正以已知幀速率從視頻緩存器輸出的數據量,可在本地編碼器模擬VBV緩存器的特性。
現(xiàn)在參見圖1,根據本發(fā)明的至少一個實施例,圖解說明了視頻系統(tǒng)100。視頻系統(tǒng)100包括源系統(tǒng)101,本地系統(tǒng)110,通信介質155和目標系統(tǒng)160。本地系統(tǒng)160包括存儲器120,源緩存器125,本地解碼器130,幀緩存器140和本地編碼器150。在至少一個實施例中,本地系統(tǒng)110包括對來自源系統(tǒng)101的視頻數據變碼的變碼系統(tǒng)。因此,這里把本地系統(tǒng)110稱為變碼系統(tǒng)110,在一個實施例中,變碼系統(tǒng)110能夠包括和在同時申請的代理人記錄編號VIXS.0100120的待審專利申請“SYSTEM AND METHOD FOR MULTIPLECHANNEL VIDEO TRANSCODING”中描述的那么特征相類似的特征,該專利申請作為參考包含于此。除非另作說明,否則對變碼系統(tǒng)110的引用同樣適用于本地系統(tǒng)110的其它實施例。同樣地,這里分別把本地編碼器150和本地解碼器130稱為變碼編碼器150和變碼解碼器130。目標系統(tǒng)160包括目標解碼器170,顯示器180和/或存儲器190。在至少一個實施例中,變碼系統(tǒng)110表示視頻變碼器。這種情況下,變碼系統(tǒng)110對從源系統(tǒng)101接收的源視頻數據105解碼,并把解碼的源視頻數據105變碼成目標視頻數據165,這里目標視頻數據165可具有不同于源視頻數據105的性質,例如不同的幀速率,不同的位速率,不同的分辨率等。目標視頻數據165被提供給目標系統(tǒng)160,在目標系統(tǒng)160,目標視頻數據165可被解碼和顯示,和/或被存儲以便稍后取回。
通常,源視頻數據105能夠包括利用各種視頻編碼/壓縮格式壓縮和/或編碼的視頻數據。例如,在一個實施例中,源視頻數據105包括利用運動圖像專家組(例如MPEG-2)格式編碼的視頻數據。接收的源視頻105被存儲在變碼系統(tǒng)110中,例如存儲在源緩存器125中,隨后被變碼解碼器130取回以便解碼。變碼解碼器130的輸出可被存儲在幀緩存器140中。根據需要,與源視頻數據105的解碼相關的源編碼信息,例如與源視頻數據105的宏塊相關的量化值和運動矢量可被發(fā)送給變碼編碼器150。在一個實施例中,在如圖1中所示的存儲器120中實現(xiàn)源緩存器125和幀緩存器140。存儲器120可包括隨機存取存儲器(RAM)、高速緩沖存儲器、磁盤存儲器等中的一個或多個,并且可包括幀緩存器。
在一個實施例中,變碼編碼器150把存儲在幀緩存器140中的變碼解碼器130的解碼輸出重新編碼成可具有不同于源視頻數據105的特性,例如不同的分辨率,幀速率,位速率等的目標視頻數據165。例如,變碼編碼器150能夠通過丟幀,改變幀速率。例如,源視頻數據105可被編碼成具有60幀/秒(fps)的幀速率,而用戶指示目標視頻數據165的所需幀速率為30fps。這種情況下,變碼編碼器150能夠每隔一幀,對存儲在幀緩存器140中的源幀編碼,以便構成目標視頻數據165。變碼編碼器150隨后通過通信媒體155,把目標視頻數據165提供給目標系統(tǒng)160。通信媒體155可包括無線媒體,物理媒體或它們的組合。
在至少一個實施例中,在目標視頻數據165在目標系統(tǒng)160被解碼之前,它被存儲在目標視頻緩存器175中。目標解碼器170能夠從目標視頻緩存器175取回目標視頻數據165,并對其解碼,以便在顯示器180上顯示,這里顯示器180可包括各種顯示器,例如電視機,計算機監(jiān)視器等之一。另一方面,目標視頻數據165可以編碼和/或解碼的形式存儲在存儲器190中。存儲器190可包括各種存儲設備,例如硬盤,數字通用光盤(DVD)記錄器,記憶棒等。
理想地,源視頻數據105的位速率小于通信媒體155的數據傳輸速率,變碼系統(tǒng)110可被繞過。但是,要認識到在許多環(huán)境下,不可能發(fā)生這種理想情形。例如,典型的HDTV流以18.2M位/秒(bps)被編碼,而數字用戶線(DSL)通常只能夠提供1Mbps~3Mbps信道位速率。對于無線通信來說,所需位速率和可用位速率之間的差值甚至更明顯,并且信道帶寬會隨著時間而變化。這種情況下,變碼系統(tǒng)110可被用于使目標視頻數據165的位速率適應通信媒體155的信道位速率。在把源視頻位速率改變?yōu)槟繕艘曨l位速率的時候,變碼系統(tǒng)110的速率控制模塊通常需要控制每個變碼幀的數據大小,以避免目標系統(tǒng)160的視頻緩存器的上溢或下溢。
理想地,視頻緩存器175的輸入數據速率應等于來自視頻緩存器175的輸出數據速率,導致視頻緩存器175的充滿度的凈變化為零。但是,要認識到在許多視頻系統(tǒng)中不可能發(fā)生這種理想情形。首先,被傳送的幀的大小不可能相同。例如,根據MPEG標準,編碼幀可包括I-幀,B-幀和P-幀,每個幀通常具有明顯不同的數據大小。例如,由于I-幀是內編碼(intra-encoded)幀,于是只能根據包括在I-幀內的數據被解碼,因此它們通常由比P-幀和B-幀更多的數據表示,P-幀和B-幀可使用解碼過程中,來自在先幀和/或未來幀的預測數據。類似地,由于幀的內容和量化參數的緣故,相同類型的幀通常會具有不同的數據量。對于恒定數據速率通信信道來說,幀的傳輸時間正比于其大??;幀越大,傳送所用的時間越長,幀越小,傳送所需的時間越短。從而,由于編碼幀數據大小的變化,編碼器每秒可向目標解碼器視頻緩存器發(fā)送的幀數將發(fā)生變化,而目標解碼器將以固定的幀速率譯解并顯示視頻,從而導致視頻緩存器中幀的數目和/或數據量的增大或減小。
因此,變碼系統(tǒng)中的速率控制模塊控制每個編碼視頻幀大小,以致平均位速率等于信道數據速率,目標系統(tǒng)160的視頻緩存器175不會上溢或下溢。這是通過根據視頻緩存器175的上溢或下溢關系,增大或減小用于表示目標視頻數據165的幀的數據量來實現(xiàn)的。例如,在一個實施例中,以相當恒定的數據傳輸速率,通過通信媒體155傳送數據,以便充分利用通信媒體155的帶寬。這種情況下,可增大表示目標視頻幀165的編碼幀的數據量,以便減少某一時段內傳送的幀的數目。由于目標解碼器170以固定的幀速率對視頻解碼,因此,幀的大小越大,解碼器越快地從視頻緩存器175中除去數據。換句話說,通過控制幀數據大小,速率控制實際上控制從緩存器中除去數據有多快。如果和信道數據速率相比,數據被過快地除去,那么發(fā)生緩存器下溢,相反則發(fā)生緩存器上溢。速率控制模塊的目的是使平均輸出數據速率等于信道數據速率,信道數據速率是視頻緩存器175的輸入數據速率。下面參考轷更詳細地說明速率控制模塊。
在至少一個實施例中,通過修改用于量化變碼編碼器150的離散余弦變換(DCT)模塊的輸出的量化矩陣的量化值,與幀相關的數據量被增大或減少。通過增大量化值,在量化輸出中可能出現(xiàn)更多的0,通過減小量化值,可能會出現(xiàn)較少的0。根據作為編碼器,例如游程長度編碼器或變長編碼器對量化輸出的壓縮操作的結果的0的數目,數據量通常被增大或減少。在至少一個實施例中,變碼編碼器150根據用于量化從源接收的宏塊的在先量化值,和源數據速率與目標數據速率之間的比值,確定用于量化某一宏塊的量化值。另外,可根據一個或多個變碼選項和目標視頻緩存器的預期充滿度,能夠調整量化值,這里利用假定的解碼緩存器(例如VBV緩存器),或者根據從目標系統(tǒng)獲得的充滿度信息,確定預期的充滿度。后面更詳細地說明用于量化某一目的宏塊的元素或某一幀的量化值的方法。
現(xiàn)在參見圖2,根據本發(fā)明的至少一個實施例,更詳細地說明變碼編碼器150。變碼編碼器150包括運動補償模塊200,離散余弦變換(DCT)模塊210,監(jiān)視模塊220,估計模塊230,速率控制模塊240,量化器250和變長編碼器260。變碼編碼器150的部件可被實現(xiàn)成軟件、硬件、固件或它們的組合。
如上所述,在一個實施例中,變碼編碼器150通過修改變碼系統(tǒng)用于對源視頻數據去量化的源量化值,產生變碼量化值,從而修改與幀相關的數據量。DCT模塊210對運動補償模塊200提供的解碼和運動補償源視頻數據(只是宏塊間的殘余數據)的宏塊進行離散余弦變換。量化器250隨后利用變碼量化值,對DCT模塊210的輸出進行量化操作。量化器250的輸出被提供給變長編碼器(VLE)260,在變長編碼器260,對量化器250的輸出執(zhí)行游程長度和/或變長編碼。VLE260的輸出隨后可被緩存、多路復用和/或被傳送給目標解碼系統(tǒng),例如圖1的目標系統(tǒng)160。通過修改量化值,如前所述,能夠根據需要增大或減小與某一宏塊和/或幀相關的數據量。
在至少一個實施例中,量化器250使用的變碼量化值由速率控制模塊240提供。速率控制模塊240用于確定變碼量化值的一種方法以源量化值和量化比之間的比值為基礎。這由下述等式所示trcQ=srcQqRatio]]>這里trcQ是變碼量化值,srcQ是源量化值,qRatio是量化比。在一個實施例中,量化比的初始值(qRatioInit)被設置成變碼比(trcRatio),變碼比是目標位速率(tgtBitRate)和源位速率(srcBitRate)之間的比值,由下述等式所示qRatioInit=trcRatio=tgtBitRatesrcBitRate]]>在至少一個實施例中,量化比發(fā)生器241根據初始量化比,變碼選項和目標視頻緩存器的狀態(tài),確定量化比。量化比發(fā)生器241通常試圖在保持正確的目標緩存器充滿度的同時,實現(xiàn)目標位速率,以及避免把多于必需位的更多位分配給減損的視頻數據。后面參考圖5更詳細地說明了量化比發(fā)生器241的操作。
在一個實施例中,監(jiān)視模塊220利用目標視頻緩存器的本地模型,例如VBV緩存器模型,模仿目標系統(tǒng)的視頻緩存器,確定目標視頻緩存器的預期特性。表示表示充滿度的特性,例如VBV延遲的值被提供給速率模擬模塊240。監(jiān)視模塊220能夠把VBV緩存器模型的起始充滿度設置成VBV緩存器大小的某一百分數(即,75%+/-.10),并設置第一變碼幀的初始VBV延遲,以反映VBV緩存器的起始充滿度。在對幀變碼之后,監(jiān)視模塊220通過從VBV緩存器充滿值中減去變碼幀表示的相同數據量,更新VBV緩存器狀態(tài),并根據新的緩存器充滿值,計算下一圖像的VBV延遲。另一方面,在一個實施例中,模擬模塊220把充滿度和/或緩存器延遲設置成其最大值,以指示正被變碼的視頻是變位速率(VBR)流。這種情況下,成比例地修改每幀的數據大小,位速率輪廓和輸入流相同。
代替模擬或模仿目標視頻緩存器的預期充滿度,在一個實施例中,監(jiān)視模擬220直接確定視頻緩存器的充滿度或緩存器延遲。例如,監(jiān)視模擬220可定期輪詢控制視頻緩存器的行為的控制模塊,從而獲得視頻緩存器的充滿度。例如,控制模擬能夠返回視頻緩存器中最近存儲的數據的地址值。該地址值隨后可被用于確定視頻緩存器的充滿度。例如,視頻緩存器的地址值可包括地址的線性增大序列,例如從0-99,這里從地址0開始存儲數據。這種情況下,通過返回地址值74,能夠假定視頻緩存器的充滿度約為75%((74+1)/(99+1))。在不脫離本發(fā)明的精神或范圍的情況下,可使用確定視頻緩存器的充滿度或緩存器延遲的其它方法。
在一個實施例中,變碼解碼器130(圖1)把源量化值提供給速率控制模塊240,以便產生變碼量化值。在一個實施例中,變碼解碼器130從存儲的源視頻數據中抽取源量化值。在另一實施例中,速率控制模塊240可以使用量化值表,源量化值由源系統(tǒng)提供,以便解碼。源量化值可包括被應用于DCT系數矩陣的每元素的單個量化比例值,或者對應于DCT系數矩陣的量化值的矩陣。
參見圖3,根據本發(fā)明的至少一個實施例,圖解說明了應于源量化值的各種量化比的效果。如前所述,通過把源量化值335除以量化比320,確定變碼量化值345,這里量化比320由量化比發(fā)生器241產生。如前所述,源量化值335可以是應用于DCT系數矩陣的每個元素的量化比例值和對應于DCT系數矩陣的量化值矩陣的組合。
如同利用變碼量化矩陣331所示那樣,把0.6的量化比320應用于源量化矩陣310,產生變碼量化值345大于或等于源量化矩陣310的對應源量化值的變碼量化矩陣331。另一方面,應用1.5的量化比320導致變碼量化值345小于或等于源量化矩陣310的對應量化值的目的矩陣332。要認識到和較低的量化矩陣值相比,通常較高的量化矩陣值導致具有更多0的量化DCT系數矩陣。量化比越高,量化矩陣越小,從而輸出位速率越高。從而,較低的量化比可被用于降低與DCT系數矩陣相關的數據量,而較高的量化比可被用于增大數據量。
參見圖4,根據本發(fā)明的至少一個實施例,圖解說明有效控制變碼系統(tǒng)的位速率的方法。方法400始于步驟410,在步驟410,如前參考圖2所述,計算初始量化比。
在步驟420,根據在步驟410計算的初始量化比,確定或產生將被應用于源量化值的量化比。在至少一個實施例中,根據位預算消耗,變碼選項和目標緩存器的狀態(tài),例如其預期充滿度,確定量化比。后面參考圖5更詳細地說明步驟420。在步驟430中,取出正被處理的幀的源宏塊的源量化值。在步驟440中,在步驟420確定的量化比被應用于源量化值,以確定變碼量化值。例如,在一個實施例中,圖2的速率控制模塊240獲得源量化值和量化比之間的比值,從而產生變碼量化值。在其它實施例中,根據緩存器充滿度或緩存器延遲,借助其它手段確定變碼量化值,例如當某些條件被滿足時,通過對源量化值應用非線性函數確定變碼量化值。
在步驟450中,在步驟440確定的變碼量化值被應用于表示該幀的選擇宏塊的DCT系數矩陣,以便量化DCT系數矩陣。在步驟460中,利用游程長度,變長編碼等,對量化的DCT系數矩陣編碼。在步驟470中,編碼的DCT系數矩陣被輸出給后續(xù)系統(tǒng)。在步驟480中,對于正被編碼的幀的一些或全部宏塊重復步驟410-470。
下面參見圖5,根據本發(fā)明的至少一個實施例圖解說明方法400(圖4)的步驟420。步驟420始于子步驟510,在子步驟510,比較位消耗和位預算。如果位預算不等于位消耗,那么在子組515中嘗試匹配平均位速率和目標位速率(即,信道位速率)。在至少一個實施例中,為了補償位預算和實際位消耗之間的誤差,根據下面的等式調整初始值qRatio=qRatioInit×(1.0-Σi=1n(bitUsedi-bitBudgeti)Σi=n-wnbitBudgeti)]]>如果n<w,那么w=n。
這里qRatio是量化比,qRatioInit是在步驟410(圖4)中確定的初始量化值,bitUsed是以位表示的第i個實際輸出幀大小,w是移動窗口的大小,n是已被編碼的幀的數目。w的典型值為4~12。位預算bitBudget由下面的等式計算bitBudgeti=inBitCnti×trcRatio(EQ.5-515.2)這里inBitCnt是用位表示的第i個輸入幀數據大小,trcRatio是如同參考圖2所述確定的變碼比。
在子步驟420中,如果需要,那么在步驟525中評估并補償包括丟幀和縮放視頻的變碼選項。通過下面的等式完成縮放的補償qRatio=qRatio×(xscale*yscale)Z(EQ.5-525.1)這里qRatio是子步驟510和/或515的結果,xscale是輸入水平幀大小和輸出水平幀大小之間的比值,yscale是輸入垂直幀大小和輸出垂直幀大小之間的比值,Z是小于1的常數值。在至少一個實施例中,Z為0.75+/-.10。例如,假定輸入水平幀大小為704象素,輸入垂直幀大小為480象素,而對應變碼幀的輸出水平幀大小為352象素,輸出垂直幀大小為240象素。這種情況下,xscale應為2(704/352),yscale應為2(480/240)。另外,假定Z為0.75。這種情況下,補償因子應約為2.83(4的0.75次冪)。
在子步驟520中,還可檢查用于指示源視頻數據和目標視頻數據之間的幀顯示速率的差值的丟幀標記。例如,如果源視頻數據的幀速率為60fps,對于目標視頻數據,用戶表示30fps的所需幀顯示速率,那么必須平均每兩幀丟充一幀。如果幀被丟棄,那么通過下面的等式進行補償qRatio=qRatio×D這里qRatio是前一步驟的結果,D是大小1,小于2的常數值。在至少一個實施例中,D為1.2,以便每隔一幀丟棄。如果沒有幀被丟棄,那么子步驟520進入子步驟530。
在子步驟530中,比較視頻緩存器的充滿度和第一指示值X,比較量化比的值和為1.0的值。如上所述,通過模擬視頻緩存器,例如使用VBV緩存器模型,能夠確定目標視頻緩存器的充滿度,或者可直接從目標系統(tǒng),獲得視頻緩存器的特性。如果緩存器充滿度小于第一指示值X,并且量化比的值大于1.0,那么在步驟535中,量化比的值被設置成恒定值Y。在至少一個實施例中,Y為1.0。通過把量化比設置成1.0,變碼量化值將和源量化值相同,假定不存在量化比值的其它修改。在一個實施例中,量化比被設置成1.0,因為當緩存器充滿度小于第一指示值X時,例如緩存器充滿度低于最大緩沖容量的75%時,視頻緩存器被假定為在理想的操作參數范圍之內,或者至少將不會上溢。
如果緩存器充滿度大于第一指示值X,那么不存在對量化化的進一步修改,這意味著在子步驟515和/或525,可根據需要較高地設置量化水平(例如大于1.0),以避免目標視頻緩存器的上溢。利用大于1.0的量化比意味著使用小于源量化矩陣值的量化矩陣值,這通常會增大變碼幀大小,而不會提高質量(即,位被浪費)。從而,在一個實施例中,只有當目標視頻緩存器存在上溢的風險時,才允許量化比高于1.0。例如,如果緩存器充滿度大于其容量的75%,這意味著視頻緩存器可能上溢,除非視頻緩存器的輸出數據速率增大,這可通過增大后續(xù)幀的數據大小來實現(xiàn)。在一個實施例中,通過增大量化比產生取值較小的量化矩陣,從而增大幀數據大小,能夠增大后續(xù)幀的數據大小。在子步驟540中,比較視頻緩存器的充滿度和第二指示值Z。在一個實施例中,第二指示值Z包括為視頻緩存器的最大緩沖容量的20%+/-1%的值。如果表示視頻緩存器的充滿度的值低于第二指示值Z,那么在一個實施例中,認為視頻緩存器有可能下溢,在子步驟545中修改量化比的值。在一個實施例中,在子步驟545中,對量化比應用非線性函數,非線性等式如下所示qRatio=qRatio×XY-WZ]]>這里X是第一常數值,Y是第二常數值,W是表示視頻緩存器的充滿度的值,Z是第三常數值。在一個實施例中,X為0.9,Y為13000,Z為3000。這種情況下,如果量化比的前一值為0.8,視頻緩存器中數據的測量數量(即視頻緩存器的充滿度)為9000,那么量化比的修改值應為0.695。如果緩存器充滿度大于第二指示值Z,則假定視頻緩存器在理想的操作參數范圍之內。作為根據視頻緩存器的充滿度和用于量化源視頻數據的源量化值修改變碼量化值的結果,能夠修改地修改傳送的并存儲在視頻緩存器中的變碼幀的大小,防止視頻緩存器的上溢和/或下溢。注意X、Y、Z的值已根據經驗得到。但是,可把X、Y、Z的各種其它值代入等式中,以便獲得不同的量化比,借助諸如泰勒級數或二次近似之類數值方法,能夠實現(xiàn)上面的等式的進一步近似,從而獲得可比結果,但是,上面的基本等式的任何合理的精確近似或簡化計算的X、Y、Z的簡化值顯然都是基本量化等式的變化實現(xiàn)。
可利用諸如數據處理器之類信息處理器,或者多個處理設備實現(xiàn)本申請中的各種功能和組件。這樣的數據處理器可以是微處理器,微控制器,微計算機,數字信號處理器,狀態(tài)機,邏輯電路,和/或根據操作指令或者按照預定方式操作數字信息的任意設備。通常,利用這里列舉的一種或多種實現(xiàn)技術,本領域的普通技術人員易于實現(xiàn)方框圖表示的各種功能和系統(tǒng)。當使用發(fā)出指令的數據處理器時,指令可存儲在存儲器中。這種存儲器可以是單個存儲設備或者多個存儲設備。這種存儲設備可以是只讀存儲設備,隨機存取存儲設備,磁帶存儲器,軟盤存儲器,硬盤存儲器、外部磁帶,和/或存儲數字信息的任意設備。注意當數據處理器通過狀態(tài)機或邏輯電路實現(xiàn)其一個或多個功能時,存儲對應指令的存儲器可嵌入包括狀態(tài)機和/或邏輯電路的電路之內,或者它可以是不必要的,因為通過利用組合邏輯實現(xiàn)該功能。這種信息處理機可以是一個系統(tǒng),或者系統(tǒng)的一部分,例如計算機、個人數字助理(PDA)、手持式計算設備、有線電視機頂盒、能夠接入因特網的設備,例如蜂窩電話機等。
在前面的詳細說明中,參考了構成本發(fā)明一部分的附圖,附圖中舉例表示了可實踐本發(fā)明的具體實施例。足夠詳細地描述了這些實施例,以使本領域的技術人員能夠實踐本發(fā)明,顯然可以利用其它實施例,并且在不脫離本發(fā)明的精神或范圍的情況下,能夠做出邏輯、機械、化學和電學變化。為了避免對于使本領域的技術人員能夠實踐本發(fā)明來說不必要的詳細,說明省略了本領域技術人員熟知的一些信息。此外,本領域技術人員易于構成包含本發(fā)明教導的許多其它變化的實施例。因此,本發(fā)明并不局限于這里陳述的具體形式,相反,本發(fā)明意圖覆蓋能夠合理地包括在本發(fā)明的精神和范圍內的所有這種替換、修改和等同物。于是,前面的詳細說明不是對本發(fā)明的限制,本發(fā)明的范圍只由附加的權利要求限定。
權利要求
1.一種方法,包括下述步驟接收第一宏塊的第一量化值;根據所述第一量化值以及視頻緩存器中視頻數據的第一預期數量,確定所述第一宏塊的第二量化值。
2.按照權利要求1所述的方法,還包括根據所述第二量化值,修改所述第一宏塊的步驟。
3.按照權利要求1所述的方法,其中從所述第一宏塊的源端接收所述第一量化值。
4.按照權利要求1所述的方法,其中視頻緩存器的地址位置表示所述視頻緩存器中數據的第一預期數量。
5.按照權利要求1所述的方法,其中用以指示幀何時將被處理的緩存器延遲值表示所述視頻緩存器中數據的第一預期數量。
6.按照權利要求5所述的方法,其中所述緩存器延遲值基于存儲在所述視頻緩存器的緩沖位置中的幀的數目。
7.按照權利要求1所述的方法,其中根據對于所述視頻緩存器的模擬,確定數據的第一預期數量。
8.按照權利要求7所述的方法,其中對于所述視頻緩存器的模擬包括根據輸入速率和輸出速率之間的差值,確定視頻緩存器的充滿度。
9.按照權利要求7所述的方法,其中對于所述視頻緩存器的模擬包括使用VBV緩存器模型。
10.按照權利要求1所述的方法,其中所述確定步驟還包括根據輸入位速率和輸出位速率的第一比值,確定所述第二量化值。
11.按照權利要求10所述的方法,其中所述確定步驟還包括根據所述第一比值與源位計數的第二比值,確定所述第二量化值。
12.按照權利要求10所述的方法,其中所述確定步驟還包括根據X縮放值和Y縮放值的乘積,確定所述第二量化值,其中所述乘積被自乘Z次,Z小于1。
13.按照權利要求12所述的方法,其中所述X縮放值包括水平幀大小值,所述Y縮放值包括垂直幀大小值。
14.按照權利要求13所述的方法,其中Z為.75+/-0.1。
15.按照權利要求1所述的方法,其中所述第二量化值包括所述第一量化值與量化比的比值。
16.按照權利要求15所述的方法,其中所述量化比基于數據的第一預期數量。
17.按照權利要求16所述的方法,其中當數據的第一預期數量大于第一指示符時,所述量化比包括第一常數值;當數據的第一預期數量小于第一指示符且大于第二指示符時,所述量化比包括第二常數值;當數據的第一預期數量小于第二指示符時,根據非線性函數確定所述量化比。
18.按照權利要求17所述的方法,其中所述第一指示符為最大緩存器充滿度的75%+/-1%的緩存器充滿值。
19.按照權利要求17所述的方法,其中所述第二指示符為最大緩存器充滿度的20%+/-1%的緩存器充滿值。
20.按照權利要求17所述的方法,其中所述非線性函數包括等式R=Q*X(Y-W)/Z其中R是量化比,Q是初始量化比,X是第一常數值,Y是第二常數值,W是表示數據量的值,Z是第三常數值。
21.一種方法,包括下述步驟當存儲在緩存器中的數據量大于第一指示符時,按第一常數值修改第一宏塊的量化值;當存儲在緩存器中的數據量大于第二指示符且小于第一指示符時,利用第二常數值修改第一宏塊的量化值;和當存儲在緩存器中的數據量小于第二指示符時,按非線性值修改第一宏塊的量化值。
22.一種方法,包括下述步驟確定與第一宏塊相關的第一量化值;利用第二量化值修改所述第一宏塊,其中所述第二量化值基于第一量化比和第一量化值的比值,所述第一量化比基于視頻緩存器的第一預期特性。
23.按照權利要求22所述的方法,其中所述確定第一量化值的步驟包括從所述第一宏塊的源端接收所述第一量化值。
24.按照權利要求22所述的方法,其中所述視頻緩存器的第一預期特性包括所述視頻緩存器的充滿度。
25.按照權利要求22所述的方法,其中用以指示幀何時將被處理的緩存器延遲值表示所述視頻緩存器中數據的第一預期特性。
26.按照權利要求25所述的方法,其中所述緩存器延遲值基于存儲在緩沖位置中的幀的數目。
27.按照權利要求22所述的方法,其中根據對于所述視頻緩存器的模擬,確定所述第一預期特性。
28.按照權利要求27所述的方法,其中所述視頻緩存器的模擬包括根據輸入速率和輸出速率之間的差值,確定所述視頻緩存器的充滿度。
29.按照權利要求27所述的方法,其中對于所述視頻緩存器的模擬包括使用VBV緩存器模型。
30.按照權利要求22所述的方法,其中所述量化比基于X縮放值和Y縮放值的乘積,其中所述乘積被自乘Z次,Z小于1。
31.按照權利要求30所述的方法,其中所述X縮放值包括水平幀縮放值,所述Y縮放值包括垂直幀縮放值。
32.按照權利要求30所述的方法,其中Z為.75+/-0.1。
33.按照權利要求30所述的方法,其中當第一預期特性大于第一指示符時,所述量化比包括第一常數值;當第一預期特性小于第一指示符且大于第二指示符時,所述量化比包括第二常數值;當第一預期特性小于第二指示符時,根據非線性函數確定所述量化比。
34.按照權利要求33所述的方法,其中所述第一指示符為最大緩存器充滿度的75%+/-1%的緩存器充滿值。
35.按照權利要求33所述的方法,其中所述第二指示符為最大緩存器充滿度的20%+/-1%的緩存器充滿值。
36.按照權利要求33所述的方法,其中所述非線性函數包括等式R=Q*X(Y-W)/Z其中R是量化比,Q是初始量化比,X是第一常數值,Y是第二常數值,W是表示數據量的值,Z是第三常數值。
37.一種速率控制系統(tǒng),包括具有輸出端的監(jiān)視模塊,所述監(jiān)視模塊確定目標解碼器的第一預期特性,并確定所接收的源宏塊的源量化值;和速率控制模塊,所述速率控制模塊具有與所述監(jiān)視模塊的輸出端耦接、以便接收所述第一預期特性以及所述源量化值的第一輸入端,以及輸出端,所述速率控制模塊根據所述第一預期特性和所述源量化值,確定所述源宏塊的變碼量化值。
38.按照權利要求37所述的系統(tǒng),還包括具有與所述速率控制模塊的輸出端耦接的輸入端的量化器,所述量化器利用所述變碼量化值來量化所述源宏塊。
39.按照權利要求37所述的系統(tǒng),還包括具有輸出端的比值發(fā)生器,所述比值發(fā)生器根據所述目標解碼器的第一預期特性來確定量化比。
40.按照權利要求39所述的系統(tǒng),所述速率控制模塊還具有與所述比值發(fā)生器的輸出端耦接、以便接收所述量化比的輸入端,所述速率控制模塊根據所述源量化值和所述量化比的比值來確定所述變碼量化值。
41.按照權利要求37所述的系統(tǒng),其中所述速率控制模塊根據應用于所述源量化值的非線性函數來確定所述變碼量化值。
42.按照權利要求37所述的系統(tǒng),其中所述第一預期特性包括與所述目標解碼器相關的緩存器的充滿度。
43.按照權利要求42所述的系統(tǒng),其中從所述目標解碼獲得所述緩存器的充滿度。
44.按照權利要求42所述的系統(tǒng),其中根據所述緩存器的模型來確定所述緩存器的充滿度。
45.按照權利要求42所述的系統(tǒng),其中所述模型包括VBV緩存器模型。
46.按照權利要求42所述的系統(tǒng),其中所述監(jiān)視模塊利用所述緩存器的地址位置來確定所述緩存器的充滿度。
47.按照權利要求37所述的系統(tǒng),其中所述第一預期特性包括與緩存器相關的延遲值。
48.按照權利要求47所述的系統(tǒng),其中所述延遲值基于存儲在所述緩存器中的幀的數目。
49.按照權利要求37所述的系統(tǒng),其中所述監(jiān)視模塊模擬所述目標解碼器,以便確定所述第一預期特性。
50.按照權利要求49所述的系統(tǒng),其中所述監(jiān)視模塊模擬輸入速率和輸出速率之間的差值的測量。
51.一種計算機可讀介質,所述計算機可讀介質包括操縱處理器實現(xiàn)下述功能的指令接收第一宏塊的第一量化值;根據所述第一量化值和視頻緩存器中視頻數據的第一預期數量,確定所述第一宏塊的第二量化值。
52.按照權利要求51所述的計算機可讀介質,其中所述指令還包括操縱所述處理器根據第二量化值來修改所述第一宏塊的指令。
53.按照權利要求51所述的計算機可讀介質,其中從所述第一宏塊的源端接收所述第一量化值。
54.按照權利要求51所述的計算機可讀介質,其中視頻緩存器的地址位置表示所述視頻緩存器中數據的第一預期數量。
55.按照權利要求51所述的計算機可讀介質,其中用以指示幀何時將被處理的緩存器延遲值表示所述視頻緩存器中數據的第一預期數量。
56.按照權利要求55所述的計算機可讀介質,其中所述緩存器延遲值基于存儲在所述視頻緩存器的緩沖位置中的幀的數目。
57.按照權利要求51所述的計算機可讀介質,其中根據對于所述視頻緩存器的模擬,確定數據的第一預期數量。
58.按照權利要求57所述的計算機可讀介質,其中對于所述視頻緩存器的模擬包括使用VBV緩存器模型。
59.按照權利要求57所述的計算機可讀介質,其中對于所述視頻緩存器的模擬包括根據輸入速率和輸出速率之間的差值,來確定所述視頻緩存器的充滿度。
60.按照權利要求51所述的計算機可讀介質,其中所述操縱處理器進行確定的指令還包括操縱所述處理器根據輸入位速率和輸出位速率的第一比值,來確定所述第二量化值的指令。
61.按照權利要求60所述的計算機可讀介質,其中所述操縱處理器進行確定的指令還包括操縱所述處理器根據所述第一比值與源位計數的第二比值,來確定所述第二量化值的指令。
62.按照權利要求60所述的計算機可讀介質,其中所述操縱處理器進行確定的指令還包括操縱所述處理器根據X縮放值和Y縮放值的乘積,來確定所述第二量化值的指令,其中所述乘積被自乘Z次,Z小于1。
63.按照權利要求62所述的計算機可讀介質,其中X縮放值包括水平幀大小值,Y縮放值包括垂直幀大小值。
64.按照權利要求63所述的計算機可讀介質,其中Z為.75+/-0.1。
65.按照權利要求51所述的計算機可讀介質,其中所述第二量化值包括所述第一量化值與量化比的比值。
66.按照權利要求65所述的計算機可讀介質,其中所述量化比基于數據的第一預期數量。
67.按照權利要求66所述的計算機可讀介質,其中當數據的第一預期數量大于第一指示符時,所述量化比包括第一常數值;當數據的第一預期數量小于第一指示符且大于第二指示符時,所述量化比包括第二常數值;當數據的第一預期數量小于第二指示符時,根據非線性函數來確定所述量化比。
68.按照權利要求67所述的計算機可讀介質,其中所述第一指示符為最大緩存器充滿度的75%+/-1%的緩存器充滿值。
69.按照權利要求67所述的計算機可讀介質,其中所述第二指示符為最大緩存器充滿度的20%+/-1%的緩存器充滿值。
70.按照權利要求67所述的計算機可讀介質,其中所述非線性函數包括等式R=Q*X(Y-W)/Z其中R是量化比,Q是初始量化比,X是第一常數值,Y是第二常數值,W是表示數據量的值,Z是第三常數值。
全文摘要
公開一種用于預編碼視頻內容的速率控制的系統(tǒng)和方法。本地系統(tǒng)利用以作為取回的視頻數據的一部分,由在先編碼器提供的源量化值為基礎的變碼量化值,對先前解碼的視頻數據編碼。另外可根據目標系統(tǒng)的視頻緩存器的充滿度,確定變碼量化值,這里充滿度的量度可直接從目標系統(tǒng)獲得,或者可由本地系統(tǒng)模擬。視頻數據由本地系統(tǒng)編碼,隨后被提供給目標系統(tǒng)解碼,隨后被顯示和/或存儲。
文檔編號H04N7/30GK1631041SQ02827114
公開日2005年6月22日 申請日期2002年11月7日 優(yōu)先權日2001年11月21日
發(fā)明者尹德拉·萊克索諾, 曾志華 申請人:Vixs系統(tǒng)公司