專利名稱:視訊編碼器選擇一大區(qū)塊模式的系統(tǒng)與方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種影音編碼技術(shù),特別是涉及一種大區(qū)塊的模式選擇。
背景技術(shù):
多數(shù)的數(shù)字影音壓縮技術(shù)已經(jīng)產(chǎn)生其系藉由一較低資料速率或者較少儲(chǔ)存空間進(jìn)行傳送或儲(chǔ)存。這樣的壓縮技術(shù)包含國(guó)際標(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)與移動(dòng)壓縮等技術(shù)達(dá)成較高壓縮比。這樣的影視壓縮技術(shù)允許影視資料流被有效地透過(guò)各種數(shù)字網(wǎng)絡(luò)如手機(jī)、計(jì)算機(jī)網(wǎng)絡(luò)、纜線網(wǎng)絡(luò)、衛(wèi)星等等進(jìn)行傳輸,并儲(chǔ)存于如硬盤(pán)、光盤(pán)、影視壓縮碟(VCDs)、數(shù)字影視碟(DVDs)等儲(chǔ)存媒介。已編碼的數(shù)據(jù)流藉由具有與編碼數(shù)據(jù)流兼容語(yǔ)法的影視譯碼器進(jìn)行譯碼。
為求相對(duì)高影像品質(zhì),視訊編碼區(qū)耗盡相當(dāng)大的資料總數(shù)。然而,傳輸視訊的網(wǎng)絡(luò)限制編碼時(shí)使用的數(shù)據(jù)傳輸速率。例如一個(gè)直播衛(wèi)星系統(tǒng)的資料信道或者是一個(gè)具有固定傳輸速率的供節(jié)目選擇的數(shù)字纜線電視網(wǎng)絡(luò)資料信道。更者,儲(chǔ)存媒介如硬盤(pán)的容量也可能限制編碼時(shí)使用的資料位數(shù)(值)。
因此,一個(gè)視訊編碼過(guò)程經(jīng)常是以交換壓縮后影像品質(zhì)的位數(shù),而且,該已編碼的視訊可能是相當(dāng)復(fù)雜的。例如藉由軟件來(lái)進(jìn)行編碼時(shí),視訊的編碼過(guò)程將導(dǎo)致中央處理器處理相當(dāng)冗長(zhǎng)時(shí)間后才達(dá)成。更者,圖像上訴問(wèn)題將使圖像品質(zhì)被迫降低以趕上及時(shí)處理速度。
一般在編碼過(guò)程中用來(lái)控制速率或者量化控制的手段MPEGSoftware Simulation Group(MSSG)系于第十章的測(cè)試模式5(TM5)中描述。TM5有許多的缺點(diǎn),例如TM5不能夠保證能夠符合視頻緩沖檢測(cè)器的要求。結(jié)果,譯碼緩沖器溢位與不足的情況發(fā)生,而引起圖片序列的凍結(jié)與資料的遺失。
因此,本發(fā)明系在針對(duì)上述困擾,提出一種視訊編碼器其系藉由系統(tǒng)與方法選擇一大區(qū)塊模式,來(lái)解決上述的問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的主要目的,在于提供一種改進(jìn)視訊編碼的方法與裝置,其改善習(xí)知技術(shù)不當(dāng)?shù)拇髤^(qū)塊編碼模式,進(jìn)而采結(jié)合移動(dòng)向量的編碼成本于模式判斷中,藉此增加選擇模式的品質(zhì)。更者,增加一L1規(guī)范于判斷中,可減少運(yùn)算的復(fù)雜性。
本發(fā)明的又一目的,在于提供一種視訊編碼器選擇模式來(lái)作為大區(qū)塊編碼的方法。該方法包含有形成一移動(dòng)搜尋以選擇一個(gè)移動(dòng)向量;藉由多數(shù)大區(qū)塊模式判斷移動(dòng)向量剩余的錯(cuò)誤;至少由一由移動(dòng)向量中建立一個(gè)預(yù)估的編碼成本;選擇模式作為該基于剩余錯(cuò)誤與編碼成本的大區(qū)塊編碼。
本發(fā)明的又一目的,在于提供一種影視編碼器編碼一大區(qū)塊選擇模式的方法,該方法包括使用剩余錯(cuò)誤的指示與移動(dòng)向量的編碼成本作為模式來(lái)判斷該選擇何種模式作為大區(qū)塊。
本發(fā)明的又再一目的,在于提供一種影視編碼器,其被安裝一種大區(qū)塊編碼的選擇模式,該影視編碼器包含使用剩余錯(cuò)誤的指示與移動(dòng)向量的編碼成本作為模式來(lái)判斷該選擇何種模式作為大區(qū)塊的工具。
本發(fā)明的又再一目的,在于提供一種藉由實(shí)質(zhì)媒介具體化的計(jì)算機(jī)程序,其包含有依據(jù)有選擇模式以作為大區(qū)塊編碼模式的指令,該計(jì)算機(jī)程序包含有使用剩余錯(cuò)誤的指示與移動(dòng)向量的編碼成本作為模式來(lái)判斷該選擇何種模式作為大區(qū)塊。
本發(fā)明的又再一目的,在于提供一種用于在基于速率與品質(zhì)手段下選擇大區(qū)塊編碼模式的安裝回路,該回路包括有一個(gè)用以形成選擇移動(dòng)向量的移動(dòng)搜尋的安裝回路;一個(gè)用以判斷多數(shù)大區(qū)塊模式移動(dòng)向量的剩余錯(cuò)誤的安裝回路;一個(gè)用以判斷多數(shù)大區(qū)塊模式中至少一些模式的移動(dòng)向量的編碼成本的安裝回路;以及一個(gè)使用剩余錯(cuò)誤的指示與移動(dòng)向量的編碼成本作為模式來(lái)判斷該選擇何種模式作為大區(qū)塊的安裝回路。該回路系被安裝于視訊編碼器。
為達(dá)上述目的本發(fā)明一實(shí)施例為一種使用于視訊編碼器來(lái)進(jìn)行大區(qū)塊編碼的模式選擇的方法,其步驟為首先形成一移動(dòng)收尋,來(lái)選擇一移動(dòng)向量;藉由復(fù)數(shù)大區(qū)塊模式來(lái)判斷作為移動(dòng)向量的剩余錯(cuò)誤;估計(jì)至少部分復(fù)數(shù)大區(qū)塊的移動(dòng)向量的編碼成本;以及藉由與模式相關(guān)的剩余錯(cuò)誤與編碼成本來(lái)選擇編碼大區(qū)塊的模式。
本發(fā)明另一實(shí)施例為一種使用于視訊編碼器來(lái)進(jìn)行大區(qū)塊編碼的模式選擇的方法,其步驟系藉由兩種分別代表模式剩余錯(cuò)誤與移動(dòng)向量編碼成本的指針,來(lái)判斷所需選擇作為大區(qū)塊的模式。
本發(fā)明又一實(shí)施例為一用來(lái)選擇作為大區(qū)塊編碼的模式的安裝回路,其包括有一用以形成一移動(dòng)收尋,以選擇一移動(dòng)向量的安裝回路;一系用以藉由復(fù)數(shù)大區(qū)塊模式來(lái)判斷作為移動(dòng)向量的剩余錯(cuò)誤的安裝回路;一估計(jì)至少部分復(fù)數(shù)大區(qū)塊的移動(dòng)向量的編碼成本的安裝回路;以及一藉由與模式相關(guān)的剩余錯(cuò)誤與編碼成本來(lái)選擇編碼大區(qū)塊的模式的安裝回路。
茲為使貴審查委員對(duì)本發(fā)明的結(jié)構(gòu)特征及所達(dá)成的功效更有進(jìn)一步的了解與認(rèn)識(shí),謹(jǐn)佐以較佳的實(shí)施例圖及配合詳細(xì)的說(shuō)明,說(shuō)明如后
圖1為圖像序列的示意圖。
圖2為本發(fā)明的編碼環(huán)境示意圖。
圖3為包含一譯碼緩沖器的譯碼環(huán)境示意圖。
圖4為編碼器、譯碼器、資料緩沖器與一固定位速率信道的相互關(guān)系方塊圖。
圖5為當(dāng)數(shù)值于一固定位速率下供給緩沖器但數(shù)值被譯碼器以一變動(dòng)位速率下耗盡時(shí),緩沖器占用作為時(shí)間函數(shù)的圖表。
圖6(A)與6(B)為在視訊編碼器中速率控制與量化控制的流程圖。
圖7為一調(diào)整至少部份虛擬緩沖器的占有層級(jí)的目標(biāo)位分配T(i,p,b)的流程圖。
圖8(A)為先前技術(shù)制作大區(qū)塊序列的流程圖。
圖8(B)為本發(fā)明制作大區(qū)塊序列的流程圖。
圖9(A)為避免編碼過(guò)程產(chǎn)生無(wú)益的位填充物以保持穩(wěn)定的流程圖。
圖9(B)為當(dāng)發(fā)現(xiàn)最終的緩沖器占有層級(jí)不規(guī)則時(shí),重新設(shè)定虛擬緩沖器占有層級(jí)。
圖10(A)為圖像群組的范例。
圖10(B)為當(dāng)發(fā)現(xiàn)一個(gè)圖像群組內(nèi)有背景改變進(jìn)行重設(shè)編碼參數(shù)的流程圖。
圖11為在一視訊編碼器中選擇跳躍數(shù)值來(lái)減少或排除譯碼緩沖器不足的流程圖。
圖12為選擇DCT過(guò)濾的流程圖。
圖13(A)與13圖(B)為在視訊編碼器進(jìn)行適合的DCT過(guò)濾篩選的流程圖。
圖14為具有1/32強(qiáng)度的8×8影像區(qū)塊的低通過(guò)濾。
圖15為具有1/16強(qiáng)度的8×8影像區(qū)塊的低通過(guò)濾。
圖16為具有1/8強(qiáng)度的8×8影像區(qū)塊的低通過(guò)濾。
圖17為選擇一大區(qū)塊模式的步驟流程圖。
圖18為另一種選擇一大區(qū)塊模式的步驟流程圖。
具體實(shí)施例方式
本發(fā)明系為一種視訊編碼器選擇一大區(qū)塊模式的系統(tǒng)與方法,請(qǐng)參閱圖1,圖1系描述圖像102的序列。當(dāng)具體化的描述運(yùn)動(dòng)圖像壓縮編碼(MPEG-2)與圖像的先后次序時(shí),其原理與功效是可適用于其它已發(fā)展的視訊規(guī)格例如H.261、H.263、H.264、MPEG-1、MPEG-4。圖像此一字眼于此所代表的意義包括圖像、影像、訊框、視頻對(duì)象平面(VOPs)等等其它他近似的意義。視頻序列包括于固定特定時(shí)間所擷取的多重視訊影像,訊框中圖像的播放速率系取決于圖像的速率或訊框的速率。在圖像序列中的圖像可為交錯(cuò)的圖像或于互不交錯(cuò)的圖像,如漸進(jìn)式影像。對(duì)于所謂的交錯(cuò)的影像,系藉由二個(gè)不同底色所構(gòu)成的圖像彼此間交錯(cuò)而產(chǎn)生。而沒(méi)有交錯(cuò)的影像系藉由以無(wú)圖像間交錯(cuò)或漸進(jìn)式影像的方式產(chǎn)生。
圖像102的序列就像是電影或是其它相似呈現(xiàn)方式的影像。圖像102的序列有可能像電影是有時(shí)間限制的,也可以是無(wú)時(shí)間限制的如直播衛(wèi)星(DBS)系統(tǒng),例如DIRECTV。如圖1所示,在圖像102的序列中的圖像被以特定單位等分成一組組的圖像,如圖式中所定義的第一圖像組104。第一圖像組104中的第一圖像106為I圖像,而其它在第一圖像組104中的圖像可以定義為P圖像或者是B圖像。
在運(yùn)動(dòng)圖像壓縮編碼(MPEG-2)里,一張圖像是更進(jìn)一步分割成更小單位,該單位稱為大區(qū)塊。在其它視訊擷取規(guī)格,例如MPEG-4將圖像更進(jìn)一步分割成其它單位,例如視頻對(duì)象平面(VOPs)。而在運(yùn)動(dòng)圖像壓縮編碼(MPEG-2)里,I圖像系屬于所有圖像大區(qū)塊皆為圖框內(nèi)編碼的型態(tài),因此建構(gòu)一個(gè)影像時(shí)并不需要從其它圖像中擷取資料。P圖像系屬于可以為所有圖像大區(qū)塊皆為圖框內(nèi)編碼的型態(tài),或者是預(yù)測(cè)模式編碼。P圖像的大區(qū)塊可依據(jù)圖像本身的數(shù)據(jù)而進(jìn)行編碼或譯碼,例如圖框內(nèi)編碼,或者是依據(jù)較圖像序列優(yōu)先的圖像數(shù)據(jù),例如預(yù)測(cè)模式編碼。B圖像的大區(qū)塊可以是圖框內(nèi)編碼、預(yù)測(cè)模式編碼、反向式預(yù)測(cè)模式編碼或者是結(jié)合預(yù)測(cè)模式編碼與反向式預(yù)測(cè)模式編碼,如內(nèi)插預(yù)測(cè)。當(dāng)對(duì)依序列圖像進(jìn)行譯碼或編碼時(shí),B圖像會(huì)于鄰近的I圖像或者P圖像譯碼或編碼后再進(jìn)行譯碼或編碼。使用預(yù)測(cè)模式編碼大區(qū)塊來(lái)覆蓋圖框內(nèi)編碼的優(yōu)點(diǎn)在于使用來(lái)作為預(yù)測(cè)模式編碼大區(qū)塊的位數(shù)可顯著的少于使用來(lái)作為圖框內(nèi)編碼大區(qū)塊的位數(shù)。
大區(qū)塊包含有儲(chǔ)存亮度的區(qū)域與儲(chǔ)存色訊的區(qū)域。如同視訊資料流也可包含有可被編碼或譯碼的音頻訊號(hào)資料。
圖2系為一種可使用本發(fā)明的編碼環(huán)境的范例。一個(gè)未編碼的視訊來(lái)源202提供該無(wú)編碼視訊資料輸入至一編碼器204。未編碼的視訊來(lái)源202可以是各種組件,例如攝影機(jī)、錄像帶、膠片、計(jì)算機(jī)化影像等等。未編碼的視訊來(lái)源202更可包含一譯碼器,以對(duì)已編碼視訊資料進(jìn)行譯碼。未編碼的視訊來(lái)源202與編碼器204可為兩個(gè)獨(dú)立個(gè)體,也可以合并于一硬件內(nèi),作為一編碼器204。另外,未編碼的視訊來(lái)源202可為一模擬廣播電視訊號(hào)的接收器,如此可瀏覽儲(chǔ)存于數(shù)字監(jiān)控系統(tǒng)的模擬影像,如機(jī)頂盒TiVo。
編碼器204也可以為各種型態(tài),例如特定硬件、特殊用途集成電路、在特定硬件中執(zhí)行的軟件或者可藉由一般計(jì)算機(jī)執(zhí)行的軟件。該軟件可被收錄于有形媒介如硬盤(pán)或光盤(pán)。另外,編碼器204可與其它編碼器同時(shí)使用來(lái)提供多重編碼信道,以使用于直播衛(wèi)星(DBS)系統(tǒng)、數(shù)字纜線網(wǎng)絡(luò)等等。舉例而言,編碼器204與其它的編碼器一起輸入一編碼訊號(hào)給服務(wù)器206,如圖2所示,服務(wù)器206可將已編碼的序列儲(chǔ)存于例如DVD 210、VCD等等的大量資料儲(chǔ)存器208。于直播衛(wèi)星(DBS)系統(tǒng),服務(wù)器206可經(jīng)由上傳輸端口212提供一編碼序列的資料給譯碼器至一人造衛(wèi)星214,服務(wù)器206也可經(jīng)由網(wǎng)際網(wǎng)絡(luò)216來(lái)傳遞編碼序列給相隔遙遠(yuǎn)的使用者。如此可知,編碼序列可以被如局域網(wǎng)絡(luò)、廣域網(wǎng)絡(luò)、地面數(shù)字電視廣播訊號(hào)、蜂巢式電話網(wǎng)絡(luò)、撥號(hào)網(wǎng)絡(luò)、點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)等等各種媒介區(qū)分為各種型態(tài)。例如,編碼器204可以實(shí)時(shí)對(duì)圖像序列進(jìn)行編碼,而編碼器204也可非實(shí)時(shí)的對(duì)圖像序列進(jìn)行編碼。在其它情況下,編碼器204可結(jié)合數(shù)字監(jiān)控系統(tǒng)、攝影機(jī)、特定硬件影像編碼器等等。
圖3系為一譯碼環(huán)境的范例,其包含一譯碼緩沖器,該譯碼緩沖器于視頻緩沖檢測(cè)器(VBV)緩沖器進(jìn)行編碼過(guò)程中被塑造出。已編碼圖像序列可以被譯碼與于各種環(huán)境中觀看,如藉由衛(wèi)星接收天線302接收直播衛(wèi)星(DBS)訊號(hào)、機(jī)頂盒、藉由數(shù)字監(jiān)控系統(tǒng)進(jìn)行錄制、經(jīng)由數(shù)字視訊撥放器304進(jìn)行撥放、接收地面數(shù)字廣播等等。于本實(shí)施例中系以電視裝置306來(lái)作為影像觀賞器,但是也可以使用其它撥放器。
個(gè)人計(jì)算機(jī)308、膝上型計(jì)算機(jī)310、手機(jī)312等產(chǎn)品也可以用來(lái)觀賞已編碼的影像。具體而言,這些裝置皆可以經(jīng)由網(wǎng)際網(wǎng)絡(luò)216來(lái)接收影像。網(wǎng)際網(wǎng)絡(luò)216可以經(jīng)由有線或無(wú)線的方式連結(jié)。
圖4為一描述編碼器402、編碼緩存器404、譯碼器406、譯碼緩存器408與固定位速率資料信道410間彼此關(guān)系的方塊圖。固定位速率資料信道的位速率可依據(jù)多重資料信道的資料速率分配量,而進(jìn)行些微修正。由于多重資料信道中的資料速率的動(dòng)機(jī)分配將視為固定位速率,如此具有微小資料速率修正的近似固定位速率將產(chǎn)生。例如,于直播衛(wèi)星(DBS)系統(tǒng)中,編碼器402可視為一作為程序化的信道,而譯碼器406相當(dāng)于一機(jī)頂盒內(nèi)的譯碼器,用以接收直播衛(wèi)星(DBS)訊號(hào)。熟悉該項(xiàng)技術(shù)者皆知由固定位速率資料信道410輸出以作為實(shí)際視訊的資料速率將小于實(shí)際上固定位速率資料信道410本身的傳輸速率,這是因?yàn)橛行﹤鬏數(shù)馁Y料系被錯(cuò)誤修正與資料封包等傳輸資料占據(jù)。因此,本發(fā)明揭露的方式不僅能于標(biāo)準(zhǔn)的MPEG操作系統(tǒng)中適用于固定位速率編碼,也可適用于變動(dòng)位速率編碼。在變動(dòng)位速率編碼上,傳輸?shù)奈凰俾士梢詾橐越?jīng)過(guò)一特定周期長(zhǎng)時(shí)間的平均值,特定周期時(shí)間可以為幾秒鐘、幾分鐘、幾小時(shí)或任何其它合適的時(shí)間區(qū)隔,該間隔時(shí)間提供資料給譯碼緩沖器的最大位速率。在最大位速率時(shí),資料經(jīng)由信道傳輸至譯碼緩沖器,直到譯碼緩沖器沒(méi)有儲(chǔ)存空間,此時(shí)該數(shù)據(jù)信道等待進(jìn)行下一張圖像譯碼,直到自譯碼緩沖器移除一些數(shù)據(jù)后,再繼續(xù)傳輸數(shù)據(jù)進(jìn)入譯碼緩沖器。在本說(shuō)明書(shū)中位輸率(bit rate)不僅代表固定位速率,也可為變動(dòng)位速率編碼于長(zhǎng)時(shí)間下的平均。在固定位速率編碼器產(chǎn)生一個(gè)具有固定位速率的資料流來(lái)概括一個(gè)圖像群組。
對(duì)于資料流的應(yīng)用,如直播衛(wèi)星(DBS)系統(tǒng)或當(dāng)家庭數(shù)字監(jiān)控系統(tǒng)接收一現(xiàn)場(chǎng)的廣播時(shí),編碼器402實(shí)時(shí)接收視訊影像并編碼,而編碼器402的輸出端為變動(dòng)位速率(VBR)輸出端412。編碼器402的變動(dòng)位速率(VBR)輸出端412是被暫時(shí)儲(chǔ)存于編碼緩沖器404。編碼緩沖器404與譯碼緩沖器408的作用系在于暫時(shí)儲(chǔ)存數(shù)值,因此資料可以于不同速率下被存取。于此必須強(qiáng)調(diào)的是編碼緩沖器404與譯碼緩沖器408不需要是兼容的,編碼緩沖器404是不同于變動(dòng)位速率(VBR)緩沖器,變動(dòng)位速率(VBR)緩沖器是編碼器402于編碼過(guò)程時(shí)用來(lái)占有譯碼緩沖器408。
編碼緩沖器404可以藉由來(lái)內(nèi)存或者共享系統(tǒng)的內(nèi)存執(zhí)行,比如個(gè)人計(jì)算機(jī)內(nèi)的內(nèi)存。當(dāng)使用內(nèi)存來(lái)作為編碼緩沖器404時(shí),該內(nèi)存是被共享的,而編碼緩沖器404轉(zhuǎn)變成一虛擬的緩沖器。舉例來(lái)說(shuō),譬如一大容量的儲(chǔ)存裝置可以用來(lái)儲(chǔ)存影像資料與位置參數(shù)等等。
編碼緩沖器404可以緩沖編碼器402的變動(dòng)位速率(VBR)輸出端412于短時(shí)間的波動(dòng),因此編碼資料可以藉由固定位速率資料信道410傳輸至譯碼器406。同樣的,譯碼緩沖器408可使用來(lái)接收由固定位速率資料信道410以相對(duì)固定位速率所傳輸?shù)木幋a資料,并視需求以變動(dòng)位速率提供該編碼資料給譯碼器406。譯碼緩沖器408也可以藉由內(nèi)存或者共享系統(tǒng)的內(nèi)存來(lái)執(zhí)行,比如個(gè)人計(jì)算機(jī)內(nèi)的內(nèi)存。當(dāng)使用內(nèi)存來(lái)作為譯碼緩沖器408時(shí),該內(nèi)存是被共享的,而譯碼緩沖器408轉(zhuǎn)變成一虛擬的緩沖器。
MPEG指定譯碼緩沖器408大小,如此才能藉由標(biāo)準(zhǔn)的譯碼器對(duì)MPEG允許下的資料流進(jìn)行譯碼。例如在MPEG-2規(guī)格下,進(jìn)行DVD的編碼時(shí),緩沖器的大小約為224kB。在MPEG-1規(guī)格下,進(jìn)行VCD的編碼時(shí),緩沖器的大小大約為40kB。改變規(guī)格時(shí),編碼緩沖器404與譯碼緩沖器408的大小可由硬件設(shè)計(jì)人員或者軟件設(shè)計(jì)人員判斷出。
雖然,譯碼緩沖器408的實(shí)際大小可以偏離基準(zhǔn)值,但存在一影響大小與占有率的可實(shí)施限制。當(dāng)譯碼緩存器408大小增加時(shí),在進(jìn)行序列選擇與撥放初始化時(shí),將導(dǎo)致延遲也相對(duì)的增加。例如一使用者更改接收直播衛(wèi)星(DBS)的機(jī)頂盒信道或是于觀賞DVD時(shí)往前或往后撥放,在譯碼器406接收該資料并進(jìn)行播放前,接收到的數(shù)據(jù)將儲(chǔ)存于譯碼緩沖器408。當(dāng)譯碼緩沖器408是相當(dāng)大時(shí),將導(dǎo)致在選擇序列與播放序列時(shí)產(chǎn)生較長(zhǎng)時(shí)間的延遲。更者,如圖5所示,當(dāng)預(yù)計(jì)開(kāi)始錄放時(shí),譯碼緩沖器408將系充滿數(shù)據(jù)。
錄放一序列時(shí),系取決于兩個(gè)狀態(tài)的先后。第一個(gè)狀態(tài)為經(jīng)由MPEG資料流所定義的時(shí)間。MPEG資料流中的一參數(shù)值vbv-delay為一序料數(shù)據(jù)被譯碼器406播放初始化前于譯碼緩沖器208內(nèi)被緩沖的時(shí)間長(zhǎng)度。參數(shù)值vbv-delay在16位時(shí)的是0~65,535。參數(shù)值vbv-delay在90kHz脈沖信號(hào)的譯碼器406進(jìn)行運(yùn)作時(shí)可會(huì)得一較低值,因此,參數(shù)值vbv-delay長(zhǎng)短系相當(dāng)于被90,000分界。例如,該參數(shù)值vbv-delay的最大值65535對(duì)應(yīng)于延遲時(shí)間大約728微秒(mS)。因此,參數(shù)值vbv-delay的延遲可在序列時(shí)被初始化錄放,除了譯碼緩沖器408是填滿的,即使該譯碼緩沖器408相對(duì)大容量,而譯碼緩存器408的占有率可以相對(duì)較小。
第二狀態(tài)相當(dāng)于譯碼緩沖器408的填充。當(dāng)譯碼緩沖器408已經(jīng)填滿無(wú)法再被填入,但數(shù)據(jù)持續(xù)不斷的傳輸至譯碼緩沖器408的情況下,將導(dǎo)致一些儲(chǔ)存于譯碼緩沖器408中的數(shù)據(jù)被遺漏。為了預(yù)防這樣的情況發(fā)生,譯碼器406可在一較參數(shù)值vbv-delay早的時(shí)間點(diǎn)進(jìn)行初始化錄放。例如譯碼緩沖器408大小相當(dāng)于224kB大小的緩沖器時(shí),每秒超過(guò)2.52Mega bit位傳輸率于少于參數(shù)值vbv-delay的最大延遲時(shí)間前即充滿譯碼緩沖器408。
視頻緩沖檢測(cè)器在MPEG上的概念是傾向于限制MPEG資料流,因此不會(huì)發(fā)生譯碼緩沖器408的緩沖不足與緩沖區(qū)溢位的情況發(fā)生。視頻緩沖檢測(cè)器不需要為實(shí)際的緩沖器,并且不用實(shí)際上進(jìn)行資料儲(chǔ)存。然而,盡管視頻緩沖檢測(cè)器的概念存在,于MPEG的測(cè)試模式5所提供的視訊譯碼技術(shù)并無(wú)法保證順從視頻緩沖檢測(cè)器能免于損失,緩沖不足與緩沖區(qū)溢位將發(fā)生。
譯碼緩沖器408的緩沖不足通常發(fā)生于譯碼緩沖器408將儲(chǔ)存的資料用完的情況下。如固定位速率資料信道410的位輸出率低于譯碼器406于一特定周期時(shí)間下的資料消耗量。當(dāng)編碼器402已經(jīng)使用太多位于進(jìn)行一特定位速率的序列編碼時(shí),即可能發(fā)生上述的情況。譯碼緩沖器408緩沖不足的情況將產(chǎn)生圖像序列暫時(shí)凍結(jié)。
譯碼緩沖器408的緩沖區(qū)溢位通常發(fā)生于譯碼緩沖器408接收到多于本身所能儲(chǔ)存的資料大小。如固定位速率資料信道410的位速率高于譯碼器406于一特定周期時(shí)間下的資料消耗量,就會(huì)發(fā)生緩沖區(qū)溢位?;蛘呤钱?dāng)編碼器402在特定速率下使用太少位于進(jìn)行序列編碼時(shí),也可能發(fā)生上述的情況。當(dāng)譯碼緩沖器408不能夠儲(chǔ)存所有自固定位速率資料信道410所供給的所有資料時(shí),將產(chǎn)生資料遺失。這樣的緩沖區(qū)溢位可以藉由位填充的方式預(yù)防,位填充的方式系藉采不經(jīng)由譯碼器406來(lái)進(jìn)行資料傳遞,因此譯碼器406所使用的位數(shù)符合在一周期時(shí)間固定位速率資料信道410所傳輸?shù)馁Y料量。然而,位填充可能產(chǎn)生如圖9A與9B所述的問(wèn)題。
視頻緩沖檢測(cè)器具體化的概念被使用在編碼器402上作為播放一視訊資料流,來(lái)避免譯碼緩沖器408發(fā)生譯碼緩沖不足或緩沖區(qū)溢位的情況。視頻緩沖檢測(cè)器緩沖器的占據(jù)層級(jí)被監(jiān)控以播放一于譯碼緩沖器408中無(wú)譯碼緩沖不足或緩沖區(qū)溢位的視訊資料流。于此必須強(qiáng)調(diào)的是,在編碼緩沖器404的緩沖不足或溢位與在譯碼緩沖器408中的緩沖不足或溢位是不相同的。舉例來(lái)說(shuō),在譯碼緩沖器408中產(chǎn)生緩沖不足的情況,例如當(dāng)持續(xù)一段周期時(shí)間,已編碼的位速率超出固定位速率資料信道410所供給的資料時(shí),但此種情形也可能導(dǎo)致編碼緩沖器404產(chǎn)生溢位。更者,在譯碼緩沖器408中產(chǎn)生緩沖區(qū)溢位的情況,如持續(xù)一段周期時(shí)間,已編碼的位速率小于固定位速率資料信道410所供給的資料時(shí),但此種情形也可能導(dǎo)致編碼緩沖器404緩沖不足。
圖5系描述一般情況下當(dāng)資料以一固定位速率傳輸至譯碼緩沖器,然而資料系被譯碼器以一變動(dòng)位速率譯碼耗盡時(shí),譯碼緩沖器占用的示意圖。在MPEG TM5的系統(tǒng)下,資料流以一固定位速率傳輸資料至譯碼器,并無(wú)法保證譯碼緩沖器能免于緩沖不足與溢位的情況發(fā)生。具體化的例子,如以一固定位速率傳輸資料至譯碼緩沖器并且該譯碼器使用該些資料實(shí)時(shí)播放視訊。
時(shí)間(t)502被設(shè)定為水平軸。時(shí)間增加,將往水平軸右邊移動(dòng)。譯碼緩沖器占據(jù)504被設(shè)定為垂直軸。在起始點(diǎn)時(shí),譯碼緩沖器為0。該緩沖器的最大極限值被設(shè)定為BMAX528。譯碼器產(chǎn)生一資料流,該資料流維持于緩沖狀態(tài)低于BMAX528且超過(guò)0。例如譯碼緩沖器將依據(jù)程序省略、改變接收直播衛(wèi)星(DBS)系統(tǒng)的選擇信道或者數(shù)字纜線電視網(wǎng)絡(luò)等等而產(chǎn)生波動(dòng)。譯碼器監(jiān)視已接收資料來(lái)作為系統(tǒng)時(shí)鐘基準(zhǔn)(SCR),例如SCR(0)506。系統(tǒng)時(shí)鐘基準(zhǔn)(SCR)為一基準(zhǔn)時(shí)間的時(shí)間標(biāo)記,該基準(zhǔn)時(shí)間藉由編碼器內(nèi)建于位資料流中,用以在譯碼時(shí)能讀取該時(shí)間標(biāo)記與當(dāng)時(shí)的系統(tǒng)時(shí)鐘能同步取樣,而重組每一段編碼過(guò)程中內(nèi)建于位資料流中的對(duì)應(yīng)該時(shí)間標(biāo)記的視訊信息。當(dāng)視訊資料被譯碼時(shí)或者視訊被播放,時(shí)間標(biāo)記指出并同步視覺(jué)與聲音化。
一般使用在實(shí)時(shí)視訊編碼的圖像型態(tài)圖案系采重復(fù)的IBBPBBPBBPBBPBB排列方式。盡管I圖像占據(jù)較大的數(shù)據(jù)量,但周期性的使用I圖像能在更改直播衛(wèi)星(DBS)系統(tǒng)信道后于一較短周期時(shí)間播放圖像較為有利。
圖像的演出或者播放次序可以自圖像編碼或譯碼次序中改變。B圖像依據(jù)周圍的I圖像或者P圖像,而不是B圖像,因此,I圖像或者P圖像隨著當(dāng)一處于演出次序的B圖像將被進(jìn)行編碼、傳輸、譯碼之后產(chǎn)生,而不是當(dāng)該B圖像將正在編碼、傳輸、譯碼。例如,一個(gè)較小位置序列如圖5所示包含一圖像數(shù)據(jù)其排列次序?yàn)镮PBBP,B圖像所依據(jù)的P圖像系較B圖像優(yōu)先被編碼、譯碼,即使該圖像以IBBPBBPBBPBBPBB的排列方式。聲音資料在視訊演出時(shí)通常遵照次序。表I統(tǒng)計(jì)譯碼器于時(shí)間的異動(dòng)性。為了更清楚的定義,影像群組(GOPs)將僅具有IPBBP圖像,但一般而言影像群組(GOPs)不僅具有5個(gè)圖像,見(jiàn)圖5所示。
表I
譯碼緩沖器忽視資料直到具有時(shí)間標(biāo)記作為I訊框的圖像標(biāo)頭出現(xiàn)。該時(shí)間系被稱為T(mén)TS0(0)508,如圖5所示。對(duì)于圖像的部分、訊框或者無(wú)法自行譯碼的數(shù)值的緩沖器而言,置于不顧的數(shù)值能夠防止資料緩沖。經(jīng)過(guò)TTS0(0)508后,譯碼緩沖器開(kāi)始累積跳躍區(qū)間R0510的資料。
對(duì)一個(gè)時(shí)間區(qū)間τ0(0)512而言,譯碼緩沖器累積譯碼器即將使用的數(shù)據(jù)。時(shí)間區(qū)間τ0(0)512視為先乘載的延遲。圖5的上端為時(shí)間的基準(zhǔn),時(shí)間的基準(zhǔn)系依據(jù)以近似平均的方式均分一圖像周期,而該圖像周期系近似訊框速率的倒數(shù)或者該圖像速率的倒數(shù)(1/Rf)514。如同以下所述,于相對(duì)應(yīng)圖像,圖像的時(shí)間位置可被時(shí)間標(biāo)記定義出。在時(shí)間點(diǎn)T0516,譯碼器擷取一影像群組第一張為I圖像的所有數(shù)據(jù)。資料流定義出一在譯碼時(shí)間標(biāo)記下對(duì)I圖像進(jìn)行譯碼所需時(shí)間,該時(shí)間于圖中為時(shí)間流DTS0(0)518與時(shí)間T0516。
于I圖像數(shù)據(jù)的補(bǔ)償是依據(jù)譯碼緩沖器占據(jù)的相對(duì)坡度減少量520而定。為了更明確的定義出,自譯碼緩沖器選出的數(shù)值被描繪于圖5中,該數(shù)值在圖形上的出現(xiàn)往往是突然的,但是我們可已經(jīng)由一習(xí)知技術(shù)來(lái)了解它的意義,該習(xí)知技術(shù)就是一個(gè)相對(duì)小數(shù)量的時(shí)間可以用來(lái)彌補(bǔ)數(shù)值。一般而言,I圖像包含相對(duì)較大的數(shù)據(jù),P圖像具有較少的數(shù)據(jù),B圖像具有最少的數(shù)據(jù)。然而,熟知該項(xiàng)技術(shù)領(lǐng)域的人將可以發(fā)現(xiàn)具有相對(duì)較大資料總數(shù)的圖框大區(qū)塊可以P圖像與B圖像來(lái)呈現(xiàn),就像I圖像一樣,因此P圖像與B圖像也可以消耗大數(shù)量的資料。在時(shí)間點(diǎn)T0516所被譯碼的I圖像并非在時(shí)間點(diǎn)T0516播放,就像表示時(shí)間標(biāo)記PTS0(1)522指示播放的時(shí)間點(diǎn)為T(mén)1524。
在時(shí)間點(diǎn)T1524,譯碼器播放在時(shí)間點(diǎn)T0516所譯碼出的I圖像。時(shí)間區(qū)隔PTS___OFFSET 526說(shuō)明自作為選擇序列的譯碼緩沖器開(kāi)始累積資料至第一圖像被播放為止的延遲。譯碼時(shí)間標(biāo)記DTS0(1)530指示譯碼器對(duì)位于時(shí)間點(diǎn)T1524序列中的第一張P圖像進(jìn)行譯碼。自譯碼緩沖器中所選擇出的數(shù)據(jù)可藉由緩沖器占據(jù)的減少量532來(lái)說(shuō)明。在時(shí)間點(diǎn)T0516與時(shí)間點(diǎn)T1524間,譯碼緩沖器累積附加的數(shù)值,如圖中跳躍534。表示時(shí)間標(biāo)記PTS0(4)536指示譯碼器播放位于時(shí)間點(diǎn)T4538的第一張P圖像。在此實(shí)施例中,該第一張P圖像于播放前先進(jìn)行譯碼,因此可作為向后預(yù)測(cè)、向前預(yù)測(cè)或者甚至是雙方向預(yù)測(cè)編碼大區(qū)塊的B圖像可被譯碼。
在時(shí)間點(diǎn)T2540,譯碼器譯碼并播放表示時(shí)間標(biāo)記PTS0(4)536所指示的第一張B圖像。無(wú)譯碼時(shí)間標(biāo)記(DST)被播放,因?yàn)椴シ排c編碼的動(dòng)作產(chǎn)生于相同時(shí)間間格里。這樣情況可以藉由一實(shí)際的譯碼器來(lái)說(shuō)明,在譯碼與播放間存在有一相當(dāng)小的延遲,該延遲可以用來(lái)說(shuō)明數(shù)值時(shí)間與其它潛在因素。B圖像所使用的數(shù)值總數(shù)是相對(duì)小,就像第一B圖像在譯碼緩沖器占據(jù)中的相對(duì)小減少量550。然而,B圖像也可以包含能夠消耗相對(duì)大數(shù)據(jù)總數(shù)的圖框大區(qū)塊。
在時(shí)間點(diǎn)T3546,譯碼器譯碼并播放表示時(shí)間標(biāo)記PTS0(3)548所指定的第二張B圖像。
在時(shí)間點(diǎn)T4538,譯碼器譯碼并播放于時(shí)間點(diǎn)T1524原始譯碼的第一張P圖像。在時(shí)間點(diǎn)T4538,譯碼器進(jìn)行譯碼時(shí)間標(biāo)記DTS0(4)554所指定的第二張P圖像。該第二張P圖像將于后面時(shí)間進(jìn)行播放,這是被一表示時(shí)間標(biāo)記(于圖中未示)所指定。譯碼器持續(xù)進(jìn)行譯碼與播放其它圖片。例如,在時(shí)間點(diǎn)T5544譯碼器將對(duì)一被數(shù)據(jù)流所指定的B訊框進(jìn)行譯碼與播放。
圖6為視訊譯碼器的速率控制與量化控制過(guò)程的流程圖。熟知該向技術(shù)領(lǐng)域之人將可以發(fā)現(xiàn)上述的過(guò)程可以以許多方式進(jìn)行修改,但這樣并無(wú)違背本發(fā)明精神與目的。例如,許多過(guò)程點(diǎn)可以結(jié)合,可以重新排列,可以省略等等。被選擇的過(guò)程點(diǎn)可以被速率控制與量化控制過(guò)程來(lái)取代,這樣的方式已在第十章節(jié)的測(cè)試模態(tài)5中揭露。在編碼時(shí),位被作為圖像編碼的消耗速率影響譯碼緩沖器的占用。請(qǐng)參閱圖6中的括號(hào),制程位置點(diǎn)與位的分配、速率的控制以及適合的量化有關(guān)。位的分配與估計(jì)對(duì)已編碼的圖像進(jìn)行編碼的位數(shù)有關(guān)。速率的控制與判斷用來(lái)作為編碼一大區(qū)塊的量化參數(shù)基準(zhǔn)Qj有關(guān)。適合的量化與分析大區(qū)塊中用來(lái)作為修飾量子參數(shù)基準(zhǔn)Qj的活動(dòng)空間與計(jì)算用來(lái)使一大區(qū)塊量化的量子化參數(shù)tj有關(guān)。
過(guò)程開(kāi)始于步驟602,步驟602為開(kāi)始接收到第1圖像群組。以一具體化的方式表示,就是制程可能僅于步驟602的第一圖像群組內(nèi)擷取一位置點(diǎn),而以后再于第1圖像群組內(nèi)擷取剩下的位置點(diǎn)。在上述的過(guò)程中,在圖像被速率控制與量子化控制過(guò)程制程前,該圖像系被進(jìn)行圖像分組。一個(gè)圖像組開(kāi)始于一個(gè)I圖像并且可包含其它圖像。一般來(lái)說(shuō)在一圖像組中的其它圖像與該I圖像有關(guān),但這不是必然的。過(guò)程由步驟602進(jìn)入步驟604。
于步驟604,過(guò)程接收到圖像群內(nèi)的圖像組編碼的模式或型態(tài)。在速率控制與量子化控制過(guò)程中,對(duì)圖像群組中的每一個(gè)圖像進(jìn)行編碼模式或型態(tài)判斷是被使用的,于圖像進(jìn)行速率控制與量子化控制過(guò)程步驟前。例如,在圖5中曾經(jīng)描述一型態(tài)為IPBBP的圖像群組。過(guò)程由步驟604進(jìn)入步驟606。
在步驟606,過(guò)程判斷已被編碼的圖像群組內(nèi)的P圖像數(shù)目Np與B圖像數(shù)目Nb,例如在一型態(tài)為IPBBP的圖像群組中,有兩張P圖像與兩張B圖像被編碼,因此Np的數(shù)值為2而Nb的數(shù)值也是2。如此就不會(huì)去追蹤剩下的I圖像的數(shù)目,這樣在圖像群組中唯一的I圖像為第一圖像。過(guò)程由步驟606進(jìn)入步驟608。
在步驟608,過(guò)程初始化的值作為錯(cuò)雜評(píng)估Xi、Xp與Xb,和剩下將分給被編碼圖像群組的位數(shù)(殘留位值)R。錯(cuò)雜評(píng)估Xi、Xp與Xb系依據(jù)方程式1-3而來(lái)。
Xi=160·bit_rate115]]>方程式1Xp=60·bit_rate115]]>方程式2Xb=42·bit_rate115]]>方程式3在方程式1-3,變量bit_rate對(duì)應(yīng)于資料信道中固定位速率(每秒鐘的位),就像在圖4中所描述的固定位速率信道410。另外一個(gè)具體化的例子就是,變量bit_rate對(duì)應(yīng)于變動(dòng)位速率信道的平均或設(shè)定的平均位速率。更者,變量bit_rate對(duì)應(yīng)于一變動(dòng)位速率信道的斷續(xù)固定位速率。
在一具體實(shí)施例,作為剩下位數(shù)R的序列起始初始值R0在方程式中系以R0表示。在序列的起始,沒(méi)有在先前的圖像群組與結(jié)果,也沒(méi)有先前圖像群組的剩余位數(shù)的滯銷品。更者,如何更新剩余位數(shù)R的數(shù)值將于方程式27與28中描述。
R0=G 方程式4G=bit_rate·Npicture_rate]]>方程式5變量G代表一可被數(shù)值信道依據(jù)一對(duì)應(yīng)于圖像群組的代表時(shí)間長(zhǎng)度的總數(shù)進(jìn)行轉(zhuǎn)換的位數(shù)。該時(shí)間總數(shù)隨著圖像群組內(nèi)的圖像數(shù)目而改變。在方程式5中,變量bit_rate為每秒鐘位,數(shù)值N對(duì)應(yīng)于圖像群組中的圖像數(shù)目(所有型態(tài)),變量picture_rate為每秒鐘的圖片或訊框。過(guò)程由步驟608進(jìn)入步驟610。
在步驟610,過(guò)程計(jì)算位的初始目標(biāo)數(shù)Ti、Tp與Tb,例如對(duì)一個(gè)被編碼的圖像的初始目標(biāo)位分配。需注意的是當(dāng)B圖像被編碼時(shí),在圖像群組中的圖像將被編碼于序列外。例如,在速率控制與量化控制過(guò)程估計(jì)該圖像的初始目標(biāo)位分配,將對(duì)應(yīng)的編碼圖像型態(tài)而依據(jù)方程式6~8。
Ti=max{(R(1+NPXpXiKp+NbXbXiKb)),(bit_rate8·picture_rate)}]]>方程式6Tp=max{(R(Np+NbKpXbKbXp)),(bit_rate8·picture_rate)}]]>方程式7Tb=max{(R(Nb+NpKbXpKPXb)),(bit_rate8·picture_rate)}]]>方程式8在方程式6,當(dāng)該圖像為圖像群組的起使為I圖像時(shí),Ti為下一個(gè)已編碼圖像的目標(biāo)位分配,Ti是由兩組括號(hào)中取其較大者。在方程式7,當(dāng)下一張圖像為P圖像時(shí),Tp為已被編碼的下一圖像的目標(biāo)位分配。在在方程式8,當(dāng)圖像為B圖像時(shí),Tb為已被編碼的圖像的目標(biāo)位分配。常數(shù)Kp與kb的數(shù)值系取決于用來(lái)做為圖像編碼的標(biāo)準(zhǔn)化矩陣。常數(shù)Kp與kb可以變化,具體的例子如Kp為1.0與kb為1.4。這些常數(shù)值可依據(jù)編碼圖像的特性,如數(shù)量、運(yùn)動(dòng)方式、組織、顏色和影像等細(xì)節(jié)而改變。
在速率控制與量化控制過(guò)程的一個(gè)具體化的例子,過(guò)程進(jìn)一步依據(jù)如接續(xù)的圖7所述的譯碼緩沖器的緩沖器占有推斷來(lái)調(diào)整自初始目標(biāo)位分配的目標(biāo)位分配T(i,p,b)。
當(dāng)過(guò)程決定下一張圖像被編碼的目標(biāo)位分配,過(guò)程由步驟610進(jìn)入步驟612。一被分配為一圖像的位時(shí),該圖像進(jìn)一步被分配在該圖像的大區(qū)塊中。該圖像的位分配可以依據(jù)一習(xí)知的技術(shù),如在TM5中所提的技術(shù)或者是后續(xù)即將提到的步驟614的技術(shù)來(lái)進(jìn)行估算。另外,圖像于編碼成大區(qū)塊時(shí)可以更進(jìn)步被處理成不同的次序或者是序列,該次序或者是序列將于圖8A與圖8B中討論。
在步驟612,過(guò)程設(shè)定初始值來(lái)作為初始虛擬緩沖器充滿。具體化的實(shí)施方式,就是每一個(gè)圖像皆有一個(gè)虛擬緩沖器。變量dji、djp以及djb代表作為I圖像、P圖像、B圖像的虛擬緩沖器充滿。變量j代表被編碼且起始值為1的大區(qū)塊的號(hào)碼。J為0時(shí)代表初始狀態(tài)。虛擬緩沖器充滿,如dji、djp以及djb,相當(dāng)于該j-th大區(qū)塊進(jìn)行編碼前的虛擬緩沖器充滿,如此該虛擬緩沖器充滿相對(duì)于該在大區(qū)塊(j-1)充滿。
d0i=10·r31]]>方程式9d0p=kp·d0i]]>方程式10d0b=kb·d0i]]>方程式11方程式12系呈現(xiàn)在方程式9中出現(xiàn)的反應(yīng)參數(shù)值r的計(jì)算結(jié)果。其它計(jì)算該反應(yīng)參數(shù)r的方式也可以被使用。
r=2·bit_ratepicture_rate]]>方程式12關(guān)于反應(yīng)式10與11,Kp與kb為先前于方程式6~8所定義的常數(shù)。過(guò)程由步驟612進(jìn)入步驟614,或者略過(guò)而進(jìn)入步驟616。
過(guò)程也可以包含一個(gè)大區(qū)塊模式結(jié)論622來(lái)判斷是否一個(gè)大區(qū)塊該不該編碼成Intra,Inter_No_MC,Inter_MC等等??捎玫哪J叫蛻B(tài)依據(jù)種種變因,如圖像型態(tài)、圖像是交錯(cuò)或者累進(jìn)的。大區(qū)塊模式判斷可以被平行實(shí)施或者于步驟616,619,621中連續(xù)進(jìn)行。在模式判斷中有效使用一個(gè)編碼成本作為移動(dòng)指針的大區(qū)塊模式判斷將于圖17中詳細(xì)描述。
在步驟614,過(guò)程更新作為虛擬緩沖器充滿的結(jié)果,例如dji、djp以及djb。這些被更新的dji、djp以及djb系依據(jù)圖像的種類來(lái)進(jìn)行更新,例如當(dāng)I圖像被編碼時(shí),數(shù)值dji被更新。過(guò)程更新作為虛擬緩沖器充滿的結(jié)果以計(jì)算編碼大區(qū)塊需使用的位數(shù)。更新至虛擬緩沖器充滿需對(duì)應(yīng)被使用來(lái)分配圖像中大區(qū)塊中位的技巧。例如在TM5的格式中,系此近乎線性的方式來(lái)分配圖像中大區(qū)塊中的位。位也可視圖像(P圖像或者是B圖像)中的大區(qū)塊的相對(duì)移動(dòng)而被有利的分配在大區(qū)塊,勝過(guò)判斷相對(duì)的移動(dòng)。
方程式13a、14a及15a描述更新虛擬緩沖區(qū)充滿的計(jì)算值的一般格式dji=d0i+Bj-1-TMBj-1i]]>方程式13adjp=d0p+Bj-1-TMBj-1p]]>方程式14adjb=d0b+Bj-1-TMBj-1b]]>方程式15a變量Bj對(duì)應(yīng)至已編碼過(guò)的圖像大區(qū)塊中被用以編碼的位編號(hào),其中的j值表示為第j個(gè)大區(qū)塊,同理j-1代表j的上一個(gè)但不包括第j個(gè)對(duì)應(yīng)的已編碼過(guò)的圖像大區(qū)塊中被用以編碼的位編號(hào)。變量TMBj-1i、TMBj-1p及TMBj-1b分別對(duì)應(yīng)至j的上一個(gè)但不包括第j個(gè)對(duì)應(yīng)的已編碼過(guò)的圖像大區(qū)塊中被用以編碼的位編號(hào)。
方程式13a、14a及15可表示整個(gè)虛擬緩沖區(qū)充滿的計(jì)算值,亦即,在已實(shí)施的TM5程序中提及的dji、djp或djb。此方式的缺點(diǎn),TM5程序系為圖像大區(qū)塊變動(dòng)而作對(duì)應(yīng)配置,因此當(dāng)處理的圖像為運(yùn)動(dòng)節(jié)目,該大區(qū)塊中的位便需要較擁有相同位編碼,但內(nèi)容較單調(diào)或緩慢的圖像更為快速做出對(duì)應(yīng)變化。
dji=d0i+Bj-1-(Ti·(j-1)MB_cnt)]]>方程式13bdjp=d0p+Bj-1-(Tp·(j-1)MB_cnt)]]>方程式14bdjb=d0b+Bj-1-(Tb·(j-1)MB_cnt)]]>方程式15b在具體實(shí)施例中,更新過(guò)的數(shù)值可以表示成如13c、14c及15c的形式。使用上述三個(gè)方程式的演算將使得根據(jù)圖像的大區(qū)塊移動(dòng)的配置較有優(yōu)勢(shì)。上述優(yōu)勢(shì),例如可以允許根據(jù)計(jì)算大區(qū)塊關(guān)連動(dòng)作而配置位,而非僅是一個(gè)常數(shù)值或一個(gè)預(yù)估的位移值。圖像大區(qū)塊中位配置方法可以一更詳細(xì)的表示式條列如下如圖8A及圖8B所示dji=d0i+Bj-1-(Ti·Mact_sumj-1MACT)]]>方程式13cdjp=d0p+Bj-1-(Tp·Mact_sumj-1MACT)]]>方程式14cdjb=d0b+Bj-1-(Tb·Mact_sumj-1MACT)]]>方程式15c變量Mact_sumj-1則代表根據(jù)已編碼過(guò)的圖像大區(qū)塊的動(dòng)作總值,亦即,如方程式17所表示的上一個(gè)大區(qū)塊,但不包括大區(qū)塊j。
MACT=ΣK=1MB_cntMactk]]>方程式16Mact_sumj-1=ΣK=1j-1Mactk]]>方程式17方程式16中,參數(shù)MB_cnt代表圖像中的大區(qū)塊編號(hào),且變量Mactk代表第k個(gè)圖大區(qū)塊相亮度的移動(dòng)活力。很多方式及技巧能用以計(jì)算該移動(dòng)活力,例如相異運(yùn)算及絕對(duì)差異總和運(yùn)算。
另一具體實(shí)施例,該虛擬緩沖區(qū)占據(jù)的更新值dji、djp或djb系根據(jù)第10章所提及,關(guān)于自MPEG格式擷取的TM5模型為基礎(chǔ)建立的方程式計(jì)算之值。
再一具體實(shí)施例,該虛擬緩沖區(qū)占據(jù)的更新值dji、djp或djb系根據(jù)方程式13d、14d及15d計(jì)算所得。
dji=d0i+Bj-1-(αiTi·(j-1)MB_cnt+(1-αi)Ti·Mact_sumj-1MACT)]]>方程式13ddjp=d0p+Bj-1-(αpTp·(j-1)MB_cnt+(1-αp)Tp·Mact_sumj-1MACT)]]>方程式14ddjb=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采用的相對(duì)關(guān)連平均演算及根據(jù)方程式13c、14c及15c采用的動(dòng)作平均演算方法而演,對(duì)于圖像大區(qū)塊的位分配有更大的容許優(yōu)勢(shì)。這里采用的合并分配能關(guān)連的公平的補(bǔ)償位,例如某位明顯的超出范圍時(shí)就能發(fā)揮該分配方法的優(yōu)勢(shì)。加權(quán)指數(shù)αi、αp及αb的值可以在0至1之間大范圍的變動(dòng)。一個(gè)具體實(shí)施例,可以將加權(quán)指數(shù)αi、αp及αb的值可以在0至0.5之間,舉例而言,樣本的值可以設(shè)定為例如0.2、0.3、0.4及0.5等,其它超過(guò)0至1范圍的值則可以一些方法加以除去。前述的方法有一具體實(shí)施例,圖像編碼時(shí)可以讓使用者自行設(shè)定上述αi、αp及αb的加權(quán)指數(shù)的數(shù)值。
占據(jù)虛擬緩沖區(qū)的更新值dji、djp或djb系根據(jù)每一特定圖像大區(qū)塊計(jì)算而得。然而,一個(gè)可以理解的事實(shí),對(duì)第一大區(qū)塊的更新值,亦即,dji、djp或djb會(huì)與步驟612的初始設(shè)定相同,如此則步驟614對(duì)于第一大區(qū)塊的設(shè)定值可以被忽略。這個(gè)程序更可進(jìn)一步由步驟S614推至步驟616。
步驟616中,將計(jì)算大區(qū)塊量子數(shù)j的參考量子參數(shù)Qj。方程式18表示一個(gè)參考量子參數(shù)的計(jì)算式,這個(gè)程序更可進(jìn)一步由步驟616推至步驟619。
Qj=(dj·31r)]]>方程式18步驟619中,將根據(jù)大區(qū)塊計(jì)算動(dòng)作的正交空間N_Sactj。一個(gè)具體實(shí)施例,系為根據(jù)步驟TM5及方程式19a、19b、21a、22及23a計(jì)算出動(dòng)作的正交空間N_Sactj。上述演算方法的缺點(diǎn),系為根據(jù)TM5采用的方法分配的大區(qū)塊位計(jì)算出的動(dòng)作的正交空間N_Sactj,該位分配僅考慮空間中的位移(或肌理)而未能將對(duì)象自身轉(zhuǎn)動(dòng)考慮進(jìn)去。此外,在稍后將再詳細(xì)說(shuō)明的方程式23a中,TM5步驟對(duì)于計(jì)算正交空間N_Sactj有一些限制,上述限制亦將在稍后配合圖8A及圖8B再詳細(xì)說(shuō)明。
另一具體實(shí)施例,根據(jù)方程式20a、21b、21c、22及23b計(jì)算的正交空間N_Sactj。其中結(jié)合計(jì)算對(duì)象動(dòng)作的參考量子參數(shù)Qj及經(jīng)由正交空間達(dá)到調(diào)整效果的演算方法,即可讓圖像大區(qū)塊位的分配同時(shí)兼顧位移(或肌理)及轉(zhuǎn)動(dòng)的計(jì)算,因而大大的改善了圖像的品質(zhì)。舉例,如果只有考慮對(duì)象在空間上的位移,在處理運(yùn)動(dòng)員激烈運(yùn)動(dòng)下局部區(qū)域圖像,例如腳部的肌理變化,因?yàn)橥ǔ⒎峙渖贁?shù)的位,導(dǎo)致產(chǎn)生所謂畫(huà)面的「碎裂(或鋸尺狀)」視覺(jué)效果。發(fā)生上述情形的原因?yàn)樵趫D像劇烈運(yùn)動(dòng)下的局部區(qū)域顯現(xiàn)相對(duì)較高的空間位移(或肌理),也因此分配了較少的位。此外,在稍后將再詳細(xì)說(shuō)明的方程式23b中,有一更進(jìn)一步的具體實(shí)施例,其中采用一種空間位移的實(shí)體值,該實(shí)體值可以更吻合介于目標(biāo)位與實(shí)際編碼位的分配,也因此可以減少緩沖區(qū)超出與不足部分的近似,故可增加對(duì)象的對(duì)比性及鑒識(shí)度。
步驟619中,圖像于空間中的位移決定肌理的品質(zhì),而有許多可行的方法能計(jì)算此一空間中的位移。舉例,上述程序能藉由先前第10章介紹的TM5或在此單元將介紹的新方法計(jì)算空間中的位移。方程式19a揭示一種如第10章TM5的應(yīng)用,藉由以框架為基礎(chǔ)的次圖塊法及以場(chǎng)域?yàn)榛A(chǔ)的次圖塊法利用圖像亮度計(jì)算出大區(qū)塊j在空間中的位移。I圖像對(duì)于第j個(gè)大區(qū)塊的空間中的位移,亦即,肌理,能夠藉由方程式19b計(jì)算得知,該方程式則是藉由TM5提供的演算方法。
actj=1+min(vblk1,vblk2,...,vblk8) 方程式19avblkn=164·Σk-164(Pkn-P_meann)2]]>方程式19b關(guān)于計(jì)算P_meann的公式稍后將于介紹方程式21a時(shí)一并描述。Pkn系由對(duì)應(yīng)于第n個(gè)8乘8階次圖塊擷取畫(huà)素的取樣。上述方程式的缺點(diǎn)為,方程式19b所示的算法較為復(fù)雜而且需耗費(fèi)較多的CPU運(yùn)算時(shí)間,對(duì)于一些慢速通用的CPU,例如微處理器,在應(yīng)用到實(shí)時(shí)編碼時(shí)將顯得難以執(zhí)行。方程式19b系參照L2正交并藉由計(jì)算差異值而獲得空間中位移的數(shù)值,這樣的算法在全解析全屏幕下的實(shí)時(shí)編碼將顯得不敷使用,結(jié)果就是,通常傳統(tǒng)的系統(tǒng)都要依賴硬件來(lái)負(fù)擔(dān)大部分實(shí)時(shí)編碼的工作。盡管硬件譯碼的執(zhí)行速度相較于軟件譯碼要來(lái)得更快,但相對(duì)的也有設(shè)備昂貴、缺乏支持及升級(jí)不易的缺點(diǎn),其中該軟件譯碼系一種藉由軟件的設(shè)置,而在通用電子裝置,例如個(gè)人計(jì)算機(jī),即可達(dá)成編碼工作的方法。因此,許多圖像編碼技術(shù)都朝向?qū)で笠环N在一般通用的電子裝置就能有效率的執(zhí)行實(shí)時(shí)編碼處理的方法。
方程式20a揭示另一種對(duì)于第j個(gè)大區(qū)塊的空間中的位移計(jì)算方法的具體實(shí)施例。此外,再一種具體實(shí)施例已于方程式19a及19b揭示,該演算方法系藉由加總誤差的絕對(duì)值(而非誤差的平方值)以計(jì)算大區(qū)塊j空間中的位移。接著,再一具體實(shí)施例如方程式20b所示,系計(jì)算大區(qū)塊j空間中的轉(zhuǎn)動(dòng)。
Sactj=Σk=1256|Pkj-P_meanj|]]>方程式20aMactj=Σk=1256|Pkj-P_meanj|]]>方程式20b方程式20a中,Pkj對(duì)應(yīng)于原始的圖像亮度數(shù)據(jù)。方程式20b中,Pkj則對(duì)應(yīng)于原始的圖像亮度資料或根據(jù)大區(qū)塊型態(tài)而作的轉(zhuǎn)動(dòng)補(bǔ)償亮度資料。當(dāng)對(duì)應(yīng)I圖像的大區(qū)塊時(shí),該P(yáng)kj值系為第j個(gè)自16乘16原始亮度數(shù)據(jù)擷取的樣本值。當(dāng)對(duì)應(yīng)圖框間圖像的大區(qū)塊時(shí),該P(yáng)kj值系為16乘16原始亮度資料值。該P(yáng)_meanj的演算方法于稍后將提及的方程式21b及21c描述。
承上,方程式20a及20b采用的演算方法有幾個(gè)優(yōu)點(diǎn),可以使用一般通用電子裝置搭配先前提及的速率控制及量子控制軟件編碼方法,達(dá)到全屏幕全解析的實(shí)時(shí)圖像編碼效果。當(dāng)然,上述方程式20a及20b也可以用在非實(shí)時(shí)編碼處理,也可以于編碼過(guò)程中加入硬件支持。一個(gè)圖像編碼流程的具體實(shí)施例,其系一3GHz的中央處理器執(zhí)行的軟件編碼,在處理全屏幕全解析(720×590畫(huà)素)的PAL、SECAM或NTSC圖像數(shù)據(jù)流實(shí)時(shí)編碼顯得相當(dāng)有效率。
方程式20a及20b提供的演算方法能計(jì)算出基于習(xí)知L1正交演算的絕對(duì)值誤差加總(Sum of Absolute Differences,SAD)。盡管上述SAD演算方法較為復(fù)雜,但只要選擇適當(dāng)?shù)奶幚砥骰騼?nèi)建特殊指令的CPU即可獲得即有效率的編碼結(jié)果。一個(gè)具體實(shí)施例,個(gè)人計(jì)算機(jī)搭配一CPU,該CPU系兼容于資料流單指令/多數(shù)據(jù)(Single Instruction/MultipleData,SIMD)及其延伸指令群(Stream SIMD Extensions,SSE)等特殊運(yùn)算指令。另一具體實(shí)施例,個(gè)人計(jì)算機(jī)搭配一CPU,該CPU系兼容于與一相同或類似應(yīng)用于SSE的整合絕對(duì)值誤差加總運(yùn)算指令(Packed Sum ofAbsolute Difference,PSAD),PSADBW,例如,市面上采用全部或部分SSE指令的Intel Pentium III、Pentium 4、Xeon、Centrino、AMD Athlon、Duron或Opteron等處理器??梢酝茰y(cè),目前正在研發(fā)或尚未量產(chǎn)的新處理器,亦會(huì)將上述SSE運(yùn)算指令內(nèi)建其中。更可以進(jìn)一步推測(cè),未來(lái)將推出的新指令組仍會(huì)內(nèi)建或兼容SSE指令。
方程式21a表示一計(jì)算方程式19b中樣本值的演算方法。方程式21b及21c分別表示計(jì)算方程式20a及20b中樣本值的方法。
P_meann=164·Σk-164Pkn]]>方程式21aP_meanj=1256·Σk=1256Pkj]]>方程式21bP_meanj=0 方程式21c一個(gè)具體實(shí)施例,方程式21a所示算法表示一利用前述TM5計(jì)算第n個(gè)8乘8次圖塊P_mean取樣值的演算方法。另一具體實(shí)施例,表示藉由方程式21b及21c計(jì)算出前述P_meanj取樣值的平均值的方法。方程式21b及21c具有優(yōu)勢(shì),亦即可以結(jié)合空間中的位移(或肌理)以及轉(zhuǎn)動(dòng)的預(yù)估計(jì)算。在處理I圖像大區(qū)塊時(shí)使用方程式21b,處理圖框間圖像大區(qū)塊時(shí)則使用方程式21c。
方程式22表示一空間正交位移值的演算方法,其系藉由步驟621提供的方法計(jì)算量子數(shù),其中該量子數(shù)系應(yīng)用于離散余弦轉(zhuǎn)換(DiscreteCosine Transform,DCT)系數(shù)。
N_Sactj=(2·Sactj)+Savg_actSactj+(2·Savg_act)]]>方程式22如方程式22所示,第j個(gè)大區(qū)塊的正交空間位移值N_Sactj系藉由大區(qū)塊自身的空間位移值Sactj及空間位移平均值Savg_act計(jì)算所得。其中該空間位移平均值Savg_act系可由方程式23a或23b計(jì)算所得。
Savg_act=1MB_cnt·Σj=1MB_cntSactjprevious]]>方程式23a方程式23a表示一前述TM5描述過(guò)的演算方法,其系藉由前一圖像(而非目前圖像)的空間位移值Sactj計(jì)算所得。因此,傳統(tǒng)依據(jù)TM5設(shè)計(jì)的編碼器根據(jù)方程式22計(jì)算正交空間位移值N_Sactj的演算方法就顯得準(zhǔn)確性較低。因?yàn)槿艚逵煞匠淌?3a計(jì)算出一空間位移平均值Savg_act,則所謂的正交空間位移值N_Sactj更接近一對(duì)于正交化的預(yù)估值,而非實(shí)際去計(jì)算的數(shù)值。也因此,方程式23a提供的預(yù)估方法在由前一個(gè)畫(huà)面或圖像轉(zhuǎn)至目前的畫(huà)面或圖像時(shí)會(huì)有其不足之處。依據(jù)TM5的思維,藉由前一圖像計(jì)算得到空間位移平均值Savg_Sactj后,即可以一初始值,例如400,作為上述空間位移平均值Savg_Sactj。
TM5提供的編碼方法利用前一圖像作為空間位移值Savg_Sactj,因?yàn)門(mén)M5提供的方法系以一流程序列以一對(duì)一的方式對(duì)每一個(gè)大區(qū)塊編碼,因此在編碼的運(yùn)算時(shí)間內(nèi)就無(wú)法取得空間位移平均值Savg_act,亦即不能藉由空間位移平均值計(jì)算出正交空間位移值N_Sactj。更進(jìn)一步的說(shuō)明將于稍后圖8A及8B再詳述。方程式23b則表示一于TM5基礎(chǔ)上的改良演算方法。
Savg_act=1MB_cnt·Σj=1MB_cntSactjcurrent]]>方程式23b一個(gè)具體實(shí)施例,處理序列大區(qū)塊在重組時(shí)有一個(gè)優(yōu)點(diǎn)將于稍后圖8A及8B再詳述。該重組方法系可以在目前的圖像中直接以大區(qū)塊的空間位移值Sactj計(jì)算空間位移平均值Savg_act,如此正交空間位移值N_Sactj便會(huì)是真實(shí)的正交值而非預(yù)估值。上述方法可使數(shù)據(jù)更量子化更可預(yù)估,如此則圖像編碼過(guò)的資料量將更接近實(shí)際資料量,如此也更進(jìn)一步縮減或消除分別來(lái)自I圖像、P圖像及B圖像中占據(jù)虛擬緩沖區(qū)的更新值dji、djp及djb的不規(guī)則及失真。另外,值得注意的是藉由方程式23b計(jì)算空間位移平均值Savg_act時(shí)并不需要自行定義一初始值,如前述取400為初始值,因?yàn)榻逵烧诰幋a的圖像空間位移值Sactj可以作為真實(shí)的平均值。流程由步驟619推至步驟621,如方程式13至17所述,系藉由計(jì)算占據(jù)虛擬緩沖區(qū)的狀態(tài)以計(jì)算實(shí)際的轉(zhuǎn)動(dòng)及位移。
步驟621的程序?qū)⒂?jì)算量子參數(shù)mquantj,該量子參數(shù)系用以量子化第j個(gè)大區(qū)塊??梢岳斫獾氖?,上述量子參數(shù)mquantj可以在步驟621中使用或者先儲(chǔ)存起來(lái)稍后再用。方程式23表示一計(jì)算量子參數(shù)mquantj的演算方法。
mquantj=Qj·N_Sactj方程式23方程式23中,Qj為稍早于方程式18提及的參考量子參數(shù),N_Sactj為稍早于方程式22提及的正交空間位移值。一個(gè)具體實(shí)施例,上述程序更進(jìn)一步檢查計(jì)算的量子參數(shù)mquantj及其不可預(yù)測(cè)的量化層QAC(i,j)范圍限制因而卡住的情形。例如,一個(gè)具體實(shí)施例,采用標(biāo)準(zhǔn)MPEG-1圖像編碼并檢測(cè)到計(jì)算出的量子參數(shù)mquantj其值為2并自動(dòng)將該數(shù)值替換成4,該量子參數(shù)mquantj為將用在稍后大區(qū)塊編碼流程中,用以產(chǎn)生量化層QAC(i,j)的數(shù)值。然而,在MPEG-1編碼中,如欲滿足8位則其量化層QAC(i,j)將被限制于-255至255的間,該資料卡住的情形將導(dǎo)致可視的噪聲,不過(guò)這個(gè)問(wèn)題可以藉由限制改良位內(nèi)容的方式加以消除。上述實(shí)施例中的技術(shù)內(nèi)容稍后將于圖9A及9B,而程序由步驟627推至判斷方塊步驟630。
以一個(gè)具體化例子來(lái)說(shuō),過(guò)程更重新設(shè)定虛擬緩沖器占用值(dji、djp與djb)與量子化參數(shù)mquantj,以符合來(lái)所選擇的刺激,該刺激將于接續(xù)的圖9A中詳細(xì)描述。過(guò)程由步驟621推至步驟632。
在步驟623內(nèi),過(guò)程對(duì)J-th的大區(qū)塊進(jìn)行編碼。過(guò)程在步驟616之前對(duì)J-th的大區(qū)塊用量子化參數(shù)(mquantj)來(lái)計(jì)算進(jìn)行編碼。編碼技術(shù)能包括例如離散余弦轉(zhuǎn)換,運(yùn)動(dòng)向量,等等的計(jì)算。在一個(gè)具體化方面,那些過(guò)程能有選擇地略過(guò)那些圖像B的大區(qū)塊的編碼會(huì)在后來(lái)的圖11將有非常詳細(xì)的描述。過(guò)程由步驟623推入判斷方塊步驟625。
在判斷方塊步驟625,過(guò)程判斷在圖像中大區(qū)塊是否已在步驟616被譯碼,或者如圖11所述可略過(guò)。當(dāng)圖像的大區(qū)塊已經(jīng)被編碼完畢或者跳過(guò)該過(guò)程步驟時(shí),過(guò)程步驟由步驟616進(jìn)入步驟617。否則,過(guò)程回到步驟614來(lái)接續(xù)后續(xù)大區(qū)塊的制程。
在步驟627,過(guò)程儲(chǔ)存虛擬緩沖器的最后占用值,來(lái)作為相同型態(tài)下一張圖像編碼的初始位置。例如目前訊框虛擬緩器的最后占用值,當(dāng)j為MB_cnt時(shí),dji、djp、djb的值被儲(chǔ)存,因此,于一相同型態(tài)的下一張圖像條件下,可用d0i、d0p、d0b為一起始值。在某些況下,于一持續(xù)時(shí)間用來(lái)編碼的位數(shù)相對(duì)較低,因此,位填充系被使用來(lái)增加編碼時(shí)的位數(shù)。但是位填充的使用將導(dǎo)致虛擬緩沖器內(nèi)的占用值扭曲,而使得編碼器的狀態(tài)呈現(xiàn)不穩(wěn)定。舉例來(lái)說(shuō)速率控制與量化控制過(guò)程包含一個(gè)以上用以更有效降低位填充的技術(shù),其將于圖9A與圖9B中進(jìn)一步描述。過(guò)程由步驟627進(jìn)入步驟630。
在判斷方塊步驟630,圖標(biāo)說(shuō)明內(nèi)的關(guān)于圖像的制程已經(jīng)完成,接續(xù)將進(jìn)行判斷這個(gè)圖像是否為該圖像群組最后一個(gè)圖像。這是可以藉由監(jiān)控P圖像的數(shù)目Np與B圖像的數(shù)目Nb的剩余值來(lái)達(dá)成,其中該P(yáng)圖像的數(shù)目Np與B圖像的數(shù)目Nb的剩余值已于步驟66中說(shuō)明。當(dāng)該圖像群組中仍有圖像尚待處理時(shí),過(guò)程由判斷方塊步驟630推至步驟632。換言之,當(dāng)這個(gè)過(guò)程已經(jīng)完成圖像群組處理,這個(gè)過(guò)程會(huì)從判斷方塊步驟630發(fā)出到判斷方塊步驟634。
在步驟632中,這個(gè)過(guò)程提供最新、最適當(dāng)?shù)腜圖像數(shù)NP或是B圖像數(shù)Nb,并將過(guò)程推至步驟636以進(jìn)行圖像群組中下一個(gè)圖像的初始狀態(tài)。下一個(gè)將被處理的圖像不一定就是下一張被播放的圖像,因?yàn)樵诰幋a過(guò)程圖像可能再次被重新安排。在步驟636中,這個(gè)過(guò)程將依據(jù)剛被編碼的圖像更新相對(duì)應(yīng)的錯(cuò)雜評(píng)估。例如,如果一個(gè)I圖像剛剛已經(jīng)被編碼完成,這個(gè)程序就會(huì)針對(duì)I圖像更新的錯(cuò)雜評(píng)估Xi,此程序可由方程式24得知。其中方程式24、方程式25及方程式26分別如下列關(guān)系是所示Xi=SiQi方程式24Xp=SpQp方程式25Xb=SbQb方程式26在方程式24、方程式25及方程式26中,Si、Sp、及Sb的值,相對(duì)應(yīng)于所產(chǎn)生的位號(hào)碼(the number of bits),或是之前使用做圖像編碼,而該圖像可分別是I圖像、P圖像或是B圖像。Qi、Qp、及Qb的值系對(duì)應(yīng)于量化參數(shù)mquantj的平均值,量化參數(shù)mquantj是用來(lái)將圖像中的大區(qū)塊量化。過(guò)程由步驟636推入步驟638。
在步驟638中,過(guò)程更新了分配至圖像群組的剩下位數(shù)。這個(gè)更新了分配至圖像群組的剩下位數(shù)的步驟系依據(jù)是否下一張被編碼的圖片是來(lái)自已經(jīng)存在圖像群組或者下一張被編碼的圖片是否為新圖像群組的第一張。當(dāng)下一張將進(jìn)行制程的圖片為新圖像群組的第一張時(shí),將同時(shí)使用方程式27與方程式28。當(dāng)下一張即將進(jìn)行制程的圖片為先前制程的相同圖像群組之一圖片時(shí),僅使用方程式27。方程式27與方程式28代表R值的分配狀態(tài),因此方程式左邊的R值是新的,方程式右邊的R值是舊的,而方程式27及方程式28如下列所示R=R-S(i,p,b)方程式27R=G+R 方程式28在方程式27,過(guò)程藉由先前的R減掉用來(lái)對(duì)剛被編碼的圖像進(jìn)行編碼的位數(shù)S(i,p,b)來(lái)計(jì)算分配至圖像群組的剩下位數(shù)。曾被用來(lái)圖像編碼的位數(shù)S(i,p,b)也可以用來(lái)計(jì)算VBV緩充器模式模式占用,其將于圖7中詳盡的描述。方程式27可以表示出每個(gè)經(jīng)過(guò)編碼后的圖像的計(jì)算結(jié)果。當(dāng)最后一個(gè)圖像群組中的圖像經(jīng)過(guò)編碼后,一個(gè)新群組中的第一個(gè)圖像成為下一個(gè)需要編碼的對(duì)象,方程式27所計(jì)算出來(lái)的結(jié)果,和方程式28所計(jì)算出來(lái)的結(jié)果是相關(guān)的。在方程式28中,新的R值是根據(jù)原本的R值加上G所計(jì)算出來(lái)的,其中原本的R值可以為正數(shù)或者是負(fù)數(shù)。這個(gè)G值是由新編碼后的圖像群組,與相對(duì)應(yīng)新圖像群組的位號(hào)碼有關(guān),此位號(hào)碼系藉由圖像的長(zhǎng)度及對(duì)應(yīng)的時(shí)間來(lái)判定。這個(gè)步驟從步驟638回到步驟610。
現(xiàn)在回到判斷方塊步驟634,在這個(gè)步驟中,完成了最后一個(gè)圖像群組中的圖像編碼。在判斷方塊步驟634中,決定是否已經(jīng)完成視訊序列的編碼。這個(gè)步驟可以很輕易的讓人了解,例如傳布編碼,實(shí)際上編碼所用掉的時(shí)間,及后續(xù)編碼所需時(shí)間。當(dāng)有另一個(gè)圖像群組需要被處理時(shí),從判斷方塊步驟634推至到步驟640。否則,這個(gè)過(guò)程終止。
在步驟640中,這個(gè)步驟可以接收到下一個(gè)圖像群組??梢詮倪@個(gè)步驟具體的了解到在步驟640中,過(guò)程僅會(huì)擷取下個(gè)圖像群組的一部分,剩下的部分,以后在擷取。更具體而言,步驟640與步驟S602是十分相似的。過(guò)程從步驟640推到步驟642。
在步驟642,過(guò)程接收到應(yīng)用于該圖像群組中的圖像已編碼的型態(tài)。在實(shí)施例中的速率控制與量化控制過(guò)程,決定圖像群組中之圖像該譯碼為何種型態(tài)是較圖像進(jìn)行速率控制與量化控制過(guò)程制程早一步進(jìn)行。具體化而言,步驟642與步驟604近似。制程將由步驟642進(jìn)入先前已敘述過(guò)的步驟644。
在步驟644,過(guò)程判斷已被編碼的下一個(gè)圖像群組的P圖像數(shù)目Np與B圖像數(shù)目NB。以一個(gè)具體化的例子來(lái)說(shuō),步驟644與步驟606近似。制程將由步驟644進(jìn)入先前已敘述過(guò)的步驟636,來(lái)繼續(xù)進(jìn)行編碼過(guò)程。
VBV緩沖器模型空間占用層級(jí)的控制圖7系說(shuō)明基于虛擬緩沖器的空間占用層級(jí)調(diào)整一目標(biāo)位配置程序的流程圖,如圖所示的程序運(yùn)算,此程序的描述系與MPEG-1及MPEG-2視訊編碼有關(guān),使得此虛擬緩沖器對(duì)應(yīng)于視訊緩沖檢測(cè)器(VBV)緩沖模型。此VBV緩沖器模型系為一概念上的模型,以提供編碼器用來(lái)模仿在譯碼器中的緩沖器占用層級(jí);對(duì)熟悉此項(xiàng)技術(shù)之人士而言,使用其它視訊編碼標(biāo)準(zhǔn)作為其它緩沖器模型乃是顯而易知的。在更進(jìn)一步討論圖7之前,VBV緩沖器模型層級(jí)的監(jiān)控將于此進(jìn)行較為詳細(xì)的描述。
如前述與圖4有關(guān)的敘述,此VBV緩沖器模型可預(yù)知或預(yù)測(cè)在譯碼器緩沖器中的緩沖器層級(jí)。此譯碼器緩沖器的占用層級(jí)大概與編碼器緩沖器的占用層級(jí)相反,如此在VBV緩沖器模型中一相對(duì)高占用層級(jí)系表示有較少的位被編碼成視訊序列,以及在VBV緩沖器模型中一相對(duì)低占用層級(jí)則表示較多的位被編碼成視訊序列。
此VBV緩沖器模型的占用層級(jí)Vstatus系可被計(jì)算及監(jiān)控。在一實(shí)施例中,VBV緩沖器模型的占用層級(jí)Vstatus系與一預(yù)設(shè)臨界值相比較,并根據(jù)此比較結(jié)果使適應(yīng)編碼程序,此部份將于后面配合圖11做較為詳述的說(shuō)明。在一另一實(shí)施例中,此VBV緩沖器模型的占用層級(jí)Vstatus系用來(lái)適應(yīng)性調(diào)整一圖像的位目標(biāo)數(shù)Ti、Tp或Tb以進(jìn)行編碼。此占用層級(jí)Vstatus的計(jì)算系以方程式29表示之。
Vstatus=Vstatus-S(i,p,b)+bit_ratepicture_rate]]>方程式29方程式29代表此占用層級(jí)Vstatus之值的分配說(shuō)明,等號(hào)左邊的Vstatus代表新的占用層級(jí)值,而在等號(hào)右邊的Vstatus則代表先前的占用層級(jí)值。在一實(shí)施例中,此占用層級(jí)Vstatus之值系為VBV緩沖器模型的初始目標(biāo)值,例如,此VBV緩沖器模型的完全占用的目標(biāo)值為7/8。在另一實(shí)施例中,作為緩沖器占用的初始Vstatus的值系與一具體VBV-延遲值有關(guān)。其它初始值則為熟悉此項(xiàng)技術(shù)之人士易于決定者。
在方程式29中,VBV緩沖器模型的占用系以下列方式計(jì)算。先前的占用層級(jí)值先減去已對(duì)圖像編碼的編碼位數(shù)S(i,p,b),然后再加上對(duì)應(yīng)于一訊框或圖像的時(shí)間周期中傳送的位數(shù),以得到一新的占用層級(jí)值Vstatus。如方程式29所示,在訊框中傳送的位數(shù)系等于位速率除以訊框速率。在方程式29所示的計(jì)算系適應(yīng)每一圖像程序的占用層級(jí)Vstatus更新。在另一實(shí)施例,修改此一方程式,以更新少于每一圖像的占用層級(jí)Vstatus,例如每一其它圖像。
接續(xù)說(shuō)明與圖7有關(guān)的內(nèi)容,此程序的一實(shí)施例系先比較一圖像的位目標(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)。
一實(shí)施例系使用五個(gè)與VBV緩沖器模型占用層級(jí)有關(guān)的參數(shù)來(lái)控制,在其它實(shí)施例中,亦可使用少于五個(gè)參數(shù)或超過(guò)五個(gè)參數(shù)。此些參數(shù)可在一非常寬的范圍中變化,并可包括固定參數(shù)、變動(dòng)參數(shù)、適應(yīng)參數(shù)、使用者可客制化(user-customizable)參數(shù)及其它類似者。在一實(shí)施例中,將使用下列參數(shù)(以漸減的占用率排列)Vhigh、Vtarget、Vmid、Vlow及Vcritical。
Vhigh相當(dāng)于此VBV緩沖器模型的占用的較高值,在一實(shí)施例中,程序系努力去控制編碼,使VBV緩沖器模型的占用得以維持在Vhigh以下。
Vtarget相當(dāng)于此VBV緩沖器模型要求的占用層級(jí),在一實(shí)施例中,此要求的緩沖器占用層級(jí)Vtarget可受使用者的配置。
Vmid相當(dāng)于一緩沖器層級(jí),其系為此VBV緩沖器模型的占用的一半。
Vlow相當(dāng)于此VBV緩沖器模型的占用的較低值,在一實(shí)施例中,程序系努力去控制編碼,使VBV緩沖器模型的占用得以維持在Vhigh以上。
Vcritical相當(dāng)于一較Vlow更低的占用層級(jí),在一實(shí)施例中,當(dāng)此VBV緩沖器模型的占用下降至Vcritical以下時(shí),此程序繼續(xù)進(jìn)行以略過(guò)在B圖像中的大區(qū)塊,較詳細(xì)的說(shuō)明系與下述的圖11有關(guān)。
表II系為各臨界層級(jí)的實(shí)例值,其它適當(dāng)?shù)臄?shù)值系可為熟悉此項(xiàng)技術(shù)的人士所能易于決定者。
表II
在表II所列的實(shí)例值有利于按VBV緩沖器模型尺寸的比例排列,如前述與圖4有關(guān)的詳細(xì)說(shuō)明。MPEG-2的VBV緩沖器模型尺寸大約為224kB,而MPEG-1的VBV緩沖器模型尺寸則大約為40kB。有關(guān)VBV緩沖器模型的尺寸系為熟悉此項(xiàng)技術(shù)之人士所能易于了解者,例如用于MPEG-1與MPEG-2的VBV緩沖器模型,其系可根據(jù)所使用的視訊編碼標(biāo)準(zhǔn)及應(yīng)用方案而變化。
再回到圖7所示,在圖7所示的程序中調(diào)整一圖像的目標(biāo)位配置Ti、Tp或Tb,其系基于該VBV緩沖器模型的占用層級(jí)的至少一部份。在一實(shí)施例中,在圖7所示的程序系結(jié)合圖6所示程序的步驟610;此程序可以從一選擇判斷方塊710開(kāi)始,其系先比較目標(biāo)位配置Ti、Tp或Tb的值(一般在圖7中以T(i,p,b)表示)與一個(gè)或多個(gè)目標(biāo)臨界值,例如Tmid或Thigh。舉例來(lái)說(shuō),當(dāng)VBV緩沖器模型占用層級(jí)相對(duì)較低,則需要求助于調(diào)整程序,以便選擇目標(biāo)臨界值Tmid;另一范例則是當(dāng)VBV緩沖器模型占用層級(jí)相對(duì)較高,需要求助于調(diào)整程序,以便選擇目標(biāo)臨界值Thigh。在一實(shí)施例中,只有目標(biāo)臨界值Tmid或Thigh其中一個(gè)被使用;另一實(shí)施例中系同時(shí)使用二個(gè)目標(biāo)臨界值;再另一實(shí)施例中,此選擇判斷方塊系不存在,所以二個(gè)目標(biāo)臨界值皆無(wú)使用。在此圖解的實(shí)施例中,此調(diào)整程序系與VBV緩沖器模型占用層級(jí)與配置至已編碼圖像的位數(shù)目有關(guān),此目標(biāo)位配置Ti、Tp或Tb的計(jì)算過(guò)程系已描述在前述的步驟610以及圖6的方程式6、7及8。方程式30a系表示此目標(biāo)臨界值Tmid的實(shí)例計(jì)算方式,方程式30b系表示此目標(biāo)臨界值Thigh的實(shí)例計(jì)算方式。
Tmid=Vstatus-Vmid方程式30aThigh=Vstatus-Vhigh+bit_ratepicture_rate]]>方程式30b此圖解實(shí)施例的程序系從選擇判斷方塊710開(kāi)始,當(dāng)目標(biāo)位配置Ti、Tp或Tb超過(guò)目標(biāo)臨界值Tmid或是目標(biāo)位配置Ti、Tp或Tb少于目標(biāo)臨界值Thigh,則繼續(xù)進(jìn)行一步驟720;在其它實(shí)施例或結(jié)構(gòu)配置中,若選擇判斷方塊710不存在,則此程序?qū)⒂刹襟E710開(kāi)始,此為顯而易知者。當(dāng)目標(biāo)位配置Ti、Tp或Tb超過(guò)目標(biāo)臨界值Tmid時(shí),此VBV緩沖器模型占用系相對(duì)較低。在圖解實(shí)施例中,當(dāng)目標(biāo)位配置的調(diào)整發(fā)生在一圖像已配置有足夠位時(shí),此時(shí)目標(biāo)臨界值Tmid不需要調(diào)整,VBV緩沖器模型占用將會(huì)下降或保持在Vmid。其它臨界值系為熟悉此項(xiàng)技術(shù)者所易于決定者。當(dāng)目標(biāo)位配置Ti、Tp或Tb沒(méi)有超過(guò)目標(biāo)臨界值Tmid且目標(biāo)位配置Ti、Tp或Tb沒(méi)有少于目標(biāo)臨界值Thigh,如圖所示的流程系從選擇判斷方塊710開(kāi)始到一判斷方塊730;若選擇判斷方塊710不存在或無(wú)使用,則此程序?qū)⒂刹襟E720開(kāi)始,然后進(jìn)行判斷方塊730,此為顯而易知者。在另一實(shí)施例,當(dāng)目標(biāo)位配置Ti、Tp或Tb沒(méi)有超過(guò)目標(biāo)臨界值Tmid且目標(biāo)位配置Ti、Tp或Tb沒(méi)有少于目標(biāo)臨界值Thigh時(shí),此程序?qū)⒂蛇x擇判斷方塊710繼續(xù)進(jìn)行至結(jié)束,例如,此程序的步驟612的進(jìn)行系如圖6所描述者。在圖中的選擇判斷方塊710,對(duì)I圖像、P圖像及B圖像系使用相同的目標(biāo)臨界值Tmid及/或Thigh進(jìn)行比較。在另一實(shí)施例中,目標(biāo)臨界值Tmid及/或Thigh系隨著圖像類型而變化。
當(dāng)目標(biāo)位配置Ti、Tp或Tb超過(guò)目標(biāo)臨界值Tmid或是目標(biāo)位配置Ti、Tp或Tb少于目標(biāo)臨界值Thigh時(shí),即進(jìn)入步驟720,此程序系調(diào)整目標(biāo)位配置Ti、Tp或Tb的值,以降低位配置至該圖像的數(shù)量。在另一實(shí)施例,此程序由步驟720開(kāi)始,舉例說(shuō)明,此程序之一實(shí)施例系由一使用者所配置,以致于此程序不具有選擇判斷方塊710,而由步驟720開(kāi)始。例如,Ti、Tp或Tb的調(diào)整可供配置以減少位數(shù)量;較有利地,當(dāng)有較少的位使用于圖像編碼時(shí),VBV緩沖器模型占用層級(jí)與相對(duì)應(yīng)的譯碼器緩沖器占用層級(jí)的增加。方程式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系小于最初的計(jì)算值。在一實(shí)施例中,調(diào)整因素α亦可相對(duì)地大于1,使調(diào)整后的目標(biāo)位配置Ti、Tp或Tb系大于最初的計(jì)算值。換言之,方程式31的調(diào)整系表示分別計(jì)算目標(biāo)位配置Ti、Tp或Tb的調(diào)整。然而,此調(diào)整程序亦可結(jié)合目標(biāo)位配置Ti、Tp或Tb的最初計(jì)算;且方程式31系相當(dāng)于一指定分配的說(shuō)明,亦即等號(hào)右邊的值系代表調(diào)整前的目標(biāo)位配置Ti、Tp或Tb,等號(hào)左邊的值則代表調(diào)整后的目標(biāo)位配置Ti、Tp或Tb。方程式32表示此調(diào)整因素的一計(jì)算范例α=1+Vstatus-VtargetVhigh-Vlow]]>方程式32如方程式32所示,當(dāng)Vstatus小于vtarget時(shí),調(diào)整因素α系小于1;當(dāng)Vstatus大于Vtarget時(shí),調(diào)整因素α系大于1。方程式31所示調(diào)整的最終功效系使VBV緩沖器模型占用層級(jí)傾向于預(yù)設(shè)的占用層級(jí)Vtarget。
值得注意的是,在選擇判斷方塊710中當(dāng)目標(biāo)位配置Ti、Tp或Tb超過(guò)目標(biāo)臨界值Tmid時(shí),VBV緩沖器模型占用Vstatus將代表性地較小于預(yù)設(shè)的VBV占用層級(jí)Vtarget,以致于調(diào)整因素α系小于1;較有利地,此目標(biāo)位配置系可降低一數(shù)量,其系有關(guān)VBV緩沖器模型占用Vstatus低于預(yù)設(shè)的VBV占用層級(jí)Vtarget的數(shù)量。當(dāng)目標(biāo)位配置Ti、Tp或Tb系小于目標(biāo)臨界值Thigh時(shí),VBV緩沖器模型占用Vstatus將代表性地較大于預(yù)設(shè)的VBV占用層級(jí)Vtarget,以致于調(diào)整因素α系大于1;較有利地,此目標(biāo)位配置系可增加一數(shù)量,其系有關(guān)VBV緩沖器模型占用Vstatus高于預(yù)設(shè)的VBV占用層級(jí)Vtarget的數(shù)量。此程序系從步驟720繼續(xù)進(jìn)行至判斷方塊730。
在判斷方塊730中,不管目標(biāo)位配置Ti、Tp或Tb是否有經(jīng)由步驟720的調(diào)整,此程序系判定目標(biāo)位配置Ti、Tp或Tb是否有落在指定范圍內(nèi),此些范圍限定系用來(lái)避免目標(biāo)位配置Ti、Tp或Tb的值產(chǎn)生緩沖不足或緩沖溢位的情況,且該范圍系可預(yù)定或是由目標(biāo)位配置Ti、Tp或Tb以及VBV緩沖器模型占用層級(jí)Vstatus適應(yīng)而來(lái)的。當(dāng)目標(biāo)位配置Ti、Tp或Tb落在此范圍外,此程序系從判斷方塊730繼續(xù)進(jìn)行至步驟740,以約束目標(biāo)位配置Ti、Tp或Tb保持在此范圍內(nèi);否則,無(wú)需更進(jìn)一步的調(diào)整目標(biāo)位配置Ti、Tp或Tb,即可結(jié)束此程序。
方程式33系說(shuō)明目標(biāo)位配置Ti、Tp或Tb的上限值Tmax的范例計(jì)算。方程式34系說(shuō)明目標(biāo)位配置Ti、Tp或Tb的下限值Tmin的范例計(jì)算。
Tmax=Vstatus-Vlow方程式33Tmin=max(Vmax+bit_ratepicture_rate-Vhigh,0)]]>方程式34當(dāng)目標(biāo)位配置Ti、Tp或Tb超過(guò)上限值Tmax時(shí),目標(biāo)位配置Ti、Tp或Tb再分配該上限值Tmax,且當(dāng)目標(biāo)位配置Ti、Tp或Tb低于下限值Tmin時(shí),則目標(biāo)位配置系再分配該下限值Tmin。
方程式33所示的上限值Tmax的應(yīng)用系有助于限制此目標(biāo)位配置Ti、Tp或Tb的相對(duì)高值,使VBV緩沖器模型占用層級(jí)可以保持在VBV緩沖模型的較低預(yù)設(shè)占用范圍層級(jí)Vlow以上。方程式34所示的下限值Tmin的應(yīng)用系有助于限制此目標(biāo)位配置Ti、Tp或Tb的相對(duì)低值,使緩沖器占用層級(jí)可以保持在較高預(yù)設(shè)占用范圍層級(jí)Vhigh以下,甚至是在資料信道中以固定位速率累積資料超過(guò)時(shí)間的后。下限值Tmin系相當(dāng)于在方程式中以逗號(hào)分離的數(shù)量;其它上限值Tmax與下限值Tmin系為熟悉此項(xiàng)技術(shù)的人士所易于決定者。目標(biāo)位配置Ti、Tp或Tb代表編碼器可達(dá)到的目標(biāo),且目標(biāo)與實(shí)際使用至編碼圖像的位數(shù)目具有相對(duì)小的變化,使緩沖器占用層級(jí)Vstatus仍然可以稍微脫離預(yù)設(shè)占用范圍層級(jí)Vlow及Vhigh。
在進(jìn)行至步驟740之后,即結(jié)束整個(gè)調(diào)整程序。例如,圖7所描述的調(diào)整程序系結(jié)合圖6的步驟610的速率控制與量化控制程序,此調(diào)整程序從步驟610繼續(xù)進(jìn)行下去。
從事此項(xiàng)技術(shù)者對(duì)上述的程序以不同方式所做的修改仍未脫離本發(fā)明所揭示的精神與范圍。例如,在另一實(shí)施例,所示程序的各種不同部份系可結(jié)合在一起,可以可供替代的順序重新排列,可以被移除,以及其它類似者,例如在一實(shí)施例中,選擇判斷方塊710并不存在,而在另一實(shí)施例中,判斷方塊730及步驟740系可供選擇,且不一定要存在。
大區(qū)塊處理順序圖8A所示為先前技術(shù)的處理大區(qū)塊順序的流程圖,圖8B所示為本發(fā)明處理大區(qū)塊順序的一實(shí)施例流程圖。圖8B所示的處理順序有利于容許一圖像大區(qū)塊的空間活動(dòng)及/或移動(dòng)活動(dòng)的計(jì)算,以便使實(shí)際數(shù)值可用來(lái)計(jì)算總數(shù)與平均數(shù),對(duì)于于從前一圖像計(jì)算而估算出總數(shù)與平均數(shù)。
圖8A所示的傳統(tǒng)順序系從步驟802開(kāi)始,在步驟802中,此程序系執(zhí)行單一大區(qū)塊的空間活動(dòng)(本質(zhì))及/或移動(dòng)估算的計(jì)算,此程序再?gòu)牟襟E802繼續(xù)進(jìn)行至步驟804。
在步驟804中,此程序使用空間活動(dòng)及/或移動(dòng)估算的計(jì)算來(lái)執(zhí)行此大區(qū)塊的離散余弦轉(zhuǎn)換(discrete cosine transformation,DCT)。空間活動(dòng)的計(jì)算一般正常系以空間活動(dòng)的總數(shù)表示;然而,在此程序的此特點(diǎn),對(duì)于已編碼圖像的空間活動(dòng)的計(jì)算并未被完成,結(jié)果則使用前一圖像的估算值。例如,采用前一圖像的總空間活動(dòng)來(lái)計(jì)算一平均值。在另一實(shí)施例,前一圖像的移動(dòng)估算亦可采用,無(wú)論此些估算是否接近實(shí)際值。當(dāng)在前一圖像與已編碼圖像之間存在一場(chǎng)景變化時(shí),此估算系相當(dāng)不正確,此些不正確會(huì)損害圖像品質(zhì),并導(dǎo)致在圖像編碼的目標(biāo)位數(shù)與實(shí)際使用于圖像編碼的位數(shù)之間系為誤差配合者。此些消耗于圖像編碼的位數(shù)變化系不利于導(dǎo)致緩沖不足或緩沖溢位。接著此程序?qū)牟襟E804進(jìn)行至步驟806。
在步驟806中,此程序系執(zhí)行此大區(qū)塊的DCT系數(shù)的可變長(zhǎng)度編碼(variable length coding,VLC),此VLC系壓縮DCT系數(shù),此程序從步驟806繼續(xù)進(jìn)行至判斷方塊808。
在判斷方塊808中,此程序判斷在此圖像中的所有大區(qū)塊是否已經(jīng)完成編碼,當(dāng)仍有大區(qū)塊繼續(xù)在編碼時(shí),此程序系從判斷方塊808回到步驟802;否則,即結(jié)束此程序直到重新開(kāi)始。
根據(jù)圖8B所敘述的一實(shí)施例的新順序,其系從步驟852開(kāi)始。在步驟852中,此程序系執(zhí)行欲編碼的圖像中所有大區(qū)塊的空間活動(dòng)及/或移動(dòng)估算的計(jì)算,其系有助于容許空間活動(dòng)即/或移動(dòng)估算的總數(shù)與平均值系以技術(shù)的數(shù)量進(jìn)行計(jì)算,并非以估算值,而是更進(jìn)一步以圖像編碼前的場(chǎng)景變化進(jìn)行準(zhǔn)確的計(jì)算。在另一優(yōu)點(diǎn)的范例中,在TM5,此空間活動(dòng)測(cè)量Savg_actj的平均值400系用來(lái)作為第一圖像的測(cè)量的″推測(cè)″。在使用此空間活動(dòng)之前,處理所有大區(qū)塊的空間活動(dòng),此空間活動(dòng)測(cè)量Savg_actj的平均值可以直接計(jì)算,并可有助于避免不確定的″推測(cè)″。
更進(jìn)一步地,實(shí)際總數(shù)與平均值的使用系容許實(shí)際位數(shù)用來(lái)編碼一圖像,以配合具有較高正確性的目標(biāo)位配置。此將有助于減少非預(yù)期緩沖不足或緩沖溢位的變化以及增加圖像品質(zhì)。在一實(shí)施例中,大區(qū)塊的實(shí)際移動(dòng)估算系用來(lái)分配位給大區(qū)塊,使具有較高移動(dòng)的大區(qū)塊可分配到較高的位數(shù)。相反地,在具有大區(qū)塊的傳統(tǒng)系統(tǒng)的大區(qū)塊處理過(guò)程中,一般大區(qū)塊的位系利用前一圖像的大區(qū)塊相對(duì)移動(dòng)來(lái)分配,其系可能為正確或是不正確的。此程序?qū)牟襟E852繼續(xù)進(jìn)行至步驟854。
在步驟854中,此程序系對(duì)圖像中的所有大區(qū)塊執(zhí)行DCT計(jì)算,接著此程序從步驟854繼續(xù)進(jìn)行至步驟856。
在步驟856中,此程序?qū)Υ藞D像中的所有大區(qū)塊執(zhí)行DCT系數(shù)的可變長(zhǎng)度編碼(VLC),而后此程序?qū)⒔Y(jié)束直至重新開(kāi)始。
在另一實(shí)施例中,在步驟852中所描述的程序,對(duì)所有大區(qū)塊進(jìn)行空間活動(dòng)及/或移動(dòng)估算的計(jì)算,然后不斷重復(fù)進(jìn)行大區(qū)塊的DCT計(jì)算與VLC,直至此圖像的所有大區(qū)塊處理完成為止。
位填補(bǔ)(Bit Stuffing)位填補(bǔ)或字節(jié)填補(bǔ)系為一編碼器常用的技術(shù)手段,其系用來(lái)保護(hù)對(duì)抗會(huì)引起譯碼器發(fā)生緩沖溢位的資料流產(chǎn)生。當(dāng)用來(lái)圖像編碼的位數(shù)在一持續(xù)的時(shí)間周期內(nèi)相當(dāng)?shù)蜁r(shí),此譯碼器從位于較低速率的譯碼器緩沖器補(bǔ)償?shù)劫Y料信道增加資料至譯碼器緩沖器的速率。當(dāng)資料的累積持續(xù)一適當(dāng)?shù)臅r(shí)間周期使譯碼器緩沖器整個(gè)填滿時(shí),由數(shù)據(jù)信道所傳送的數(shù)據(jù)將會(huì)喪失。一圖像序列的實(shí)例可進(jìn)行較高的壓縮,使圖像序列引起位填補(bǔ),且每一圖像實(shí)際上是完全黑的。為了對(duì)付不同的資料速率,以便使緩沖溢位不會(huì)發(fā)生,此編碼器系將數(shù)據(jù)埋藏在無(wú)使用的資料流中,但此會(huì)消耗空間。此程序?yàn)橐阎奈惶钛a(bǔ)。
位填補(bǔ)可以在一編碼程序中的不同位置實(shí)施。在一實(shí)施例中,在圖6所述的編碼程序中的步驟632之后以及步驟636之前,系可完成位填補(bǔ)。在一實(shí)施例中,當(dāng)VBV緩沖器模型占用達(dá)到一預(yù)定層級(jí)時(shí),編碼程序?qū)⒁鹞惶钛a(bǔ),例如與較早描述的圖7有關(guān)的層級(jí)Vhigh。在一實(shí)施例中,當(dāng)VBV緩沖器模型占用約為VBV緩沖器模型容量的63/64時(shí),將引起位填補(bǔ)。
雖然有益于解決譯碼器緩沖溢位問(wèn)題,位填補(bǔ)仍會(huì)對(duì)編碼程序引起其它問(wèn)題,包含使用在位填補(bǔ)的位也可以是一種不佳的解決方式。在使用于圖像編碼位數(shù)S(i,p,b)中計(jì)算使用在位填補(bǔ)的位數(shù)系表示此編碼器有使用超過(guò)最初目標(biāo)值的較多位數(shù)用來(lái)編碼圖像;此可更進(jìn)一步解釋,對(duì)降低品質(zhì)圖像的編碼系會(huì)減少使用于圖像編碼的位數(shù)。超過(guò)一時(shí)間周期,更會(huì)對(duì)使用于譯碼圖像的位數(shù)引起更進(jìn)一步的減少,并與使用在位填補(bǔ)的位數(shù)呈比例關(guān)系。在使用較多位于位填補(bǔ)時(shí),較少的位留待實(shí)際編碼圖像,而超過(guò)時(shí)間后會(huì)降低已編碼圖像的品質(zhì)。
圖9A所示為有助于編碼程序穩(wěn)固的流程,因此降低或消除位填補(bǔ)所引起的編碼程序不穩(wěn)定的傾向,以及超過(guò)時(shí)間的圖像品質(zhì)退化的傾向。如后面所描述者,在圖9A所敘述的程序可以在一編碼程序中的多種位置中實(shí)施。
從事此項(xiàng)技術(shù)者對(duì)上述的程序以不同方式所做的修改仍未脫離本發(fā)明所揭示的精神與范圍。例如,在另一實(shí)施例,所示程序的各種不同部份系可結(jié)合在一起,可以可供替代的順序重新排列,可以被移除,以及其它類似者。此程序可以在判斷方塊902或是判斷方塊904開(kāi)始。在一實(shí)施例中,只有一個(gè)判斷方塊902或判斷方塊904系存在于此程序中。如圖所示的實(shí)施例,判斷方塊902以及判斷方塊904系同時(shí)存在于此程序中,例如,在圖像編碼之前,此程序可以從判斷方塊902開(kāi)始;在圖像編碼之后,此程序則可從判斷方塊904開(kāi)始。例如,在圖9A程序開(kāi)始的判斷方塊902可以結(jié)合圖6所述步驟612之后和步驟614之前的速率控制與量化控制程序。在另一范例,在圖9A程序開(kāi)始的判斷方塊904可以結(jié)合圖6所述程序的步驟627。
在判斷方塊902中,此程序系判斷在欲編碼圖像與前一已編碼圖像間是否有景象變化,此景象變化的判定可以在圖像編碼前執(zhí)行。在一實(shí)施例中,判斷方塊902系為選擇性的,各種方法可以用來(lái)判斷是否具有景象變化。在一實(shí)施例中,此程序系重新使用編碼圖像計(jì)算的結(jié)果,例如絕對(duì)差異和(SAD)測(cè)量。在一實(shí)施例中,景象變化的偵測(cè)系隨著圖像類型而改變。在一實(shí)施例中,對(duì)I-圖像而言,現(xiàn)行在圖像的平均空間活動(dòng)Sact_avg系與相對(duì)應(yīng)的先前平均空間活動(dòng)相比較;例如,當(dāng)現(xiàn)行活動(dòng)至少為2次或少于先前I-圖像的一半時(shí),系可偵測(cè)到景象變化,亦可使用其它因素,例如3次及1/3,4次及1/4,或是熟悉此習(xí)知技術(shù)可易于思及者。另外,為了宣告新的景象變化而將先前景象變化宣告,所以有一實(shí)施例對(duì)最小圖像數(shù)量采用一額外的標(biāo)準(zhǔn)。對(duì)P-圖像而言,移動(dòng)活動(dòng)的平均值可以用來(lái)代替平均空間活動(dòng)來(lái)偵測(cè)一景象變化,其系可一起使用相關(guān)的比較因素,例如(2,1/2)、(3,1/3)、(4,1/4)及其它類似者。為了增加此判斷的強(qiáng)硬度,一實(shí)施例更進(jìn)一步對(duì)現(xiàn)行P-圖像使用一最小平均移動(dòng)活動(dòng)測(cè)量,由此平均移動(dòng)活動(dòng)本身可以表明較高的移動(dòng),故可應(yīng)用于景象變化。例如,介于1000至4000范圍的最小平均移動(dòng)活動(dòng)測(cè)量的值系可用來(lái)表示較高的移動(dòng)。
此程序系由判斷方塊902繼續(xù)進(jìn)行至結(jié)束,例如,當(dāng)此程序判斷無(wú)任何場(chǎng)景變化時(shí),即進(jìn)入步驟614。此外,在編碼程序的其它部份及應(yīng)用系可判斷是否有場(chǎng)景變化,且先前的慢斷可以重新使用于判斷方塊902,以檢查步驟的標(biāo)示或發(fā)信號(hào)所表示的場(chǎng)景變化存在與否。當(dāng)此程序判斷有場(chǎng)景變化時(shí),將由判斷方塊902繼續(xù)進(jìn)行至次程序906。
在判斷方塊904中,此程序判斷此編碼過(guò)程是否在一臨界狀態(tài)(critical state)。在一可供選擇的程序中,只有判斷方塊902或判斷方塊904其中一個(gè)存在,而其它為選擇性地。當(dāng)判斷904存在于程序中時(shí),在圖像編碼后系會(huì)引起VBV緩沖器模型占用的監(jiān)控。判斷編碼程序是否處于臨界狀態(tài)的標(biāo)準(zhǔn)可在很寬廣的范圍中變化。在一實(shí)施例中,當(dāng)量化參數(shù)值mquantj不是較低者,例如不是在最低的可能值,此臨界狀態(tài)相當(dāng)于編碼程序所執(zhí)行的位填補(bǔ)。此相當(dāng)于較低值的量化參數(shù)值mquantj,例如最低可能值,將根據(jù)編碼標(biāo)準(zhǔn)的語(yǔ)法而改變。當(dāng)VBV緩沖器模型占用已判斷為臨界狀態(tài)時(shí),此程序?qū)⒂膳袛喾綁K904繼續(xù)進(jìn)行至次程序906;否則,此程序?qū)⑦M(jìn)行至結(jié)束,例如,進(jìn)入如圖6所述程序的步驟627。
在次程序906中,此程序使最初狀況的虛擬緩沖器占用值標(biāo)準(zhǔn)化,并以先前描述的步驟602所述的變量d0i、d0p及d0b表示之。此些標(biāo)準(zhǔn)化值可利用各種技術(shù)計(jì)算,在如圖所示的次程序906中,此標(biāo)準(zhǔn)化值系依賴VBV緩沖器模型的占用層級(jí)。此次程序包括一步驟908、一判斷方塊910、一步驟912及一步驟914。
在步驟908中,此程序之一實(shí)施例系計(jì)算方程式35及36a或36b的sum值及delta值。
sum=d0i+d0p+d0b]]>方程式35delta=vbv_buffer_size-Vstatus方程式36delta=Vinitial-Vstatus方程式36對(duì)方程式35而言,于最初狀況的虛擬緩沖器占用層級(jí)的值系藉由前述圖6的步驟612中所描述的方程式9、10及11的應(yīng)用而取得的。如方程式36a及36b所示,在一緩沖器模型中delta系隨著占用層級(jí)的減少而增加,在方程式36a,變量vbv_buffer_size與用于編碼的VBV緩沖器模型的容量有關(guān),在方程式36b,變量Vinitial系與VBV緩沖器模型占用層級(jí)的最初值有關(guān)。在一實(shí)施例中,Vinitial的值約為VBV緩沖器模型容量的7/8。在另一實(shí)施例中,代替Vinitial,此程序可以使用一目標(biāo)占用層級(jí),例如Vtarget,但其應(yīng)注意的是該最初值與目標(biāo)占用可為相同值。在另一實(shí)施例,delta系與緩沖器模型尺寸減去緩沖器模型占用層級(jí)的差異值有關(guān),VBv緩沖器模型系隨著用于編碼的標(biāo)準(zhǔn)而改變,例如,如潛入圖4所述描述,此MPEG-1與MPEG-2編碼標(biāo)準(zhǔn)明確說(shuō)明其VBV緩沖器尺寸分別為40kB與224kB,其它標(biāo)準(zhǔn)則明確說(shuō)明VBV緩沖器模型的內(nèi)存容量。此程序系由步驟908繼續(xù)進(jìn)行至判斷方塊910。
在判斷方塊910中,此程序判斷sum值是否有少于預(yù)定臨界值Tnrm,此預(yù)定臨界值Tnorm應(yīng)該與指明可使用范圍的一些數(shù)值有關(guān),例如,此預(yù)定臨界值Tnorm為0,其它值則為熟西此記設(shè)者易于思及者。當(dāng)sum值小于Tnorm值時(shí),本程序由判斷方塊910繼續(xù)進(jìn)行至步驟914。
此delta值系與方程式36a中VBV緩沖器模型的未占用空間有關(guān),或是與方程式36b中在最初VBV緩沖器模型狀態(tài)與現(xiàn)行VBV緩沖器模型狀態(tài)間的差異有關(guān),其它在虛擬緩沖層級(jí)與未占用層總和間的比較將易于了解。例如,在另一實(shí)施例中,可以進(jìn)行一少于或等于的比較,包含補(bǔ)償?shù)取?br>
在步驟912中,此程序的一實(shí)施例根據(jù)方程式37、38及39再分配虛擬緩沖器占用值給具有標(biāo)準(zhǔn)化值的最初狀況d0i、d0p及d0b。
d0i=delta·fri]]>方程式37d0p=delta·frp]]>方程式38d0b=delta·frb]]>方程式39在方程式37、38及39中,delta值可由方程式36計(jì)算而來(lái),且fri、frp及frb的值可在很廣的范圍中變化,這些fri、frp及frb的值一般系介于0和1的范圍內(nèi),并可為相同值或相異值。再者,在一實(shí)施例中,fri、frp及frb的值系可選自總和值接近1,例如為1。在一實(shí)施例中,這些fri、frp及frb值系分別為5/17、5/17及7/17,此fri、frp及frb的其它可易于為熟悉此項(xiàng)技術(shù)之人士決定。然后此程序可以結(jié)束,例如,進(jìn)入圖6所示程序的步驟614。
再回到步驟914,在此程序的此處,此程序已判斷sum值并未小于Tnorm值,在步驟914中,此程序的一實(shí)施例根據(jù)方程式40、41及42再分配虛擬緩沖器占用變量給具有標(biāo)準(zhǔn)化值的最初狀況d0i、d0p及d0b。
d0i=d0i·deltasum]]>方程式40d0p=d0p·deltasum]]>方程式41d0b=d0b·deltasum]]>方程式42
方程式40、41及42系有關(guān)再分配虛擬緩沖器占用變量給最初狀況d0i、d0p及d0b。在等號(hào)右邊的值系為調(diào)整前的數(shù)值,且在等號(hào)左邊的職責(zé)為調(diào)整后的數(shù)值。當(dāng)delta值與sum值近乎相同時(shí),此些值系產(chǎn)生較小的調(diào)整。當(dāng)sum值較高于delta值時(shí),最初狀態(tài)的虛擬緩沖器占用變量的值d0i、d0p及d0b系相對(duì)的減少,需注意的是,消對(duì)小的執(zhí)亦可加至方程式40-42的總和值中,以避免被零問(wèn)題(zero problem)分割。調(diào)整后,此程序隨即結(jié)束,例如,繼續(xù)進(jìn)行圖6所述程序的步驟614。
圖9B所示為關(guān)于一最終緩沖器占用層級(jí)偵測(cè)的虛擬緩沖器占用層級(jí)的重設(shè)程序的流程圖。此重設(shè)程序系可結(jié)合至編碼程序,例如先前圖6所述速率控制與量化控制程序的步驟627。
此程序由判斷方塊952開(kāi)始,在前述圖6所述速率控制與量化控制程序的步驟627的解釋,可應(yīng)用的虛擬緩沖器的最終占用(填滿)等,即dji、djp及djb值,其中j=MB_cnt,可以作為下一相同型式圖像編碼的最初狀況,即此些d0i、d0p及d0b值系用于相同型式(I、P或B)的圖像。當(dāng)藉由TM5所述的程序進(jìn)行編碼時(shí),可應(yīng)用的虛擬緩沖器的最終占用,即dji、djp及djb值,一直可以作為下一相同型式圖像編碼的最初狀況。然而,可應(yīng)用的虛擬緩沖器的最終占用并非總是可供使用的適當(dāng)值。
在判斷方塊952中,此程序判斷可應(yīng)用的虛擬緩沖器的最終占用,即dji、djp及djb值,是否適合使用。在一實(shí)施例中,適當(dāng)值系以此數(shù)值是否完全合理來(lái)判斷,一虛擬緩沖仿真一實(shí)體緩沖器,實(shí)體緩沖器可為空的、可被資料部份占用,或是完全被資料占用。然而,一實(shí)體緩沖器無(wú)法擁有數(shù)據(jù)的負(fù)數(shù)量,為了區(qū)別實(shí)體可獲得值與非實(shí)體可獲得值,本程序的一實(shí)施例系比較可應(yīng)用的虛擬緩沖器的最終占用值與預(yù)定的臨界值tr。
在一實(shí)施例中,tr值系為零,以區(qū)別實(shí)際可獲得的緩沖占用與非實(shí)際可獲得的緩沖占用。雖然tr值系相當(dāng)于一范圍值,包含從0到1、2、3等,此tr值不會(huì)容許一負(fù)值視為適當(dāng)?shù)淖罱K占用。當(dāng)使用的tr值為零時(shí),本程序系利用檢查正或負(fù)的標(biāo)示來(lái)區(qū)別實(shí)體可獲得值與非實(shí)體可獲得值,標(biāo)示系與可應(yīng)用的虛擬緩沖器的最終占用有關(guān)。當(dāng)進(jìn)行整數(shù)比較時(shí),此種比較系使用不等式,例如大于負(fù)一,即>-1,亦可使用如相當(dāng)于-1的tr值。當(dāng)最終占用值不適合作為下一相同型式圖像的最初狀況時(shí),此程序即由判斷方塊952繼續(xù)進(jìn)行至步驟954;否則,此程序?qū)⒂膳袛喾綁K952繼續(xù)進(jìn)行至步驟956。
在步驟954中,本程序?qū)σ丫幋a成適當(dāng)值的圖像型式的最終緩沖器占用值dji、djp及djb值進(jìn)行重設(shè),其中j=MB_cnt,此適當(dāng)值包含從零至可應(yīng)用的虛擬緩沖器容量間的任何值。在一實(shí)施例中,最終緩沖器占用值可以重設(shè)為接近零的較低值,例如零本身。此程序可以從步驟954進(jìn)入選擇步驟958,或是從步驟954直接進(jìn)入步驟956。
在選擇步驟958中,本程序使虛擬緩沖器占用值dji、djp及djb標(biāo)準(zhǔn)化。在前一步驟954,此程序?qū)⒎菍?shí)體可獲得值校正為虛擬占用值dji、djp及djb,其系可應(yīng)用于已編碼的圖像型式。例如,此程序可以取得可應(yīng)用的虛擬占用值dji、djp及djb的前負(fù)值,并分配該負(fù)值以保持虛擬占用值dji、djp及djb的總和為零。例如,在一實(shí)施例,此程序加入一半的負(fù)值分別給二個(gè)其它虛擬占用值。而后此程序系從選擇步驟958前進(jìn)至步驟956。
在步驟956,其系儲(chǔ)存經(jīng)由步驟954重設(shè)或是經(jīng)由判斷方塊652無(wú)修改的最終虛擬緩沖器占用值,而后結(jié)束整個(gè)程序。與此程序結(jié)束后,可繼續(xù)進(jìn)行前述圖6所示速率控制與量化控制程序的步驟619。
圖像群組(GOP)中的場(chǎng)景變化(Scene Change)圖10A所示為一圖像群組的范例,場(chǎng)景在序列圖像間的變化亦可在一圖像群組中出現(xiàn),其中該場(chǎng)景變化系源自攝影機(jī)鏡頭的變化、不同節(jié)目的替換、切換至廣告時(shí)、編輯或其它原因。隨著場(chǎng)景的變化,播映中圖像的大區(qū)塊會(huì)因與前一圖像的大區(qū)塊關(guān)聯(lián)較少或者甚至無(wú)關(guān)聯(lián),考慮這樣的情形故多采用圖框內(nèi)編碼而非預(yù)估編碼。因?yàn)镮圖像僅包含圖框內(nèi)編碼,在處理場(chǎng)景變化的情形時(shí)通常采用I圖像方式是較為便利的選擇。
雖然一般傾向用I圖像方式編碼處理場(chǎng)景變化的情形,但若是一個(gè)圖像群組結(jié)構(gòu),亦即,序列圖像的型式,可以藉由一些系統(tǒng)或編碼器外控制而達(dá)到預(yù)測(cè)的效果。例如,一個(gè)直播衛(wèi)星(Direct BroadcastSatellite,DBS)系統(tǒng)便藉由編碼器取得I圖像、P圖像及B圖像的預(yù)定格式,結(jié)果,場(chǎng)景變化可能發(fā)生在上述的P圖像或B圖像中。傳統(tǒng)的編碼器可藉由參考自預(yù)定大區(qū)塊的一個(gè)接續(xù)的I圖像或一個(gè)接續(xù)的P圖像,將B圖像場(chǎng)景變化的部分補(bǔ)足。
在P圖像的場(chǎng)景變化仍可能有問(wèn)題,P圖像可以包含圖框內(nèi)編碼大區(qū)塊,亦可以包含預(yù)估編碼大區(qū)塊,然而,P圖像無(wú)法參考接續(xù)的圖像,因此場(chǎng)景的變化將特別以只含圖框內(nèi)編碼的方式對(duì)大區(qū)塊進(jìn)行編碼。事實(shí)上,對(duì)傳統(tǒng)編碼器而言,一個(gè)場(chǎng)景變化的P圖像可視為一個(gè)I圖像,但是該I圖像具有P圖像的位配置及文件頭信息。對(duì)一個(gè)傳統(tǒng)編碼器而言,一個(gè)P圖像的位配置較一個(gè)I圖像少,因此當(dāng)場(chǎng)景變化時(shí)便較容易察覺(jué)到圖像品質(zhì)變差。一些其它格式的圖像,例如B圖像或另外的P圖像,皆可以藉由一個(gè)P圖像作場(chǎng)景改變時(shí)的預(yù)估編碼,因此場(chǎng)景改變時(shí)P圖像的影像傳送品質(zhì)較低。
如前述的圖1及圖5,序列圖像被改編成圖像群組,該群組始于一I圖像而結(jié)束于一緊接后續(xù)的I圖像之前。圖像群組中的個(gè)別圖像可以依照呈現(xiàn)的順序或編碼的順序編排,例如,一個(gè)第一圖像群組1002如圖10A所示系為依照呈現(xiàn)的順序編排。一個(gè)I圖像1004如圖10A所示系為另一圖像群組。
序列圖像可以于編碼及譯碼過(guò)程中依照呈現(xiàn)的順序重新編排,例如,第一圖像群組1002,依序列圖像的第一群組,能編入一個(gè)第二圖像群組1010,同理亦可編入一個(gè)第三圖像群組1020,其中該第三圖像群組系為該序列中將要出現(xiàn)的群組,上述該第二圖像群組及第三圖像群組系以編碼的順序呈現(xiàn),當(dāng)與來(lái)自其它群組的I圖像1012遇到時(shí),該第二圖像群組1010產(chǎn)生一個(gè)結(jié)尾,因?yàn)橹匦屡判虻年P(guān)系,因應(yīng)編碼而重新編排時(shí),兩個(gè)來(lái)自第一圖像群組1002并依照呈現(xiàn)的順序編排的B圖像1014、1016將不在該圖像群組中。如圖10B所示的程序,系在一編碼順序中一個(gè)圖像群組與另一群組的相互關(guān)系。
第三圖像群組1020將于圖10B所示的流程中詳述。第三圖像群組1020包括兩個(gè)在該第三圖像群組1020的I圖像1026的先前圖像1022、1024,以圖式為例,第三圖像群組1020的場(chǎng)景改變發(fā)生在該第三圖像群組1020的P圖像1030位置。圖10B所描述的程序,其優(yōu)點(diǎn)為可藉由找出場(chǎng)景變化及重新配置第三圖像群組1020中殘留圖像1032的殘留位值,以改善圖像的品質(zhì)。
圖10B所示為一偵測(cè)圖像群組(GOP)中因應(yīng)場(chǎng)景變化重設(shè)編碼參數(shù)的流程圖。在圖式中的具體實(shí)施例,程序中的編碼順序系對(duì)該圖像群組編排成群組的描述。
如圖10B所示的程序,識(shí)別并重新配置圖像群組中殘留圖像的殘留位值,而無(wú)須變動(dòng)到該圖像群組的基本結(jié)構(gòu)。在場(chǎng)景變化的P圖像中,可藉由配置較多位而改善圖像品質(zhì)。上述程序可與稍早于圖6所述的速率控制及量化控制方法結(jié)合使用,例如,圖10B所示的程序可以于圖6所示的步驟610之前并入實(shí)施。熟知此技術(shù)之人士將可理解基于不超出本實(shí)施例的精神與范圍所作出的不同的改良方式。例如,另一實(shí)施例,截至目前為止描述的各種程序系可合并使用、重新排序、移除某些步驟或其它類似的組合而形成一新程序。
此程序系從判斷方塊1052開(kāi)始,在判斷方塊1052中,此程序判斷在圖像的何處系為一場(chǎng)景變化或一瞬間動(dòng)作上相對(duì)大量變化之點(diǎn),有許多方法能達(dá)成上述判斷一場(chǎng)景變化點(diǎn)。在一實(shí)施例中,本程序系利用現(xiàn)有的圖像模擬運(yùn)算,例如,一個(gè)具體實(shí)施例為一利用絕對(duì)差異總和(SAD)測(cè)量方法的程序,其中該SAD測(cè)量方法系可相對(duì)應(yīng)用在一預(yù)定值、一移動(dòng)平均值或兼采前述其中之一的判斷場(chǎng)景變化方法。例如,一個(gè)超過(guò)預(yù)定層級(jí)值的SAD測(cè)量或一個(gè)超過(guò)移動(dòng)平均值兩個(gè)層級(jí)的SAD測(cè)量系可應(yīng)用在判斷場(chǎng)景變化,上述SAD測(cè)量的優(yōu)點(diǎn)系為可偵測(cè)一場(chǎng)景變化或一瞬間動(dòng)作上相對(duì)大量變化之點(diǎn)??梢岳斫獾氖?,或許還有另一部分的編碼流程同樣追蹤該場(chǎng)景變化,且在另一實(shí)施例,若有另外的場(chǎng)景變化則跳回判斷方塊1052。接著,在場(chǎng)景變化被判斷以后,程序由上述的判斷方塊1052推進(jìn)至另一判斷方塊1054;否則,上述程序?qū)⒗^續(xù)進(jìn)行至結(jié)束,例如,接續(xù)進(jìn)入前述圖6所述速率控制及量化控制程序的步驟610。
在判斷方塊1054中,此程序判斷在P型狀況下哪一種類型的圖像要被編碼。在另一實(shí)施例中,如圖10B所示亦可將判斷方塊1052及判斷方塊1054的先后順序交換。承上,當(dāng)該圖像被編碼成P圖像后,程序由判斷方塊1054前進(jìn)至步驟1056。否則,該程序直接結(jié)束,例如,接續(xù)進(jìn)入前述圖6所述速率控制及量化控制程序的步驟610。
在步驟1056中,其系一重新配置圖像群組中殘留圖像的殘留位的程序。以圖10A中的第三圖像群組1020為例,當(dāng)于一P圖像1030中判斷一場(chǎng)景變化時(shí),該殘留圖像1032中系有較原本為佳的重新配置的殘留位R。在另一實(shí)施例中,將該P(yáng)圖像1030視為一I圖像,并且對(duì)其殘留圖像1032作編碼動(dòng)作,但并不變動(dòng)該P(yáng)圖像1030的型態(tài),所以亦不變動(dòng)該圖像群組的結(jié)構(gòu)。
前述將該P(yáng)圖像1030視為一I圖像并且對(duì)其殘留圖像1032作編碼動(dòng)作的流程系可由許多方式達(dá)成,例如,在一實(shí)施例中,一程序的實(shí)施例系可藉由將場(chǎng)景變化的P圖像編碼而減少該P(yáng)圖像的編碼量Np,且利用該減少的Np藉由方程式6重整目標(biāo)位配置,其中該方程式6系舊式演算系統(tǒng)中專門(mén)用以計(jì)算一個(gè)I圖像的目標(biāo)位配置Ti,其系可應(yīng)用于如圖10B所示的用于場(chǎng)景變化情況下計(jì)算一個(gè)P圖像的目標(biāo)位配置的流程,方程式43表示一計(jì)算上述目標(biāo)位配置的表現(xiàn),記為T(mén)p′。
Tp'=max{(R1+(Np-1)XpXiKp+NbXbXiKb),(bit_rate8·picture_rate)}]]>方程式43此一改良式目標(biāo)位配置方式,系應(yīng)用于一含有較大位的P圖像,如此針對(duì)該P(yáng)圖像的場(chǎng)景變化系可編碼成更高品質(zhì)的格式。方程式7及8系可應(yīng)用在圖像群組中殘留的P圖像及B圖像次序列的編碼。上述該程序更可隨意的調(diào)整對(duì)應(yīng)于場(chǎng)景變化的復(fù)雜的預(yù)估值Xi、Xp及Xb,例如圖6所示,稍早提及應(yīng)用方程式1至3的步驟608所提供的速率控制及量化控制方法。此程序然后結(jié)束,例如,繼續(xù)進(jìn)入步驟610的速率控制及量化控制程序。可以理解的是,當(dāng)一個(gè)圖像群組中不止一個(gè)場(chǎng)景變化,可以重復(fù)使用如圖10A及圖10B所示的流程。
B圖像大區(qū)塊的選擇性跳過(guò)(Selective Skipping)圖11所示為在一視訊編碼器中資料的選擇性跳過(guò)流程示意圖。此一選擇性跳過(guò)資料系可使視訊編碼器即使在極端的情況下亦能保持良好的速率控制。該選擇性跳過(guò)資料系可使該視訊編碼器產(chǎn)生資料流型式,該資料流系可解決譯碼器緩沖器的占用層級(jí)較低的缺點(diǎn),例如可改善譯碼器緩沖器的緩沖不足的問(wèn)題。前述的譯碼器緩沖器的緩沖不足可能發(fā)生在當(dāng)錄放位速率超過(guò)一資料信道可承受的特定位傳輸速率一定的時(shí)間后,譯碼器緩沖器的緩沖存儲(chǔ)器耗盡所導(dǎo)致,該譯碼器緩沖器的緩沖不足情形,系影像播放時(shí)極不欲見(jiàn)到的情況且緩沖不足亦將導(dǎo)致播放的暫時(shí)中斷。
即使并未發(fā)生前述譯碼器緩沖器的緩沖不足情形,資料流的譯碼器緩沖器占用層級(jí)較低的情形仍是極不欲見(jiàn)到的,如同早先于圖4所示,一個(gè)緩沖器模型,例如VBV緩沖器模型,其系通常應(yīng)用于一編碼過(guò)程中用以調(diào)整譯碼器緩沖區(qū)器的占用層級(jí)。當(dāng)傳統(tǒng)編碼器緩沖器占用層級(jí)是極危險(xiǎn)的低標(biāo)時(shí),該傳統(tǒng)編碼器必須嚴(yán)格地保持編碼位數(shù)并在維持速率控制以及圖像品質(zhì)之間作一妥協(xié)。前述VBV緩沖器模型占用層級(jí)過(guò)低的狀況,可以很明顯從大區(qū)塊的品質(zhì)嚴(yán)重下降的現(xiàn)象中觀察到。
圖11揭示一流程,其系當(dāng)偵測(cè)到過(guò)低的緩沖器模型占用層級(jí)率時(shí)將跳過(guò)某些選定的大區(qū)塊而不予編碼,如此可藉由減少某些不影響圖像品質(zhì)的位數(shù)的編碼,以保持相對(duì)于傳統(tǒng)技術(shù)仍具有良好的速率控制的效果。例如圖11所示的程序能與先前提及的圖6所示的速率控制及量化控制程序結(jié)合使用,熟知此一技術(shù)之人士可以在不超出本發(fā)明的精神與范圍的情形下,當(dāng)能理解一些延伸的應(yīng)用方法。例如,在另一實(shí)施例,前述種種程序的各部分可以被合并使用、可以重新調(diào)整順序、可以移除某些步驟,諸如此類等。
此程序系開(kāi)始于判斷方塊1102,其系判斷在一B圖像中指定哪一圖像編碼,其中該B圖像系可來(lái)自其它圖像,I圖像或P圖像,B圖像系以預(yù)估編碼為基礎(chǔ)的方式編碼成大區(qū)塊,其中該I圖像或P圖像系較播放順序在時(shí)間上稍早或稍晚。然而,在編碼過(guò)程中,上述用以輔助編碼的其它圖像(I圖像或P圖像),系較早于該B圖像編碼前即已編譯。當(dāng)前述B圖像被編碼后,程序由判斷方塊1102前進(jìn)至判斷方塊1104;否則,該流程立刻結(jié)束,例如,回到前述圖6所述的步驟623提供的程序。
在判斷方塊1104中,該程序系判斷是否VBV緩沖器占用層級(jí)相對(duì)處于較低的狀態(tài)。在編碼流程中,若對(duì)一圖像的B圖像進(jìn)行編碼,則必須考慮編碼時(shí)將有一個(gè)較大的位消耗量,另一情況,系為上述的位消耗量可能造成VBV緩沖器的低占用層級(jí),例如,該程序可監(jiān)控在前述圖7所示VBV緩沖器模型的占用層級(jí)Vstatus,而且比較此占用層級(jí)Vstatus與一預(yù)定臨界值,例如Vcritical,可于該編碼過(guò)程中比較每個(gè)變化點(diǎn)中對(duì)于上述兩數(shù)值的差異。在一實(shí)施例中,在一圖像編碼之后以及已判斷VBV緩沖器模型的占用層級(jí)之后即可進(jìn)行比較,例如前述圖6所述速率控制與量化控制的步驟638或步驟610之后。在一實(shí)施例中,在編碼前圖像的大區(qū)塊明顯比編碼過(guò)后為佳,因此,亦保留當(dāng)希望保存較大位量時(shí)能夠跳過(guò)所有大區(qū)塊的實(shí)施方式。
在一范例中,Vcritical系設(shè)定為VBV緩沖器模型容量的1/4,需注意的是,VBV緩沖器模型或類似緩沖器的容量系隨著編碼標(biāo)準(zhǔn)而改變,Vcritical的適當(dāng)值可以選自一寬廣的范圍,例如,也可以使用VBV緩沖器模型容量的1/16、1/8、1/10及3/16等其它值,其它值系為熟知此技術(shù)之人士所易于決定者。在一實(shí)施例中,此程序容許此Vcritical值得設(shè)定由一使用者所設(shè)定。當(dāng)VBV緩沖器模型占用層級(jí)Vstatus掉落于預(yù)定臨界值以下時(shí),此程序系從判斷方塊1104繼續(xù)進(jìn)行至步驟1106;否則,此程序系從判斷方塊1104進(jìn)行至步驟1108。
在步驟1106,此程序跳過(guò)在B圖像中的大區(qū)塊。在一實(shí)施例中,所有大區(qū)塊都被跳過(guò),在另一實(shí)施例中,則跳過(guò)被選擇的方塊。例如,跳過(guò)大區(qū)塊的數(shù)目系與VBV緩沖器的占用層級(jí)Vstatus有關(guān),一已譯碼的B圖像形成,但對(duì)跳過(guò)大區(qū)塊卻具有相對(duì)小的資料。在一編碼過(guò)程中,在資料流中的位或標(biāo)示旗幟即表示跳過(guò)的大區(qū)塊,例如,在一已知為″直接模式″的技術(shù)中,其表示跳過(guò)大區(qū)塊的標(biāo)示旗幟系插入在前、后(在顯示時(shí)間)I圖像或P圖像的大區(qū)塊間的譯碼過(guò)程中;另一標(biāo)示旗幟則代表從顯示時(shí)間前的I圖像或P圖像復(fù)制而來(lái)的跳過(guò)大區(qū)塊;更有一標(biāo)示旗幟代表從顯示時(shí)間后的I圖像或P圖像復(fù)制而來(lái)的跳過(guò)大區(qū)塊。此些大區(qū)塊的跳過(guò)系有助于已較少位對(duì)B圖像進(jìn)行編碼,在一范例中,含有所有跳過(guò)大區(qū)塊的MPEG-2的B圖像的編碼僅需使用約300位。在B圖像大區(qū)塊的選擇性跳過(guò)完成時(shí),此程序即結(jié)束,例如,再回到前述圖6所述程序的步驟623。
在步驟1108中,此程序已判斷VBV緩沖器占用層級(jí)Vstatus并未相對(duì)較低,且此程序?qū)圖像的大區(qū)塊編碼。在完成對(duì)B圖像的大區(qū)塊編碼后,此程序即可結(jié)束,例如,回到圖6的步驟623。在判斷方塊1102的判斷及/或判斷方塊1104系可在圖6的程序中的不同點(diǎn)進(jìn)行,然后再進(jìn)行步驟1106或步驟1108。
適應(yīng)件I、P訊框及B訊框DCT過(guò)濾一MPEG或是其它視訊編碼器會(huì)遭遇到較困難壓縮至一較低位速率的視訊序列,此種情況可以利用可變位速率壓縮來(lái)避免之,其中編碼器對(duì)這些難以編碼場(chǎng)景提高其實(shí)時(shí)位速率,然而,固定位速率壓縮技術(shù),其系可在視訊壓縮光盤(pán)(VCD)、數(shù)字TV播放(包括衛(wèi)星、纜線或其它大氣傳播),及其它類似者,在位速率的適應(yīng)性的增加通常無(wú)法應(yīng)用在VBV緩沖器模型順從限制有用的編碼圖像的位數(shù)目,反而容許品質(zhì)。例如,傳統(tǒng)編碼器會(huì)增加量化參數(shù)QP的值,然后產(chǎn)生可見(jiàn)壓縮加工物(visiblecompression artifacts),壓縮加工物的范例系可被直接觀察到,包括在這些難以編碼視訊場(chǎng)景中的一壓縮瑕疵(Blockiness)及抖動(dòng)(jerkiness)現(xiàn)象。
在圖11所描述的一程序系維持VBV緩沖器的要求及合理圖像品質(zhì),其系對(duì)VBV緩沖器模型占用層級(jí)的反應(yīng)來(lái)選擇性跳過(guò)在B圖像中的大區(qū)塊編碼,描述在圖12及圖13的程序可用來(lái)結(jié)合或獨(dú)立于前述圖11所示的程序。
在圖12及圖13中,此程序有助于選擇性及/或適應(yīng)性的過(guò)濾離散余弦轉(zhuǎn)換(DCT)系數(shù),以降低圖像編碼所需的位數(shù),此程序可以適應(yīng)性的過(guò)濾DCT系數(shù),其系相對(duì)于VBV緩沖器模型占用層級(jí)及可觀察到的量化參數(shù)層級(jí)。選擇性過(guò)濾系有助于改善在使用于圖像編碼的位數(shù)與圖像品質(zhì)間的交換,此情況系為受限制的編碼位和要求的VBV緩沖器模型遵循或是相似的緩沖器模型遵循。此DCT系數(shù)的過(guò)濾有異于過(guò)濾傳統(tǒng)量化表所提供的過(guò)濾,此量化表的內(nèi)容一般在編碼過(guò)程中系固定者,且在比特流中傳送,使得編碼器與譯碼器可以在一封閉回路(closed-loop)中使用相同的量化表。在此描述的DCT系數(shù)過(guò)濾系與僅在編碼器中DCT系數(shù)的選擇性″開(kāi)放回路(open-loop)″過(guò)濾有關(guān)。較有利地,在譯碼器中不需要任何補(bǔ)償調(diào)整。
選擇性DCT過(guò)濾通常系描述在8×8影像區(qū)塊格式中,此8×8影像區(qū)塊系使用在MPEG1、MPEG2以及MPEG4中,從事此技藝之人士應(yīng)該了解此DCT過(guò)濾技術(shù)亦可適用于其它視訊壓縮標(biāo)準(zhǔn),例如H.264,其區(qū)塊尺寸為4×4。
圖12所示為選擇性DCT過(guò)濾程序的流程圖,在此編碼過(guò)程中,編碼器執(zhí)行一移動(dòng)搜尋1210,執(zhí)行一移動(dòng)壓縮1220,并繼續(xù)進(jìn)行DCT系數(shù)的計(jì)算1230。在一實(shí)施例中,然后此程序進(jìn)行選擇性過(guò)濾1240該DCT系數(shù)及/或選擇性限制QP值1250至相對(duì)較低值,可了解的是過(guò)濾1240及QP值的限定與界限1250系可選擇性的應(yīng)用于相對(duì)的VBV緩沖器模型占用層級(jí)及/或應(yīng)用于較高QP值的檢測(cè)。由于較高QP值可以降低使用于資料編碼的位數(shù),以致高QP值引人注目地降低圖品質(zhì)而增加圖像壓縮瑕疵。然后此程序繼續(xù)進(jìn)行DCT系數(shù)的量化1260。當(dāng)過(guò)濾和限制之后,此程序以調(diào)整的QP值對(duì)過(guò)濾的DCT系數(shù)進(jìn)行量化,可了解的是當(dāng)VBV緩沖器模型占用層級(jí)為較高時(shí),此程序可選擇不過(guò)濾DCT系數(shù)以及不修改QP值。如后面圖13所描述的內(nèi)容,此程序的一實(shí)施例也可以改變相對(duì)于VBV緩沖器模型占用層級(jí)的過(guò)濾強(qiáng)度。在圖13所述的程序,頻率域(frequencydomain)中的過(guò)濾技術(shù)范例將首次被敘述。
在頻率域中,ωX和ωy分別代表沿著水平方向與垂直方向的頻率域變量,其系在一影像資料的8×8區(qū)塊中的2-D離散余弦轉(zhuǎn)換(DCT)后或是在移動(dòng)壓縮后的殘留誤差。在此頻率域中,ωX=0與ωy=0的值相當(dāng)于DCT系數(shù),換言之,影像資料的8×8區(qū)塊中的平均值或殘留誤差,而當(dāng)ωX=7與ωy=7的值相當(dāng)于在8×8區(qū)塊的影像資料中的最高頻率詳述或殘留誤差,可了解的是對(duì)于4×4區(qū)塊的影像資料而言,ωX=3與ωy=3的值相當(dāng)于最高頻率詳述。
人類視覺(jué)與感知能力對(duì)低頻率具有較多的敏感性,對(duì)較跟貧則具有較少的敏感性,同時(shí),相對(duì)有許多視訊影像在高頻相對(duì)于低頻時(shí)則具有較少的能量。然而,當(dāng)視訊資料以DCT系數(shù)的量化予以壓縮時(shí),特別是當(dāng)量化器(Quantizer)等級(jí)采用高值(必須包含大量化誤差)時(shí),高細(xì)節(jié)訊框(high-detail frames)的殘留誤差在高頻區(qū)域具有重要的能力,此將導(dǎo)致此些圖像需要重大數(shù)量的位來(lái)被壓縮,甚至是在最高量化器等級(jí)值。
稍后在圖13所描述的程序中,檢測(cè)編碼場(chǎng)景系為如此困難,且一低通濾波器系選擇性應(yīng)用在編碼過(guò)程的影像區(qū)塊,應(yīng)用時(shí),在執(zhí)行移動(dòng)搜尋之后則提供一過(guò)濾步驟。如此,高頻系數(shù)將被犧牲(其值將降低或甚至設(shè)定為0),且因此將稍微降低空間分辨率,特別是一視訊圖像的高細(xì)節(jié)部份,然而,在影像品質(zhì)的總平衡系被大大的改善。在一實(shí)施例中,系使用一非分離角錐型低通濾波器,″角錐″指的是當(dāng)濾波器頻率響應(yīng)由低頻(從DC)改變?yōu)楦哳l(最大AC)時(shí)的傾斜形狀,當(dāng)然,其它濾波器形狀系可由熟知此項(xiàng)技術(shù)之人士所易于決定者。在一實(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)此濾波器的強(qiáng)度。在一實(shí)施例中,濾波器強(qiáng)度(1/s)的值系介于0與1之間,尤其是當(dāng)濾波器強(qiáng)度(1/s)為0時(shí),即s→∞,頻率響應(yīng)Hs具有固定值=1,其意思為無(wú)過(guò)濾(DCT系數(shù)沒(méi)有改變)。當(dāng)濾波器強(qiáng)度(1/s)相對(duì)較高時(shí),s=1,且任何地方的Hs具有固定值為0,除了當(dāng)ωX=ωy=0(DC系數(shù))之外。在有限制的案例中,濾波器的應(yīng)用系利用因素8在水平方向與垂直方向有效降低視訊圖像(即每8個(gè)樣本取一個(gè))。
濾波器的形狀可以隨著強(qiáng)度參數(shù)而改變,在所示的范例中,強(qiáng)度(1/s)的描述相當(dāng)于1/32(弱)、1/16(中)及1/8(強(qiáng)),表III、表IV及表V所示為這些變化濾波器強(qiáng)度的范例。相對(duì)于表III、表IV及表V的濾波器的圖式分別如圖14、15及圖16所示,可了解的是從事此技術(shù)之人士可以做許多可能性的變化,包含濾波器狀的變化與濾逼器強(qiáng)度的變化。例如,在其它實(shí)施例中,可以使用超過(guò)三個(gè)不同的濾波器或是少于三個(gè)濾波器。
表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(弱,強(qiáng)度=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(中,強(qiáng)度=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表V
8 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(強(qiáng),強(qiáng)度=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則逐漸向下增加,其它強(qiáng)度及形狀亦為熟悉此技術(shù)之人士易于思及者。
值得注意的是在所示范例中,濾波器分別使用9/16(18/32)(弱)、1/8(2/16)(中)以及0(強(qiáng)),其系為位于最高頻率DCT系數(shù)位置AC(7,7)的三個(gè)濾波器強(qiáng)度,且保持在DC位置(0,0)的值為1;決定好濾波器時(shí),DC系數(shù)不會(huì)改變。對(duì)其他DCT系數(shù)的濾波器值系位在連接此些點(diǎn)的平面上,使較高的濾波器具有較陡峭的傾斜平面。當(dāng)然,其它變化亦為熟悉此技術(shù)之人士易于決定者,并可包含具曲面的形狀。
在一實(shí)施例中,變量s系選自2冪(例如1/8、1/16、1/32等),以便使此除法可有效地利用比復(fù)合式除法運(yùn)算較為快速的位轉(zhuǎn)換運(yùn)算完成。然而,可以了解的是濾波器強(qiáng)度可假設(shè)為介于0和1之間的其它正值。更進(jìn)一步地,有較多地通用濾波器系使用雙位轉(zhuǎn)換來(lái)支持倍數(shù)變量的乘法運(yùn)算與除法運(yùn)算,例如,處理器系可支持多媒體延伸(multimediaextension,MMX)指令集或是單指令多數(shù)據(jù)(Single InstructionMultiple Data,SIMD),其系已描述于前述的圖6。2冪的利用將大幅簡(jiǎn)化這些或相似架構(gòu)的全面性補(bǔ)償,并增加處理速度,使視訊編碼可以實(shí)時(shí)完成。例如,過(guò)濾程序系有助于以相對(duì)可忽略的計(jì)算來(lái)補(bǔ)償,且在一范例中其系大概為1%。
稍后在圖13所描述的詳細(xì)程序中,此DCT過(guò)濾可以應(yīng)用在全部視訊序列,適應(yīng)于一圖像的基礎(chǔ)案例,大區(qū)塊接著大區(qū)塊的基礎(chǔ),或是三者的結(jié)合??闪私獾氖堑屯V波器可設(shè)定為永遠(yuǎn)使用,例如,在專用的硬件編碼器,但其濾波器響應(yīng)系可選擇地,使此低通濾波器無(wú)功效,因而使此濾波器有效失去作用。不管是否應(yīng)用于DCT過(guò)濾及DCT過(guò)濾強(qiáng)度,因素?cái)?shù)量系可被適當(dāng)采用。在一實(shí)施例中,已計(jì)算好的狀態(tài)變量系有效用來(lái)做判斷,使額外的處理器經(jīng)常費(fèi)用及/或額外的硬件電路系為較低者。例如,在一實(shí)施例中,此DCT過(guò)濾的選擇系基于下列二個(gè)參數(shù)的觀察VBV緩沖器模型占用及現(xiàn)行訊框的平均運(yùn)行的QP,此VBV緩沖器模型系詳細(xì)描述于前述圖7中,有利地,VBV緩沖器模型或其它類似緩沖器模型的理論占用層級(jí)通常系藉由一視訊編碼器來(lái)維持,例如一MPEG視訊編碼器。
平均運(yùn)行量化參數(shù)QP也是一種狀態(tài)變量,其系維持在一視訊編碼器中。當(dāng)許多變化存在于計(jì)算一運(yùn)行平均值時(shí),例如,多少樣本被使用于運(yùn)行平均值中,不管此運(yùn)行平均值是否為不規(guī)則地衡量等,許多視訊編碼器追蹤此QP的平均值以監(jiān)控視訊品質(zhì)。一運(yùn)行平均值QP系相對(duì)的高,例如一接近上界限的QP系接近31,其表示具有相對(duì)壓縮瑕疵圖像的較低品質(zhì)編碼。相反地,一相對(duì)低運(yùn)行平均值QP等,其平均值系接近一最低界限,例如1,其表示編碼器在編碼過(guò)程具有較高視訊品質(zhì)且無(wú)壓縮瑕疵。在一實(shí)施例中,圖像數(shù)量(N)一般用來(lái)計(jì)算一移動(dòng)或運(yùn)行平均QP,此數(shù)量系位于2-30范圍中。
在一實(shí)施例中,相對(duì)于VBV緩沖器模型狀況及平均運(yùn)行QP,在(a)使用DCT過(guò)濾與使用一較低QP值或(b)不執(zhí)行DCT過(guò)濾及使用一較高QP值間進(jìn)行交換,可以了解的是(b)可相對(duì)于傳統(tǒng)編碼技術(shù)。
在一實(shí)施例中,當(dāng)編碼器應(yīng)用于DCT過(guò)濾時(shí),另一除法可以用來(lái)判斷過(guò)濾的強(qiáng)度或大小,為從事此技技術(shù)者了解的,濾波器強(qiáng)度數(shù)量系可由編碼器選擇而在一較廣的范圍內(nèi)變化,例如2、3、4或更多濾波器強(qiáng)度。在所示實(shí)施例中,表III、表IV及表V,此編碼器自3個(gè)具有相對(duì)濾波器系數(shù)矩陣的濾波器強(qiáng)度(1/32為弱,1/16為中,1/8為強(qiáng))中選擇,在濾波器強(qiáng)度上的許多變化系為可能的。
在濾波器系數(shù)的另一范例,濾波器進(jìn)行的過(guò)濾數(shù)量可隨著濾波器頻率響應(yīng)的調(diào)整而變化,如表VI、表VII及表VIII所示。即使波器強(qiáng)度(1/s)保留在相同值,過(guò)濾數(shù)量也會(huì)因而改變。描述在表VI、表VII及表VIII的濾波器響應(yīng),對(duì)每一濾波器而言,濾波器的強(qiá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(強(qiáng))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此過(guò)濾運(yùn)算包含在DCT系數(shù)與先前所列系數(shù)間的一簡(jiǎn)單數(shù)量的乘法運(yùn)算,許多處理器支持可執(zhí)行平行倍數(shù)乘法運(yùn)算的指令。一范例的處理器架構(gòu)系可支持SSE指令集或是MMS指令集,以及大量相乘的指令″PMUL″。有利地,除法運(yùn)算可有效率的右位轉(zhuǎn)換運(yùn)算有關(guān),只要是2冪的因素。適應(yīng)性選擇DCT過(guò)濾程序?qū)⒈辉斒鲇诤蟆?br>
圖13所示為在一視訊編碼器中適應(yīng)性選擇DCT過(guò)濾程序的一范例流程圖,從事此項(xiàng)技術(shù)者對(duì)上述的程序以不同方式所做的修改仍未脫離本發(fā)明所揭示的精神與范圍,例如,在另一實(shí)施例中,所示程序的各種不同部份系可結(jié)合在一起,可以可供替代的順序重新排列,可以被移除,以及其它類似者。
此程序由步驟1302開(kāi)始,其中此程序系檢索VBV緩沖器模型占用層級(jí),其系可以先前的圖像編碼進(jìn)行更新。較有利地,緩沖器模型的占用層級(jí)系已在一編碼程序中計(jì)算完成,可了解的是此程序并不需要檢索占用層級(jí)直到使用占用層級(jí),但是在步驟1302所示的資料檢索更為清楚。此程序?qū)牟襟E1302前進(jìn)至步驟1304。
在步驟1304中,本程序計(jì)算或檢索該運(yùn)行QP平均值,其系為已知的移動(dòng)平均值。在一實(shí)施例中,運(yùn)行平均值系來(lái)自現(xiàn)存運(yùn)行平均值的重新使用。在另一實(shí)施例中,運(yùn)行平均值系分開(kāi)計(jì)算的。在另一實(shí)施例中一新的QP運(yùn)行平均值系由現(xiàn)存運(yùn)行平均值計(jì)算而來(lái)的,且一最近的運(yùn)行平均值的衡量系以方程式45表示。
QPx_avg=*(QPrun+QPx_prev)方程式45在方程式45,QPrun相當(dāng)于由系統(tǒng)狀態(tài)變量檢索出的一平均運(yùn)行QP,且QPx_prev相當(dāng)于相同型式(I、P或B)之前圖像的QP值。方程式45的結(jié)果QPx_avg之后可以被使用于與一被選擇的臨界值進(jìn)行比較,即過(guò)濾的QP臨界值(QPflt_thr)。而后此程序從步驟1304前進(jìn)至判斷方塊1306。
在判斷方塊1306中,此程序比較運(yùn)行平均QP與一臨界值,例如一預(yù)定的臨界值。在一實(shí)施例中,可選擇QPflt_thr,使QPflt_thr相當(dāng)于一平均QP的視訊品質(zhì)臨界值QPx_avg,其系表示在視訊中的壓縮瑕疵幾乎為明顯的??闪私獾氖谴伺R界值可載在一寬廣的范圍內(nèi)變化,且可依據(jù)環(huán)境狀態(tài),例如視訊分辨率、視訊的訊框速率以及位速率上的限制。在一實(shí)施例中,此程序可以對(duì)較低分辨率視訊使用一較小的臨界值。在一實(shí)施例中,此程序可以使用一QPflt_thr=6的臨界值于VCD尺寸視訊(352×240)或是較小的分辨率。對(duì)DVD而言,即NTSC(720×480),或其它類似尺寸視訊,QPflt_thr=14的值系有利于使用。較小分辨率視訊,例如VCD,因其低分辨率視訊較高分辨率視訊具有較大的實(shí)際像素尺寸,所以對(duì)視訊壓縮瑕疵具有更多的敏感性,亦可使用其它值,且其它值仍然可為熟悉不同編碼標(biāo)準(zhǔn)(MPEG4/H.264)或不同視訊訊框尺寸及訊框速率等領(lǐng)域的人士所易于決定者。
如圖所示的程序,當(dāng)運(yùn)行平均值超過(guò)臨界值(QPx__avg>QPflt_thr)時(shí),程序?qū)呐袛喾綁K1306繼續(xù)進(jìn)行至步驟1308;否則,程序?qū)呐袛喾綁K1306繼續(xù)進(jìn)行至1312。
在步驟1308,此程序設(shè)定一標(biāo)示旗幟來(lái)表示判斷方塊1322在過(guò)濾圖像的所有大區(qū)塊而進(jìn)入步驟1324,可了解的是此程序變化為可能的,且在此程序的另一實(shí)施例中,少于所有大區(qū)塊被過(guò)濾,用以檢測(cè)超過(guò)臨界值運(yùn)行平均值。再回到圖標(biāo)的實(shí)施例,其中所有大區(qū)塊被選擇以運(yùn)行平均值超過(guò)臨界值進(jìn)行過(guò)濾,此程序系從步驟1308前進(jìn)至步驟1310。
在步驟1310,本程序選擇一濾波器強(qiáng)度來(lái)應(yīng)用于DCT系數(shù),如前面所描述者,濾波器的作用可以隨著濾波器頻率響應(yīng)與濾波器強(qiáng)度(1/s)而改變。在所示的程序中,在步驟1302檢所到的VBV緩沖器模型占用層級(jí)系用來(lái)判斷該濾波器強(qiáng)度。在一實(shí)施例中,對(duì)VBV緩慶模型占用層級(jí)的最初與長(zhǎng)期目標(biāo)為VBV緩沖器模型容量的7/8(7/8的vbv_buffer_size)。此VBV緩沖器模型容量的7/8的目的為視訊編碼器的代表性目的,可了解的是此標(biāo)準(zhǔn)可在廣泛的范圍內(nèi)變化,且亦隨著過(guò)濾強(qiáng)度的數(shù)目而改變,此過(guò)濾強(qiáng)度為編碼器所選擇者,且系基于VBV緩沖器模型占用的不同VBV目的及/或臨界值。
在一實(shí)施例中,較低的VBV緩沖器模型占用,可應(yīng)用濾波器的強(qiáng)度則較強(qiáng)。在一實(shí)施例中,該VBVcur表示VBV緩沖器模型占用的當(dāng)前圖像或訊框,且濾波器強(qiáng)度系選自下列內(nèi)容。當(dāng)(VBVcur>6/8*vbv_buffer_size)時(shí),DCT過(guò)濾強(qiáng)度設(shè)定為弱;在6/8*vbv_buffer_size的臨界值以下,若(VBVcur>3/8*vbv_buffer_size),DCT過(guò)濾強(qiáng)度設(shè)定為中;在3/8*vbv_buffer_size的臨界值以下,DCT過(guò)濾強(qiáng)度設(shè)定為強(qiáng)。之后此程序系從步驟1310前進(jìn)至步驟1320。
現(xiàn)在再回到判斷方塊1306,當(dāng)運(yùn)行平均值系小于或等于臨界值,QPx_avg≤QPflt_thr,此程序繼續(xù)進(jìn)行至步驟1312,其中被選擇的大區(qū)塊可被過(guò)濾。在一實(shí)施例中,此程序決定過(guò)濾應(yīng)該應(yīng)用在所選擇的大方塊,且過(guò)濾系在一較弱的強(qiáng)度,例如前述表III所敘述的較弱濾波器強(qiáng)度。此程序?qū)牟襟E1312前進(jìn)至步驟1320。
在步驟1320中,本程序系計(jì)算的大區(qū)塊的量化參數(shù)。此步驟13320相當(dāng)于處理一圖像大區(qū)塊的回路的開(kāi)始,物同技術(shù)可以用來(lái)計(jì)算此量化參數(shù)(QP)。在一實(shí)施例中,系使用MPEG的TM5所描述的標(biāo)準(zhǔn)技術(shù)來(lái)計(jì)算QP值。在另一實(shí)施例中,亦可使用其它技術(shù),例如,描述于前述圖6所示的QP計(jì)算技術(shù),在TM5型式的速率控制,一特定的大區(qū)塊(MB)i的量化參數(shù)(QP)系利用虛擬緩沖器狀態(tài)與大區(qū)塊的空間活動(dòng)來(lái)決定,假如先前MB的位配置過(guò)量,即太多位被消耗,該TM5速率控制可以利用分配一較高QP值給后續(xù)的大區(qū)塊(MB)來(lái)補(bǔ)償之。
值得注意的是,TM5型式的速率控制系使用一方法,稱之為″適應(yīng)性量化(adaptive quantization)″,來(lái)分配一相對(duì)小的QP給平面區(qū)域(低特征)的大區(qū)塊,并分配一相對(duì)高的QP給在忙碌或高特征區(qū)域的大區(qū)塊。結(jié)果,許多大區(qū)塊仍不利地及一貫地分配相對(duì)高QP值而導(dǎo)致是絕不愉快的加工物,例如壓縮瑕疵。如稍后所描述者,當(dāng)執(zhí)行DCT過(guò)濾來(lái)降低在編碼過(guò)程中位消耗數(shù)量而依從VBV緩沖器模型限制時(shí),本程序之一實(shí)施例有利于降低相對(duì)高的QP值而減少壓縮瑕疵。此程序系從步驟1320前進(jìn)至判斷方塊1322。
在判斷方塊1322中,本程序判斷是否過(guò)濾所有的大區(qū)塊或是只過(guò)濾選擇的大區(qū)塊。在圖所示的程序中,此程序監(jiān)控在步驟1308設(shè)定標(biāo)示旗幟的狀態(tài),當(dāng)所有大區(qū)塊全部被過(guò)濾時(shí),此程序?qū)呐袛喾綁K1322繼續(xù)進(jìn)行至步驟1324;否則,此程序?qū)呐袛喾綁K1322繼續(xù)進(jìn)行至判斷方塊1328。
在步驟1324中,本程序應(yīng)用選擇的DCT濾波器至DCT系數(shù),并利用資料中的增加零數(shù)量過(guò)濾來(lái)減少位數(shù),因而使數(shù)據(jù)壓縮的數(shù)量減少。例如,額外的零存在可有助于增加連續(xù)遭遇零數(shù)量,其系可以壓縮運(yùn)行長(zhǎng)度來(lái)代表。此程序?qū)牟襟E1324前進(jìn)至步驟1326。
在步驟1326中,此程序設(shè)置一上界限值于QP值,以減輕影像壓縮瑕疵,相較于一使用相同QP值的中間大區(qū)塊(包含前面的、后面的及插入的模式)而言,在一內(nèi)部大區(qū)塊(intra-macroblock)中更可明顯觀察到影像壓縮瑕疵效應(yīng)。在一實(shí)施例中,一較小QP界限值系有利于使用在內(nèi)部大區(qū)塊更甚于使用在中間大區(qū)塊。一內(nèi)部大區(qū)塊的上界限值與一中間大區(qū)塊的上界限值系分別表示為QPintra_thr與QPinter_thr。在一實(shí)施例中,此些界限值可根據(jù)方程式46的VBV緩沖器模型占用來(lái)進(jìn)行適應(yīng)性選擇。
方程式46例如,若當(dāng)前VBV緩沖器占用層級(jí)系介于VBV緩沖器模型容量的4/8與5/6之間,使得內(nèi)部大區(qū)塊的QP上界限值與中間大區(qū)塊的QP上界限值分別選擇為14與20。對(duì)QP界限值的其它值,亦即,QPintra_thr與QPinter_thr的其它值系為熟悉此技術(shù)者易于決定者。該上界限值系應(yīng)用于步驟1320的QP計(jì)算。當(dāng)步驟1320計(jì)算的QP值大于所給的界限值(QPintra_thr與QPinter_thr)時(shí),系使用結(jié)合的QP界限值。此程序則從步驟1326前進(jìn)至步驟1330,其中該大區(qū)塊系為已編碼者。
現(xiàn)在再回到判斷方塊1328,在此程序的此點(diǎn),該程序判定步驟1324的DCT過(guò)濾應(yīng)用,并判斷大區(qū)塊于步驟1326可能的QP調(diào)整。在一實(shí)施例中,當(dāng)運(yùn)行QP值超過(guò)前述方程式46所述的臨界值時(shí),此程序從判斷方塊1328繼續(xù)進(jìn)行到DCT過(guò)濾步驟1324以及QP調(diào)整狀態(tài)。當(dāng)運(yùn)行QP值位超過(guò)臨界值時(shí),使程序并沒(méi)有進(jìn)行DCT過(guò)濾以及QP的調(diào)整,進(jìn)行前進(jìn)至步驟1330。
在步驟1330中,本程序編碼該大區(qū)塊,此編碼過(guò)程可以是藉由判斷方塊1328進(jìn)入至步驟1330的未過(guò)濾編碼,或是藉由步驟1326進(jìn)入步驟1330的已過(guò)濾編碼。而后此程序系從步驟1330前進(jìn)至判斷方塊1332。
在判斷方塊1332中,本程序判斷圖像中的所有大區(qū)塊是否已經(jīng)完成編碼過(guò)程,當(dāng)大區(qū)塊仍然處于編碼狀態(tài)時(shí),此程序即會(huì)回到步驟1320繼續(xù)整個(gè)處理程序;否則,此程序?qū)⒔Y(jié)束,并可于要求之后續(xù)訊框的編碼過(guò)程重新開(kāi)始。
圖17為選擇一大區(qū)塊模式的流程圖。習(xí)知的影訊編碼技術(shù)在選擇大區(qū)塊模式時(shí)是采用一種不適當(dāng)?shù)呐袛喾绞?。于本發(fā)明的一具體化實(shí)施例中于模式判斷時(shí)加入編碼成本作為移動(dòng)向量,藉此增加選擇模式的品質(zhì)。更者,于判斷時(shí)額外再使用一個(gè)L1基準(zhǔn),以降低使用編碼成本作為移動(dòng)向量所增加的計(jì)算復(fù)雜度。
在步驟1710,過(guò)程執(zhí)行一移動(dòng)搜尋。當(dāng)進(jìn)行完該大區(qū)塊的每一個(gè)編碼模式移動(dòng)向量搜尋(內(nèi)部移動(dòng)彌補(bǔ)、零移動(dòng)向量、場(chǎng)內(nèi)移動(dòng)彌補(bǔ)等)后,進(jìn)行一剩余錯(cuò)誤的量測(cè),為了判斷某些大區(qū)塊適當(dāng)?shù)木幋a模式,一般的編碼器計(jì)算平方和的總數(shù),也就是大家所知的L-2基準(zhǔn)。該平方的和數(shù)接續(xù)與原始圖像值進(jìn)行比對(duì)。在一般的系統(tǒng)內(nèi),最小平方和為光學(xué)編碼模式。
計(jì)算平方和的缺點(diǎn)是它是一個(gè)相當(dāng)奢侈的計(jì)算過(guò)程并且會(huì)導(dǎo)致編碼過(guò)程變慢。例如,當(dāng)進(jìn)行這種型態(tài)的方塊計(jì)算的判斷模式總和將消耗MPEG壓縮的全部編碼復(fù)雜性的10%。
在步驟1720,過(guò)程計(jì)算或接收作為移動(dòng)向量的絕對(duì)差異總和(SAD)。在本發(fā)明中,絕對(duì)值總和,也就是L1基準(zhǔn),于模式判斷時(shí)被用來(lái)作為測(cè)量基準(zhǔn)。更佳的是,剩余錯(cuò)誤的絕對(duì)值總和實(shí)際上等于移動(dòng)收尋中過(guò)程判斷何者為最佳候補(bǔ)大區(qū)塊預(yù)測(cè)的絕對(duì)差異總和值(SAD)。除了原始畫(huà)素的L1基準(zhǔn)之外,該剩余錯(cuò)誤的L1基準(zhǔn)編碼器也能夠使用,而不需要更進(jìn)一步的計(jì)算。不管從哪里計(jì)算,因?yàn)長(zhǎng)1基準(zhǔn)的運(yùn)算過(guò)程不需要乘法計(jì)算,所以L1基準(zhǔn)較計(jì)算L2基準(zhǔn)較為簡(jiǎn)便且CPU能力耗費(fèi)較少。另外,選擇過(guò)程直接的持有效的指令如先前圖6中所描述。
另外一個(gè)缺點(diǎn)系為習(xí)知用來(lái)模式判斷的方法是純粹藉由扭取量測(cè)來(lái)判斷,即模式判斷選擇具有最少扭取的模式。然而,每一個(gè)模式并不符合相對(duì)應(yīng)消耗的位數(shù)。例如,沒(méi)有移動(dòng)向量的大區(qū)塊模式較其它模式小。因此,利用習(xí)知方式所選擇出來(lái)的模式可以選擇出一個(gè)模式,其無(wú)法避免每一位消耗時(shí)畫(huà)面扭取的問(wèn)題。
在很多情況下,一個(gè)具有稍微較大扭取與較小運(yùn)動(dòng)向量差值(DMV)或者較少運(yùn)動(dòng)向量(DMV的值將判斷該移動(dòng)向量編碼所使用的位數(shù))可以較一具有較低扭曲的模式具有較佳扭取速率型態(tài)。如一個(gè)DMV的范例,如果一個(gè)特定MB的移動(dòng)向量(MV)為(4,3),這個(gè)MB的MV仿真為(3,6),因此該DMV為(4-3,3-6)=(1,-3)。在這個(gè)例子中,用來(lái)修飾SAD的DMV值為|1|+|-3|=4。
在步驟1730,過(guò)程藉由調(diào)整SADORG為SADMOD來(lái)補(bǔ)償在SAD計(jì)算的移動(dòng)向量的編碼成本。一個(gè)具體化的例子使用一個(gè)相對(duì)簡(jiǎn)易判斷原則來(lái)考慮DMVs速率與他們相關(guān)的扭曲。一個(gè)具體化的實(shí)施例,因?yàn)榕袛嘣瓌t與圖像及移動(dòng)彌補(bǔ)型態(tài)呈現(xiàn)高度相關(guān)時(shí),該判斷原則的選擇系依據(jù)該圖像為P圖像、B圖像與是否該圖像使用場(chǎng)仿真或者訊框仿真(對(duì)交錯(cuò)式影訊與對(duì)累進(jìn)式影訊)。用半畫(huà)素單位表示的DMV的實(shí)際值能于該目標(biāo)使用。該水平與垂直的絕對(duì)值總和可以使用于下列作為判斷原則方程式的數(shù)值。
一個(gè)具體化的實(shí)施例,DMVs相關(guān)的成本被轉(zhuǎn)換成等價(jià)值的SAD,因此許多模式的SAD可以被更適當(dāng)?shù)谋葘?duì)。具體而言,與每一個(gè)模式相關(guān)的DMV是首先被計(jì)算,然后再計(jì)算被DMV修飾后的每一個(gè)模式的SADs,接續(xù),該被修飾過(guò)的SADs作為模式判斷。例如,P圖像系使用下列定義為原則1的原則。其它原則將合并此處描述的理論與優(yōu)點(diǎn)經(jīng)由該技藝中原本的技巧快速的判斷。
在下列公式,當(dāng)DMV經(jīng)轉(zhuǎn)換與作為模式判斷后,SADmod可視為為SAD。然而,SADorg的SAD值來(lái)自于移動(dòng)估計(jì)。下列所表示的原則可以被修飾以配合L2基準(zhǔn)。
P圖像演進(jìn)序列「0255」對(duì)于這些大區(qū)塊(MBs),一個(gè)MB可以被譯碼,為下列三個(gè)型態(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訊框交錯(cuò)序列對(duì)這些大區(qū)塊,MB可以被譯碼,為下列四個(gè)型態(tài)之一Intra,Inter_No_MC,Inter_MC_frame and Inter_MC_field.Inter_MC_field mode使用兩個(gè)移動(dòng)向量,因此依據(jù)原則2有兩個(gè)DMVsA.Inter_MC_frame SAD被修飾為SADmoa(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訊框演進(jìn)序列對(duì)這些大區(qū)塊,MB可以被譯碼,為下列四個(gè)型態(tài)之一Intra,forward,backward and interpolated modes.原則三A.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))]]>因?yàn)樗褂脙蓚€(gè)移動(dòng)向量。
D.Intra MB被修飾為SADmod(Intra)=SADorg-128B訊框交錯(cuò)序列對(duì)這些大區(qū)塊,MB可以被譯碼,為下列七個(gè)型態(tài)之一Intra,forward,forward_field,backward,backward_field,interpolated,interpolated_field modes.
A.向前模式的SAD被修飾為SADmod(Forward)=SADorg+min((DMV+1)*4,32)B.向前場(chǎng)模式的SAD被修飾為SADmod(forward_field)=SADorg+min(Σ12(DMVk+1*4,64))]]>因?yàn)樗褂脙蓚€(gè)移動(dòng)向量。
C.向后模式的SAD被修飾為SADmod(backward)=SADorg+min((DMV+1)*4,32)D.向后場(chǎng)模式的SAD被修飾為SADmod(backward_field)=SADorg+min(Σ12(DMVk+1*4,64))]]>因?yàn)樗褂脙蓚€(gè)移動(dòng)向量。
E.修改框架模式的SAD被修飾為SADmod(interpolate_field)=SADorg+min(Σ12(DMVk+1*4,64))]]>因?yàn)樗褂脙蓚€(gè)移動(dòng)向量。
F.修改場(chǎng)模式的SAD被修飾為SADmod(interpolate_field)=SADorg+min(Σ14(DMVk+1*4,128))]]>因?yàn)樗褂盟膫€(gè)移動(dòng)向量。
G.Intra MB被修飾為SADmod(Intra)=SADorg-128在步驟1740,過(guò)程選擇該大區(qū)塊的該模式。當(dāng)該SAD計(jì)算值被轉(zhuǎn)換并且符合適當(dāng)?shù)脑瓌t,在轉(zhuǎn)化后,過(guò)程選擇具有一最低SAD的模式為一具體化范例。實(shí)驗(yàn)結(jié)果指出使用L1基準(zhǔn)與作為編碼模式判斷以修飾方程式能夠較習(xí)知使用L2基準(zhǔn)模式判斷運(yùn)作的更好,在PSNR(peaksignal-to-noise ratio)有0.4dB平均,其顯示具有相當(dāng)品質(zhì)上的改變。另外,因?yàn)長(zhǎng)1基準(zhǔn)較L2基準(zhǔn)執(zhí)行快速,故可得到較好的品質(zhì)。
圖18為選擇一大區(qū)塊模式的方式的另一種流程圖。在步驟1802,執(zhí)行一種作為訊框或圖像的移動(dòng)估計(jì)。該移動(dòng)估計(jì)將提供給步驟1804來(lái)計(jì)算差異移動(dòng)向量并且提供給步驟1810來(lái)判斷SAD的計(jì)算值。在步驟1804,差異移動(dòng)向量被計(jì)算。差異移動(dòng)向量系依據(jù)先前的移動(dòng)向量與由步驟1806所提供的數(shù)質(zhì)。在步驟1808,已轉(zhuǎn)換的SAD值被計(jì)算出。在步驟1812,已轉(zhuǎn)換的SAD值被比較,并且大區(qū)塊模式被選擇。在一個(gè)具體化的實(shí)施例中,模式的選擇系對(duì)應(yīng)于全部SAD中具有最低SAD值的模式。
以上所述者,僅為本發(fā)明一較佳實(shí)施例而已,并非用來(lái)限定本發(fā)明實(shí)施的范圍,故舉凡依本發(fā)明申請(qǐng)專利范圍所述的形狀、構(gòu)造、特征及精神所為的均等變化與修飾,均應(yīng)包括于本發(fā)明的申請(qǐng)專利范圍內(nèi)。
權(quán)利要求
1.一種用于視訊編碼器來(lái)進(jìn)行大區(qū)塊編碼的模式選擇的方法,其包括下列步驟形成一移動(dòng)搜尋,來(lái)選擇一移動(dòng)向量;藉由復(fù)數(shù)大區(qū)塊模式來(lái)判斷作為移動(dòng)向量的剩余錯(cuò)誤;估計(jì)至少部分復(fù)數(shù)大區(qū)塊的移動(dòng)向量的編碼成本;以及藉由與模式相關(guān)的剩余錯(cuò)誤與編碼成本來(lái)選擇編碼大區(qū)塊的模式。
2.如權(quán)利要求1所述的用于視訊編碼器來(lái)進(jìn)行大區(qū)塊編碼的模式選擇的方法,其中該剩余錯(cuò)誤系依據(jù)一絕對(duì)值誤差總和(L1基準(zhǔn))預(yù)測(cè)而來(lái)。
3.如權(quán)利要求1所述的用于視訊編碼器來(lái)進(jìn)行大區(qū)塊編碼的模式選擇的方法,其中該剩余錯(cuò)誤系依據(jù)一平方總和(L2基準(zhǔn))預(yù)測(cè)而來(lái)。
4.如權(quán)利要求1所述的用于視訊編碼器來(lái)進(jìn)行大區(qū)塊編碼的模式選擇的方法,其中作為圖框間大區(qū)塊的該編碼成本的零移動(dòng)向量為零。
5.如權(quán)利要求1所述的用于視訊編碼器來(lái)進(jìn)行大區(qū)塊編碼的模式選擇的方法,其中該編碼成本系視該圖像為B圖像或者P圖像時(shí),使用不同的標(biāo)準(zhǔn)。
6.如權(quán)利要求1所述的用于視訊編碼器來(lái)進(jìn)行大區(qū)塊編碼的模式選擇的方法,其中該該編碼成本系視該圖像為插入式或者漸進(jìn)式,使用不同的標(biāo)準(zhǔn)。
7.一種用于視訊編碼器來(lái)進(jìn)行大區(qū)塊編碼的模式選擇的方法,其步驟系藉由兩種分別代表模式剩余錯(cuò)誤與移動(dòng)向量編碼成本的指針,來(lái)判斷所需選擇作為大區(qū)塊的模式。
8.如權(quán)利要求7所述的用于視訊編碼器來(lái)進(jìn)行大區(qū)塊編碼的模式選擇的方法,其中該移動(dòng)向量為一差異移動(dòng)向量。
9.如權(quán)利要求7所述的用于視訊編碼器來(lái)進(jìn)行大區(qū)塊編碼的模式選擇的方法,其中該剩余錯(cuò)誤的部分值系采用將一移動(dòng)向量之一L1-norm估計(jì)值重新再估計(jì)所得到。
10.如權(quán)利要求7所述的用于視訊編碼器來(lái)進(jìn)行大區(qū)塊編碼的模式選擇的方法,其中該絕對(duì)值誤差總和系作為剩余錯(cuò)誤,還包括依據(jù)模式的編碼成本進(jìn)行絕對(duì)值誤差總合的調(diào)整;將兩個(gè)分別為不同模式的已調(diào)整的絕對(duì)差別總合進(jìn)行比對(duì);以及選擇具有較低的已調(diào)整的絕對(duì)值誤差總合的模式。
11.一種具有作為大區(qū)塊編碼選擇模式的視訊編碼器,其包括使用兩種分別代表模式剩余錯(cuò)誤與移動(dòng)向量編碼成本的指針,來(lái)判斷所需選擇作為大區(qū)塊的模式的工具。
12.如權(quán)利要求7所述的具有作為大區(qū)塊編碼選擇模式的視訊編碼器,其中該剩余錯(cuò)誤的部分值系采用將一移動(dòng)向量之一L1-norm估計(jì)值重新再估計(jì)所得到。
13.一內(nèi)建于一有形媒介的計(jì)算機(jī)程序,其具有一指示作為大區(qū)塊編碼模式選擇的單元,而該計(jì)算機(jī)程序包括有使用兩種分別代表模式剩余錯(cuò)誤與移動(dòng)向量編碼成本的指針,來(lái)判斷所需選擇作為大區(qū)塊的模式的指示。
14.如權(quán)利要求13所述的計(jì)算機(jī)程序,其中該剩余錯(cuò)誤的部分值系采用將一移動(dòng)向量之一L1-norm估計(jì)值重新再估計(jì)所得到。
15.一用來(lái)選擇作為大區(qū)塊編碼的模式的安裝回路,其包括有一用以形成一移動(dòng)搜尋,以選擇一移動(dòng)向量的安裝回路;一系用以藉由復(fù)數(shù)大區(qū)塊模式來(lái)判斷作為移動(dòng)向量的剩余錯(cuò)誤的安裝回路;一估計(jì)至少部分復(fù)數(shù)大區(qū)塊的移動(dòng)向量的編碼成本的安裝回路;以及一藉由與模式相關(guān)的剩余錯(cuò)誤與編碼成本來(lái)選擇編碼大區(qū)塊的模式的安裝回路。
16.如權(quán)利要求15所述的安裝回路,其中該剩余錯(cuò)誤系依據(jù)一絕對(duì)值誤差總和預(yù)測(cè)而來(lái)。
17.如權(quán)利要求15所述的安裝回路,其具體化的的實(shí)施例為一視訊編碼器。
全文摘要
本發(fā)明公開(kāi)了一種改進(jìn)視訊編碼的方法和裝置。傳統(tǒng)的視訊編碼技術(shù)對(duì)于判斷大區(qū)塊的編碼模式是相當(dāng)不利的。因此,本發(fā)明利用包含有壓縮/解壓縮成本作為移動(dòng)向量的模式判斷,來(lái)增進(jìn)模式選擇的品質(zhì)。另一方面,更進(jìn)一步在判斷時(shí)使用L1基準(zhǔn),來(lái)降低計(jì)算移動(dòng)向量的編碼/譯碼成本的復(fù)雜性。
文檔編號(hào)H04N7/12GK1617592SQ20041005669
公開(kāi)日2005年5月18日 申請(qǐng)日期2004年8月16日 優(yōu)先權(quán)日2003年8月14日
發(fā)明者趙立峰, 卡達(dá)汪迪斯 申請(qǐng)人:英特維科技股份有限公司