專利名稱:防止視頻壓縮系統(tǒng)解碼器緩存器上下溢的方法、速率控制器和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻壓縮領(lǐng)域,具體涉及控制用于存儲已壓縮的視頻數(shù)據(jù)的解碼器緩存器。
眾所周知,視頻系統(tǒng)包括多個通信裝置和多個通信信道,這些通信信道為通信裝置提供通信媒體。例如,通信信道可以是有線連接或射頻(RF)載頻。為了提高視頻系統(tǒng)的效率,要對那些需要通過通信媒體傳送的視頻進(jìn)行數(shù)字壓縮。數(shù)字壓縮在保持該視頻的感覺質(zhì)量的同時,降低了代表該視頻的比特數(shù)。降低比特數(shù)允許更有效地利用信道帶寬和減少存儲要求。為了實現(xiàn)數(shù)字視頻壓縮,每個通信裝置可以含有一個編碼器和一個解碼器。編碼器允許通信裝置在視頻通過通信信道傳送前壓縮視頻。解碼器使通信裝置能從通信信道中接收經(jīng)壓縮的視頻并處理它。采用數(shù)字視頻壓縮的通信裝置含有高清晰度電視發(fā)射機和接收機、有線電視發(fā)射機和接收機、可視電話機、計算機和便攜無線電設(shè)備。
業(yè)已提出了一些數(shù)字視頻壓縮的標(biāo)準(zhǔn),包括國際電信聯(lián)盟ITU-T建議H·261、國際標(biāo)準(zhǔn)化組織/國際電子技術(shù)委員會ISO/IEC11172-2、國際標(biāo)準(zhǔn)MPEG-1和即將出版的ISO/IEC13818-2標(biāo)準(zhǔn)MPEG-2。這些標(biāo)準(zhǔn)規(guī)定了解碼器必須解碼的比特流的語法,提出了解碼器的要求。雖然這允許在制造編碼器時有某些靈活性,但編碼器必須能夠產(chǎn)生滿足規(guī)定語法的比特流。
為了使可用信道帶寬的利用率最大化和視頻質(zhì)量最高化,編碼器力求使其產(chǎn)生的比特數(shù)與可用信道帶寬相匹配。這通常是通過選擇一個目標(biāo)的比特數(shù)來代表視頻幀或圖像來實現(xiàn)的。目標(biāo)比特數(shù)稱為“目標(biāo)比特分配量”。目標(biāo)比特分配量根據(jù)圖像的類型和其它考慮的因素對于每種圖像是不同。對于編碼器在產(chǎn)生比特的另一個考慮是該系統(tǒng)中任何緩存器的能力問題。通常,由于編碼器和解碼器的比特速率不恒定,故在信道的兩端需放置緩存器,一個位于信道之前在編碼器之后,另一個在信道之后在解碼器之前。緩存器吸收比特速率的波動。編碼器經(jīng)常必須保證編碼器和解碼器的緩存器不致因為產(chǎn)生比特流而上溢或下溢。
通常是而且特別是在提出視頻壓縮標(biāo)準(zhǔn)的情況下,不止一種圖像類型用于編碼圖像。例如,MPEG采用內(nèi)編碼圖像、預(yù)測圖像和雙向預(yù)測圖像。內(nèi)編碼圖像僅利用當(dāng)前圖像本身內(nèi)含的信息來編碼。預(yù)測圖像利用當(dāng)前圖像和一個先前編碼的圖像作為一種基準(zhǔn)來對當(dāng)前圖像編碼。通過利用先前的編碼圖像作為基準(zhǔn),由于只有當(dāng)前圖像和先前已編碼圖像的不同部分需要編碼,故通常是較少的比特被產(chǎn)生。類似地,雙向編碼圖像可以除了使用當(dāng)前圖像以外還使用以后和/或先前編碼的圖像作為一種基準(zhǔn)來編碼當(dāng)前圖像。不同的圖像類型固有地產(chǎn)生變化的比特數(shù)。由于內(nèi)編碼圖像在形成當(dāng)前圖像時不使用基準(zhǔn)圖像,故它們使用比雙向編碼圖像多些的比特。還有,預(yù)測圖像通常產(chǎn)生比雙向預(yù)測編碼圖像多些的比特,但比內(nèi)編碼圖像產(chǎn)生少些的比特。因為不同的圖像固有地要求使用多些或少些的比特數(shù),故不同的圖像類型編碼器速率和信道速率相匹配問題增加了復(fù)雜性。另外,使用不同的圖像類型的還增加了控制在系統(tǒng)中駐存的任意緩存器的上溢和下溢的復(fù)雜性。
據(jù)此,現(xiàn)在需要有一種防止視頻壓縮系統(tǒng)的解碼器緩存器上溢和下溢并保持可視質(zhì)量的方法和裝置。
圖1示出根據(jù)本發(fā)明的一種用以防止視頻壓縮系統(tǒng)的解碼器緩存器上溢和下溢的方法的步驟的一個實施例的流程圖。
圖2示出根據(jù)本發(fā)明表示解碼器緩存器豐滿度的圖示。
圖3示出一種根據(jù)本發(fā)明含有用于防止視頻壓縮系統(tǒng)的解碼器緩存器上溢和下溢的速率控制器的視頻壓縮系統(tǒng)方框圖。
本發(fā)明涉及防止視頻壓縮系統(tǒng)的解碼器緩存器上溢和下溢的方法、速率控制器和系統(tǒng)。首先,從一個編碼器接收多個已量化的視頻比特,這多個已量化的視頻比特對應(yīng)于一種視頻幀的類型。然后,在速率控制器中建立一個虛擬緩存器,根據(jù)該已量化的視頻比特來模擬一個解碼器緩存器的豐滿度,以產(chǎn)生一個虛擬緩存器豐滿度。一個量化步長估算值是在速率控制器中至少根據(jù)一個第一預(yù)定的目標(biāo)比特分配量、視頻幀類型和虛擬緩存器豐滿度來確定的,量化步長估算值將防止解碼器緩存器上溢和下溢。
本發(fā)明應(yīng)用的壓縮算法針對不同統(tǒng)計特性的不同類型的圖像。為了使編碼圖像的總質(zhì)量最高化,要預(yù)先確定編碼不同類型圖像的目標(biāo)比特數(shù)。根據(jù)圖像類型和其它考慮,該比特數(shù)實際上對于不同圖像是不同的。為了獲得好的編碼圖像質(zhì)量,所產(chǎn)生的比特數(shù)須保持接近目標(biāo)比特分配量。
在編碼期間,一個視頻圖像被劃分為連續(xù)的塊。例如,按照MPEG-1和MPEG-2,每個塊由像素組成。當(dāng)每個塊被編碼時,所產(chǎn)生的比特數(shù)在虛擬緩存器中被列表,而且該比特流入編碼器緩存器。接著,編碼器緩存器將比特通過一個信道輸出到解碼器緩存器。
逐個塊所產(chǎn)生的比特數(shù)通常是基本不同的,然而輸出到信道的比特數(shù)卻保持恒定。通過調(diào)整被量化的每個塊量的數(shù),相對地控制每個塊所產(chǎn)生的比特數(shù)。根據(jù)圖像的內(nèi)容,按照一個特定的量化步長所產(chǎn)生的確切的比特數(shù)是變化的,并且直到使用選定的量化步長將該塊壓縮之后才知道。然而,總的來說,量化步長越大,所產(chǎn)生的比特數(shù)越少。
本發(fā)明采用了考慮當(dāng)前被編碼的圖像的目標(biāo)比特數(shù)的方法,防止虛擬緩存器的上溢或下溢,進(jìn)而防止了解碼器緩存器的上溢或下溢。這是通過控制連續(xù)塊的量化值以努力維持在圖像編碼期間虛擬緩存器的豐滿度、以便根據(jù)該圖像的目標(biāo)比特數(shù)服從一個理想的豐滿度的路徑而實現(xiàn)的。當(dāng)所產(chǎn)生的比特數(shù)偏離該理想的路徑時,調(diào)整量化步長以迫使虛擬緩存器的豐滿度按照與理想的豐滿度路徑相同的速率變化。通過控制緩存器豐滿度變化的速率,緩存器的上溢和下溢得以控制,并使得為一個視頻圖像所產(chǎn)生的實際比特數(shù)保持得與該視頻圖像的目標(biāo)比特數(shù)相接近。
參照圖1~圖3更詳細(xì)地描述本發(fā)明。圖1以標(biāo)號100示出根據(jù)本發(fā)明的一種用于防止一個視頻壓縮系統(tǒng)的解碼器緩存器上溢和下溢的方法的步驟的一個實施例的流程圖。首先在步驟102,從一個編碼器接收多個已量化視頻比特。這些已量化視頻比特對應(yīng)于一種視頻幀的類型。然后在步驟104,在速率控制器中建立一個虛擬緩存器,根據(jù)已量化的視頻比特來摸擬解碼器緩存器的豐滿度,以產(chǎn)生一個虛擬緩存器的豐滿度。最后在步驟106,在速率控制器中至少根據(jù)一個第一預(yù)定目標(biāo)比特分配量、視頻幀類型和該虛擬緩存器豐滿度來確定一個量化步長估算值。該量化步長估算值將會防止解碼器緩存器上溢和下溢。
從編碼器緩存器來看,解碼器緩存器的豐滿度是可以模擬的。總的來說,虛擬緩存器豐滿度與編碼器緩存器的豐滿度不同。一種建立虛擬緩存器的方法是基于一種逆關(guān)系,如下文所述。根據(jù)虛擬緩存器豐滿度,該量化步長估算值具有一個最接近于當(dāng)前虛擬緩存器豐滿度的豐滿度偏差路徑。
圖2以標(biāo)號200示出根據(jù)本發(fā)明一種表示解碼器緩存器豐滿度的圖示。虛擬緩存器根據(jù)虛擬緩存器豐滿度215確定量化步長的估算值。虛擬緩存器豐滿度215的量值表示為V(t)201,是視頻塊數(shù)n203的函數(shù)。每個視頻幀表征為一種內(nèi)編碼的視頻幀207、一種雙向預(yù)測的視頻幀209和一種預(yù)測的視頻幀211之中的一種。每個視頻幀還包含許多視頻塊221。
在編碼一個視頻序列的任何塊之前,根據(jù)一個預(yù)定的初始解碼器緩存器的豐滿度,在該預(yù)定的初始解碼器緩存器豐滿度時該解碼器開始從該解碼器緩存器中移出比特時計算初始的虛擬緩存器豐滿度205。按照MPEG-1,該初始的解碼器緩存器豐滿度就是在從視頻緩存器檢驗器中移出任何比特之前的視頻緩存器檢驗器的豐滿度,如MPEG-1標(biāo)準(zhǔn)中描述的。
在編碼當(dāng)前圖像的任何塊之前,根據(jù)一個視頻塊的號數(shù)、一個初始的緩存器豐滿度、該目標(biāo)比特分配量和每幀平均比特數(shù)R確定一個理想的緩存器豐滿度213。每個圖像的理想緩存器的豐滿度213可以是穿過該圖像的初始虛擬緩存器的豐滿度205的一條直線。對于下一塊的量化要根據(jù)動態(tài)確定的理想緩存器豐滿度213和它與理想緩存器豐滿度的偏差值217來調(diào)整。
在編碼當(dāng)前圖像的任何塊之前,要為當(dāng)前的圖像確定一個理想的量化步長估算值,以與當(dāng)前圖像的理想緩存器豐滿度213相關(guān)聯(lián),該理想量化步長估算值是根據(jù)當(dāng)前圖像類型和過去的統(tǒng)計值確定的。它可以是同一圖像類型的最后圖像的最后塊的量化步長估算值,或是同一圖像類型的最后圖像中各塊的平均量化步長估算值。
根據(jù)理想的緩存器豐滿度213的路徑還要確定一組豐滿度偏差值路徑217。還將一個量化步長估算值指配給每個豐滿度偏差值的路徑。通常,豐滿度偏差值路徑越高,量化步長估算值越大。在理想的緩存器豐滿度下面的豐滿度偏差值路徑具有一個較低的量化步長估算值。最高的豐滿度偏差值路徑總是設(shè)置在最大緩存器豐滿度219β之下,而最小的豐滿度偏差值路徑總是大于R。在包括理想緩存器豐滿度的接連的豐滿度偏差值路徑之間的間隔可以是固定的,或是該豐滿度偏差值的量化步長估算值的函數(shù)。在受約束的MPEG-1系統(tǒng)的一個實施例中,最高豐滿度偏差值路徑與一個量化步長估算值為33的相對應(yīng);最低豐滿度偏差值路徑與一個量化步長估算值為-1的相對應(yīng)。所有的豐滿度偏差值都以一個固定間距離與理想的豐滿度相平行。最高豐滿度偏差值與最低豐滿度偏差值之間的距離是3·R或是在R和β之間保持最高和最低豐滿度偏差值的最大間隔,不管是哪個都是最小的。
在編碼前一塊之后,虛擬緩存器豐滿度被更新。量化步長估算值是通過將虛擬緩存器豐滿度與豐滿度偏差值路徑相比較來選定的。最靠近該虛擬緩存器豐滿度的豐滿度偏差路徑的量化步長估算值被選定。如果所選定的量化步長估算值位于被選定量化值的合理范圍之外,例如按照MPEG-1在含有1和31的區(qū)間,則當(dāng)它大于該合理范圍時向編碼器提出一個請求以跳過一組已量化的視頻比特。在它小于該合理范圍時,也向編碼器提出一個請求以對該已量化的視頻比特填充一些比特。
圖3以標(biāo)號300示出一個系統(tǒng)的方框圖,該系統(tǒng)含有根據(jù)本發(fā)明的用以防止一個視頻壓縮系統(tǒng)的解碼器緩存器上溢和下溢的速率控制器。該系統(tǒng)包括一個速率控制器301、一個量化確定器304和一個編碼器306。該速率控制器含有一個虛擬緩存器302和一個量化估算器303。
編碼器306接收一種視頻幀308并將該視頻幀逐塊地轉(zhuǎn)換。該視頻幀是一個數(shù)字化的圖像。該圖像可以被隔行地或逐行地被掃描。根據(jù)編碼器306如何對該圖像編碼,將該圖像分類成為多種圖像類型中的一種。例如按照MPEG-1,該圖像類型是逐行的并且是I、B或P類型中的一種。按照MPEG-2,該圖像類型與該圖像是逐行的還是隔行的、幀結(jié)構(gòu)的、或是場結(jié)構(gòu)、以及I、B或P類型之中的一種有關(guān)。編碼器306根據(jù)由量化確定器304提供的量化步長314對每個塊進(jìn)行量化,以產(chǎn)生已量化的視頻比特310。根據(jù)視頻圖像的圖像類型,執(zhí)行不同的轉(zhuǎn)換。例如按照MPEG-1,I類型圖像的轉(zhuǎn)換是基于當(dāng)前的圖像。P類型圖像的轉(zhuǎn)換是基于當(dāng)前的圖像和下一個圖像。B類型圖像的轉(zhuǎn)換是基于當(dāng)前的圖像、下一個圖像和一個將來的圖像。
由編碼器306產(chǎn)生的已量化的視頻比特310的數(shù)量由量化估算器303和量化確定器304通過逐塊地調(diào)整量化步長314來調(diào)節(jié)。通常,當(dāng)量化步長增加時,為該視頻塊所產(chǎn)生的比特數(shù)減少,反之亦然。速率控制器301調(diào)節(jié)已量化的視頻比特310的比特率,以使解碼器緩存器不致發(fā)生緩存器上溢和下溢,并使為當(dāng)前的圖像所產(chǎn)生的比特數(shù)接近某個規(guī)定的量,以得到良好的視覺圖像質(zhì)量。
在速率控制器301內(nèi)部有一個虛擬緩存器302跟蹤解碼器緩存器的豐滿度,以使解碼器緩存器307不上溢和下溢。該速率控制器的虛擬緩存器的豐滿度V(t)311與解碼器緩存器的豐滿度B(t)有如下關(guān)系V(t)+B(t+T)=β其中t≥0,式中β>O是解碼器緩存器的大小,T>0是時延。該速率控制器通過控制V(t)而間接地控制B(t+T)。當(dāng)虛擬緩存器不上溢或下溢時,即0≤V(t)≤β解碼器緩存器307也不上溢或下溢,即0≤B(t+T)≤β虛擬緩存器根據(jù)緩存器的信息對第n塊的豐滿度更新。該緩存器的信息包含第n塊的已量化的視頻比特310的比特率、每個圖像的平均比特率和一個圖像的塊數(shù)。虛擬緩存器的豐滿度V(n)按下式更新V(n)=V(n-1)+r(n)-R‾m]]>式中n是塊的號數(shù),r(n)是由編碼器在某一時刻所產(chǎn)生的比特數(shù),R是每個圖像的平均視頻比特率,M是一個圖像中的塊數(shù)。
量化估算器303根據(jù)虛擬緩存器的豐滿度,為該塊確定一個量化步長估算值312。
量化確定器304根據(jù)該量化步長估算值312再調(diào)整量化步長估算值312以產(chǎn)生量化步長314。量化步長314通常隨量化步長估算值312的增加而增加,反之亦然。例如按照MPEG-1,一個最大的量化步長估算值為31,將導(dǎo)致得到一個最大的量化步長為31。
本發(fā)明提供了一種防止視頻壓縮系統(tǒng)的緩存器上溢和下溢的增強方法。其他的方法例如MPEG-2的TM5和MPEG-1的SM3都不能防止這種系統(tǒng)的緩存器上溢和下溢。TM5使用了多個虛擬緩存器,而SM3使用一個虛擬緩存器。SM3和TM5的虛擬緩存器都與解碼器緩存器的豐滿度量無關(guān)。為此,SM3和TM5對解碼器緩存器的豐滿度不能控制。由于使用一個虛擬緩存器,以逆關(guān)系來模擬解碼器緩存器豐滿度,因而本發(fā)明執(zhí)行情況比TM5和SM3好些。由于對多種圖像類型采用逆關(guān)系,因此該解碼器緩存器可通過控制虛擬緩存器而得到控制。
雖然上文示例性地描述了實施例,但是對本領(lǐng)域的普通技術(shù)人員顯然可以在不離開本發(fā)明精神的情況下做出許多變更和修改。據(jù)此,意旨所有這些變更和修改都包括在后附的權(quán)利要求書所限定的本發(fā)明的精神和范疇之內(nèi)。
權(quán)利要求
1.一種防止視頻壓縮系統(tǒng)的解碼器緩存器上溢和下溢的方法,其特征在于,該方法包括以下步驟(1A)從一個編碼器接收多個已量化的視頻比特,其中多個已量化的視頻比特對應(yīng)于一種視頻幀類型;(1B)在一個速率控制器中建立一個虛擬緩存器,以根據(jù)該多個已量化的視頻比特模擬一個解碼器緩存器的豐滿度,來產(chǎn)生一個虛擬緩存器的豐滿度;(1C)至少根據(jù)第一預(yù)定目標(biāo)比特分配值、圖像幀類型和虛擬緩存器存儲量在速率控制器中確定一個量化步長估算值,其中量化步長估算值防止解碼器緩存器的上溢和下溢。
2.根據(jù)權(quán)利要求1的方法,其特征在于,該虛擬緩存器的豐滿度是該解碼器緩存器的一種逆表現(xiàn)。
3.根據(jù)權(quán)利要求1的方法,其特征在于,該虛擬緩存器的豐滿度由下式來確定V(t)+B(t+T)=β式中V(t)表示該虛擬緩存器的豐滿度,B(t)表示該解碼器緩存器的豐滿度,β是一個預(yù)定的解碼器緩存器的大小,T表示根據(jù)編碼與解碼之間的時間所需的時延。
4.根據(jù)權(quán)利要求1的方法,其特征在于,該量化步長估算值是基于一個理想的緩存器豐滿度,其中可選擇的是,該量化步長估算值是基于偏離該理想的緩存器豐滿度的豐滿度偏差值,其中還可選擇的是該理想的緩存器豐滿度是基于一個視頻塊的號數(shù)、一個初始的緩存器豐滿度、一個預(yù)定的目標(biāo)比特分配量、一個信道比特率和每秒幀數(shù)。
5.根據(jù)權(quán)利要求1的方法,其特征在于,該視頻幀類型是5A-5C之中的一種(5A)一種內(nèi)編碼視頻幀類型;(5B)一種預(yù)測視頻幀類型;及(5C)一種雙向預(yù)測視頻幀類型;
6.一種用以防止視頻壓縮系統(tǒng)的解碼器緩存器上溢和下溢的速率控制器,其特征在于,該速率控制器包括一個虛擬緩存器,可操作地被耦合用以接收多個已量化視頻比特,產(chǎn)生一個虛擬緩存器的豐滿度,其中該多個已量化的視頻比特數(shù)對應(yīng)于一個視頻幀類型;及一個量化估算器,可操作地耦合到該虛擬緩存器,至少根據(jù)一個第一預(yù)定的目標(biāo)比特分配量,該視頻幀類型和該虛擬緩存器豐滿度,產(chǎn)生一個量化步長估算值,其中該量化步長估算值將防止該解碼器緩存器的上溢和下溢。
7.根據(jù)權(quán)利要求6所述的速率控制器,其特征在于,該虛擬緩存器豐滿度是該解碼器緩存器的一種逆表現(xiàn)。
8.根據(jù)權(quán)利要求6所述的速率控制器,其特征在于,包括8A-8B中的至少一個(8A)該虛擬緩存器的豐滿度是利用下式確定的V(t)+B(t+T)=β式中V(t)表示該虛擬緩存器的豐滿度,B(t)表示解碼器緩存器的豐滿度,β表示一個預(yù)定的解碼器緩存器的大小,T表示根據(jù)編碼與解碼之間的時間所需的時延。(8B)該視頻幀類型是以下其中的一種(8B1)一種內(nèi)編碼視頻幀類型;(8B2)一種預(yù)測視頻幀類型;(8B3)一種雙向預(yù)測視頻幀類型。
9.根據(jù)權(quán)利要求6所述的速率控制器,其特征在于,該量化步長估算值是基于一個理想的緩存器豐滿度,其中可選擇的是,該量化步長估算值是基于偏離該理想緩存器豐滿度的一個豐滿度偏差值,其中還可選擇的是該理想的緩存器豐滿度是基于一個視頻塊的號數(shù)、一個初始緩存器豐滿度、一個預(yù)定的目標(biāo)比特分配量、一種信道比特速率和每秒的幀數(shù)。
10.一種用于防止一個視頻壓縮系統(tǒng)的解碼器緩存器上溢和下溢的系統(tǒng),其特征在于,該系統(tǒng)包括一個編碼器,可操作地被耦合,用以接收一個量化步長值和一個視頻幀,量化該視頻幀以產(chǎn)生多個已量化的視頻比特,其中該視頻幀對應(yīng)于一種視頻幀類型。一個速率控制器,可操作地耦合到該編碼器,用于接收多個已量化的視頻比特,來產(chǎn)生該量化步長值,其中該速率控制器包括一個虛擬緩存器,用于產(chǎn)生一個虛擬緩存器豐滿度,來模擬該解碼器緩存器的豐滿度和一個量化估計器可操作地耦合到該虛擬緩存器,用以接收預(yù)定的比特分配量。以至少根據(jù)一個第一預(yù)定目標(biāo)比特分配量、視頻幀類型和虛擬緩存器豐滿度來產(chǎn)生一個量化步長估算值;一個量化確定器,可操作地耦合到該速率控制器,利用該量化步長估算值來確定量化步長值,其中該量化步長值由該編碼器使用,以防止一個解碼器緩存器上溢和下溢。
全文摘要
本發(fā)明涉及一種用以防止視頻壓縮系統(tǒng)的解碼器緩存器上溢和下溢的方法、速率控制器和系統(tǒng)。首先在步驟102,從一個編碼器接收多個已量化的視頻比特。該多個已量化的視頻比特對應(yīng)于一種視頻幀的類型。然后在步驟104,在一個速率控制器中建立一個虛擬緩存器,根據(jù)該已量化的視頻比特模擬一個解碼器緩存器的豐滿度,來產(chǎn)生一個虛擬緩存器豐滿度(104)。最后,在步驟106,在該速率控制器中至少根據(jù)一個第一預(yù)定的目標(biāo)比特分配量、視頻幀的類型和虛擬緩存器豐滿度,以確定一個量化步長估算值。該量化步長估算值將防止一個解碼器緩存器不致上溢和下溢。
文檔編號G06T9/00GK1146264SQ95192610
公開日1997年3月26日 申請日期1995年12月14日 優(yōu)先權(quán)日1995年2月23日
發(fā)明者淳安元, 史蒂芬·諾曼·萊維那, 詹姆斯·約瑟夫·考斯瑪奇 申請人:摩托羅拉公司