亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

在視訊編碼器中適應(yīng)性過濾離散余弦轉(zhuǎn)換系數(shù)的系統(tǒng)與方法

文檔序號:7594445閱讀:265來源:國知局
專利名稱:在視訊編碼器中適應(yīng)性過濾離散余弦轉(zhuǎn)換系數(shù)的系統(tǒng)與方法
技術(shù)領(lǐng)域
本發(fā)明通常涉及一種視訊編碼技術(shù),特別涉及一種離散余弦轉(zhuǎn)換(discrete cosine transform,DCT)系數(shù)的適應(yīng)性過濾。
背景技術(shù)
各種數(shù)字影音壓縮技術(shù)已經(jīng)產(chǎn)生,其系通過一較低資料速率或者較少儲存空間進行傳送或儲存。這樣的壓縮技術(shù)包含國際標(biāo)準(zhǔn),例如H.261,H.263,H.263+,H.263++,H.264,MPEG-1,MPEG-2,MPEG-4與MPEG-7等,這些壓縮技術(shù)成功地通過離散余弦轉(zhuǎn)換(DCT)與移動壓縮(MC)等技術(shù)達(dá)到較高壓縮比。此影視壓縮技術(shù)容許影視資料流被有效地透過各種數(shù)字網(wǎng)絡(luò),如手機、計算機網(wǎng)絡(luò)、纜線網(wǎng)絡(luò)、衛(wèi)星等等進行傳輸,并儲存于如硬盤、光盤、影視壓縮光盤(VCDs)、數(shù)字影視光盤(DVDs)等儲存媒體。已編碼的數(shù)據(jù)流通過具有與編碼數(shù)據(jù)流兼容語法的影視譯碼器進行譯碼。
為了相對高的影像品質(zhì),視訊編碼區(qū)耗盡相當(dāng)大的資料數(shù)量。然而,傳輸視訊的網(wǎng)絡(luò)限制編碼時使用的數(shù)據(jù)傳輸速率,例如一個直播衛(wèi)星(DBS)系統(tǒng)的資料信道或者是一個固定位速率(CBR)進行傳輸?shù)墓┕?jié)目選擇的數(shù)字纜線電視網(wǎng)絡(luò)資料信道。更者,儲存媒體如硬盤的容量也可能限制編碼時使用的資料位數(shù)。
因此,一個視訊編碼過程經(jīng)常是以交換壓縮后影像品質(zhì)的位數(shù),而且該已編碼的視訊可能是相當(dāng)復(fù)雜的。例如通過軟件來進行編碼時,視訊的編碼過程將導(dǎo)致中央處理器處理相當(dāng)冗長時間后才達(dá)成。更者,圖像上述問題將使得圖像品質(zhì)被迫降低以趕上實時處理速度。
一般在編碼過程中用來控制速率或者量化控制的手段MPEGSoftware Simulation Group(MSSG)系于第十章的測試模塊5(TM5)中描述。TM5有許多的缺點,例如TM5不能夠保證能夠符合視頻緩沖檢測器(VBV)的要求。結(jié)果,譯碼緩沖器會發(fā)生溢位與不足的情況,而引起圖片序列的凍結(jié)與資料的遺失。

發(fā)明內(nèi)容
本發(fā)明涉及一種系統(tǒng)與方法,其系提供選擇性過濾離散余弦轉(zhuǎn)換(DCT)系數(shù),且此DCT系數(shù)的過濾系在頻率域中執(zhí)行,而不是密集像素域(時間域)。此DCT過濾系在DCT編碼的回路中進行,而不是在獨立于編碼回路外的處理口。此DCT過濾系有利于降低使用于編碼圖像的位數(shù),其系可保護緩依從的沖器模型的占用層級,且較傳統(tǒng)技術(shù)更能保存位而改進圖像品質(zhì),例如量化參數(shù)(QP)值的增加。
本發(fā)明的一實施例為一種有效壓縮視訊的方法,包含選擇性低通過濾在頻率域中一大區(qū)塊的離散余弦轉(zhuǎn)換(DCT)系數(shù);以及量化該低通過濾的DCT系數(shù)。
本發(fā)明的一實施例為一種有效壓縮視訊的視訊編碼器,包含一選擇性低通過濾在頻率域中一大區(qū)塊的離散余弦轉(zhuǎn)換(DCT)系數(shù)的手段;以及一量化該低通過濾DCT系數(shù)的手段。
本發(fā)明的一實施例為一種內(nèi)嵌在有形媒體的計算器程序,包含一選擇性低通過濾在頻率域中一大區(qū)塊的離散余弦轉(zhuǎn)換(DCT)系數(shù)的指令模塊;以及一量化該低通過濾DCT系數(shù)的指令模塊。
本發(fā)明的一實施例為一種視訊編碼電路,包含一用以選擇性低通過濾在頻率域中一大區(qū)塊的DCT系數(shù)的電路;以及一用以量化該低通過濾DCT系數(shù)的電路。在一實施例中,此電路可內(nèi)嵌在一視訊編碼器中。
底下通過具體實施例配合所附的圖式詳加說明,當(dāng)更容易了解本發(fā)明的目的、技術(shù)內(nèi)容、特點及其所達(dá)成的功效。


圖1為圖像序列的示意圖。
圖2為本發(fā)明的編碼環(huán)境示意圖。
圖3為包含一譯碼緩沖器的譯碼環(huán)境示意圖。
圖4為編碼器、譯碼器、資料緩沖器與一固定位速率信道的相互關(guān)系方塊圖。
圖5為當(dāng)數(shù)值于一固定位速率下供給緩沖器但數(shù)值被譯碼器以一變動位數(shù)率下耗盡時,緩沖器占用作為時間函數(shù)的圖表。
圖6包含圖6A與圖6B,為在視訊編碼器中速率控制與量化控制的流程圖。
圖7為一調(diào)整至少部份虛擬緩沖器的占有層級的目標(biāo)位分配T(i,p,b)的流程圖。
圖8A為先前技術(shù)制作大區(qū)塊序列的流程圖。
圖8B為本發(fā)明制作大區(qū)塊序列的流程圖。
圖9A為避免編碼程序產(chǎn)生無益的位填充物以保持穩(wěn)定的流程圖。
圖9B為當(dāng)發(fā)現(xiàn)最終的緩沖器占有層級不規(guī)則時,重新設(shè)定虛擬緩沖器占有層級。
圖10A為圖像群組的范例。
圖10B為當(dāng)發(fā)現(xiàn)一個圖像群組內(nèi)有背景改變進行重設(shè)編碼參數(shù)的流程圖。
圖11為在一視訊編碼器中選擇跳過數(shù)值來減少或排除譯碼緩沖不足的流程圖。
圖12為選擇性DCT過濾的流程圖。
圖13系包含圖13A與圖13B,其系在視訊編碼器進行適應(yīng)性選擇DCT過濾的流程圖。
圖14為具有1/32強度的8×8影像區(qū)塊的低通過濾。
圖15為具有1/16強度的8×8影像區(qū)塊的低通過濾。
圖16為具有1/8強度的8×8影像區(qū)塊的低通過濾。
圖17為選擇一大區(qū)塊模塊的步驟流程圖。
圖18為另一種選擇一大區(qū)塊模塊的步驟流程圖。
圖號說明102 圖像 404 編碼緩存器104 第一圖像組 406 譯碼器106 第一圖像 408 譯碼緩存器202 視訊來源 410 固定位速率資料信道204 編碼器 412 變動位速率輸出端206 服務(wù)器 1002 第一圖像群組208 資料儲存器 1004 I圖像212 向上傳輸埠 1010 第二圖像群組214 人造衛(wèi)星 1012 I圖像216 網(wǎng)際網(wǎng)絡(luò) 1014 B圖像302 衛(wèi)星接收天線 1016 B圖像304 數(shù)字視訊撥放器 1020 第三圖像群組306 電視裝置 1022 先前圖像308 個人計算機 1024 先前圖像310 膝上型計算機 1026 I圖像312 手機 1030 P圖像402 編碼器 1032 殘留圖像具體實施方式
圖1系描述圖像102的序列,當(dāng)本發(fā)明的具體實施例描述移動圖像壓縮編碼(MPEG-2)與圖像的先后次序時,其原理與功效是可適用于其它已發(fā)展的視訊規(guī)格例如H.261、H.263、H.264、MPEG-1、MPEG-4。圖像此一字眼于此所代表的意義包括圖像、影像、訊框、視頻對象平面(VOPs)等等其它他近似的意義。視頻序列包括于固定特定時間所擷取的多重視訊影像,訊框中圖像的播放速率系取決于圖像的速率或訊框的速率。在圖像序列中的圖像可為交錯的圖像或于互不交錯的圖像,如漸進式影像。對于所謂的交錯的影像,系通過二個不同底色所構(gòu)成的圖像彼此間交錯而產(chǎn)生。而沒有交錯的影像系通過以無圖像間交錯或漸進式影像的方式產(chǎn)生。
圖像102的序列就像是電影或是其它相似呈現(xiàn)方式的影像。圖像102的序列有可能像電影是有時間限制的,也可以是無時間限制的如直播衛(wèi)星(DBS)系統(tǒng),例如DIRECTV。如圖1所示,在圖像102的序列中的圖像被以特定單位等分成一組組的圖像,如圖式中所定義的第一圖像組104。第一圖像組104中的第一圖像106為I圖像,而其它在第一圖像組104中的圖像可以定義為P圖像或者是B圖像。
在移動圖像壓縮編碼(MPEG-2)里,一張圖像是更進一步分割成更小單位,該單位稱為大區(qū)塊。在其它視訊擷取規(guī)格,例如MPEG-4將圖像更進一步分割成其它單位,例如視頻對象平面(VOPs)。而在移動圖像壓縮編碼(MPEG-2)里,I圖像系屬于所有圖像大區(qū)塊皆為圖框內(nèi)編碼的型態(tài),因此建構(gòu)一個影像時并不需要從其它圖像中擷取資料。P圖像系屬于可以為所有圖像大區(qū)塊皆為圖框內(nèi)編碼的型態(tài),或者是預(yù)測模式編碼。P圖像的大區(qū)塊可依據(jù)圖像本身的數(shù)據(jù)而進行編碼或譯碼,例如圖框內(nèi)編碼,或者是依據(jù)較圖像序列優(yōu)先的圖像數(shù)據(jù),例如預(yù)測模式編碼。B圖像的大區(qū)塊可以是圖框內(nèi)編碼、預(yù)測模式編碼、反向式預(yù)測模式編碼或者是結(jié)合預(yù)測模式編碼與反向式預(yù)測模式編碼,如內(nèi)插預(yù)測。當(dāng)對依序列圖像進行譯碼或編碼時,B圖像會于鄰近的I圖像或者P圖像譯碼或編碼后再進行譯碼或編碼。使用預(yù)測模式編碼大區(qū)塊來覆蓋圖框內(nèi)編碼的優(yōu)點在于使用來作為預(yù)測模式編碼大區(qū)塊的位數(shù)可顯著的少于使用來作為圖框內(nèi)編碼大區(qū)塊的位數(shù)。
大區(qū)塊包含有儲存亮度的區(qū)域與儲存色訊的區(qū)域。如同視訊資料流也可包含有可被編碼或譯碼的音頻訊號資料。
圖2系為一種可使用本發(fā)明的編碼環(huán)境的范例。一個未編碼的視訊來源202提供該無編碼視訊資料輸入至一編碼器204。未編碼的視訊來源202可以是各種組件,例如攝影機、錄像帶、膠片、計算機化影像等等。未編碼的視訊來源202更可包含一譯碼器,以對已編碼視訊資料進行譯碼。未編碼的視訊來源202與編碼器204可為兩個獨立個體,也可以合并于一硬件內(nèi),作為一編碼器204。另外,未編碼的視訊來源202可為一模擬廣播電視訊號的接收器,如此可瀏覽儲存于數(shù)字監(jiān)控系統(tǒng)的模擬影像,如機頂盒TiVo。
編碼器204也可以為各種型態(tài),例如特定硬件、特殊用途集成電路、在特定硬件中執(zhí)行的軟件或者可通過一般計算機執(zhí)行的軟件。該軟件可被收錄于有形媒介如硬盤或光盤。另外,編碼器204可與其它編碼器同時使用來提供多重編碼信道,以使用于直播衛(wèi)星(DBS)系統(tǒng)、數(shù)字纜線網(wǎng)絡(luò)等等。舉例而言,編碼器204與其它的編碼器一起輸入一編碼訊號給服務(wù)器206,如圖2所示,服務(wù)器206可將已編碼的序列儲存于例如DVD 210、VCD等等的大量資料儲存器208。于直播衛(wèi)星(DBS)系統(tǒng),服務(wù)器206可經(jīng)由上傳輸端口212提供一編碼序列的資料給譯碼器至一人造衛(wèi)星214,服務(wù)器206也可經(jīng)由網(wǎng)際網(wǎng)絡(luò)216來傳遞編碼序列給相隔遙遠(yuǎn)的使用者。如此可知,編碼序列可以被如局域網(wǎng)絡(luò)、廣域網(wǎng)絡(luò)、地面數(shù)字電視廣播訊號、蜂巢式電話網(wǎng)絡(luò)、撥號網(wǎng)絡(luò)、點對點網(wǎng)絡(luò)等等各種媒介區(qū)分為各種型態(tài)。例如,編碼器204可以實時對圖像序列進行編碼,而編碼器204也可非實時的對圖像序列進行編碼。在其它情況下,編碼器204可結(jié)合數(shù)字監(jiān)控系統(tǒng)、攝影機、特定硬件影像編碼器等等。
圖3系為一譯碼環(huán)境的范例,其包含一譯碼緩沖器,該譯碼緩沖器于視頻緩沖檢測器(VBV)緩沖器進行編碼過程中被塑造出。已編碼圖像序列可以被譯碼與于各種環(huán)境中觀看,如通過衛(wèi)星接收天線302接收直播衛(wèi)星(DBS)訊號、機頂盒、通過數(shù)字監(jiān)控系統(tǒng)進行錄制、經(jīng)由數(shù)字視訊撥放器304進行撥放、接收地面數(shù)字廣播等等。于本實施例中系以電視裝置306來作為影像觀賞器,但是也可以使用其它撥放器。
個人計算機308、膝上型計算機310、手機312等產(chǎn)品也可以用來觀賞已編碼的影像。具體而言,這些裝置皆可以經(jīng)由網(wǎng)際網(wǎng)絡(luò)216來接收影像。網(wǎng)際網(wǎng)絡(luò)216可以經(jīng)由有線或無線的方式連結(jié)。
圖4為一描述編碼器402、編碼緩存器404、譯碼器406、譯碼緩存器408與固定位速率資料信道410間彼此關(guān)系的方塊圖。固定位速率資料信道的位速率可依據(jù)多重資料信道的資料速率分配量,而進行些微修正。由于多重資料信道中的資料速率的動機分配將視為固定位速率,如此具有微小資料速率修正的近似固定位速率將產(chǎn)生。例如,于直播衛(wèi)星(DBS)系統(tǒng)中,編碼器402可視為一作為程序化的信道,而譯碼器406相當(dāng)于一機頂盒內(nèi)的譯碼器,用以接收直播衛(wèi)星(DBS)訊號。熟悉該項技術(shù)者皆知由固定位速率資料信道410輸出以作為實際視訊的資料速率將小于實際上固定位速率資料信道410本身的傳輸速率,這是因為有些傳輸?shù)馁Y料系被錯誤修正與資料封包等傳輸資料占用。因此,本發(fā)明揭露的方式不僅能于標(biāo)準(zhǔn)的MPEG操作系統(tǒng)中適用于固定位速率編碼,也可適用于變動位速率編碼。在變動位速率編碼上,傳輸?shù)奈凰俾士梢詾橐越?jīng)過一特定周期長時間的平均值,特定周期時間可以為幾秒鐘、幾分鐘、幾小時或任何其它合適的時間區(qū)隔,該間隔時間提供資料給譯碼緩沖器的最大位速率。在最大位速率時,資料經(jīng)由信道傳輸至譯碼緩沖器,直到譯碼緩沖器沒有儲存空間,此時該數(shù)據(jù)信道等待進行下一張圖像譯碼,直到自譯碼緩沖器移除一些數(shù)據(jù)后,再繼續(xù)傳輸數(shù)據(jù)進入譯碼緩沖器。在本說明書中位輸率(bit rate)不僅代表固定位速率,也可為變動位速率編碼于長時間下的平均。在固定位速率編碼器產(chǎn)生一個具有固定位速率的資料流來概括一個圖像群組。
對于資料流的應(yīng)用,如直播衛(wèi)星(DBS)系統(tǒng)或當(dāng)家庭數(shù)字監(jiān)控系統(tǒng)接收一現(xiàn)場的廣播時,編碼器402實時接收視訊影像并編碼,而編碼器402的輸出端為變動位速率(VBR)輸出端412。編碼器402的變動位速率(VBR)輸出端412是被暫時儲存于編碼緩沖器404。編碼緩沖器404與譯碼緩沖器408的作用系在于暫時儲存數(shù)值,因此資料可以于不同速率下被存取。于此必須強調(diào)的是編碼緩沖器404與譯碼緩沖器408不需要是兼容的,編碼緩沖器404是不同于變動位速率(VBR)緩沖器,變動位速率(VBR)緩沖器是編碼器402于編碼過程時用來占有譯碼緩沖器408。
編碼緩沖器404可以通過來內(nèi)存或者共享系統(tǒng)的內(nèi)存執(zhí)行,比如個人計算機內(nèi)的內(nèi)存。當(dāng)使用內(nèi)存來作為編碼緩沖器404時,該內(nèi)存是被共享的,而編碼緩沖器404轉(zhuǎn)變成一虛擬的緩沖器。舉例來說,譬如一大容量的儲存裝置可以用來儲存影像資料與位置參數(shù)等等。
編碼緩沖器404可以緩沖編碼器402的變動位速率(VBR)輸出端412于短時間的波動,因此編碼資料可以通過固定位速率資料信道410傳輸至譯碼器406。同樣的,譯碼緩沖器408可使用來接收由固定位速率資料信道410以相對固定位速率所傳輸?shù)木幋a資料,并視需求以變動位速率提供該編碼資料給譯碼器406。譯碼緩沖器408也可以通過內(nèi)存或者共享系統(tǒng)的內(nèi)存來執(zhí)行,比如個人計算機內(nèi)的內(nèi)存。當(dāng)使用內(nèi)存來作為譯碼緩沖器408時,該內(nèi)存是被共享的,而譯碼緩沖器408轉(zhuǎn)變成一虛擬的緩沖器。
MPEG指定譯碼緩沖器408大小,如此才能通過標(biāo)準(zhǔn)的譯碼器對MPEG允許下的資料流進行譯碼。例如在MPEG-2規(guī)格下,進行DVD的編碼時,緩沖器的大小約為224kB。在MPEG-1規(guī)格下,進行VCD的編碼時,緩沖器的大小大約為40kB。改變規(guī)格時,編碼緩沖器404與譯碼緩沖器408的大小可由硬件設(shè)計人員或者軟件設(shè)計人員判斷出。
雖然,譯碼緩沖器408的實際大小可以偏離基準(zhǔn)值,但存在一影響大小與占有率的可實施限制。當(dāng)譯碼緩存器408大小增加時,在進行序列選擇與撥放初始化時,將導(dǎo)致延遲也相對的增加。例如一使用者更改接收直播衛(wèi)星(DBS)的機頂盒信道或是于觀賞DVD時往前或往后撥放,在譯碼器406接收該資料并進行播放前,接收到的數(shù)據(jù)將儲存于譯碼緩沖器408。當(dāng)譯碼緩沖器408是相當(dāng)大時,將導(dǎo)致在選擇序列與播放序列時產(chǎn)生較長時間的延遲。更者,如圖5所示,當(dāng)預(yù)計開始錄放時,譯碼緩沖器408將系充滿數(shù)據(jù)。
錄放一序列時,系取決于兩個狀態(tài)的先后。第一個狀態(tài)為經(jīng)由MPEG資料流所定義的時間。MPEG資料流中的一參數(shù)值vbv-delay為一序料數(shù)據(jù)被譯碼器406播放初始化前于譯碼緩沖器208內(nèi)被緩沖的時間長度。參數(shù)值vbv-delay在16位時的是0~65,535。參數(shù)值vbv-delay在90kHz脈沖信號的譯碼器406進行運作時可會得一較低值,因此,參數(shù)值vbv-delay長短系相當(dāng)于被90,000分界。例如,該參數(shù)值vbv-delay的最大值65535對應(yīng)于延遲時間大約728微秒(mS)。因此,參數(shù)值vbv-delay的延遲可在序列時被初始化錄放,除了譯碼緩沖器408是填滿的,即使該譯碼緩沖器408相對大容量,而譯碼緩存器408的占有率可以相對較小。
第二狀態(tài)相當(dāng)于譯碼緩沖器408的填充。當(dāng)譯碼緩沖器408已經(jīng)填滿無法再被填入,但數(shù)據(jù)持續(xù)不斷的傳輸至譯碼緩沖器408的情況下,將導(dǎo)致一些儲存于譯碼緩沖器408中的數(shù)據(jù)被遺漏。為了預(yù)防這樣的情況發(fā)生,譯碼器406可在一較參數(shù)值vbv-delay早的時間點進行初始化錄放。例如譯碼緩沖器408大小相當(dāng)于224kB大小的緩沖器時,每秒超過2.52Mega bit位傳輸率于少于參數(shù)值vbv-delay的最大延遲時間前即充滿譯碼緩沖器408。
視頻緩沖檢測器在MPEG上的概念是傾向于限制MPEG資料流,因此不會發(fā)生譯碼緩沖器408的緩沖不足與緩沖區(qū)溢位的情況發(fā)生。視頻緩沖檢測器不需要為實際的緩沖器,并且不用實際上進行資料儲存。然而,盡管視頻緩沖檢測器的概念存在,于MPEG的測試模式5所提供的視訊譯碼技術(shù)并無法保證順從視頻緩沖檢測器能免于損失,緩沖不足與緩沖區(qū)溢位將發(fā)生。
譯碼緩沖器408的緩沖不足通常發(fā)生于譯碼緩沖器408將儲存的資料用完的情況下。如固定位速率資料信道410的位輸出率低于譯碼器406于一特定周期時間下的資料消耗量。當(dāng)編碼器402已經(jīng)使用太多位于進行一特定位速率的序列編碼時,即可能發(fā)生上述的情況。譯碼緩沖器408緩沖不足的情況將產(chǎn)生圖像序列暫時凍結(jié)。
譯碼緩沖器408的緩沖區(qū)溢位通常發(fā)生于譯碼緩沖器408接收到多于本身所能儲存的資料大小。如固定位速率資料信道410的位速率高于譯碼器406于一特定周期時間下的資料消耗量,就會發(fā)生緩沖溢位?;蛘呤钱?dāng)編碼器402在特定速率下使用太少位于進行序列編碼時,也可能發(fā)生上述的情況。當(dāng)譯碼緩沖器408不能夠儲存所有自固定位速率資料信道410所供給的所有資料時,將產(chǎn)生資料遺失。這樣的緩沖區(qū)溢位可以通過位填充的方式預(yù)防,位填充的方式系藉采不經(jīng)由譯碼器406來進行資料傳遞,因此譯碼器406所使用的位數(shù)符合在一周期時間固定位速率資料信道410所傳輸?shù)馁Y料量。然而,位填充可能產(chǎn)生如圖9A與圖9B所述的問題。
視頻緩沖檢測器具體化的概念被使用在編碼器402上作為播放一視訊資料流,來避免譯碼緩沖器408發(fā)生譯碼緩沖不足或緩沖區(qū)溢位的情況。視頻緩沖檢測器緩沖器的占用層級被監(jiān)控以播放一于譯碼緩沖器408中無譯碼緩沖不足或緩沖區(qū)溢位的視訊資料流。于此必須強調(diào)的是,在編碼緩沖器404的緩沖不足或溢位與在譯碼緩沖器408中的緩沖不足或溢位是不相同的。舉例來說,在譯碼緩沖器408中產(chǎn)生緩沖不足的情況,例如當(dāng)持續(xù)一段周期時間,已編碼的位速率超出固定位速率資料信道410所供給的資料時,但此種情形也可能導(dǎo)致編碼緩沖器404產(chǎn)生溢位。更者,在譯碼緩沖器408中產(chǎn)生緩沖區(qū)溢位的情況,如持續(xù)一段周期時間,已編碼的位速率小于固定位速率資料信道410所供給的資料時,但此種情形也可能導(dǎo)致編碼緩沖器404緩沖不足。
圖5系描述一般情況下當(dāng)資料以一固定位速率傳輸至譯碼緩沖器,然而資料系被譯碼器以一變動位速率譯碼耗盡時,譯碼緩沖器占用的示意圖。在MPEG TM5的系統(tǒng)下,資料流以一固定位速率傳輸資料至譯碼器,并無法保證譯碼緩沖器能免于緩沖不足與溢位的情況發(fā)生。具體化的例子,如以一固定位速率傳輸資料至譯碼緩沖器并且該譯碼器使用該些資料實時播放視訊。
時間(t)502被設(shè)定為水平軸。時間增加,將往水平軸右邊移動。譯碼緩沖器占用504被設(shè)定為垂直軸。在起始點時,譯碼緩沖器為0。該緩沖器的最大極限值被設(shè)定為BMAX528。譯碼器產(chǎn)生一資料流,該資料流維持于緩沖狀態(tài)低于BMAX528且超過0。例如譯碼緩沖器將依據(jù)程序省略、改變接收直播衛(wèi)星(DBS)系統(tǒng)的選擇信道或者數(shù)字纜線電視網(wǎng)絡(luò)等等而產(chǎn)生波動。譯碼器監(jiān)視已接收資料來作為系統(tǒng)時鐘基準(zhǔn)(SCR),例如SCR(0)506。系統(tǒng)時鐘基準(zhǔn)(SCR)為一基準(zhǔn)時間的時間標(biāo)記,該基準(zhǔn)時間通過編碼器內(nèi)建于位資料流中,用以在譯碼時能讀取該時間標(biāo)記與當(dāng)時的系統(tǒng)時鐘能同步取樣,而重組每一段編碼過程中內(nèi)建于位資料流中的對應(yīng)該時間標(biāo)記的視訊信息。當(dāng)視訊資料被譯碼時或者視訊被播放,時間標(biāo)記指出并同步視覺與聲音化。
一般使用在實時視訊編碼的圖像型態(tài)圖案系采重復(fù)的IBBPBBPBBPBBPBB排列方式。盡管I圖像占用較大的數(shù)據(jù)量,但周期性的使用I圖像能在更改直播衛(wèi)星(DBS)系統(tǒng)信道后于一較短周期時間播放圖像較為有利。
圖像的演出或者播放次序可以自圖像編碼或譯碼次序中改變。B圖像依據(jù)周圍的I圖像或者P圖像,而不是B圖像,因此,I圖像或者P圖像隨著當(dāng)一處于演出次序的B圖像將被進行編碼、傳輸、譯碼之后產(chǎn)生,而不是當(dāng)該B圖像將正在編碼、傳輸、譯碼。例如,一個較小位置序列如圖5所示包含一圖像數(shù)據(jù)其排列次序為IPBBP,B圖像所依據(jù)的P圖像系較B圖像優(yōu)先被編碼、譯碼,即使該圖像以IBBPBBPBBPBBPBB的排列方式。聲音資料在視訊演出時通常遵照次序。表I統(tǒng)計譯碼器于時間的異動性。為了更清楚的定義,影像群組(GOPs)將僅具有IPBBP圖像,但一般而言影像群組(GOPs)不僅具有5個圖像,見圖5所示。
表I

譯碼緩沖器忽視資料直到具有時間標(biāo)記作為I訊框的圖像標(biāo)頭出現(xiàn)。該時間系被稱為TTS0(0)508,如圖5所示。對于圖像的部分、訊框或者無法自行譯碼的數(shù)值的緩沖器而言,置于不顧的數(shù)值能夠防止資料緩沖。經(jīng)過TTS0(0)508后,譯碼緩沖器開始累積跳躍區(qū)間R0510的資料。
對一個時間區(qū)間τ0(0)512而言,譯碼緩沖器累積譯碼器即將使用的數(shù)據(jù)。時間區(qū)間τ0(0)512視為先乘載的延遲。圖5的上端為時間的基準(zhǔn),時間的基準(zhǔn)系依據(jù)以近似平均的方式均分一圖像周期,而該圖像周期系近似訊框速率的倒數(shù)或者該圖像速率的倒數(shù)(1/Rf)514。如同以下所述,于相對應(yīng)圖像,圖像的時間位置可被時間標(biāo)記定義出。在時間點T0516,譯碼器擷取一影像群組第一張為I圖像的所有數(shù)據(jù)。資料流定義出一在譯碼時間標(biāo)記下對I圖像進行譯碼所需時間,該時間于圖中為時間流DTS0(0)518與時間T0516。
于I圖像數(shù)據(jù)的補償是依據(jù)譯碼緩沖器占用的相對坡度減少量520而定。為了更明確的定義出,自譯碼緩沖器選出的數(shù)值被描繪于圖5中,該數(shù)值在圖形上的出現(xiàn)往往是突然的,但是我們可已經(jīng)由一習(xí)知技術(shù)來了解它的意義,該習(xí)知技術(shù)就是一個相對小數(shù)量的時間可以用來補償數(shù)值。一般而言,I圖像包含相對較大的數(shù)據(jù),P圖像具有較少的數(shù)據(jù),B圖像具有最少的數(shù)據(jù)。然而,熟知該項技術(shù)領(lǐng)域的人將可以發(fā)現(xiàn)具有相對較大資料總數(shù)的圖框大區(qū)塊可以P圖像與B圖像來呈現(xiàn),就像I圖像一樣,因此P圖像與B圖像也可以消耗大數(shù)量的資料。在時間點T0516所被譯碼的I圖像并非在時間點T0516播放,就像表示時間標(biāo)記PTS0(1)522指示播放的時間點為T1524。
在時間點T1524,譯碼器播放在時間點T0516所譯碼出的I圖像。時間區(qū)隔PTS___OFFSET 526說明自作為選擇序列的譯碼緩沖器開始累積資料至第一圖像被播放為止的延遲。譯碼時間標(biāo)記DTS0(1)530指示譯碼器對位于時間點T1524序列中的第一張P圖像進行譯碼。自譯碼緩沖器中所選擇出的數(shù)據(jù)可通過緩沖器占用的減少量532來說明。在時間點T0516與時間點T1524間,譯碼緩沖器累積附加的數(shù)值,如圖中跳躍534。表示時間標(biāo)記PTS0(4)536指示譯碼器播放位于時間點T4538的第一張P圖像。在此實施例中,該第一張P圖像于播放前先進行譯碼,因此可作為向后預(yù)測、向前預(yù)測或者甚至是雙方向預(yù)測編碼大區(qū)塊的B圖像可被譯碼。
在時間點T2540,譯碼器譯碼并播放表示時間標(biāo)記PTS0(4)536所指示的第一張B圖像。無譯碼時間標(biāo)記(DST)被播放,因為播放與編碼的動作產(chǎn)生于相同時間間格里。這樣情況可以通過一實際的譯碼器來說明,在譯碼與播放間存在有一相當(dāng)小的延遲,該延遲可以用來說明數(shù)值時間與其它潛在因素。B圖像所使用的數(shù)值總數(shù)是相對小,就像第一B圖像在譯碼緩沖器占用中的相對小減少量550。然而,B圖像也可以包含能夠消耗相對大數(shù)據(jù)總數(shù)的圖框大區(qū)塊。
在時間點T3546,譯碼器譯碼并播放表示時間標(biāo)記PTS0(3)548所指定的第二張B圖像。
在時間點T4538,譯碼器譯碼并播放于時間點T1524原始譯碼的第一張P圖像。在時間點T4538,譯碼器進行譯碼時間標(biāo)記DTS0(4)554所指定的第二張P圖像。該第二張P圖像將于后面時間進行播放,這是被一表示時間標(biāo)記(于圖中未示)所指定。譯碼器持續(xù)進行譯碼與播放其它圖片。例如,在時間點T5544譯碼器將對一被數(shù)據(jù)流所指定的B訊框進行譯碼與播放。
圖6為視訊譯碼器的速率控制與量化控制過程的流程圖。熟知該向技術(shù)領(lǐng)域的人將可以發(fā)現(xiàn)上述的過程可以以許多方式進行修改,但這樣并無違背本發(fā)明精神與目的。例如,許多過程點可以結(jié)合,可以重新排列,可以省略等等。被選擇的過程點可以被速率控制與量化控制過程來取代,這樣的方式已在第十章節(jié)的測試模態(tài)5中揭露。在編碼時,位被作為圖像編碼的消耗速率影響譯碼緩沖器的占用。請參閱圖6中的括號,制程位置點與位的分配、速率的控制以及適合的量化有關(guān)。位的分配與估計對已編碼的圖像進行編碼的位數(shù)有關(guān)。速率的控制與判斷用來作為編碼一大區(qū)塊的量化參數(shù)基準(zhǔn)Qj有關(guān)。適合的量化與分析大區(qū)塊中用來作為修改量化參數(shù)基準(zhǔn)Qj的活動空間與計算用來使一大區(qū)塊量化的量化參數(shù)tj有關(guān)。
過程開始于步驟602,步驟602為開始接收到第1圖像群組。以一具體化的方式表示,就是制程可能僅于步驟602的第一圖像群組內(nèi)擷取一位置點,而以后再于第1圖像群組內(nèi)擷取剩下的位置點。在上述的過程中,在圖像被速率控制與量化控制過程制程前,該圖像系被進行圖像分組。一個圖像組開始于一個I圖像并且可包含其它圖像。一般來說在一圖像組中的其它圖像與該I圖像有關(guān),但這不是必然的。程序由步驟602進入步驟604。
于步驟604,程序接收到圖像群內(nèi)的圖像組編碼的模式或型態(tài)。在速率控制與量化控制程序中,對圖像群組中的每一個圖像進行編碼模式或型態(tài)判斷是被使用的,于圖像進行速率控制與量化控制程序步驟前。例如,在圖5中曾經(jīng)描述一型態(tài)為IPBBP的圖像群組。程序由步驟604進入步驟606。
在步驟606,程序判斷已被編碼的圖像群組內(nèi)的P圖像數(shù)目Np與B圖像數(shù)目Nb,例如在一型態(tài)為IPBBP的圖像群組中,有兩張P圖像與兩張B圖像被編碼,因此Np的數(shù)值為2而Nb的數(shù)值也是2。如此就不會去追蹤剩下的I圖像的數(shù)目,這樣在圖像群組中唯一的I圖像為第一圖像。程序由步驟606進入步驟608。
在步驟608,程序初始化的值作為錯雜評估Xi、Xp與Xb,和剩下將分給被編碼圖像群組的位數(shù)(殘留位值)R。錯雜評估Xi、Xp與Xb系依據(jù)方程式1-3而來。
Xi=160·bit_rate115----(1)]]>Xp=60·bit_rate115----(2)]]>Xb=42·bit_rate115----(3)]]>在方程式1-3,變量bit_rate對應(yīng)于資料信道中固定位速率(每秒鐘的位),就像在圖4中所描述的固定位速率信道410。另外一個具體化的例子就是,變量bit_rate對應(yīng)于變動位速率信道的平均或設(shè)定的平均位速率。更者,變量bit_rate對應(yīng)于一變動位速率信道的斷續(xù)固定位速率。
在一具體實施例,作為剩下位數(shù)R的序列起始初始值R0在方程式中系以R0表示。在序列的起始,沒有在先前的圖像群組與結(jié)果,也沒有先前圖像群組的剩余位數(shù)的滯銷品。更者,如何更新剩余位數(shù)R的數(shù)值將于方程式27與28中描述。
R0=G(4)G=bit_rate·Npicture_rate----(5)]]>變量G代表一可被數(shù)值信道依據(jù)一對應(yīng)于圖像群組的代表時間長度的總數(shù)進行轉(zhuǎn)換的位數(shù)。該時間總數(shù)隨著圖像群組內(nèi)的圖像數(shù)目而改變。在方程式5中,變量bit_rate為每秒鐘位,數(shù)值N對應(yīng)于圖像群組中的圖像數(shù)目(所有型態(tài)),變量picture_rate為每秒鐘的圖片或訊框。程序由步驟608進入步驟610。
在步驟610,程序計算位的初始目標(biāo)數(shù)Ti、Tp與Tb,例如對一個被編碼的圖像的初始目標(biāo)位分配。需注意的是當(dāng)B圖像被編碼時,在圖像群組中的圖像將被編碼于序列外。例如,在速率控制與量化控制程序估計該圖像的初始目標(biāo)位分配,將對應(yīng)的編碼圖像型態(tài)而依據(jù)方程式6~8。
Ti=max{(R(1+NPXpXiKp+NbXbXiKb)),(bit_rate8·picture_rate)}----(6)]]>Tp=max{(R(Np+NbKpXbKbXp)),(bit_rate8·picture_rate)}----(7)]]>Tb=max{(R(Nb+NpKbXpKPXb)),(bit_rate8·picture_rate)}----(8)]]>在方程式6,當(dāng)該圖像為圖像群組的起使為I圖像時,Ti為下一個已編碼圖像的目標(biāo)位分配,Ti是由兩組括號中取其較大者。在方程式7,當(dāng)下一張圖像為P圖像時,Tp為已被編碼的下一圖像的目標(biāo)位分配。在在方程式8,當(dāng)圖像為B圖像時,Tb為已被編碼的圖像的目標(biāo)位分配。常數(shù)Kp與kb的數(shù)值系取決于用來做為圖像編碼的標(biāo)準(zhǔn)化矩陣。常數(shù)Kp與kb可以變化,具體的例子如Kp為1.0與kb為1.4。這些常數(shù)值可依據(jù)編碼圖像的特性,如數(shù)量、移動方式、組織、顏色和影像等細(xì)節(jié)而改變。
在速率控制與量化控制程序的一個具體化的例子,程序進一步依據(jù)如接續(xù)的圖7所述的譯碼緩沖器的緩沖器占有推斷來調(diào)整自初始目標(biāo)位分配的目標(biāo)位分配T(i,p,b)。
當(dāng)程序決定下一張圖像被編碼的目標(biāo)位分配,程序由步驟610進入步驟612。一被分配為一圖像的位時,該圖像進一步被分配在該圖像的大區(qū)塊中。該圖像的位分配可以依據(jù)一習(xí)知的技術(shù),如在TM5中所提的技術(shù)或者是后續(xù)即將提到的步驟614的技術(shù)來進行估算。另外,圖像于編碼成大區(qū)塊時可以更進步被處理成不同的次序或者是序列,該次序或者是序列將于圖8A與圖8B中討論。
在步驟612,程序設(shè)定初始值來作為初始虛擬緩沖器充滿。具體化的實施方式,就是每一個圖像皆有一個虛擬緩沖器。變量dji、djp以及djb代表作為I圖像、P圖像、B圖像的虛擬緩沖器充滿。變量j代表被編碼且起始值為1的大區(qū)塊的號碼。J為0時代表初始狀態(tài)。虛擬緩沖器充滿,如dji、djp以及djb,相當(dāng)于該j-th大區(qū)塊進行編碼前的虛擬緩沖器充滿,如此該虛擬緩沖器充滿相對于該在大區(qū)塊(j-1)充滿。
d0i=10·r31----(9)]]>d0p=kp·d0i----(10)]]>d0b=kb·d0i----(11)]]>方程式12系呈現(xiàn)在方程式9中出現(xiàn)的反應(yīng)參數(shù)值r的計算結(jié)果。其它計算該反應(yīng)參數(shù)r的方式也可以被使用。
r=2·bit_ratepicture_rate----(12)]]>關(guān)于方程式10與11,Kp與kb為先前于方程式6~8所定義的常數(shù)。程序由步驟612進入步驟614,或者略過而進入步驟616。
程序也可以包含一個大區(qū)塊模式結(jié)論622來判斷是否一個大區(qū)塊該不該編碼成Intra,Inter_No_MC,Inter_MC等等??捎玫哪J叫蛻B(tài)依據(jù)種種變因,如圖像型態(tài)、圖像是交錯或者累進的。大區(qū)塊模式判斷可以被平行實施或者于步驟616、619及621中連續(xù)進行。在模式判斷中有效使用一個編碼成本作為移動指針的大區(qū)塊模式判斷將于圖17中詳細(xì)描述。
在步驟614,程序更新作為虛擬緩沖器充滿的結(jié)果,例如dji、djp以及djb。這些被更新的dji、djp以及djb系依據(jù)圖像的種類來進行更新,例如當(dāng)I圖像被編碼時,數(shù)值dji被更新。程序更新作為虛擬緩沖器充滿的結(jié)果以計算編碼大區(qū)塊需使用的位數(shù)。更新至虛擬緩沖器充滿需對應(yīng)被使用來分配圖像中大區(qū)塊中位的技巧。例如在TM5的格式中,系此近乎線性的方式來分配圖像中大區(qū)塊中的位。位也可視圖像(P圖像或者是B圖像)中的大區(qū)塊的相對移動而被有利的分配在大區(qū)塊,勝過判斷相對的移動。
方程式13a、14a及15a描述更新虛擬緩沖區(qū)充滿的計算值的一般格式dji=d0i+Bj-1-TMBj-1i----(13a)]]>djp=d0p+Bj-1-TMBj-1p----(14a)]]>djb=d0b+Bj-1-TMBj-1b----(15a)]]>變量Bj對應(yīng)至已編碼過的圖像大區(qū)塊中被用以編碼的位編號,其中的j值表示為第j個大區(qū)塊,同理j-1代表j的上一個但不包括第j個對應(yīng)的已編碼過的圖像大區(qū)塊中被用以編碼的位編號。變量TMBj-1i、TMBj-1p及TMBj-1b分別對應(yīng)至j的上一個但不包括第j個對應(yīng)的已編碼過的圖像大區(qū)塊中被用以編碼的位編號。
方程式13a、14a及15可表示整個虛擬緩沖區(qū)充滿的計算值,亦即,在已實施的TM5程序中提及的dji、djp或djb。此方式的缺點,TM5程序系為圖像大區(qū)塊變動而作對應(yīng)配置,因此當(dāng)處理的圖像為運動節(jié)目,該大區(qū)塊中的位便需要較擁有相同位編碼,但內(nèi)容較單調(diào)或緩慢的圖像更為快速做出對應(yīng)變化。
dji=d0i+Bj-1-(Ti·(j-1)MB_cnt)----(13b)]]>djp=d0p+Bj-1-(Tp·(j-1)MB_cnt)----(14b)]]>djb=d0b+Bj-1-(Tb·(j-1)MB_cnt)----(15b)]]>在具體實施例中,更新過的數(shù)值可以表示成如13c、14c及15c的形式。使用上述三個方程式的演算將使得根據(jù)圖像的大區(qū)塊移動的配置較有優(yōu)勢。上述優(yōu)勢,例如可以允許根據(jù)計算大區(qū)塊關(guān)連動作而配置位,而非僅是一個常數(shù)值或一個預(yù)估的位移值。圖像大區(qū)塊中位配置方法可以一更詳細(xì)的表示式條列如下如圖8A及圖8B所示
dji=d0i+Bj-1-(Ti·Mact_sumj-1MACT)----(13c)]]>djp=d0p+Bj-1-(Tp·Mact_sumj-1MACT)----(14c)]]>djb=d0b+Bj-1-(Tb·Mact_sumj-1MACT)----(15c)]]>變量Mact_sumj-1則代表根據(jù)已編碼過的圖像大區(qū)塊的動作總值,亦即,如方程式17所表示的上一個大區(qū)塊,但不包括大區(qū)塊j。
MACT=ΣK=1MB_cntMactk----(16)]]>Mact_sumj-1=ΣK=1j-1Mactk----(17)]]>方程式16中,參數(shù)MB_cnt代表圖像中的大區(qū)塊編號,且變量Mactk代表第k個圖大區(qū)塊相亮度的移動活力。很多方式及技巧能用以計算該移動活力,例如相異運算及絕對差異總和運算。
另一具體實施例,該虛擬緩沖區(qū)占用的更新值dji、djp或djb系根據(jù)第10章所提及,關(guān)于自MPEG格式擷取的TM5模型為基礎(chǔ)建立的方程式計算的值。
再一具體實施例,該虛擬緩沖區(qū)占用的更新值dji、djp或djb系根據(jù)方程式13d、14d及15d計算所得。
dji=d0i+Bj-1-(αiTi·(j-1)MB_cnt+(1-αi)Ti·Mact_sumj-1MACT)----(13d)]]>djp=d0p+Bj-1-(αpTp·(j-1)MB_cnt+(1-αp)Tp·Mact_sumj-1MACT)----(14d)]]>djb=d0b+Bj-1-(αbTb·(j-1)MB_cnt+(1-αb)Tb·Mact_sumj-1MACT)----(15d)]]>方程式13d、14d及15d的αi、αp及αb系一加權(quán)指數(shù),其系為大約0至1之間的系數(shù)。上述的αi、αp及αb等加權(quán)指數(shù)較之先前提及的根據(jù)TM5采用的相對關(guān)連平均演算及根據(jù)方程式13c、14c及15c采用的動作平均演算方法而言,對于圖像大區(qū)塊的位分配有更大的容許優(yōu)勢。這里采用的合并分配能關(guān)連的公平的補償位,例如某位明顯的超出范圍時就能發(fā)揮該分配方法的優(yōu)勢。加權(quán)指數(shù)αi、αp及αb的值可以在0至1之間大范圍的變動。一個具體實施例,可以將加權(quán)指數(shù)αi、αp及αb的值可以在0至0.5之間,舉例而言,樣本的值可以設(shè)定為例如0.2、0.3、0.4及0.5等,其它超過0至1范圍的值則可以一些方法加以除去。前述的方法有一具體實施例,圖像編碼時可以讓使用者自行設(shè)定上述的αi、αp及αb的加權(quán)指數(shù)的數(shù)值。
占用虛擬緩沖區(qū)的更新值dji、djp或djb系根據(jù)每一特定圖像大區(qū)塊計算而得。然而,一個可以理解的事實,對第一大區(qū)塊的更新值,亦即,dji、djp或djb會與步驟612的初始設(shè)定相同,如此則步驟614對于第一大區(qū)塊的設(shè)定值可以被忽略。這個程序更可進一步由步驟S614推至步驟616。
步驟616中,將計算大區(qū)塊量子數(shù)j的參考量子參數(shù)Qj。方程式18表示一個參考量子參數(shù)的計算式,這個程序更可進一步由步驟616推至步驟619。
Qj=(dj·31r)----(18)]]>步驟619中,將根據(jù)大區(qū)塊計算動作的正交空間N_Sactj。一個具體實施例,系為根據(jù)步驟TM5及方程式19a、19b、21a、22及23a計算出動作的正交空間N_Sactj。上述的演算方法的缺點,系為根據(jù)TM5采用的方法分配的大區(qū)塊位計算出的動作的正交空間N_Sactj,該位分配僅考慮空間活動(或本質(zhì))而未能將對象自身轉(zhuǎn)動考慮進去。此外,在稍后將再詳細(xì)說明的方程式23a中,TM5步驟對于計算正交空間N_Sactj有一些限制,上述限制亦將在稍后配合圖8A及圖8B再詳細(xì)說明。
另一具體實施例,根據(jù)方程式20a、21b、21c、22及23b計算的正交空間N_Sactj。其中結(jié)合計算對象動作的參考量子參數(shù)Qj及經(jīng)由正交空間達(dá)到調(diào)整效果的演算方法,即可讓圖像大區(qū)塊位的分配同時兼顧位移(或本質(zhì))及轉(zhuǎn)動的計算,因而大大的改善了圖像的品質(zhì)。舉例,如果只有考慮對象在空間活動,在處理運動員激烈運動下局部區(qū)域圖像,例如腳部的本質(zhì)變化,因為通常將分配少數(shù)的位,導(dǎo)致產(chǎn)生所謂畫面的「碎裂(或鋸尺狀)」視覺效果。發(fā)生上述情形的原因為在圖像劇烈運動下的局部區(qū)域顯現(xiàn)相對較高的空間活動(或本質(zhì)),也因此分配了較少的位。此外,在稍后將再詳細(xì)說明的方程式23b中,有一更進一步的具體實施例,其中采用一種空間活動的實體值,該實體值可以更吻合介于目標(biāo)位與實際編碼位的分配,也因此可以減少緩沖區(qū)超出與不足部分的近似,故可增加對象的對比性及鑒識度。
步驟619中,利用圖像中的空間活動決定圖像的品質(zhì),而有許多可行的方法能計算此一空間活動。舉例,上述的程序能通過先前第10章介紹的TM5或在此單元將介紹的新方法計算空間活動。方程式19a揭示一種如第10章TM5的應(yīng)用,通過以框架為基礎(chǔ)的次圖塊法及以場域為基礎(chǔ)的次圖塊法利用圖像亮度計算出大區(qū)塊j在空間活動。I圖像對于第j個大區(qū)塊的空間活動,亦即,本質(zhì),能夠通過方程式19b計算得知,該方程式則是通過TM5提供的演算方法。
actj=1+min(vblk1,vblk2,...,vblk8)(19a)vblkn=164·Σk-164(Pkn-P_meann)2----(19b)]]>關(guān)于計算P_meann的公式稍后將于介紹方程式21a時一并描述。Pkn系由對應(yīng)于第n個8乘8階次圖塊擷取畫素的取樣。上述方程式的缺點為,方程式19b所示的算法較為復(fù)雜而且需耗費較多的CPU運算時間,對于一些慢速通用的CPU,例如微處理器,在應(yīng)用到實時編碼時將顯得難以執(zhí)行。方程式19b系參照L2正交并通過計算差異值而獲得空間中位移的數(shù)值,這樣的算法在全解析全屏幕下的實時編碼將顯得不敷使用,結(jié)果就是,通常傳統(tǒng)的系統(tǒng)都要依賴硬件來負(fù)擔(dān)大部分實時編碼的工作。盡管硬件譯碼的執(zhí)行速度相較于軟件譯碼要來得更快,但相對的也有設(shè)備昂貴、缺乏支持及升級不易的缺點,其中該軟件譯碼系一種通過軟件的設(shè)置,而在通用電子裝置,例如個人計算機,即可達(dá)成編碼工作的方法。因此,許多圖像編碼技術(shù)都朝向?qū)で笠环N在一般通用的電子裝置就能有效率的執(zhí)行實時編碼處理的方法。
方程式20a揭示另一種對于第j個大區(qū)塊的空間活動計算方法的具體實施例。此外,再一種具體實施例已于方程式19a及19b揭示,該演算方法系通過加總誤差的絕對值(而非誤差的平方值)以計算大區(qū)塊j空間活動。接著,再一具體實施例如方程式20b所示,系計算大區(qū)塊j空間中的轉(zhuǎn)動。
Sactj=Σk=1256|Pkj-P_meanj|----(20a)]]>Mactj=Σk=1256|Pkj-P_meanj|----(20b)]]>方程式20a中,Pkj對應(yīng)于原始的圖像亮度數(shù)據(jù)。方程式20b中,Pkj則對應(yīng)于原始的圖像亮度資料或根據(jù)大區(qū)塊型態(tài)而作的轉(zhuǎn)動補償亮度資料。當(dāng)對應(yīng)I圖像的大區(qū)塊時,該Pkj值系為第j個自16乘16原始亮度數(shù)據(jù)擷取的樣本值。當(dāng)對應(yīng)圖框間圖像的大區(qū)塊時,該Pkj值系為16乘16原始亮度資料值。該P_meanj的演算方法于稍后將提及的方程式21b及21c描述。
承上,方程式20a及20b采用的演算方法有幾個優(yōu)點,可以使用一般通用電子裝置搭配先前提及的速率控制及量子控制軟件編碼方法,達(dá)到全屏幕全解析的實時圖像編碼效果。當(dāng)然,上述方程式20a及20b也可以用在非實時編碼處理,也可以于編碼過程中加入硬件支持。一個圖像編碼流程的具體實施例,其系一3GHz的中央處理器執(zhí)行的軟件編碼,在處理全屏幕全解析(720×590畫素)的PAL、SECAM或NTSC圖像數(shù)據(jù)流實時編碼顯得相當(dāng)有效率。
方程式20a及20b提供的演算方法能計算出基于習(xí)知L1正交演算的絕對值誤差總和(Sum of Absolute Differences,SAD)。盡管上述的SAD演算方法較為復(fù)雜,但只要選擇適當(dāng)?shù)奶幚砥骰騼?nèi)建特殊指令的CPU即可獲得即有效率的編碼結(jié)果。一個具體實施例,個人計算機搭配一CPU,該CPU系兼容于資料流單指令/多數(shù)據(jù)(SingleInstruction/Multiple Data,SIMD)及其延伸指令群(Stream SIMDExtensions,SSE)等特殊運算指令。另一具體實施例,個人計算機搭配一CPU,該CPU系兼容于與一相同或類似應(yīng)用于SSE的整合絕對值誤差加總運算指令(Packed Sum of Absolute Difference,PSAD),PSADBW,例如,市面上采用全部或部分SSE指令的Intel Pentium III、Pentium 4、Xeon、Centrino、AMD Athlon、Duron或Opteron等處理器。可以推測,目前正在研發(fā)或尚未量產(chǎn)的新處理器,亦會將上述的SSE運算指令內(nèi)建其中。更可以進一步推測,未來將推出的新指令組仍會內(nèi)建或兼容SSE指令。
方程式21a表示一計算方程式19b中樣本值的演算方法。方程式21b及21c分別表示計算方程式20a及20b中樣本值的方法。
P_meann=164·Σk-164Pkn----(21a)]]>P_meanj=1256·Σk=1256Pkj----(21b)]]>P_meanj=0 (21c)一個具體實施例,方程式21a所示的算法表示一利用前述TM5計算第n個8乘8次圖塊P_meann取樣值的演算方法。另一具體實施例,表示通過方程式21b及21c計算出前述P_meanj取樣值的平均值的方法。方程式21b及21c具有優(yōu)勢,亦即可以結(jié)合空間活動(或本質(zhì))以及轉(zhuǎn)動的預(yù)估計算。在處理I圖像大區(qū)塊時使用方程式21b,處理圖框間圖像大區(qū)塊時則使用方程式21c。
方程式22表示一空間正交位移值的演算方法,其系通過步驟621提供的方法計算量子數(shù),其中該量子數(shù)系應(yīng)用于離散余弦轉(zhuǎn)換(DiscreteCosine Transform,DCT)系數(shù)。
N_Sactj=(2·Sactj)+Savg_actSactj+(2·Savg_act)----(22)]]>如方程式22所示,第j個大區(qū)塊的正交空間活動值N_Sactj系通過大區(qū)塊自身的空間活動值Sactj及空間活動平均值Savg_act計算所得。其中該空間活動平均值Savg_act系可由方程式23a或23b計算所得。
Savg_act=1MB_cnt·Σj=1MB_cntSactjprevious----(23a)]]>方程式23a表示一前述TM5描述過的演算方法,其系通過前一圖像(而非目前圖像)的空間活動值Sactj計算所得。因此,傳統(tǒng)依據(jù)TM5設(shè)計的編碼器根據(jù)方程式22計算正交空間活動值N_Sactj的演算方法就顯得準(zhǔn)確性較低。因為若通過方程式23a計算出一空間活動平均值Savg_act,則所謂的正交空間活動值N_Sactj更接近一對于正交化的預(yù)估值,而非實際去計算的數(shù)值。也因此,方程式23a提供的預(yù)估方法在由前一個畫面或圖像轉(zhuǎn)至目前的畫面或圖像時會有其不足之處。依據(jù)TM5的思維,通過前一圖像計算得到空間活動平均值Savg_Sactj后,即可以一初始值,例如400,作為上述空間活動平均值Savg_Sactj。
TM5提供的編碼方法利用前一圖像作為空間活動值Savg_Sactj,因為TM5提供的方法系以一流程序列以一對一的方式對每一個大區(qū)塊編碼,因此在編碼的運算時間內(nèi)就無法取得空間活動平均值Savg_act,亦即不能通過空間活動平均值計算出正交空間活動值N_Sactj。更進一步的說明將于稍后圖8A及8B再詳述。方程式23b則表示一于TM5基礎(chǔ)上的改良演算方法。
Savg_act=1MB_cnt·Σj=1MB_cntSactjcurrent----(23b)]]>一個具體實施例,處理序列大區(qū)塊在重組時有一個優(yōu)點將于稍后圖8A及8B再詳述。該重組方法系可以在目前的圖像中直接以大區(qū)塊的空間活動值Sactj計算空間活動平均值Savg_act,如此正交空間活動值N_Sactj便會是真實的正交值而非預(yù)估值。上述方法可使數(shù)據(jù)更量化更可預(yù)估,如此則圖像編碼過的資料量將更接近實際資料量,如此也更進一步縮減或消除分別來自I圖像、P圖像及B圖像中占用虛擬緩沖區(qū)的更新值dji、djp及djb的不規(guī)則及失真。另外,值得注意的是通過方程式23b計算空間活動平均值Savg_act時并不需要自行定義一初始值,如前述取400為初始值,因為通過正在編碼的圖像空間活動值Sactj可以作為真實的平均值。流程由步驟619推至步驟621,如方程式13至17所述,系通過計算占用虛擬緩沖區(qū)的狀態(tài)以計算實際的轉(zhuǎn)動及位移。
步驟621的程序?qū)⒂嬎懔孔訁?shù)mquantj,該量子參數(shù)mquantj系用以量化第j個大區(qū)塊。可以理解的是,上述的量子參數(shù)mquantj可以在步驟621中使用或者先儲存起來稍后再用。方程式23表示一計算量子參數(shù)mquantj的演算方法。
mquantj=Qj·N_Sactj(23)方程式23中,Qj為稍早于方程式18提及的參考量子參數(shù),N_Sactj為稍早于方程式22提及的正交空間活動值。一個具體實施例,上述的程序更進一步檢查計算的量子參數(shù)mquantj及其不可預(yù)測的量化層QAC(i,j)范圍限制因而卡住的情形。例如,一個具體實施例,采用標(biāo)準(zhǔn)MPEG-1圖像編碼并檢測到計算出的量子參數(shù)mquantj其值為2并自動將該數(shù)值替換成4,該量子參數(shù)mquantj為將用在稍后大區(qū)塊編碼流程中,用以產(chǎn)生量化層QAC(i,j)的數(shù)值。然而,在MPEG-1編碼中,如欲滿足8位則其量化層QAC(i,j)將被限制于-255至255之間,該資料卡住的情形將導(dǎo)致可視的噪聲,不過這個問題可以通過限制改良位內(nèi)容的方式加以消除。上述實施例中的技術(shù)內(nèi)容稍后將于圖9A及9B,而程序由步驟627推至判斷方塊步驟630。
以一個具體實施例來說,過程更重新設(shè)定虛擬緩沖器占用值(dji、djp與djb)與量化參數(shù)mquantj,以符合來所選擇的刺激,該刺激將于接續(xù)的圖9A中詳細(xì)描述。程序由步驟621推至步驟632。
在步驟623內(nèi),程序?qū)-th的大區(qū)塊進行編碼。程序在步驟616之前對J-th的大區(qū)塊用量化參數(shù)(mquantj)來計算進行編碼。編碼技術(shù)能包括例如離散余弦轉(zhuǎn)換、移動向量等等的計算。在一個具體化方面,那些程序能有選擇地略過那些圖像B的大區(qū)塊的編碼會在后來的圖11將有非常詳細(xì)的描述。程序由步驟623推入判斷方塊步驟625。
在判斷方塊步驟625,程序判斷在圖像中大區(qū)塊是否已在步驟616被譯碼,或者如圖11所述可略過。當(dāng)圖像的大區(qū)塊已經(jīng)被編碼完畢或者跳過該程序步驟時,程序步驟由步驟616進入步驟617。否則,程序回到步驟614來接續(xù)后續(xù)大區(qū)塊的制程。
在步驟627,程序儲存虛擬緩沖器的最后占用值,來作為相同型態(tài)下一張圖像編碼的初始位置。例如目前訊框虛擬緩沖器的最后占用值,當(dāng)j為MB_cnt時,dji、djp、djb的值被儲存,因此,于一相同型態(tài)的下一張圖像條件下,可用d0i、d0p、d0b為一起始值。在某些況下,于一持續(xù)時間用來編碼的位數(shù)相對較低,因此,位充系被使用來增加編碼時的位數(shù)。但是位填充的使用將導(dǎo)致虛擬緩沖器內(nèi)的占用值扭曲,而使得編碼器的狀態(tài)呈現(xiàn)不穩(wěn)定。舉例來說速率控制與量化控制程序包含一個以上用以更有效降低位填充的技術(shù),其將于圖9A與圖9B中進一步描述。程序由步驟627進入步驟630。
在判斷方塊步驟630,圖標(biāo)說明內(nèi)的關(guān)于圖像的制程已經(jīng)完成,接續(xù)將進行判斷這個圖像是否為該圖像群組最后一個圖像。這是可以通過監(jiān)控P圖像的數(shù)目Np與B圖像的數(shù)目Nb的剩余值來達(dá)成,其中該P圖像的數(shù)目Np與B圖像的數(shù)目Nb的剩余值已于步驟66中說明。當(dāng)該圖像群組中仍有圖像尚待處理時,程序由判斷方塊步驟630推至步驟632。換言之,當(dāng)這個程序已經(jīng)完成圖像群組處理,這個程序會從判斷方塊步驟630發(fā)出到判斷方塊步驟634。
在步驟632中,這個程序提供最新、最適當(dāng)?shù)腜圖像數(shù)NP或是B圖像數(shù)Nb,并將程序推至步驟636以進行圖像群組中下一個圖像的初始狀態(tài)。下一個將被處理的圖像不一定就是下一張被播放的圖像,因為在編碼程序圖像可能再次被重新安排。在步驟636中,這個程序?qū)⒁罁?jù)剛被編碼的圖像更新相對應(yīng)的錯雜評估。例如,如果一個I圖像剛剛已經(jīng)被編碼完成,這個程序就會針對I圖像更新的錯雜評估Xi,此程序可由方程式24得知。其中方程式24、方程式25及方程式26分別如下列關(guān)系是所示Xi=SiQi(24)Xp=SpQp(25)Xb=SbQb(26)在方程式24、方程式25及方程式26中,Si、Sp、及Sb的值,相對應(yīng)于所產(chǎn)生的位號碼(the number of bits),或是之前使用做圖像編碼,而該圖像可分別是I圖像、P圖像或是B圖像。Qi、Qp、及Qb的值系對應(yīng)于量化參數(shù)mquantj的平均值,量化參數(shù)mquantj是用來將圖像中的大區(qū)塊量化。程序由步驟636推進至步驟638。
在步驟638中,程序更新了分配至圖像群組的剩下位數(shù)。這個更新了分配至圖像群組的剩下位數(shù)的步驟系依據(jù)是否下一張被編碼的圖片是來自已經(jīng)存在圖像群組或者下一張被編碼的圖片是否為新圖像群組的第一張。當(dāng)下一張將進行制程的圖片為新圖像群組的第一張時,將同時使用方程式27與方程式28。當(dāng)下一張即將進行制程的圖片為先前制程的相同圖像群組的一圖片時,僅使用方程式27。方程式27與方程式28代表R值的分配狀態(tài),因此方程式左邊的R值是新的,方程式右邊的R值是舊的,而方程式27及方程式28如下列所示R=R-S(i,p,b)(27)R=G+R (28)在方程式27,程序通過先前的R減掉用來對剛被編碼的圖像進行編碼的位數(shù)S(i,p,b)來計算分配至圖像群組的剩下位數(shù)。曾被用來圖像編碼的位數(shù)S(i,p,b)也可以用來計算VBV緩沖器模型占用,其將于圖7中詳盡的描述。方程式27可以表示出每個經(jīng)過編碼后的圖像的計算結(jié)果。當(dāng)最后一個圖像群組中的圖像經(jīng)過編碼后,一個新群組中的第一個圖像成為下一個需要編碼的對象,方程式27所計算出來的結(jié)果,和方程式28所計算出來的結(jié)果是相關(guān)的。在方程式28中,新的R值是根據(jù)原本的R值加上G所計算出來的,其中原本的R值可以為正數(shù)或者是負(fù)數(shù)。這個G值是由新編碼后的圖像群組,與相對應(yīng)新圖像群組的位號碼有關(guān),此位號碼系通過圖像的長度及對應(yīng)的時間來判定。這個步驟從步驟638回到步驟610。
現(xiàn)在回到判斷方塊步驟634,在這個步驟中,完成了最后一個圖像群組中的圖像編碼。在判斷方塊步驟634中,決定是否已經(jīng)完成視訊序列的編碼。這個步驟可以很輕易的讓人了解,例如傳布編碼,實際上編碼所用掉的時間,及后續(xù)編碼所需時間。當(dāng)有另一個圖像群組需要被處理時,從判斷方塊步驟634推至到步驟640。否則,這個程序終止。
在步驟640中,這個步驟可以接收到下一個圖像群組??梢詮倪@個步驟具體的了解到在步驟640中,程序僅會擷取下個圖像群組的一部分,剩下的部分,以后在擷取。更具體而言,步驟640與步驟S602是十分相似的。程序從步驟640推到步驟642。
在步驟642,程序接收到應(yīng)用于該圖像群組中的圖像已編碼的型態(tài)。在實施例中的速率控制與量化控制程序,決定圖像群組中的圖像該譯碼為何種型態(tài)是較圖像進行速率控制與量化控制程序制程早一步進行。具體化而言,步驟642與步驟604近似。制程將由步驟642進入先前已敘述過的步驟644。
在步驟644,程序判斷已被編碼的下一個圖像群組的P圖像數(shù)目Np與B圖像數(shù)目NB。以一個具體化的例子來說,步驟644與步驟606近似。制程將由步驟644進入先前已敘述過的步驟636,來繼續(xù)進行編碼程序。
VBV緩沖器模型空間占用層級的控制圖7系說明基于虛擬緩沖器的空間占用層級調(diào)整一目標(biāo)位配置程序的流程圖,如圖所示的程序運算,此程序的描述系與MPEG-1及MPEG-2視訊編碼有關(guān),使得此虛擬緩沖器對應(yīng)于視訊緩沖檢測器(VBV)緩沖模型。此VBV緩沖器模型系為一概念上的模型,以提供編碼器用來模仿在譯碼器中的緩沖器占用層級;對熟悉此項技術(shù)的人士而言,使用其它視訊編碼標(biāo)準(zhǔn)作為其它緩沖器模型乃是顯而易知的。在更進一步討論圖7之前,VBV緩沖器模型層級的監(jiān)控將于此進行較為詳細(xì)的描述。
如前述與圖4有關(guān)的敘述,此VBV緩沖器模型可預(yù)知或預(yù)測在譯碼器緩沖器中的緩沖器層級。此譯碼器緩沖器的占用層級大概與編碼器緩沖器的占用層級相反,如此在VBV緩沖器模型中一相對高占用層級系表示有較少的位被編碼成視訊序列,以及在VBV緩沖器模型中一相對低占用層級則表示較多的位被編碼成視訊序列。
此VBV緩沖器模型的占用層級Vstatus系可被計算及監(jiān)控。在一實施例中,VBV緩沖器模型的占用層級Vstatus系與一預(yù)設(shè)臨界值相比較,并根據(jù)此比較結(jié)果使適應(yīng)編碼程序,此部份將于后面配合圖11做較為詳述的說明。在一另一實施例中,此VBV緩沖器模型的占用層級Vstatus系用來適應(yīng)性調(diào)整一圖像的位目標(biāo)數(shù)Ti、Tp或Tb以進行編碼。此占用層級Vstatus的計算系以方程式29表示的。
Vstatus=Vstatus-S(i,p,b)+bit_ratepicture_rate----(29)]]>方程式29代表此占用層級Vstatus的值的分配說明,等號左邊的Vstatus代表新的占用層級值,而在等號右邊的Vstatus則代表先前的占用層級值。在一實施例中,此占用層級Vstatus的值系為VBV緩沖器模型的初始目標(biāo)值,例如,此VBV緩沖器模型的完全占用的目標(biāo)值為7/8。在另一實施例中,作為緩沖器占用的初始Vstatus的值系與一具體VBV-延遲值有關(guān)。其它初始值則為熟悉此項技術(shù)的人士易于決定者。
在方程式29中,VBV緩沖器模型的占用系以下列方式計算。先前的占用層級值先減去已對圖像編碼的編碼位數(shù)S(i,p,b),然后再加上對應(yīng)于一訊框或圖像的時間周期中傳送的位數(shù),以得到一新的占用層級值Vstatus。如方程式29所示,在訊框中傳送的位數(shù)系等于位速率除以訊框速率。在方程式29所示的計算系適應(yīng)每一圖像程序的占用層級Vstatus更新。在另一實施例,修改此一方程式,以更新少于每一圖像的占用層級Vstatus,例如每一其它圖像。
接續(xù)說明與圖7有關(guān)的內(nèi)容,此程序的一實施例系先比較一圖像的位目標(biāo)數(shù)Ti、Tp或Tb與一臨界值Tmid,并根據(jù)此比較結(jié)果調(diào)整位目標(biāo)數(shù)Ti、Tp或Tb。此將有利于協(xié)助視訊編碼器產(chǎn)生一資料流,其系依從VBV,以避免在譯碼器中發(fā)生緩沖不足(buffer underrun)或緩沖溢位(bufferoverrun)。
一實施例系使用五個與VBV緩沖器模型占用層級有關(guān)的參數(shù)來控制,在其它實施例中,亦可使用少于五個參數(shù)或超過五個參數(shù)。此些參數(shù)可在一非常寬的范圍中變化,并可包括固定參數(shù)、變動參數(shù)、適應(yīng)參數(shù)、使用者可客制化(user-customizable)參數(shù)及其它類似者。在一實施例中,將使用下列參數(shù)(以漸減的占用率排列)Vhigh、Vtarget、Vmid、Vlow及Vcritical。
Vhigh相當(dāng)于此VBV緩沖器模型的占用的較高值,在一實施例中,程序系努力去控制編碼,使VBV緩沖器模型的占用得以維持在Vhigh以下。
Vtarget相當(dāng)于此VBV緩沖器模型要求的占用層級,在一實施例中,此要求的緩沖器占用層級Vtarget可受使用者的配置。
Vmid相當(dāng)于一緩沖器層級,其系為此VBV緩沖器模型的占用的一半。
Vlow相當(dāng)于此VBV緩沖器模型的占用的較低值,在一實施例中,程序系努力去控制編碼,使VBV緩沖器模型的占用得以維持在Vhigh以上。
Vcritical相當(dāng)于一較Vlow更低的占用層級,在一實施例中,當(dāng)此VBV緩沖器模型的占用下降至Vcritical以下時,此程序繼續(xù)進行以略過在B圖像中的大區(qū)塊,較詳細(xì)的說明系與下述的圖11有關(guān)。
表II系為各臨界層級的實例值,其它適當(dāng)?shù)臄?shù)值系可為熟悉此項技術(shù)的人士所能易于決定者。
表II

在表II所列的實例值有利于按VBV緩沖器模型尺寸的比例排列,如前述與圖4有關(guān)的詳細(xì)說明。MPEG-2的VBV緩沖器模型尺寸大約為224kB,而MPEG-1的VBV緩沖器模型尺寸則大約為40kB。有關(guān)VBV緩沖器模型的尺寸系為熟悉此項技術(shù)的人士所能易于了解者,例如用于MPEG-1與MPEG-2的VBV緩沖器模型,其系可根據(jù)所使用的視訊編碼標(biāo)準(zhǔn)及應(yīng)用方案而變化。
再回到圖7所示,在圖7所示的程序中調(diào)整一圖像的目標(biāo)位配置Ti、Tp或Tb,其系基于該VBV緩沖器模型的占用層級的至少一部份。在一實施例中,在圖7所示的程序系結(jié)合圖6所示程序的步驟610;此程序可以從一選擇判斷方塊710開始,其系先比較目標(biāo)位配置Ti、Tp或Tb的值(一般在圖7中以T(i,p,b)表示)與一個或多個目標(biāo)臨界值,例如Tmid或Thigh。舉例來說,當(dāng)VBV緩沖器模型占用層級相對較低,則需要求助于調(diào)整程序,以便選擇目標(biāo)臨界值Tmid;另一范例則是當(dāng)VBV緩沖器模型占用層級相對較高,需要求助于調(diào)整程序,以便選擇目標(biāo)臨界值Thigh。在一實施例中,只有目標(biāo)臨界值Tmid或Thigh其中一個被使用;另一實施例中系同時使用二個目標(biāo)臨界值;再另一實施例中,此選擇判斷方塊系不存在,所以二個目標(biāo)臨界值皆無使用。在此圖解的實施例中,此調(diào)整程序系與VBV緩沖器模型占用層級與配置至已編碼圖像的位數(shù)目有關(guān),此目標(biāo)位配置Ti、Tp或Tb的計算過程系已描述在前述的步驟610以及圖6的方程式6、7及8。方程式30a系表示此目標(biāo)臨界值Tmid的實例計算方式,方程式30b系表示此目標(biāo)臨界值Thigh的實例計算方式。
Tmid=Vstatus-Vmid(30a)Thigh=Vstatus-Vhigh+bit_ratepicture_rate----(30b)]]>此圖解實施例的程序系從選擇判斷方塊710開始,當(dāng)目標(biāo)位配置Ti、Tp或Tb超過目標(biāo)臨界值Tmid或是目標(biāo)位配置Ti、Tp或Tb少于目標(biāo)臨界值Thigh,則繼續(xù)進行一步驟720;在其它實施例或結(jié)構(gòu)配置中,若選擇判斷方塊710不存在,則此程序?qū)⒂刹襟E710開始,此為顯而易知者。當(dāng)目標(biāo)位配置Ti、Tp或Tb超過目標(biāo)臨界值Tmid時,此VBV緩沖器模型占用系相對較低。在圖解實施例中,當(dāng)目標(biāo)位配置的調(diào)整發(fā)生在一圖像已配置有足夠位時,此時目標(biāo)臨界值Tmid不需要調(diào)整,VBV緩沖器模型占用將會下降或保持在Vmid。其它臨界值系為熟悉此項技術(shù)者所易于決定者。
當(dāng)目標(biāo)位配置Ti、Tp或Tb沒有超過目標(biāo)臨界值Tmid且目標(biāo)位配置Ti、Tp或Tb沒有少于目標(biāo)臨界值Thigh,如圖所示的流程系從選擇判斷方塊710開始到一判斷方塊730;若選擇判斷方塊710不存在或無使用,則此程序?qū)⒂刹襟E720開始,然后進行判斷方塊730,此為顯而易知者。在另一實施例,當(dāng)目標(biāo)位配置Ti、Tp或Tb沒有超過目標(biāo)臨界值Tmid且目標(biāo)位配置Ti、Tp或Tb沒有少于目標(biāo)臨界值Thigh時,此程序?qū)⒂蛇x擇判斷方塊710繼續(xù)進行至結(jié)束,例如,此程序的步驟612的進行系如圖6所描述者。在圖中的選擇判斷方塊710,對I圖像、P圖像及B圖像系使用相同的目標(biāo)臨界值Tmid及/或Thigh進行比較。在另一實施例中,目標(biāo)臨界值Tmid及/或Thigh系隨著圖像類型而變化。
當(dāng)目標(biāo)位配置Ti、Tp或Tb超過目標(biāo)臨界值Tmid或是目標(biāo)位配置Ti、Tp或Tb少于目標(biāo)臨界值Thigh時,即進入步驟720,此程序系調(diào)整目標(biāo)位配置Ti、Tp或Tb的值,以降低位配置至該圖像的數(shù)量。在另一實施例,此程序由步驟720開始,舉例說明,此程序的一實施例系由一使用者所配置,以致于此程序不具有選擇判斷方塊710,而由步驟720開始。例如,Ti、Tp或Tb的調(diào)整可供配置以減少位數(shù)量;較有利地,當(dāng)有較少的位使用于圖像編碼時,VBV緩沖器模型占用層級與相對應(yīng)的譯碼器緩沖器占用層級的增加。方程式31系為代表此調(diào)整程序的一般公式T(i,p,b)=α·T(i,p,b)(31)在方程式31中,調(diào)整因素(adjustment factor)α系可小于1,使調(diào)整后的目標(biāo)位配置Ti、Tp或Tb系小于最初的計算值。在一實施例中,調(diào)整因素α亦可相對地大于1,使調(diào)整后的目標(biāo)位配置Ti、Tp或Tb系大于最初的計算值。澄言之,方程式31的調(diào)整系表示分別計算目標(biāo)位配置Ti、Tp或Tb的調(diào)整。然而,此調(diào)整程序亦可結(jié)合目標(biāo)位配置Ti、Tp或Tb的最初計算;且方程式31系相當(dāng)于一指定分配的說明,亦即等號右邊的值系代表調(diào)整前的目標(biāo)位配置Ti、Tp或Tb,等號左邊的值則代表調(diào)整后的目標(biāo)位配置Ti、Tp或Tb。方程式32表示此調(diào)整因素的一計算范例α=1+Vstatus-VtargetVhigh-Vlow----(32)]]>如方程式32所示,當(dāng)Vstatus小于Vtarget時,調(diào)整因素α系小于1;當(dāng)Vstatus大于Vtarget時,調(diào)整因素α系大于1。方程式31所示調(diào)整的最終功效系使VBV緩沖器模型占用層級傾向于預(yù)設(shè)的占用層級Vtarget。
值得注意的是,在選擇判斷方塊710中當(dāng)目標(biāo)位配置Ti、Tp或Tb超過目標(biāo)臨界值Tmid時,VBV緩沖器模型占用Vstatus將代表性地較小于預(yù)設(shè)的VBV占用層級Vtarget,以致于調(diào)整因素α系小于1;較有利地,此目標(biāo)位配置系可降低一數(shù)量,其系有關(guān)VBV緩沖器模型占用Vstatus低于預(yù)設(shè)的VBV占用層級Vtarget的數(shù)量。當(dāng)目標(biāo)位配置Ti、Tp或Tb系小于目標(biāo)臨界值Thigh時,VBV緩沖器模型占用Vstatus將代表性地較大于預(yù)設(shè)的VBV占用層級Vtarget,以致于調(diào)整因素α系大于1;較有利地,此目標(biāo)位配置系可增加一數(shù)量,其系有關(guān)VBV緩沖器模型占用Vstatus高于預(yù)設(shè)的VBV占用層級Vtarget的數(shù)量。此程序系從步驟720繼續(xù)進行至判斷方塊730。
在判斷方塊730中,不管目標(biāo)位配置Ti、Tp或Tb是否有經(jīng)由步驟720的調(diào)整,此程序系判定目標(biāo)位配置Ti、Tp或Tb是否有落在指定范圍內(nèi),此些范圍限定系用來避免目標(biāo)位配置Ti、Tp或Tb的值產(chǎn)生緩沖不足或緩沖溢位的情況,且該范圍系可預(yù)定或是由目標(biāo)位配置Ti、Tp或Tb以及VBV緩沖器模型占用層級Vstatus適應(yīng)而來的。當(dāng)目標(biāo)位配置Ti、Tp或Tb落在此范圍外,此程序系從判斷方塊730繼續(xù)進行至步驟740,以約束目標(biāo)位配置Ti、Tp或Tb保持在此范圍內(nèi);否則,無需更進一步的調(diào)整目標(biāo)位配置Ti、Tp或Tb,即可結(jié)束此程序。
方程式33系說明目標(biāo)位配置Ti、Tp或Tb的上限值Tmax的范例計算。方程式34系說明目標(biāo)位配置Ti、Tp或Tb的下限值Tmin的范例計算。
Tmax=Vstatus-Vlow(33)Tmin=max(Vmax+bit_ratepicture_rate-Vhigh,0)----(34)]]>當(dāng)目標(biāo)位配置Ti、Tp或Tb超過上限值Tmax時,目標(biāo)位配置Ti、Tp或Tb再分配該上限值Tmax,且當(dāng)目標(biāo)位配置Ti、Tp或Tb低于下限值Tmin時,則目標(biāo)位配置系再分配該下限值Tmin。
方程式33所示的上限值Tmax的應(yīng)用系有助于限制此目標(biāo)位配置Ti、Tp或Tb的相對高值,使VBV緩沖器模型占用層級可以保持在VBV緩沖模型的較低預(yù)設(shè)占用范圍層級Vlow以上。方程式34所示的下限值Tmin的應(yīng)用系有助于限制此目標(biāo)位配置Ti、Tp或Tb的相對低值,使緩沖器占用層級可以保持在較高預(yù)設(shè)占用范圍層級Vhigh以下,甚至是在資料信道中以固定位速率累積資料超過時間之后。下限值Tmin系相當(dāng)于在方程式中以逗號分離的數(shù)量;其它上限值Tmax與下限值Tmin系為熟悉此項技術(shù)的人士所易于決定者。目標(biāo)位配置Ti、Tp或Tb代表編碼器可達(dá)到的目標(biāo),且目標(biāo)與實際使用至編碼圖像的位數(shù)目具有相對小的變化,使緩沖器占用層級Vstatus仍然可以稍微脫離預(yù)設(shè)占用范圍層級Vlow及Vhigh。
在進行至步驟740之后,即結(jié)束整個調(diào)整程序。例如,圖7所描述的調(diào)整程序系結(jié)合圖6的步驟610的速率控制與量化控制程序,此調(diào)整程序從步驟610繼續(xù)進行下去。
從事此項技術(shù)者對上述的程序以不同方式所做的修改仍未脫離本發(fā)明所揭示的精神與范圍。例如,在另一實施例,所示程序的各種不同部份系可結(jié)合在一起,可以可供替代的順序重新排列,可以被移除,以及其它類似者,例如在一實施例中,選擇判斷方塊710并不存在,而在另一實施例中,判斷方塊730及步驟740系可供選擇,且不一定要存在。
大區(qū)塊處理順序圖8A所示為先前技術(shù)的處理大區(qū)塊順序的流程圖,圖8B所示為本發(fā)明處理大區(qū)塊順序的一實施例流程圖。圖8B所示的處理順序有利于容許一圖像大區(qū)塊的空間活動及/或移動活動的計算,以便使實際數(shù)值可用來計算總數(shù)與平均數(shù),對于于從前一圖像計算而估算出總數(shù)與平均數(shù)。
圖8A所示的傳統(tǒng)順序系從步驟802開始,在步驟802中,此程序系執(zhí)行單一大區(qū)塊的空間活動(本質(zhì))及/或移動估算的計算,此程序再從步驟802繼續(xù)進行至步驟804。
在步驟804中,此程序使用空間活動及/或移動估算的計算來執(zhí)行此大區(qū)塊的離散余弦轉(zhuǎn)換(discrete cosine transformation,DCT)??臻g活動的計算一般正常系以空間活動的總數(shù)表示;然而,在此程序的此特點,對于已編碼圖像的空間活動的計算并未被完成,結(jié)果則使用前一圖像的估算值。例如,采用前一圖像的總空間活動來計算一平均值。在另一實施例,前一圖像的移動估算亦可采用,無論此些估算是否接近實際值。當(dāng)在前一圖像與已編碼圖像之間存在一場景變化時,此估算系相當(dāng)不正確,此些不正確會損害圖像品質(zhì),并導(dǎo)致在圖像編碼的目標(biāo)位數(shù)與實際使用于圖像編碼的位數(shù)之間系為誤差配合者。此些消耗于圖像編碼的位數(shù)變化系不利于導(dǎo)致緩沖不足或緩沖溢位。接著此程序?qū)牟襟E804進行至步驟806。
在步驟806中,此程序系執(zhí)行此大區(qū)塊的DCT系數(shù)的可變長度編碼(variable 1ength coding,VLC),此VLC系壓縮DCT系數(shù),此程序從步驟806繼續(xù)進行至判斷方塊808。
在判斷方塊808中,此程序判斷在此圖像中的所有大區(qū)塊是否已經(jīng)完成編碼,當(dāng)仍有大區(qū)塊繼續(xù)在編碼時,此程序系從判斷方塊808回到步驟802;否則,即結(jié)束此程序直到重新開始。
根據(jù)圖8B所敘述的一實施例的新順序,其系從步驟852開始。在步驟852中,此程序系執(zhí)行欲編碼的圖像中所有大區(qū)塊的空間活動及/或移動估算的計算,其系有助于容許空間活動即/或移動估算的總數(shù)與平均值系以技術(shù)的數(shù)量進行計算,并非以估算值,而是更進一步以圖像編碼前的場景變化進行準(zhǔn)確的計算。在另一優(yōu)點的范例中,在TM5,此空間活動測量Savg_actj的平均值400系用來作為第一圖像的測量的″推測″。在使用此空間活動的前,處理所有大區(qū)塊的空間活動,此空間活動測量Savg_actj的平均值可以直接計算,并可有助于避免不確定的″推測″。
更進一步地,實際總數(shù)與平均值的使用系容許實際位數(shù)用來編碼一圖像,以配合具有較高正確性的目標(biāo)位配置。此將有助于減少非預(yù)期緩沖不足或緩沖溢位的變化以及增加圖像品質(zhì)。在一實施例中,大區(qū)塊的實際移動估算系用來分配位給大區(qū)塊,使具有較高移動的大區(qū)塊可分配到較高的位數(shù)。相反地,在具有大區(qū)塊的傳統(tǒng)系統(tǒng)的大區(qū)塊處理過程中,一般大區(qū)塊的位系利用前一圖像的大區(qū)塊相對移動來分配,其系可能為正確或是不正確的。此程序?qū)牟襟E852繼續(xù)進行至步驟854。
在步驟854中,此程序系對圖像中的所有大區(qū)塊執(zhí)行DCT計算,接著此程序從步驟854繼續(xù)進行至步驟856。
在步驟856中,此程序?qū)Υ藞D像中的所有大區(qū)塊執(zhí)行DCT系數(shù)的可變長度編碼(VLC),而后此程序?qū)⒔Y(jié)束直至重新開始。
在另一實施例中,在步驟852中所描述的程序,對所有大區(qū)塊進行空間活動及/或移動估算的計算,然后不斷重復(fù)進行大區(qū)塊的DCT計算與VLC,直至此圖像的所有大區(qū)塊處理完成為止。
位填補(Bit Stuffing)位填補或字節(jié)填補系為一編碼器常用的技術(shù)手段,其系用來保護對抗會引起譯碼器發(fā)生緩沖溢位的資料流產(chǎn)生。當(dāng)用來圖像編碼的位數(shù)在一持續(xù)的時間周期內(nèi)相當(dāng)?shù)蜁r,此譯碼器從位于較低速率的譯碼器緩沖器補償?shù)劫Y料信道增加資料至譯碼器緩沖器的速率。當(dāng)資料的累積持續(xù)一適當(dāng)?shù)臅r間周期使譯碼器緩沖器整個填滿時,由數(shù)據(jù)信道所傳送的數(shù)據(jù)將會喪失。一圖像序列的實例可進行較高的壓縮,使圖像序列引起位填補,且每一圖像實際上是完全黑的。為了對付不同的資料速率,以便使緩沖溢位不會發(fā)生,此編碼器系將數(shù)據(jù)埋藏在無使用的資料流中,但此會消耗空間。此程序為已知的位填補。
位填補可以在一編碼程序中的不同位置實施。在一實施例中,在圖6所述的編碼程序中的步驟632之后以及步驟636之前,系可完成位填補。在一實施例中,當(dāng)VBV緩沖器模型占用達(dá)到一預(yù)定層級時,編碼程序?qū)⒁鹞惶钛a,例如與較早描述的圖7有關(guān)的層級Vhigh。在一實施例中,當(dāng)VBV緩沖器模型占用約為VBV緩沖器模型容量的63/64時,將引起位填補。
雖然有益于解決譯碼器緩沖溢位問題,位填補仍會對編碼程序引起其它問題,包含使用在位填補的位也可以是一種不佳的解決方式。在使用于圖像編碼位數(shù)S(i,p,b)中計算使用在位填補的位數(shù)系表示此編碼器有使用超過最初目標(biāo)值的較多位數(shù)用來編碼圖像;此可更進一步解釋,對降低品質(zhì)圖像的編碼系會減少使用于圖像編碼的位數(shù)。超過一時間周期,更會對使用于譯碼圖像的位數(shù)引起更進一步的減少,并與使用在位填補的位數(shù)呈比例關(guān)系。在使用較多位于位填補時,較少的位留待實際編碼圖像,而超過時間后會降低已編碼圖像的品質(zhì)。
圖9A所示為有助于編碼程序穩(wěn)固的流程,因此降低或消除位填補所引起的編碼程序不穩(wěn)定的傾向,以及超過時間的圖像品質(zhì)退化的傾向。如后面所描述者,在圖9A所敘述的程序可以在一編碼程序中的多種位置中實施。
從事此項技術(shù)者對上述的程序以不同方式所做的修改仍未脫離本發(fā)明所揭示的精神與范圍。例如,在另一實施例,所示程序的各種不同部份系可結(jié)合在一起,可以可供替代的順序重新排列,可以被移除,以及其它類似者。此程序可以在判斷方塊902或是判斷方塊904開始。在一實施例中,只有一個判斷方塊902或判斷方塊904系存在于此程序中。如圖所示的實施例,判斷方塊902以及判斷方塊904系同時存在于此程序中,例如,在圖像編碼之前,此程序可以從判斷方塊902開始;在圖像編碼之后,此程序則可從判斷方塊904開始。例如,在圖9A程序開始的判斷方塊902可以結(jié)合圖6所述步驟612之后和步驟614之前的速率控制與量化控制程序。在另一范例,在圖9A程序開始的判斷方塊904可以結(jié)合圖6所述程序的步驟627。
在判斷方塊902中,此程序系判斷在欲編碼圖像與前一已編碼圖像間是否有景象變化,此景象變化的判定可以在圖像編碼前執(zhí)行。在一實施例中,判斷方塊902系為選擇性的,各種方法可以用來判斷是否具有景象變化。在一實施例中,此程序系重新使用編碼圖像計算的結(jié)果,例如絕對差異和(SAD)測量。在一實施例中,景象變化的偵測系隨著圖像類型而改變。在一實施例中,對I-圖像而言,現(xiàn)行在圖像的平均空間活動Sact_avg系與相對應(yīng)的先前平均空間活動相比較;例如,當(dāng)現(xiàn)行活動至少為2次或少于先前I-圖像的一半時,系可偵測到景象變化,亦可使用其它因素,例如3次及1/3,4次及1/4,或是熟悉此習(xí)知技術(shù)可易于思及者。另外,為了宣告新的景象變化而將先前景象變化宣告,所以有一實施例對最小圖像數(shù)量采用一額外的標(biāo)準(zhǔn)。對P-圖像而言,移動活動的平均值可以用來代替平均空間活動來偵測一景象變化,其系可一起使用相關(guān)的比較因素,例如(2,1/2)、(3,1/3)、(4,1/4)及其它類似者。為了增加此判斷的強硬度,一實施例更進一步對現(xiàn)行P-圖像使用一最小平均移動活動測量,由此平均移動活動本身可以表明較高的移動,故可應(yīng)用于景象變化。例如,介于1000至4000范圍的最小平均移動活動測量的值系可用來表示較高的移動。
此程序系由判斷方塊902繼續(xù)進行至結(jié)束,例如,當(dāng)此程序判斷無任何場景變化時,即進入步驟614。此外,在編碼程序的其它部份及應(yīng)用系可判斷是否有場景變化,且先前的慢斷可以重新使用于判斷方塊902,以檢查步驟的標(biāo)示或發(fā)信號所表示的場景變化存在與否。當(dāng)此程序判斷有場景變化時,將由判斷方塊902繼續(xù)進行至次程序906。
在判斷方塊904中,此程序判斷此編碼過程是否在一臨界狀態(tài)(critical state)。在一可供選擇的程序中,只有判斷方塊902或判斷方塊904其中一個存在,而其它為選擇性地。當(dāng)判斷904存在于程序中時,在圖像編碼后系會引起VBV緩沖器模型占用的監(jiān)控。判斷編碼程序是否處于臨界狀態(tài)的標(biāo)準(zhǔn)可在很寬廣的范圍中變化。在一實施例中,當(dāng)量化參數(shù)值mquantj不是較低者,例如不是在最低的可能值,此臨界狀態(tài)相當(dāng)于編碼程序所執(zhí)行的位填補。此相當(dāng)于較低值的量化參數(shù)值mquantj,例如最低可能值,將根據(jù)編碼標(biāo)準(zhǔn)的語法而改變。當(dāng)VBV緩沖器模型占用已判斷為臨界狀態(tài)時,此程序?qū)⒂膳袛喾綁K904繼續(xù)進行至次程序906;否則,此程序?qū)⑦M行至結(jié)束,例如,進入如圖6所數(shù)程序的步驟627。
在次程序906中,此程序使最初狀況的虛擬緩沖器占用值標(biāo)準(zhǔn)化,并以先前描述的步驟602所述的變量d0i、d0p及d0b表示。此些標(biāo)準(zhǔn)化值可利用各種技術(shù)計算,在如圖所示的次程序906中,此標(biāo)準(zhǔn)化值系依賴VBV緩沖器模型的占用層級。此次程序包括一步驟908、一判斷方塊910、一步驟912及一步驟914。
在步驟908中,此程序的一實施例系計算方程式35及36a或36b的sum值及delta值。
sum=d0i+d0p+d0b----(35)]]>delta=vbv_buffer_size-Vstatus(36a)delta=Vinitial-Vstatus(36b)對方程式35而言,于最初狀況的虛擬緩沖器占用層級的值系通過前述圖6的步驟612中所描述的方程式9、10及11的應(yīng)用而取得的。如方程式36a及36b所示,在一緩沖器模型中delta系隨著占用層級的減少而增加,在方程式36a,變量vbv_buffer_size與用于編碼的VBV緩沖器模型的容量有關(guān),在方程式36b,變量Vinitial系與VBV緩沖器模型占用層級的最初值有關(guān)。在一實施例中,Vinitial的值約為VBV緩沖器模型容量的7/8。在另一實施例中,代替Vinitial,此程序可以使用一目標(biāo)占用層級,例如Vtatget,但其應(yīng)注意的是該最初值與目標(biāo)占用可為相同值。在另一實施例,delta系與緩沖器模型尺寸減去緩沖器模型占用層級的差異值有關(guān),VBv緩沖器模型系隨著用于編碼的標(biāo)準(zhǔn)而改變,例如,如潛入圖4所述描述,此MPEG-1與MPEG-2編碼標(biāo)準(zhǔn)明確說明其VBV緩沖器尺寸分別為40kB與224kB,其它標(biāo)準(zhǔn)則明確說明VBV緩沖器模型的內(nèi)存容量。此程序系由步驟908繼續(xù)進行至判斷方塊910。
在判斷方塊910中,此程序判斷sum值是否有少于預(yù)定臨界值Tnorm,此預(yù)定臨界值Tnorm應(yīng)該與指明可使用范圍的一些數(shù)值有關(guān),例如,此預(yù)定臨界值Tnorm為0,其它值則為熟西此記設(shè)者易于思及者。當(dāng)sum值小于Tnorm值時,本程序由判斷方塊910繼續(xù)進行至步驟914。
此delta值系與方程式36a中VBV緩沖器模型的未占用空間有關(guān),或是與方程式36b中在最初VBV緩沖器模型狀態(tài)與現(xiàn)行VBV緩沖器模型狀態(tài)間的差異有關(guān),其它在虛擬緩沖層級與未占用層總和間的比較將易于了解。例如,在另一實施例中,可以進行一少于或等于的比較,包含補償?shù)取?br> 在步驟912中,此程序的一實施例根據(jù)方程式37、38及39再分配虛擬緩沖器占用值給具有標(biāo)準(zhǔn)化值的最初狀況d0i、d0p及d0b。
d0i=delta·fri----(37)]]>d0p=delta·frp----(38)]]>d0b=delta·frb----(39)]]>在方程式37、38及39中,delta值可由方程式36計算而來,且fri、frp及frb的值可在很廣的范圍中變化,這些fri、frp及frb的值一般系介于0和1的范圍內(nèi),并可為相同值或相異值。再者,在一實施例中,fri、frp及frb的值系可選自總和值接近1,例如為1。在一實施例中,這些fri、frp及frb值系分別為5/17、5/17及7/17,此fri、ffp及frb的其它可易于為熟悉此項技術(shù)的人士決定。然后此程序可以結(jié)束,例如,進入圖6所示程序的步驟614。
再回到步驟914,在此程序的此處,此程序已判斷sum值并未小于Tnorm值,在步驟914中,此程序的一實施例根據(jù)方程式40、41及42再分配虛擬緩沖器占用變量給具有標(biāo)準(zhǔn)化值的最初狀況d0i、d0p及d0b。
d0i=d0i·deltasum----(40)]]>d0p=d0p·deltasum----(41)]]>d0b=d0b·deltasum----(42)]]>方程式40、41及42系有關(guān)再分配虛擬緩沖器占用變量給最初狀況d0i、d0p及d0b。在等號右邊的值系為調(diào)整前的數(shù)值,且在等號左邊的職責(zé)為調(diào)整后的數(shù)值。當(dāng)delta值與sum值近乎相同時,此些值系產(chǎn)生較小的調(diào)整。當(dāng)sum值較高于delta值時,最初狀態(tài)的虛擬緩沖器占用變量的值d0i、d0p及d0b系相對的減少,需注意的是,消對小的執(zhí)亦可加至方程式40-42的總和值中,以避免被零問題(zero problem)分割。調(diào)整后,此程序隨即結(jié)束,例如,繼續(xù)進行圖6所述程序的步驟614。
圖9B所示為關(guān)于一最終緩沖器占用層級偵測的虛擬緩沖器占用層級的重設(shè)程序的流程圖。此重設(shè)程序系可結(jié)合至編碼程序,例如先前圖6所述速率控制與量化控制程序的步驟627。
此程序由判斷方塊952開始,在前述圖6所述速率控制與量化控制程序的步驟627的解釋,可應(yīng)用的虛擬緩沖器的最終占用(填滿)等,即dji、djp及djb值,其中j=MB_cnt,可以作為下一相同型式圖像編碼的最初狀況,即此些d0i、d0p及d0b值系用于相同型式(I、P或B)的圖像。當(dāng)通過TM5所述的程序進行編碼時,可應(yīng)用的虛擬緩沖器的最終占用,即dji、djp及djb值,一直可以作為下一相同型式圖像編碼的最初狀況。然而,可應(yīng)用的虛擬緩沖器的最終占用并非總是可供使用的適當(dāng)值。
在判斷方塊952中,此程序判斷可應(yīng)用的虛擬緩沖器的最終占用,即dji、djp及djb值,是否適合使用。在一實施例中,適當(dāng)值系以此數(shù)值是否完全合理來判斷,一虛擬緩沖仿真一實體緩沖器,實體緩沖器可為空的、可被資料部份占用,或是完全被資料占用。然而,一實體緩沖器無法擁有數(shù)據(jù)的負(fù)數(shù)量,為了區(qū)別實體可獲得值與非實體可獲得值,本程序的一實施例系比較可應(yīng)用的虛擬緩沖器的最終占用值與預(yù)定的臨界值tr。
在一實施例中,tr值系為零,以區(qū)別實際可獲得的緩沖占用與非實際可獲得的緩沖占用。雖然tr值系相當(dāng)于一范圍值,包含從0到1、2、3等,此tr值不會容許一負(fù)值視為適當(dāng)?shù)淖罱K占用。當(dāng)使用的tr值為零時,本程序系利用檢查正或負(fù)的標(biāo)示來區(qū)別實體可獲得值與非實體可獲得值,標(biāo)示系與可應(yīng)用的虛擬緩沖器的最終占用有關(guān)。當(dāng)進行整數(shù)比較時,此種比較系使用不等式,例如大于負(fù)一,即>-1,亦可使用如相當(dāng)于-1的tr值。當(dāng)最終占用值不適合作為下一相同型式圖像的最初狀況時,此程序即由判斷方塊952繼續(xù)進行至步驟954;否則,此程序?qū)⒂膳袛喾綁K952繼續(xù)進行至步驟956。
在步驟954中,本程序?qū)σ丫幋a成適當(dāng)值的圖像型式的最終緩沖器占用值dji、djp及djb值進行重設(shè),其中j=MB_cnt,此適當(dāng)值包含從零至可應(yīng)用的虛擬緩沖器容量間的任何值。在一實施例中,最終緩沖器占用值可以重設(shè)為接近零的較低值,例如零本身。此程序可以從步驟954進入選擇步驟958,或是從步驟954直接進入步驟956。
在選擇步驟958中,本程序使虛擬緩沖器占用值dji、djp及djb標(biāo)準(zhǔn)化。在前一步驟954,此程序?qū)⒎菍嶓w可獲得值校正為虛擬占用值dji、djp及djb,其系可應(yīng)用于已編碼的圖像型式。例如,此程序可以取得可應(yīng)用的虛擬占用值dji、djp及djb的前負(fù)值,并分配該負(fù)值以保持虛擬占用值dji、djp及djb的總和為零。例如,在一實施例,此程序加入一半的負(fù)值分別給二個其它虛擬占用值。而后此程序系從選擇步驟958前進至步驟956。
在步驟956,其系儲存經(jīng)由步驟954重設(shè)或是經(jīng)由判斷方塊652無修改的最終虛擬緩沖器占用值,而后結(jié)束整個程序。與此程序結(jié)束后,可繼續(xù)進行前述圖6所示速率控制與量化控制程序的步驟619。
圖像群組(GOP)中的場景變化(Scene Change)圖10A所示為一圖像群組的范例,場景在序列圖像間的變化亦可在一圖像群組中出現(xiàn),其中該場景變化系源自攝影機鏡頭的變化、不同節(jié)目的替換、切換至廣告時、編輯或其它原因。隨著場景的變化,播映中圖像的大區(qū)塊會因與前一圖像的大區(qū)塊關(guān)聯(lián)較少或者甚至無關(guān)聯(lián),考慮這樣的情形故多采用圖框內(nèi)編碼而非預(yù)估編碼。因為I圖像僅包含圖框內(nèi)編碼,在處理場景變化的情形時通常采用I圖像方式是較為便利的選擇。
雖然一般傾向用I圖像方式編碼處理場景變化的情形,但若是一個圖像群組結(jié)構(gòu),亦即,序列圖像的型式,可以通過一些系統(tǒng)或編碼器外控制而達(dá)到預(yù)測的效果。例如,一個直播衛(wèi)星(Direct BroadcastSatellite,DBS)系統(tǒng)便通過編碼器取得I圖像、P圖像及B圖像的預(yù)定格式,結(jié)果,場景變化可能發(fā)生在上述的P圖像或B圖像中。傳統(tǒng)的編碼器可通過參考自預(yù)定大區(qū)塊的一個接續(xù)的I圖像或一個接續(xù)的P圖像,將B圖像場景變化的部分補足。
在P圖像的場景變化仍可能有問題,P圖像可以包含圖框內(nèi)編碼大區(qū)塊,亦可以包含預(yù)估編碼大區(qū)塊,然而,P圖像無法參考接續(xù)的圖像,因此場景的變化將特別以只含圖框內(nèi)編碼的方式對大區(qū)塊進行編碼。事實上,對傳統(tǒng)編碼器而言,一個場景變化的P圖像可視為一個I圖像,但是該I圖像具有P圖像的位配置及文件頭信息。對一個傳統(tǒng)編碼器而言,一個P圖像的位配置較一個I圖像少,因此當(dāng)場景變化時便較容易察覺到圖像品質(zhì)變差。一些其它格式的圖像,例如B圖像或另外的P圖像,皆可以通過一個P圖像作場景改變時的預(yù)估編碼,因此場景改變時P圖像的影像傳送品質(zhì)較低。
如前述的圖1及圖5,序列圖像被改編成圖像群組,該群組始于一I圖像而結(jié)束于一緊接后續(xù)的I圖像之前。圖像群組中的個別圖像可以依照呈現(xiàn)的順序或編碼的順序編排,例如,一個第一圖像群組1002如圖10A所示系為依照呈現(xiàn)的順序編排。一個I圖像1004如圖10A所示系為另一圖像群組。
序列圖像可以于編碼及譯碼過程中依照呈現(xiàn)的順序重新編排,例如,第一圖像群組1002,依序列圖像的第一群組,能編入一個第二圖像群組1010,同理亦可編入一個第三圖像群組1020,其中該第三圖像群組系為該序列中將要出現(xiàn)的群組,上述該第二圖像群組及第三圖像群組系以編碼的順序呈現(xiàn),當(dāng)與來自其它群組的I圖像1012遇到時,該第二圖像群組1010產(chǎn)生一個結(jié)尾,因為重新排序的關(guān)系,因應(yīng)編碼而重新編排時,兩個來自第一圖像群組1002并依照呈現(xiàn)的順序編排的B圖像1014、1016將不在該圖像群組中。如圖10B所示的程序,系在一編碼順序中一個圖像群組與另一群組的相互關(guān)系。
第三圖像群組1020將于圖10B所示的流程中詳述。第三圖像群組1020包括兩個在該第三圖像群組1020的I圖像1026的先前圖像1022、1024,以圖式為例,第三圖像群組1020的場景改變發(fā)生在該第三圖像群組1020的P圖像1030位置。圖10B所描述的程序,其優(yōu)點為可通過找出場景變化及重新配置第三圖像群組1020中殘留圖像1032的殘留位值,以改善圖像的品質(zhì)。
圖10B所示為一偵測圖像群組(GOP)中因應(yīng)場景變化重設(shè)編碼參數(shù)的流程圖。在圖式中的具體實施例,程序中的編碼順序系對該圖像群組編排成群組的描述。
如圖10B所示的程序,識別并重新配置圖像群組中殘留圖像的殘留位值,而無須變動到該圖像群組的基本結(jié)構(gòu)。在場景變化的P圖像中,可通過配置較多位而改善圖像品質(zhì)。上述程序可與稍早于圖6所述的速率控制及量化控制方法結(jié)合使用,例如,圖10B所示的程序可以于圖6所示的步驟610之前并入實施。熟知此技術(shù)的人士將可理解基于不超出本實施例的精神與范圍所作出的不同的改良方式。例如,另一實施例,截至目前為止描述的各種程序系可合并使用、重新排序、移除某些步驟或其它類似的組合而形成一新程序。
此程序系從判斷方塊1052開始,在判斷方塊1052中,此程序判斷在圖像的何處系為一場景變化或一瞬間動作上相對大量變化的點,有許多方法能達(dá)成上述判斷一場景變化點。在一實施例中,本程序系利用現(xiàn)有的圖像模擬運算,例如,一個具體實施例為一利用絕對差異總和(SAD)測量方法的程序,其中該SAD測量方法系可相對應(yīng)用在一預(yù)定值、一移動平均值或兼采前述其中之一的判斷場景變化方法。例如,一個超過預(yù)定層級值的SAD測量或一個超過移動平均值兩個層級的SAD測量系可應(yīng)用在判斷場景變化,上述SAD測量的優(yōu)點系為可偵測一場景變化或一瞬間動作上相對大量變化的點。可以理解的是,或許還有另一部分的編碼流程同樣追蹤該場景變化,且在另一實施例,若有另外的場景變化則跳回判斷方塊1052。接著,在場景變化被判斷以后,程序由上述的判斷方塊1052推進至另一判斷方塊1054;否則,上述程序?qū)⒗^續(xù)進行至結(jié)束,例如,接續(xù)進入前述圖6所述速率控制及量化控制程序的步驟610。
在判斷方塊1054中,此程序判斷在P型狀況下哪一種類型的圖像要被編碼。在另一實施例中,如圖10B所示亦可將判斷方塊1052及判斷方塊1054的先后順序交換。承上,當(dāng)該圖像被編碼成P圖像后,程序由判斷方塊1054前進至步驟1056。否則,該程序直接結(jié)束,例如,接續(xù)進入前述圖6所述速率控制及量化控制程序的步驟610。
在步驟1056中,其系一重新配置圖像群組中殘留圖像的殘留位的程序。以圖10A中的第三圖像群組1020為例,當(dāng)于一P圖像1030中判斷一場景變化時,該殘留圖像1032中系有較原本為佳的重新配置的殘留位R。在另一實施例中,將該P圖像1030視為一I圖像,并且對其殘留圖像1032作編碼動作,但并不變動該P圖像1030的型態(tài),所以亦不變動該圖像群組的結(jié)構(gòu)。
前述將該P圖像1030視為一I圖像并且對其殘留圖像1032作編碼動作的流程系可由許多方式達(dá)成,例如,在一實施例中,一程序的實施例系可通過將場景變化的P圖像編碼而減少該P圖像的編碼量Np,且利用該減少的Np通過方程式6重整目標(biāo)位配置,其中該方程式6系舊式演算系統(tǒng)中專門用以計算一個I圖像的目標(biāo)位配置Ti,其系可應(yīng)用于如圖10B所示的用于場景變化情況下計算一個P圖像的目標(biāo)位配置的流程,方程式43表示一計算上述目標(biāo)位配置的表現(xiàn),記為Tp′。
Tp'=max{(R1+(Np-1)XpXiKp+NbXbXiKb),(bit_rate8·picture_rate)}----(43)]]>此一改良式目標(biāo)位配置方式,系應(yīng)用于一含有較大位的P圖像,如此針對該P圖像的場景變化系可編碼成更高品質(zhì)的格式。方程式7及8系可應(yīng)用在圖像群組中殘留的P圖像及B圖像次序列的編碼。上述該程序更可隨意的調(diào)整對應(yīng)于場景變化的復(fù)雜的預(yù)估值Xi、Xp及Xb,例如圖6所示,稍早提及應(yīng)用方程式1至3的步驟608所提供的速率控制及量化控制方法。此程序然后結(jié)束,例如,繼續(xù)進入步驟610的速率控制及量化控制程序??梢岳斫獾氖牵?dāng)一個圖像群組中不止一個場景變化,可以重復(fù)使用如圖10A及圖10B所示的流程。
B圖像大區(qū)塊的選擇性跳過(Selective Skipping)
圖11所示為在一視訊編碼器中資料的選擇性跳過流程示意圖。此一選擇性跳過資料系可使視訊編碼器即使在極端的情況下亦能保持良好的速率控制。該選擇性跳過資料系可使該視訊編碼器產(chǎn)生資料流型式,該資料流系可解決譯碼器緩沖器的占用層級較低的缺點,例如可改善譯碼器緩沖器的緩沖不足的問題。前述的譯碼器緩沖器的緩沖不足可能發(fā)生在當(dāng)錄放位速率超過一資料信道可承受的特定位傳輸速率一定的時間后,譯碼器緩沖器的緩沖存儲器耗盡所導(dǎo)致,該譯碼器緩沖器的緩沖不足情形,系影像播放時極不欲見到的情況且緩沖不足亦將導(dǎo)致播放的暫時中斷。
即使并未發(fā)生前述譯碼器緩沖器的緩沖不足情形,資料流的譯碼器緩沖器占用層級較低的情形仍是極不欲見到的,如同早先于圖4所示,一個緩沖器模型,例如VBV緩沖器模型,其系通常應(yīng)用于一編碼過程中用以調(diào)整譯碼器緩沖區(qū)器的占用層級。當(dāng)傳統(tǒng)編碼器緩沖器占用層級是極危險的低標(biāo)時,該傳統(tǒng)編碼器必須嚴(yán)格地保持編碼位數(shù)并在維持速率控制以及圖像品質(zhì)之間作一妥協(xié)。前述VBV緩沖器模型占用層級過低的狀況,可以很明顯從大區(qū)塊的品質(zhì)嚴(yán)重下降的現(xiàn)象中觀察到。
圖11揭示一流程,其系當(dāng)偵測到過低的緩沖器模型占用層級率時將跳過某些選定的大區(qū)塊而不予編碼,如此可通過減少某些不影響圖像品質(zhì)的位數(shù)的編碼,以保持相對于傳統(tǒng)技術(shù)仍具有良好的速率控制的效果。例如圖11所示的程序能與先前提及的圖6所示的速率控制及量化控制程序結(jié)合使用,熟知此一技術(shù)的人士可以在不超出本發(fā)明的精神與范圍的情形下,當(dāng)能理解一些延伸的應(yīng)用方法。例如,在另一實施例,前述種種程序的各部分可以被合并使用、可以重新調(diào)整順序、可以移除某些步驟,諸如此類等。
此程序系開始于判斷方塊1102,其系判斷在一B圖像中指定哪一圖像編碼,其中該B圖像系可來自其它圖像,I圖像或P圖像,B圖像系以預(yù)估編碼為基礎(chǔ)的方式編碼成大區(qū)塊,其中該I圖像或P圖像系較播放順序在時間上稍早或稍晚。然而,在編碼過程中,上述用以輔助編碼的其它圖像(I圖像或P圖像),系較早于該B圖像編碼前即已編譯。當(dāng)前述B圖像被編碼后,程序由判斷方塊1102前進至判斷方塊1104;否則,該流程立刻結(jié)束,例如,回到前述圖6所述的步驟623提供的程序。
在判斷方塊1104中,該程序系判斷是否VBV緩沖器占用層級相對處于較低的狀態(tài)。在編碼流程中,若對一圖像的B圖像進行編碼,則必須考慮編碼時將有一個較大的位消耗量,另一情況,系為上述的位消耗量可能造成VBV緩沖器的低占用層級,例如,該程序可監(jiān)控在前述圖7所示VBV緩沖器模型的占用層級Vstatus,而且比較此占用層級Vstatus與一預(yù)定臨界值,例如Vcritical,可于該編碼過程中比較每個變化點中對于上述兩數(shù)值的差異。在一實施例中,在一圖像編碼之后以及已判斷VBV緩沖器模型的占用層級之后即可進行比較,例如前述圖6所述速率控制與量化控制的步驟638或步驟610之后。在一實施例中,在編碼前圖像的大區(qū)塊明顯比編碼過后為佳,因此,亦保留當(dāng)希望保存較大位量時能夠跳過所有大區(qū)塊的實施方式。
在一范例中,Vcritical系設(shè)定為VBV緩沖器模型容量的1/4,需注意的是,VBV緩沖器模型或類似緩沖器的容量系隨著編碼標(biāo)準(zhǔn)而改變,Vcritical的適當(dāng)值可以選自一寬廣的范圍,例如,也可以使用VBV緩沖器模型容量的1/16、1/8、1/10及3/16等其它值,其它值系為熟知此技術(shù)的人士所易于決定者。在一實施例中,此程序容許此Vcritical值得設(shè)定由一使用者所設(shè)定。當(dāng)VBV緩沖器模型占用層級vstatus掉落于預(yù)定臨界值以下時,此程序系從判斷方塊1104繼續(xù)進行至步驟1106;否則,此程序系從判斷方塊1104進行至步驟1108。
在步驟1106,此程序跳過在B圖像中的大區(qū)塊。在一實施例中,所有大區(qū)塊都被跳過,在另一實施例中,則跳過被選擇的方塊。例如,跳過大區(qū)塊的數(shù)目系與VBV緩沖器的占用層級Vstatus有關(guān),一已譯碼的B圖像形成,但對跳過大區(qū)塊卻具有相對小的資料。在一編碼過程中,在資料流中的位或標(biāo)示旗幟即表示跳過的大區(qū)塊,例如,在一已知為″直接模式″的技術(shù)中,其表示跳過大區(qū)塊的標(biāo)示旗幟系插入在前、后(在顯示時間)I圖像或P圖像的大區(qū)塊間的譯碼過程中;另一標(biāo)示旗幟則代表從顯示時間前的I圖像或P圖像復(fù)制而來的跳過大區(qū)塊;更有一標(biāo)示旗幟代表從顯示時間后的I圖像或P圖像復(fù)制而來的跳過大區(qū)塊。此些大區(qū)塊的跳過系有助于已較少位對B圖像進行編碼,在一范例中,含有所有跳過大區(qū)塊的MPEG-2的B圖像的編碼僅需使用約300位。在B圖像大區(qū)塊的選擇性跳過完成時,此程序即結(jié)束,例如,再回到前述圖6所述程序的步驟623。
在步驟1108中,此程序已判斷VBV緩沖器占用層級Vstatus并未相對較低,且此程序?qū)圖像的大區(qū)塊編碼。在完成對B圖像的大區(qū)塊編碼后,此程序即可結(jié)束,例如,回到圖6的步驟623。在判斷方塊1102的判斷及/或判斷方塊1104系可在圖6的程序中的不同點進行,然后再進行步驟1106或步驟1108。
適應(yīng)性I、P訊框及B訊框DCT過濾一MPEG或是其它視訊編碼器會遭遇到較困難壓縮至一較低位速率的視訊序列,此種情況可以利用可變位速率壓縮來避免,其中編碼器對這些難以編碼場景提高其實時位速率,然而,固定位速率壓縮技術(shù),其系可在視訊壓縮光盤(VCD)、數(shù)字TV播放(包括衛(wèi)星、纜線或其它大氣傳播),及其它類似者,在位速率的適應(yīng)性的增加通常無法應(yīng)用在VBV緩沖器模型順從限制有用的編碼圖像的位數(shù)目,反而容許品質(zhì)。例如,傳統(tǒng)編碼器會增加量化參數(shù)QP的值,然后產(chǎn)生可見壓縮加工物(visiblecompression artifacts),壓縮加工物的范例系可被直接觀察到,包括在這些難以編碼視訊場景中的一壓縮瑕疵(Blockiness)及抖動(jerkiness)現(xiàn)象。
在圖11所描述的一程序系維持VBV緩沖器的要求及合理圖像品質(zhì),其系對VBV緩沖器模型占用層級的反應(yīng)來選擇性跳過在B圖像中的大區(qū)塊編碼,描述在圖12及圖13的程序可用來結(jié)合或獨立于前述圖11所示的程序。
在圖12及圖13中,此程序有助于選擇性及/或適應(yīng)性的過濾離散余弦轉(zhuǎn)換(DCT)系數(shù),以降低圖像編碼所需的位數(shù),此程序可以適應(yīng)性的過濾DCT系數(shù),其系相對于VBV緩沖器模型占用層級及可觀察到的量化參數(shù)層級。選擇性過濾系有助于改善在使用于圖像編碼的位數(shù)與圖像品質(zhì)間的交換,此情況系為受限制的編碼位和要求的VBV緩沖器模型遵循或是相似的緩沖器模型遵循。此DCT系數(shù)的過濾有異于過濾傳統(tǒng)量化表所提供的過濾,此量化表的內(nèi)容一般在編碼過程中系固定者,且在比特流中傳送,使得編碼器與譯碼器可以在一封閉回路(closed-loop)中使用相同的量化表。在此描述的DCT系數(shù)過濾系與僅在編碼器中DCT系數(shù)的選擇性″開放回路(open-loop)″過濾有關(guān)。較有利地,在譯碼器中不需要任何補償調(diào)整。
選擇性DCT過濾通常系描述在8×8影像區(qū)塊格式中,此8×8影像區(qū)塊系使用在MPEG1、MPEG2以及MPEG4中,從事此技藝的人士應(yīng)該了解此DCT過濾技術(shù)亦可適用于其它視訊壓縮標(biāo)準(zhǔn),例如H.264,其區(qū)塊尺寸為4×4。
圖12所示為選擇性DCT過濾程序的流程圖,在此編碼過程中,編碼器執(zhí)行一移動搜尋1210,執(zhí)行一移動壓縮1220,并繼續(xù)進行DCT系數(shù)的計算1230。在一實施例中,然后此程序進行選擇性過濾1240該DCT系數(shù)及/或選擇性限制QP值1250至相對較低值,可了解的是過濾1240及QP值的限定與界限1250系可選擇性的應(yīng)用于相對的VBV緩沖器模型占用層級及/或應(yīng)用于較高QP值的檢測。由于較高QP值可以降低使用于資料編碼的位數(shù),以致高QP值引人注目地降低圖品質(zhì)而增加圖像壓縮瑕疵。然后此程序繼續(xù)進行DCT系數(shù)的量化1260。當(dāng)過濾和限制之后,此程序以調(diào)整的QP值對過濾的DCT系數(shù)進行量化,可了解的是當(dāng)VBV緩沖器模型占用層級為較高時,此程序可選擇不過濾DCT系數(shù)以及不修改QP值。如后面圖13所描述的內(nèi)容,此程序的一實施例也可以改變相對于VBV緩沖器模型占用層級的過濾強度。在圖13所述的程序,頻率域(frequencydomain)中的過濾技術(shù)范例將首次被敘述。
在頻率域中,ωX和ωy分別代表沿著水平方向與垂直方向的頻率域變量,其系在一影像資料的8×8區(qū)塊中的2-D離散余弦轉(zhuǎn)換(DCT)后或是在移動壓縮后的殘留誤差。在此頻率域中,ωX=0與ωy=0的值相當(dāng)于DCT系數(shù),換言之,影像資料的8×8區(qū)塊中的平均值或殘留誤差,而當(dāng)ωX=7與ωy=7的值相當(dāng)于在8×8區(qū)塊的影像資料中的最高頻率詳述或殘留誤差,可了解的是對于4×4區(qū)塊的影像資料而言,ωX=3與ωy=3的值相當(dāng)于最高頻率詳述。
人類視覺與感知能力對低頻率具有較多的敏感性,對較跟貧則具有較少的敏感性,同時,相對有許多視訊影像在高頻相對于低頻時則具有較少的能量。然而,當(dāng)視訊資料以DCT系數(shù)的量化予以壓縮時,特別是當(dāng)量化器(Quantizer)等級采用高值(必須包含大量化誤差)時,高細(xì)節(jié)訊框(high-detail frames)的殘留誤差在高頻區(qū)域具有重要的能力,此將導(dǎo)致此些圖像需要重大數(shù)量的位來被壓縮,甚至是在最高量化器等級值。
稍后在圖13所描述的程序中,檢測編碼場景系為如此困難,且一低通濾波器系選擇性應(yīng)用在編碼過程的影像區(qū)塊,應(yīng)用時,在執(zhí)行移動搜尋之后則提供一過濾步驟。如此,高頻系數(shù)將被犧牲(其值將降低或甚至設(shè)定為0),且因此將稍微降低空間分辨率,特別是一視訊圖像的高細(xì)節(jié)部份,然而,在影像品質(zhì)的總平衡系被大大的改善。在一實施例中,系使用一非分離角錐型低通濾波器, ″角錐″指的是當(dāng)濾波器頻率響應(yīng)由低頻(從DC)改變?yōu)楦哳l(最大AC)時的傾斜形狀,當(dāng)然,其它濾波器形狀系可由熟知此項技術(shù)的人士所易于決定者。在一實施例中,此角錐型濾波器系依靠一正值參數(shù),s≥1,并可以方程式44表示。
Hs(ωx,ωy)=max{0,s-ωx-ωy}s,0≤ωx,ωy≤7----(44)]]>可了解的是頻率變量的范圍系根據(jù)以適當(dāng)編碼標(biāo)準(zhǔn)定義的影像區(qū)塊尺寸,s的倒數(shù),即1/s,有關(guān)此濾波器的強度。在一實施例中,濾波器強度(1/s)的值系介于0與1之間,尤其是當(dāng)濾波器強度(1/s)為0時,即s→∞,頻率響應(yīng)Hs具有固定值=1,其意思為無過濾(DCT系數(shù)沒有改變)。當(dāng)濾波器強度(1/s)相對較高時,s=1,且任何地方的Hs具有固定值為0,除了當(dāng)ωX=ωy=0(DC系數(shù))之外。在有限制的案例中,濾波器的應(yīng)用系利用因素8在水平方向與垂直方向有效降低視訊圖像(即每8個樣本取一個)。
濾波器的形狀可以隨著強度參數(shù)而改變,在所示的范例中,強度(1/s)的描述相當(dāng)于1/32(弱)、1/16(中)及1/8(強),表III、表IV及表V所示為這些變化濾波器強度的范例。相對于表III、表IV及表V的濾波器的圖式分別如圖14、圖15及圖16所示,可了解的是從事此技術(shù)的人士可以做許多可能性的變化,包含濾波器狀的變化與濾逼器強度的變化。例如,在其它實施例中,可以使用超過三個不同的濾波器或是少于三個濾波器。
表III32 31 30 29 28 27 26 2531 30 29 28 27 26 25 2430 29 28 27 26 25 24 2329 28 27 26 25 24 23 22/32(弱,強度=1/32)28 27 26 25 24 23 22 2127 26 25 24 23 22 21 2026 25 24 23 22 21 20 1925 24 23 22 21 20 19 18表IV16 15 14 13 12 11 10 915 14 13 12 11 10 9 814 13 12 11 10 9 8 713 12 11 10 9 8 7 6/16(中,強度=1/16)12 11 10 9 8 7 6 511 10 9 8 7 6 5 410 9 8 7 6 5 4 39 8 7 6 5 4 3 2
表V8 7 6 5 4 3 2 17 6 5 4 3 2 1 06 5 4 3 2 1 0 05 4 3 2 1 0 0 0/8(強,強度=1/8)4 3 2 1 0 0 0 03 2 1 0 0 0 0 02 1 0 0 0 0 0 01 0 0 0 0 0 0 0在表III、表IV及表V中,此DC DCT系數(shù)(ωX=0及ωy=0)位于上面左邊,水平頻率變量ωX逐漸向右增加,且垂直頻率變量ωy則逐漸向下增加,其它強度及形狀亦為熟悉此技術(shù)的人士易于思及者。
值得注意的是在所示范例中,濾波器分別使用9/16(18/32)(弱)、1/8(2/16)(中)以及0(強),其系為位于最高頻率DCT系數(shù)位置AC(7,7)的三個濾波器強度,且保持在DC位置(0,0)的值為1;決定好濾波器時,DC系數(shù)不會改變。對其他DCT系數(shù)的濾波器值系位在連接此些點的平面上,使較高的濾波器具有較陡峭的傾斜平面。當(dāng)然,其它變化亦為熟悉此技術(shù)的人士易于決定者,并可包含具曲面的形狀。
在一實施例中,變量s系選自2冪(例如1/8、1/16、1/32等),以便使此除法可有效地利用比復(fù)合式除法運算較為快速的位轉(zhuǎn)換運算完成。然而,可以了解的是濾波器強度可假設(shè)為介于0和1之間的其它正值。更進一步地,有較多地通用濾波器系使用雙位轉(zhuǎn)換來支持倍數(shù)變量的乘法運算與除法運算,例如,處理器系可支持多媒體延伸(multimediaextension,MMX)指令集或是單指令多數(shù)據(jù)(Single InstructionMultiple Data,SIMD),其系已描述于前述的圖6。2冪的利用將大幅簡化這些或相似架構(gòu)的全面性補償,并增加處理速度,使視訊編碼可以實時完成。例如,過濾程序系有助于以相對可忽略的計算來補償,且在一范例中其系大概為1%。
稍后在圖13所描述的詳細(xì)程序中,此DCT過濾可以應(yīng)用在全部視訊序列,適應(yīng)于一圖像的基礎(chǔ)案例,大區(qū)塊接著大區(qū)塊的基礎(chǔ),或是三者的結(jié)合??闪私獾氖堑屯V波器可設(shè)定為永遠(yuǎn)使用,例如,在專用的硬件編碼器,但其濾波器響應(yīng)系可選擇地,使此低通濾波器無功效,因而使此濾波器有效失去作用。不管是否應(yīng)用于DCT過濾及DCT過濾強度,因素數(shù)量系可被適當(dāng)采用。在一實施例中,已計算好的狀態(tài)變量系有效用來做判斷,使額外的處理器經(jīng)常費用及/或額外的硬件電路系為較低者。例如,在一實施例中,此DCT過濾的選擇系基于下列二個參數(shù)的觀察VBV緩沖器模型占用及現(xiàn)行訊框的平均運行的QP,此VBV緩沖器模型系詳細(xì)描述于前述圖7中,有利地,VBV緩沖器模型或其它類似緩沖器模型的理論占用層級通常系通過一視訊編碼器來維持,例如一MPEG視訊編碼器。
平均運行量化參數(shù)QP也是一種狀態(tài)變量,其系維持在一視訊編碼器中。當(dāng)許多變化存在于計算一運行平均值時,例如,多少樣本被使用于運行平均值中,不管此運行平均值是否為不規(guī)則地衡量等,許多視訊編碼器追蹤此QP的平均值以監(jiān)控視訊品質(zhì)。一運行平均值QP系相對的高,例如一接近上界限的QP系接近31,其表示具有相對壓縮瑕疵圖像的較低品質(zhì)編碼。相反地,一相對低運行平均值QP等,其平均值系接近一最低界限,例如1,其表示編碼器在編碼過程具有較高視訊品質(zhì)且無壓縮瑕疵。在一實施例中,圖像數(shù)量(N)一般用來計算一移動或運行平均QP,此數(shù)量系位于2-30范圍中。
在一實施例中,相對于VBV緩沖器模型狀況及平均運行QP,在(a)使用DCT過濾與使用一較低QP值或(b)不執(zhí)行DCT過濾及使用一較高QP值間進行交換,可以了解的是(b)可相對于傳統(tǒng)編碼技術(shù)。
在一實施例中,當(dāng)編碼器應(yīng)用于DCT過濾時,另一除法可以用來判斷過濾的強度或大小,為從事此技技術(shù)者了解的,濾波器強度數(shù)量系可由編碼器選擇而在一較廣的范圍內(nèi)變化,例如2、3、4或更多濾波器強度。在所示實施例中,表III、表IV及表V,此編碼器自3個具有相對濾波器系數(shù)矩陣的濾波器強度(1/32為弱,1/16為中,1/8為強)中選擇,在濾波器強度上的許多變化系為可能的。
在濾波器系數(shù)的另一范例,濾波器進行的過濾數(shù)量可隨著濾波器頻率響應(yīng)的調(diào)整而變化,如表VI、表VII及表VIII所示。即使波器強度(1/s)保留在相同值,過濾數(shù)量也會因而改變。描述在表VI、表VII及表VIII的濾波器響應(yīng),對每一濾波器而言,濾波器的強度(1/s)為1/16。
表VI16 15 14 13 12 11 10 915 14 13 12 11 10 9 014 13 12 11 10 9 0 013 12 11 10 9 0 0 0/16(弱)12 11 10 9 0 0 0 011 10 9 0 0 0 0 010 9 0 0 0 0 0 09 0 0 0 0 0 0 0表VII16 14 12 10 8 6 4 214 12 10 8 6 4 2 012 10 8 6 4 2 0 010 8 6 4 2 0 0 0/16(中)8 6 4 2 0 0 0 06 4 2 0 0 0 0 04 2 0 0 0 0 0 02 0 0 0 0 0 0 0表VIII16 8 4 2 0 0 0 08 4 2 0 0 0 0 04 2 0 0 0 0 0 02 0 0 0 0 0 0 0/16(強)0 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0此過濾運算包含在DCT系數(shù)與先前所列系數(shù)間的一簡單數(shù)量的乘法運算,許多處理器支持可執(zhí)行平行倍數(shù)乘法運算的指令。一范例的處理器架構(gòu)系可支持SSE指令集或是MMS指令集,以及大量相乘的指令″PMUL″。有利地,除法運算可有效率的右位轉(zhuǎn)換運算有關(guān),只要是2冪的因素。適應(yīng)性選擇DCT過濾程序?qū)⒈辉斒鲇诤蟆?br> 圖13所示為在一視訊編碼器中適應(yīng)性選擇DCT過濾程序之一范例流程圖,從事此項技術(shù)者對上述的程序以不同方式所做的修改仍未脫離本發(fā)明所揭示的精神與范圍,例如,在另一實施例中,所示程序的各種不同部份系可結(jié)合在一起,可以可供替代的順序重新排列,可以被移除,以及其它類似者。
此程序由步驟1302開始,其中此程序系檢索VBV緩沖器模型占用層級,其系可以先前的圖像編碼進行更新。較有利地,緩沖器模型的占用層級系已在一編碼程序中計算完成,可了解的是此程序并不需要檢索占用層級直到使用占用層級,但是在步驟1302所示的資料檢索更為清楚。此程序?qū)牟襟E1302前進至步驟1304。
在步驟1304中,本程序計算或檢索該運行QP平均值,其系為已知的移動平均值。在一實施例中,運行平均值系來自現(xiàn)存運行平均值的重新使用。在另一實施例中,運行平均值系分開計算的。在另一實施例中一新的QP運行平均值系由現(xiàn)存運行平均值計算而來的,且一最近的運行平均值的衡量系以方程式45表示。
QPx_avg=*(QPrun+QPx_prev) (45)在方程式45,QPrun相當(dāng)于由系統(tǒng)狀態(tài)變量檢索出的一平均運行QP,且QPx_prev相當(dāng)于相同型式(I、P或B)之前圖像的QP值。方程式45的結(jié)果QPx_avg之后可以被使用于與一被選擇的臨界值進行比較,即過濾的QP臨界值(QPflt_thr)。而后此程序從步驟1304前進至判斷方塊1306。
在判斷方塊1306中,此程序比較運行平均QP與一臨界值,例如一預(yù)定的臨界值。在一實施例中,可選擇QPflt_thr,使QPflt_thr相當(dāng)于一平均QP的視訊品質(zhì)臨界值QPx_avg,其系表示在視訊中的壓縮瑕疵幾乎為明顯的??闪私獾氖谴伺R界值可載在一寬廣的范圍內(nèi)變化,且可依據(jù)環(huán)境狀態(tài),例如視訊分辨率、視訊的訊框速率以及位速率上的限制。在一實施例中,此程序可以對較低分辨率視訊使用一較小的臨界值。在一實施例中,此程序可以使用一QPflt_thr=6的臨界值于VCD尺寸視訊(352×240)或是較小的分辨率。對DVD而言,即NTSC(720×480),或其它類似尺寸視訊,QPflt_thr=14的值系有利于使用。較小分辨率視訊,例如VCD,因其低分辨率視訊較高分辨率視訊具有較大的實際像素尺寸,所以對視訊壓縮瑕疵具有更多的敏感性,亦可使用其它值,且其它值仍然可為熟悉不同編碼標(biāo)準(zhǔn)(MPEG4/H.264)或不同視訊訊框尺寸及訊框速率等領(lǐng)域的人士所易于決定者。
如圖所示的程序,當(dāng)運行平均值超過臨界值(QPx_avg>QPflt_thr)時,程序?qū)呐袛喾綁K1306繼續(xù)進行至步驟1308;否則,程序?qū)呐袛喾綁K1306繼續(xù)進行至1312。
在步驟1308,此程序設(shè)定一標(biāo)示旗幟來表示判斷方塊1322在過濾圖像的所有大區(qū)塊而進入步驟1324,可了解的是此程序變化為可能的,且在此程序的另一實施例中,少于所有大區(qū)塊被過濾,用以檢測超過臨界值運行平均值。再回到圖標(biāo)的實施例,其中所有大區(qū)塊被選擇以運行平均值超過臨界值進行過濾,此程序系從步驟1308前進至步驟1310。
在步驟1310,本程序選擇一濾波器強度來應(yīng)用于DCT系數(shù),如前面所描述者,濾波器的作用可以隨著濾波器頻率響應(yīng)與濾波器強度(1/s)而改變。在所示的程序中,在步驟1302檢所到的VBV緩沖器模型占用層級系用來判斷該濾波器強度。在一實施例中,對VBV緩慶模型占用層級的最初與長期目標(biāo)為VBV緩沖器模型容量的7/8(7/8的vbv_buffer_size)。此VBV緩沖器模型容量的7/8的目的為視訊編碼器的代表性目的,可了解的是此標(biāo)準(zhǔn)可在廣泛的范圍內(nèi)變化,且亦隨著過濾強度的數(shù)目而改變,此過濾強度為編碼器所選擇者,且系基于VBV緩沖器模型占用的不同VBV目的及/或臨界值。
在一實施例中,較低的VBV緩沖器模型占用,可應(yīng)用濾波器的強度則較強。在一實施例中,該VBVcur表示VBV緩沖器模型占用的當(dāng)前圖像或訊框,且濾波器強度系選自下列內(nèi)容。當(dāng)(VBVcur>6/8*vbv_buffer_size)時,DCT過濾強度設(shè)定為弱;在6/8*vbv_buffer_size的臨界值以下,若(VBVcur>3/8*vbv_buffer_size),DCT過濾強度設(shè)定為中;在3/8*vbv_buffer_size的臨界值以下,DCT過濾強度設(shè)定為強。之后此程序系從步驟1310前進至步驟1320。
現(xiàn)在再回到判斷方塊1306,當(dāng)運行平均值系小于或等于臨界值,QPx_avg≤QPflt_thr,此程序繼續(xù)進行至步驟1312,其中被選擇的大區(qū)塊可被過濾。在一實施例中,此程序決定過濾應(yīng)該應(yīng)用在所選擇的大方塊,且過濾系在一較弱的強度,例如前述表III所敘述的較弱濾波器強度。此程序?qū)牟襟E1312前進至步驟1320。
在步驟1320中,本程序系計算的大區(qū)塊的量化參數(shù)。此步驟13320相當(dāng)于處理一圖像大區(qū)塊的回路的開始,物同技術(shù)可以用來計算此量化參數(shù)(QP)。在一實施例中,系使用MPEG的TM5所描述的標(biāo)準(zhǔn)技術(shù)來計算QP值。在另一實施例中,亦可使用其它技術(shù),例如,描述于前述圖6所示的QP計算技術(shù),在TM5型式的速率控制,一特定的大區(qū)塊(MB)i的量化參數(shù)(QP)系利用虛擬緩沖器狀態(tài)與大區(qū)塊的空間活動來決定,假如先前MB的位配置過量,即太多位被消耗,該TM5速率控制可以利用分配一較高QP值給后續(xù)的大區(qū)塊(MB)來補償。
值得注意的是,TM5型式的速率控制系使用一方法,稱之為″適應(yīng)性量化(adaptive quantization)″,來分配一相對小的QP給平面區(qū)域(低特征)的大區(qū)塊,并分配一相對高的QP給在忙碌或高特征區(qū)域的大區(qū)塊。結(jié)果,許多大區(qū)塊仍不利地及一貫地分配相對高QP值而導(dǎo)致是絕不愉快的加工物,例如壓縮瑕疵。如稍后所描述者,當(dāng)執(zhí)行DCT過濾來降低在編碼過程中位消耗數(shù)量而依從VBV緩沖器模型限制時,本程序的一實施例有利于降低相對高的QP值而減少壓縮瑕疵。此程序系從步驟1320前進至判斷方塊1322。
在判斷方塊1322中,本程序判斷是否過濾所有的大區(qū)塊或是只過濾選擇的大區(qū)塊。在圖所示的程序中,此程序監(jiān)控在步驟1308設(shè)定標(biāo)示旗幟的狀態(tài),當(dāng)所有大區(qū)塊全部被過濾時,此程序?qū)呐袛喾綁K1322繼續(xù)進行至步驟1324;否則,此程序?qū)呐袛喾綁K1322繼續(xù)進行至判斷方塊1328。
在步驟1324中,本程序應(yīng)用選擇的DCT濾波器至DCT系數(shù),并利用資料中的增加零數(shù)量過濾來減少位數(shù),因而使數(shù)據(jù)壓縮的數(shù)量減少。例如,額外的零存在可有助于增加連續(xù)遭遇零數(shù)量,其系可以壓縮運行長度來代表。此程序?qū)牟襟E1324前進至步驟1326。
在步驟1326中,此程序設(shè)置一上界限值于QP值,以減輕影像壓縮瑕疵,相較于一使用相同QP值的中間大區(qū)塊(包含前面的、后面的及插入的模式)而言,在一內(nèi)部大區(qū)塊(intra-macroblock)中更可明顯觀察到影像壓縮瑕疵效應(yīng)。在一實施例中,一較小QP界限值系有利于使用在內(nèi)部大區(qū)塊更甚于使用在中間大區(qū)塊。一內(nèi)部大區(qū)塊的上界限值與一中間大區(qū)塊的上界限值系分別表示為QPintra_thr與QPinter_thr。在一實施例中,此些界限值可根據(jù)方程式46的VBV緩沖器模型占用來進行適應(yīng)性選擇。
例如,若當(dāng)前VBV緩沖器占用層級系介于VBV緩沖器模型容量的4/8與5/6之間,使得內(nèi)部大區(qū)塊的QP上界限值與中間大區(qū)塊的QP上界限值分別選擇為14與20。對QP界限值的其它值,亦即,QPintra_thr與QPinter_thr的其它值系為熟悉此技術(shù)者易于決定者。該上界限值系應(yīng)用于步驟1320的QP計算。當(dāng)步驟1320計算的QP值大于所給的界限值(QPintra_thr與QPinter_thr)時,系使用結(jié)合的QP界限值。此程序則從步驟1326前進至步驟1330,其中該大區(qū)塊系為已編碼者。
現(xiàn)在再回到判斷方塊1328,在此程序的此點,該程序判定步驟1324的DCT過濾應(yīng)用,并判斷大區(qū)塊于步驟1326可能的QP調(diào)整。在一實施例中,當(dāng)運行QP值超過前述方程式46所述的臨界值時,此程序從判斷方塊1328繼續(xù)進行到DCT過濾步驟1324以及QP調(diào)整狀態(tài)。當(dāng)運行QP值位超過臨界值時,使程序并沒有進行DCT過濾以及QP的調(diào)整,進行前進至步驟1330。
在步驟1330中,本程序編碼該大區(qū)塊,此編碼過程可以是通過判斷方塊1328進入至步驟1330的未過濾編碼,或是通過步驟1326進入步驟1330的已過濾編碼。而后此程序系從步驟1330前進至判斷方塊1332。
在判斷方塊1332中,本程序判斷圖像中的所有大區(qū)塊是否已經(jīng)完成編碼過程,當(dāng)大區(qū)塊仍然處于編碼狀態(tài)時,此程序即會回到步驟1320繼續(xù)整個處理程序;否則,此程序?qū)⒔Y(jié)束,并可于要求的后續(xù)訊框的編碼過程重新開始。
大區(qū)塊模式判斷圖17為選擇一大區(qū)塊模式的流程圖。習(xí)知的視訊編碼技術(shù)在選擇大區(qū)塊模式時是采用一種不適當(dāng)?shù)呐袛喾绞?。于本發(fā)明的一具體化實施例中于模式判斷時加入編碼成本作為移動向量,藉此增加選擇模式的品質(zhì)。更者,于判斷時額外再使用一個L1基準(zhǔn),以降低使用編碼成本作為移動向量所增加的計算復(fù)雜度。
在步驟1710,程序執(zhí)行一移動搜尋。當(dāng)進行完該大區(qū)塊的每一個編碼模式移動向量搜尋(內(nèi)部移動補償、零移動向量、場內(nèi)移動補償?shù)?后,進行一剩余錯誤的量測,為了判斷某些大區(qū)塊適當(dāng)?shù)木幋a模式,一般的編碼器計算平方和的總數(shù),也就是大家所知的L-2基準(zhǔn)。該平方的和數(shù)接續(xù)與原始圖像值進行比對。在一般的系統(tǒng)內(nèi),最小平方和為光學(xué)編碼模式。
計算平方和的缺點是它是一個相當(dāng)奢侈的計算程序并且會導(dǎo)致編碼過程變慢。例如,當(dāng)進行這種型態(tài)的方塊計算的判斷模式總和將消耗MPEG壓縮的全部編碼復(fù)雜性的10%。
在步驟1720,程序計算或接收作為移動向量的絕對差異總和(SAD)。在本發(fā)明中,絕對值總和,也就是L1基準(zhǔn),于模式判斷時被用來作為測量基準(zhǔn)。更佳的是,剩余錯誤的絕對值總和實際上等于移動收尋中程序判斷何者為最佳候補大區(qū)塊預(yù)測的絕對差異總和值(SAD)。除了原始畫素的L1基準(zhǔn)之外,該剩余錯誤的L1基準(zhǔn)編碼器也能夠使用,而不需要更進一步的計算。不管從哪里計算,因為L1基準(zhǔn)的運算程序不需要乘法計算,所以L1基準(zhǔn)較計算L2基準(zhǔn)較為簡便且CPU能力耗費較少。另外,選擇程序直接的持有效的指令如先前圖6中所描述。
另外一個缺點系為習(xí)知用來模式判斷的方法是純粹通過扭取量測來判斷,即模式判斷選擇具有最少扭取的模式。然而,每一個模式并不符合相對應(yīng)消耗的位數(shù)。例如,沒有移動向量的大區(qū)塊模式較其它模式小。因此,利用習(xí)知方式所選擇出來的模式可以選擇出一個模式,其無法避免每一位消耗時畫面扭取的問題。
在很多情況下,一個具有稍微較大扭取與較小運動向量差值(DMV)或者較少運動向量(DMV的值將判斷該移動向量編碼所使用的位數(shù))可以較一具有較低扭曲的模式具有較佳扭取速率型態(tài)。如一個DMV的范例,如果一個特定MB的移動向量(MV)為(4,3),這個MB的MV仿真為(3,6),因此該DMV為(4-3,3-6)=(1,-3)。在這個例子中,用來修改SAD的DMV值為|1|+|-3|=4。
在步驟1730,程序通過調(diào)整SADORG為SADMOD來補償在SAD計算的移動向量的編碼成本。一個具體化的例子使用一個相對簡易判斷原則來考慮DMVs速率與他們相關(guān)的扭曲。一個具體化的實施例,因為判斷原則與圖像及移動補償型態(tài)呈現(xiàn)高度相關(guān)時,該判斷原則的選擇系依據(jù)該圖像為P圖像、B圖像與是否該圖像使用場仿真或者訊框仿真(對交錯式視訊與對累進式視訊)。用半畫素單位表示的DMV的實際值能于該目標(biāo)使用。該水平與垂直的絕對值總和可以使用于下列作為判斷原則方程式的數(shù)值。
一個具體化的實施例,DMVs相關(guān)的成本被轉(zhuǎn)換成等價值的SAD,因此許多模式的SAD可以被更適當(dāng)?shù)谋葘Α>唧w而言,與每一個模式相關(guān)的DMV是首先被計算,然后再計算被DMV修改后的每一個模式的SADs,接續(xù),該被修改過的SADs作為模式判斷。例如,P圖像系使用下列定義為原則1的原則。其它原則將合并此處描述的理論與優(yōu)點經(jīng)由該技藝中原本的技巧快速的判斷。
在下列公式,當(dāng)DMV經(jīng)轉(zhuǎn)換與作為模式判斷后,SADmod可視為為SAD。然而,SADorg的SAD值來自于移動估計。下列所表示的原則可以被修改以配合L2基準(zhǔn)。
P圖像-進行序列對于這些大區(qū)塊(MBs),一個MB可以被譯碼,為下列三個型態(tài)之一Intra,Inter_No_MC,andInter_MC.Rule1A.Inter_MC SAD被修改為SADmod(Inter_MC)=SADorg+min((DMV+1)*4,32)B.Inter_No_MC作為初始值SADmod(Inter_No_MC)=SADorgC.Intra MB被修改為SADmod(Intra)=SADorg-128P訊框-交錯序列對這些大區(qū)塊,MB可以被譯碼,為下列四個型態(tài)之一Intra,Inter_No_MC,Inter_MC_frame and Inter_MC_field.Inter_MC_field mode使用兩個移動向量,因此依據(jù)原則2有兩個DMVsA.Inter_MC_frameSAD被修改為SADmod(Inter_MC_frame)=SADorg+min((DMV+1)*4,32)B.Inter_MC_frame SAD被修改為SADmod(Inter_MC_field)=SADorg+min(Σ12(DMVk+1*4,64))]]>C.Inter_No_MC作為初始值SADmod(Inter_No_MC)=SADorgD.Intra MB被修改為SADmod(Intra)=SADorg-128B訊框-進行序列對這些大區(qū)塊,MB可以被譯碼,為下列四個型態(tài)之一Intra,forward,backward and interpolated modes.原則3A.Forward SAD被修改為SADmod(Forward)=SADorg+min((DMV+1)*4,32)B.Backward SAD被修改為SADmod(Backward)=SADorg+min((DMV+1)*4,32)C.Interpolated SAD被修改為
SADmod(Interpolated)=SADorg+min(Σ12(DMVk+1*4,64))]]>因為它使用兩個移動向量。
D.Intra MB被修改為SADmod(Intra)=SADorg-128B訊框-交錯序列對這些大區(qū)塊,MB可以被譯碼,為下列七個型態(tài)之一Intra,forward,forward_field,backward,backward_field,interpolated,interpolated_field modes.
A.向前模式的SAD被修改為SADmod(Forward)=SADorg+min((DMV+1)*4,32)B.向前場模式的SAD被修改為SADmod(forward_field)=SADorg+min(Σ12(DMVk+1*4,64)),]]>因為它使用兩個移動向量。
C.向后模式的SAD被修改為SADmod(backward)=SADorg+min((DMV+1)*4,32)D.向后場模式的SAD被修改為SADmod(backward_field)=SADorg+min(Σ12(DMVk+1*4,64)),]]>因為它使用兩個移動向量。
E.修改訊框模式的SAD被修改為SADmod(interpolate_field)=SADorg+min(Σ12(DMVk+1*4,64)),]]>因為它使用兩個移動向量。
F.修改場模式的SAD被修改為SADmod(interpolate_field)=SADorg+min(Σ14(DMVk+1*4,128)),]]>因為它使用四個移動向量。
G.Intra MB被修改為SADmod(Intra)=SADorg-128在步驟1740,程序選擇該大區(qū)塊的該模式。當(dāng)該SAD計算值被轉(zhuǎn)換并且符合適當(dāng)?shù)脑瓌t,在轉(zhuǎn)化后,程序選擇具有一最低SAD的模式為一具體化范例。實驗結(jié)果指出使用L1基準(zhǔn)與作為編碼模式判斷以修改方程式能夠較習(xí)知使用L2基準(zhǔn)模式判斷運作的更好,在PSNR(peaksignal-to-noise ratio)有0.4dB平均,其顯示具有相當(dāng)品質(zhì)上的改變。另外,因為L1基準(zhǔn)較L2基準(zhǔn)執(zhí)行快速,故可得到較好的品質(zhì)。
圖18為選擇一大區(qū)塊模式的方式的另一種流程圖。在步驟1802,執(zhí)行一種作為訊框或圖像的移動估計。該移動估計將提供給步驟1804來計算差異移動向量并且提供給步驟1810來判斷SAD的計算值。在步驟1804,差異移動向量被計算。差異移動向量系依據(jù)先前的移動向量與由步驟1806所提供的數(shù)質(zhì)。在步驟1808,已轉(zhuǎn)換的SAD值被計算出。在步驟1812,已轉(zhuǎn)換的SAD值被比較,并且大區(qū)塊模式被選擇。在一個具體化的實施例中,模式的選擇系對應(yīng)于全部SAD中具有最低SAD值的模式。
以上所述的實施例僅系為說明本發(fā)明的技術(shù)思想及特點,其目的在使熟習(xí)此項技藝的人士能夠了解本發(fā)明的內(nèi)容并據(jù)以實施,當(dāng)不能以之限定本發(fā)明的專利范圍,即大凡依本發(fā)明所揭示的精神所作的均等變化或修改,仍應(yīng)涵蓋在本發(fā)明的專利范圍內(nèi)。
權(quán)利要求
1.一種有效壓縮視訊的方法,包括選擇性低通過濾在頻率域中一大區(qū)塊的離散余弦轉(zhuǎn)換(DCT)系數(shù);以及量化該低通過濾的DCT系數(shù)。
2.根據(jù)權(quán)利要求1所述的方法,還包括選擇性限制一量化參數(shù)(QP),其系用來量化該低通過濾的DCT系數(shù)至一預(yù)定層級,使計算至該預(yù)定層級上的QP值為較低者。
3.根據(jù)權(quán)利要求1所述的方法,其中該選擇性低通過濾的步驟系至少部份通過一緩沖器模型占用層級來完成。
4.根據(jù)權(quán)利要求3所述的方法,其中該緩沖器模型系為一視訊緩沖檢測器(VBV)緩沖器模型。
5.根據(jù)權(quán)利要求1所述的方法,其中該選擇性低通過濾的步驟系至少部份通過在一運行QP平均值與一臨界值之間的比較來完成。
6.根據(jù)權(quán)利要求1所述的方法,還包括選擇性過濾一圖像的所有大區(qū)塊的DCT系數(shù),其系通過在一運行QP平均值與一臨界值之間的比較來完成。
7.根據(jù)權(quán)利要求6所述的方法,還包括調(diào)整該過濾的DCT系數(shù)的數(shù)量,其系通過一緩沖器模型占用層級來完成。
8.根據(jù)權(quán)利要求1所述的方法,還包括判斷是否過濾一圖像的所有大區(qū)塊或是只過濾該圖像的選擇大區(qū)塊,其系利用一運行QP平均值與一臨界值之間的比較來判斷;當(dāng)所有大區(qū)塊全部已過濾完成根據(jù)一緩沖器模型占用層級來適應(yīng)性選擇一過濾強度;對該圖像的所有大區(qū)塊進行低通過濾;以及限制用來量化該DCT系數(shù)的QP值。
9.根據(jù)權(quán)利要求1所述的方法,還包括判斷是否過濾一圖像的所有大區(qū)塊或是只過濾該圖像的選擇大區(qū)塊,其系利用一運行QP平均值與一臨界值之間的比較來判斷;當(dāng)選擇的大區(qū)塊全部已過濾完成通過一大區(qū)塊的QP值與一臨界值之間的比較來進行選擇性低通過濾;以及限制用來量化該DCT系數(shù)的QP值。
10.根據(jù)權(quán)利要求9所述的方法,其中用于選擇大區(qū)塊的該低通過濾系為固定者。
11.根據(jù)權(quán)利要求9所述的方法,還包括適應(yīng)性調(diào)整用于該大區(qū)塊QP值與臨界值間的比較的該臨界值,其系利用一緩沖器占用層級來調(diào)整。
12.根據(jù)權(quán)利要求1所述的方法,其中該DCT系數(shù)的低通過濾系以易懂的方式出現(xiàn)在一視訊編碼器,使一對應(yīng)的量化表毋需提供給產(chǎn)生的比特流。
13.一種有效壓縮視訊的視訊編碼器,包括一選擇性低通過濾在頻率域中一大區(qū)塊的離散余弦轉(zhuǎn)換(DCT)系數(shù)的手段;以及一量化該低通過濾DCT系數(shù)的手段。
14.根據(jù)權(quán)利要求13所述的視訊編碼器,還包括一選擇性限制一量化參數(shù)(QP)的手段,其系用來量化該低通過濾的DCT系數(shù)至一預(yù)定層級,使計算至該預(yù)定層級上的QP值為較低者。
15.根據(jù)權(quán)利要求13所述的視訊編碼器,其中該選擇性低通過濾的手段系至少部份通過一緩沖器模型占用層級來完成。
16.根據(jù)權(quán)利要求13所述的視訊編碼器,還包括一選擇性過濾一圖像的所有大區(qū)塊的DCT系數(shù)的手段,其系通過在一運行QP平均值與一臨界值之間的比較來進行。
17.一種內(nèi)嵌在有形媒體的計算器程序,包括一選擇性低通過濾在頻率域中一大區(qū)塊的離散余弦轉(zhuǎn)換(DCT)系數(shù)的指令模塊;以及一量化該低通過濾DCT系數(shù)的指令模塊。
18.根據(jù)權(quán)利要求17所述的計算器程序,還包括一選擇性限制一量化參數(shù)(QP)的指令模塊,其系用來量化該低通過濾的DCT系數(shù)至一預(yù)定層級,使計算至該預(yù)定層級上的QP值為較低者。
19.根據(jù)權(quán)利要求17所述的計算器程序,其中該選擇性低通過濾的指令模塊系為至少部份通過一緩沖器模型占用層級。
20.根據(jù)權(quán)利要求17所述的計算器程序,還包括一選擇性過濾一圖像的所有大區(qū)塊的DCT系數(shù)的指令模塊,其系通過在一運行QP平均值與一臨界值之間的比較。
21.一種視訊編碼電路,包括一電路,用以選擇性低通過濾在頻率域中一大區(qū)塊的DCT系數(shù);以及一電路,用以量化該低通過濾DCT系數(shù)。
22.根據(jù)權(quán)利要求21所述的視訊編碼電路,還包括一選擇性限制一量化參數(shù)(QP)的電路,其系用來量化該低通過濾的DCT系數(shù)至一預(yù)定層級,使計算至該預(yù)定層級上的QP值為較低者。
23.根據(jù)權(quán)利要求21所述的視訊編碼電路,其中該用以選擇性低通過濾的電路系至少部與一緩沖器模型占用層級有關(guān)。
24.根據(jù)權(quán)利要求21所述的視訊編碼電路,還包括一選擇性過濾一圖像的所有大區(qū)塊的DCT系數(shù)的電路,其系通過在一運行QP平均值與一臨界值之間的比較來進行。
25.一種內(nèi)嵌有根據(jù)權(quán)利要求21所述的電路的視訊編碼器。
全文摘要
在視訊編碼器中適應(yīng)性過濾離散余弦轉(zhuǎn)換系數(shù)的系統(tǒng)與方法。本發(fā)明涉及一種系統(tǒng)與方法,其系提供選擇性過濾離散余弦轉(zhuǎn)換(DCT)系數(shù),且此DCT系數(shù)的過濾系在頻率域中執(zhí)行,而不是密集像素域(時間域)。此DCT過濾系在DCT編碼的回路中進行,而不是在獨立于編碼回路外的處理口。此DCT過濾系有利于降低使用于編碼圖像的位數(shù),其系可保護緩依從的沖器模型的占用層級,且較傳統(tǒng)技術(shù)更能保存位而改進圖像品質(zhì),例如量化參數(shù)(QP)值的增加。
文檔編號H04N7/12GK1617591SQ20041005669
公開日2005年5月18日 申請日期2004年8月16日 優(yōu)先權(quán)日2003年8月14日
發(fā)明者卡達(dá)汪迪斯, 趙立峰 申請人:英特維科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1