專利名稱::應(yīng)用于影像譯碼器與編碼器的影像處理方法
技術(shù)領(lǐng)域:
:本發(fā)明提供一種用來對影像信號進(jìn)行編碼/譯碼的影像處理方法,尤指一種對影像信號進(jìn)行編碼/譯碼時,可以降低存儲需求的位移補償方法/位移估測方法。
背景技術(shù):
:MPEG(movingpictureexpertsgroup)規(guī)格,譬如常見的MPEG-2規(guī)格(ISO-13818)已經(jīng)廣泛地使用在各種影像相關(guān)的應(yīng)用之中;MPEG-2規(guī)格提出了一種經(jīng)編碼過以及壓縮過的位串流(bit-stream),其可大大降低頻寬的使用。此外,MPEG-2規(guī)格所定義的壓縮操作,原則上是一有耗損的壓縮伴隨著一個無耗損的壓縮。經(jīng)編碼且壓縮過后的數(shù)字信號會由符合MPEG-2規(guī)格的譯碼器來加以解壓縮與譯碼。MPEG-2規(guī)格定義了一種位串流形式,其通過一種具有非常高壓縮率的壓縮技術(shù);此壓縮技術(shù)是無法單靠幀內(nèi)編碼(intraframecoding)或是單靠幀間編碼(interframecoding)便可以辦到的,然而卻保留著幀內(nèi)編碼所具有的隨機存取優(yōu)點。MPEG-2規(guī)格所定義的壓縮方式是奠基于區(qū)塊(blockbased)的壓縮方式,其結(jié)合了頻譜(frequencydomain)上的幀內(nèi)編碼以及內(nèi)插(interpolative)/預(yù)測(predictive)幀間編碼,因此,MPEG-2規(guī)格所定義的壓縮方式同時結(jié)合了幀間編碼與幀內(nèi)編碼兩者的優(yōu)點。如前所述,MPEG-2規(guī)格定義了內(nèi)插與預(yù)測幀間編碼以及頻譜上的幀內(nèi)編碼。奠基于區(qū)塊的位移估測與位移壓縮操作是用來降低時間上的冗余信息,而奠基于區(qū)塊的離散余弦轉(zhuǎn)換(discretecosinetransform,DCT)壓縮操作是用來降低空間上的冗余信息。在MPEG-2的規(guī)格定義之下,位移補償是由預(yù)測編碼、內(nèi)插編碼以及可變長度編碼(variablelengthcoded,VLC)位移向量。與位移相關(guān)的信息是奠基于16×16數(shù)組的像素,并且和空間的信息一起被傳輸;位移信息是利用可變長度碼(例如霍夫曼碼(Huffmancode))來加以壓縮。一般來說,在同一個圖片(影像)中,于彩度上,幾何圖案上以及其它特征值上都會具有一些相似度,而為了減少這些空間上的冗余信息,必須要將圖片上重要的元素標(biāo)示出來,并且要將不重要或是重復(fù)的冗余元素移除。舉例來說,根據(jù)MPEG-2規(guī)格,一張圖片是借由消除空間上的冗余信息來完成壓縮,而消除空間上的冗余信息是借由彩度取樣、離散余弦轉(zhuǎn)換以及量化操作來完成。此外,視訊數(shù)據(jù)是由一連串連續(xù)的圖片構(gòu)成,此時,因為人類視覺系統(tǒng)對圖片具有“視覺暫留”的特性,所以這一連串連續(xù)的圖片就被感知為動態(tài)影像,因此,圖片之間的時間間隔是非常短的,并且相鄰的圖片之間所具有的差異也非常微小,其差異大多是以物體位置之間的變化呈現(xiàn),所以,MPEG-2規(guī)格便將連續(xù)圖片之間的相似部分于時間上所造成的冗余信息加以消除,因而達(dá)到壓縮視訊數(shù)據(jù)的目的。為了消除前述的時間上的冗余信息,MPEG-2規(guī)格也提出了一個流程,其稱之為位移估測(motionestimation)或位移補償(motioncompensation)。位移估測或位移補償是與決定圖片間冗余信息有關(guān);在執(zhí)行位移補償之前,一欲處理的目前圖片(currentpicture)通常會被分為16×16像素大小的宏區(qū)塊(macro-block,MB),而對于每一個目前宏區(qū)塊來說,一參考圖片(可為前面的圖片或后面的圖片)的最相似預(yù)測區(qū)塊會借由比較目前宏區(qū)塊與該參考圖片的多個“候選”宏區(qū)塊來決定;而最相似預(yù)測區(qū)塊會被視為一參考區(qū)塊,并且目前區(qū)塊與該參考區(qū)塊之間的位置差異會接著被記錄為一個位移向量;而前述用來取得位移向量的流程便為前述的位移估測。在此請注意,若該參考區(qū)塊隸屬的圖片位于目前圖片之前時,前述的操作流程便稱之為向前預(yù)測(forwardprediction);另一方面,若該參考圖片位于目前圖片之后時,前述的操作流程便稱之為向后預(yù)測(backwardprediction)。此外,若位移向量是借由參考前面的圖片與后面的圖片而產(chǎn)生,那么前述操作流程便稱之為雙向預(yù)測(bi-directionalprediction)。一般使用的位移探測方法是區(qū)塊比對(block-matching)方法,由于參考區(qū)塊并不會完全與目前區(qū)塊相同,當(dāng)進(jìn)行區(qū)塊比對的時候,必須要計算目前區(qū)塊與參考區(qū)塊之間的差異(可視為一預(yù)測誤差);于是,此預(yù)測誤差便可用來對目前區(qū)塊進(jìn)行譯碼。MPEG-2規(guī)格定義了三種編碼圖片的編碼機制內(nèi)編碼(intraencoding)、預(yù)測編碼(predictiveencoding)以及雙向預(yù)測編碼(bi-directionallypredictiveencoding)。內(nèi)編碼圖片(I圖片(Ipicture))獨立編碼完成,而無需利用其它前面的圖片或是后面的圖片做輔助;而預(yù)測編碼圖片(P圖片(Ppicture))是參考前面的圖片進(jìn)行編碼,其中前面的圖片可為一I圖片或是一P圖片;此外,雙向預(yù)測編碼圖片(B圖片(Bpicture))是一并應(yīng)用前面的圖片與后面的圖片進(jìn)行編碼,因此,雙向預(yù)測編碼圖片可以具有最高的壓縮率,并且在譯碼的時候必須利用一前面的圖片以及一后面的圖片來重建出雙向預(yù)測編碼圖片的內(nèi)容。此外,在此請注意,內(nèi)編碼圖片或是預(yù)測編碼圖片皆可用來譯碼其它圖片,但是雙向預(yù)測編碼圖片卻無法用來譯碼其它圖片,亦即雙向預(yù)測編碼圖片可視為非參考圖片,在此請注意,在其它的壓縮規(guī)格之中(譬如H.264),雙向預(yù)測編碼圖片可以用來作為其它圖片的譯碼參考,因此,圖片編碼機制到底是屬于參考圖片還是屬于非參考圖片便會根據(jù)不同的壓縮規(guī)格而隨之變化。如前所述,一圖片是由多個宏區(qū)塊所組成,并且每張圖片皆以一個宏區(qū)塊為單位進(jìn)行編碼;其中每個宏區(qū)塊具有一對應(yīng)的移動種類參數(shù),用來代表其位移補償種類。在此請參閱圖1,圖1為公知位移估測所使用的區(qū)塊比對流程的示意圖。一目前圖片120分為多個區(qū)塊,其中各區(qū)塊可為一特定大小,舉例來說,在MPEG規(guī)格中,目前圖片120一般會被分割為多個16×16像素大小的宏區(qū)塊,而對于目前圖片120而言,每個幀間編碼區(qū)塊的產(chǎn)生是借由目前圖片120中一區(qū)塊與前一圖片110或后一圖片130中區(qū)塊之間的差異來進(jìn)行編碼。此外,在進(jìn)行目前區(qū)塊100的區(qū)塊比對過程時,目前區(qū)塊100是與前一圖片110中一搜尋范圍115中相同大小的“候選”區(qū)塊進(jìn)行比較,或是與后一圖片130中一搜尋范圍135中相同大小的“候選”區(qū)塊進(jìn)行比較;此時,若前一圖片110的一候選區(qū)塊或是后一圖片130的一候選區(qū)塊與目前區(qū)塊100之間具有最小的差異(譬如前一圖片110的區(qū)塊150),那么該候選區(qū)塊便會視為一參考區(qū)塊,而參考區(qū)塊150與目標(biāo)區(qū)塊100之間的位移向量與殘量(residue)便會進(jìn)行運算與編碼操作。因此,目前區(qū)塊100便可以借由參考區(qū)塊150的編碼以及參考區(qū)塊150與目前區(qū)塊100之間的位移向量與殘量,以利用解壓縮的方式重現(xiàn)(restore)出來。在MPEG-2規(guī)格定義下,位移補償?shù)幕締挝皇且缓陞^(qū)塊;如前所述,一宏區(qū)塊具有16×16的像素大小。位移信息包含有對應(yīng)向前預(yù)測(forwardpredicted)宏區(qū)塊的一向量,對應(yīng)向后預(yù)測(backwardpredicted)宏區(qū)塊的一向量,以及對應(yīng)雙向預(yù)測(bi-directionallypredicted)宏區(qū)塊的兩向量,如此一來,宏區(qū)塊可以借由前面的或是其后的圖片中宏區(qū)塊的像素的轉(zhuǎn)換而加以預(yù)測出來;原本像素與預(yù)測像素之間的差異量會包含于相對應(yīng)的位串流中,換言之,影像編碼器的輸出是一數(shù)字影像位串流,其包含有可被一譯碼系統(tǒng)所譯碼的已編碼圖片。在此請參閱圖2,圖2是顯示MPEG-2規(guī)格所定義的圖片的顯示順序與譯碼順序之間的區(qū)別。如前所述,MPEG-2規(guī)格是利用各式各樣的預(yù)測與內(nèi)插編碼工具以消除時間上的冗佘信息。如圖2所示,MPEG-2規(guī)格利用了三種類型的幀(亦可被視為圖片)“I”內(nèi)編碼圖片,“P”預(yù)測編碼圖片,以及“B”雙向編碼圖片。在圖2中,為了要對P圖片與B圖片進(jìn)行編譯碼,數(shù)字影像位串流的圖片傳輸順序與圖片顯示順序并不相同。此外,譯碼器會將一校正信息加入至預(yù)測像素的區(qū)塊之中,以產(chǎn)生重建的區(qū)塊,一般來說,影像譯碼器接收數(shù)字影像位串流并且產(chǎn)生譯碼后的數(shù)字影像信息,其儲存于被稱為幀緩沖器(framebuffer)的外部存儲中。如前所述并且于圖2所示,P圖片中每個宏區(qū)塊可以依據(jù)前面最靠近的I圖片或是前面最靠近的P圖片加以編碼;此外,B圖片中每個宏區(qū)塊可以利用向前預(yù)測的方式而依據(jù)其前方最靠近的I圖片或P圖片加以編碼出來、利用向后預(yù)測的方式而依據(jù)其后方最靠近的I圖片或P圖片加以編碼出來或者利用雙向預(yù)測的方式而一并依據(jù)其前方最靠近的I圖片或P圖片與其后方最靠近的I圖片或P圖片加以編碼。因此,為了適當(dāng)?shù)貙⑺蟹N類的編碼圖片譯碼出來并且適當(dāng)?shù)仫@示數(shù)字影像信息,至少需要下面所述的三個幀緩沖器1.之前的參考幀緩沖器(pastreferenceframebuffer)2.其后的參考幀緩沖器(futurereferenceframebuffer)3.目前的幀緩沖器(currentframebuffer)其中,每一個緩沖器的儲存容量必定要夠大,以便儲存數(shù)字影像數(shù)據(jù)中一張完整的圖片(譬如720×480像素)。此外,如業(yè)界所公知,亮度數(shù)據(jù)與彩度數(shù)據(jù)需要經(jīng)過類似的處理。為了使影像譯碼器的成本降低,減少譯碼所需的存儲器大小(亦即幀緩沖器的大小)便成為一個非常重要的目標(biāo)。舉例來說,在公知技術(shù)中已經(jīng)有一些方法,其借由將幀數(shù)據(jù)以一壓縮格式儲存于幀緩沖器中,以減少解壓縮一已壓縮幀時所需要的存儲。于解壓縮操作過程中,譯碼模塊對已壓縮幀進(jìn)行解壓縮操作以取得一已解壓縮幀;接著,一外加壓縮模塊會再度對已譯碼幀加以壓縮以取得一再壓縮后幀,并將再壓縮后幀儲存于存儲中。此時,由于必須用來譯碼其它幀或是用來顯示的幀已經(jīng)以一壓縮格式儲存于存儲中,因此譯碼系統(tǒng)僅須比較少的存儲。然而,這樣的架構(gòu)具有一些缺點;首先,儲存于存儲中的再壓縮參考幀無法允許其內(nèi)部的預(yù)測區(qū)塊進(jìn)行隨機存取;再者,外加的再壓縮與譯碼模塊會增加譯碼系統(tǒng)整體的硬件成本與能量損耗;此外,當(dāng)前述的解決方式使用在影像編碼器時,會具有類似的問題。
發(fā)明內(nèi)容因此本發(fā)明的目的之一在于提供一種可以降低存儲需求的位移估測/位移補償?shù)挠跋裉幚矸椒?,以解決公知技術(shù)中的問題。根據(jù)本發(fā)明的一實施例,其揭露一種影像處理方法。該方法包含有自一幀緩沖器的第一開始地址,儲存一參考圖片至幀緩沖器;自幀緩沖器的第二開始地址,儲存一目前圖片的至少一部分,以覆寫參考圖片的至少一子集合;于儲存目前圖片的各區(qū)塊時,保護(hù)參考圖片的多個區(qū)塊以防止參考圖片的多個區(qū)塊遺失;執(zhí)行對應(yīng)目前圖片的一特定區(qū)塊的位移補償程序,位移補償是借由搜尋參考圖片中被保護(hù)的多個區(qū)塊的至少一部分;以及在覆寫目前圖片的至少一區(qū)塊至幀緩沖器之后,改變參考圖片中被保護(hù)的多個區(qū)塊,以解除對該參考圖片中被保護(hù)的多個區(qū)塊中至少一過期區(qū)塊的保護(hù),并開始保護(hù)參考圖片的另一未保護(hù)區(qū)塊。根據(jù)本發(fā)明的另一實施例,其揭露一種影像處理方法。該方法包含有自第一起始地址,儲存一參考區(qū)塊至一幀緩沖器;借由自第二起始地址,儲存一目前圖片的至少一部分至幀緩沖器,以覆寫參考圖片中至少一子集合;保護(hù)參考圖片的多個區(qū)塊,以于儲存目前圖片的每個區(qū)塊至幀緩沖器時,避免該多個區(qū)塊遺失;以及執(zhí)行對應(yīng)目前圖片的一特定區(qū)塊的位移補償流程,其中位移補償是借由搜尋該參考區(qū)塊中被保護(hù)的至少一部分。圖1為公知位移估測所使用的區(qū)塊對比流程的示意圖。圖2是顯示MPEG-2規(guī)格所定義的圖片的顯示順序與譯碼順序之間的區(qū)別。圖3為本發(fā)明有關(guān)于目前圖片的目前宏區(qū)塊的位移補償程序而被儲存于幀緩沖器的參考圖片中多個區(qū)域的示意圖。圖4為本發(fā)明影像處理方法的一實施例的流程圖。圖5為依據(jù)圖4的一第一實施例而自同一起始地址起儲存至幀緩沖器的參考圖片與目前圖片的示意圖。圖6為本發(fā)明影像處理方法的一些實施例中的幀緩沖器一起使用的一快取緩沖器與一可忽略宏區(qū)塊對照表的示意圖。圖7為依據(jù)圖4的一第二實施例而自不同的起始地址儲存至幀緩沖器的參考圖片與目前圖片的示意圖。圖8為圖4的一第三實施例中儲存至三個不同緩沖器的參考圖片與目前圖片的示意圖。圖9為圖4所示的保護(hù)區(qū)域的步驟404的另一實施例的示意圖。圖10為圖4的另一實施例中自不同的起始地址儲存至幀緩沖器的參考圖片與目前圖片的示意圖。圖11為與圖10所示的實施例相似的另一實施例的示意圖。符號說明100目前區(qū)塊110前一圖片115、125、135、314、316搜尋范圍120目前圖片130后一圖片150、312區(qū)塊300參考圖片302第一區(qū)域304第二區(qū)域306第三區(qū)域308目前圖片310目前宏區(qū)塊312、900、902數(shù)據(jù)片段602快取緩沖器604可忽略宏區(qū)塊對照表800、802、804緩沖器具體實施方式請參閱3圖,圖3為本發(fā)明有關(guān)于目前圖片308的目前宏區(qū)塊310的位移補償程序而被儲存于幀緩沖器的參考圖片300中的第一、第二、第三區(qū)域302、304、306的示意圖。在此請注意,位移補償程序可包含有與影像編碼/譯碼操作相關(guān)的位移估測或位移補償。于本發(fā)明的一實施例中,位移補償程序包含有于該參考區(qū)塊的一搜尋范圍內(nèi)進(jìn)行區(qū)塊搜尋,而如前所述,為了于已編碼的影像信息中消去時間上的冗余信息,在MPEG規(guī)格定義下,會進(jìn)行一個稱之為位移補償?shù)牧鞒?。位移補償與圖片間的冗余信息相關(guān),并且在執(zhí)行位移補償之前,欲處理的目前圖片308一般會被分割成16×16像素大小的宏區(qū)塊,譬如圖3所示的目前宏區(qū)塊310。對于每個目前宏區(qū)塊310來說,目前宏區(qū)塊310會與之前或其后的參考圖片300中的“候選”宏區(qū)塊進(jìn)行比較,以決定出參考圖片300中最相近的預(yù)測區(qū)塊。在此請注意,候選宏區(qū)塊一般是位于參考圖片300中一搜尋范圍316內(nèi),其對應(yīng)于目前圖片308中的搜尋范圍314,此外,于目前宏區(qū)塊310之前具有一數(shù)據(jù)片段312(其包含有多個區(qū)塊),若目前圖片308于處理過程中變成另一圖片的參考圖片時,則當(dāng)處理另一圖片中對應(yīng)宏區(qū)塊310的相同位置的目前宏區(qū)塊時,對于另一圖片的目前宏區(qū)塊而言,數(shù)據(jù)片段312與宏區(qū)塊310便成為前述的第二區(qū)域304。舉例來說,在此假設(shè)圖3中目前圖片308的宏區(qū)塊是從左上角的第一個宏區(qū)塊開始一個一個地進(jìn)行處理(編碼/譯碼操作),直到最右下角的最后一個宏區(qū)塊處理完畢。如圖3所示,參考圖片300的第一區(qū)域302包含有多個宏區(qū)塊,其于位移補償流程處理宏區(qū)塊310之前已用來進(jìn)行過相關(guān)處理,因此,在后續(xù)操作中,參考圖片300中位于第一區(qū)域302的數(shù)據(jù)已經(jīng)不需要了。參考圖片300的第二區(qū)域304包含有多個宏區(qū)塊,其已經(jīng)用來處理目前圖片308中一些宏區(qū)塊,但是第二區(qū)域304的資料仍須再次用來處理目前圖片308中后續(xù)至少一尚未處理的宏區(qū)塊。最后,參考圖片300的第三區(qū)域306則包含有一些宏區(qū)塊,其對應(yīng)于目前圖片308中位于相同位置且位于宏區(qū)塊310之后尚未處理過的宏區(qū)塊。為了減少存儲的需求,于本發(fā)明的第一實施例中,原先儲存于幀緩沖器的參考圖片300的第一區(qū)域302,會被其它的數(shù)據(jù)覆寫。舉例來說,于本實施例中,在儲存目前圖片308的宏區(qū)塊的時候,便會對第一區(qū)域302進(jìn)行覆寫;如此一來,毋需于后續(xù)操作中使用的第一區(qū)域302數(shù)據(jù)便不會浪費幀緩沖器的容量,并且?guī)彌_器的總體容量大小也可以對應(yīng)地降低。第二區(qū)域304包含了許多后續(xù)操作中仍需使用以處理目前圖片308的至少一目前宏區(qū)塊310的宏區(qū)塊;因此,第二區(qū)域304的數(shù)據(jù)會被保護(hù)起來,以避免其于儲存目前圖片308的每一個區(qū)塊至幀緩沖器時遺失。在此請注意,在其后的揭露之中,將說明本發(fā)明如何將第二區(qū)域304中多個宏區(qū)塊保護(hù)起來的不同實施例,故在此便不另贅述。最后,由于參考圖片300的第三區(qū)域306包含有對應(yīng)目前圖片308中位于相同位置且位于宏區(qū)塊310之后但尚未處理過的宏區(qū)塊的宏區(qū)塊,由于第三區(qū)域306的數(shù)據(jù)尚須用于其后的位移補償程序中,因此儲存于幀緩沖器中屬于第三區(qū)域306的數(shù)據(jù)便不能被覆寫掉。圖4為本發(fā)明影像處理方法的一實施例的流程圖。假設(shè)可大致上可得到相同結(jié)果,本發(fā)明并未受限于圖4流程中各步驟的順序;此外,各步驟也并未限制必須為連續(xù)執(zhí)行,在實際應(yīng)用上,可以于兩步驟之間插入其它步驟。于本實施例中,位移補償流程包含有下列步驟步驟400自第一起始地址起,儲存一參考圖片300至一幀緩沖器;步驟402自第二起始地址,利用儲存目前圖片308至該幀緩沖器的方式,覆寫參考圖片300中至少一子集合;步驟404對參考圖片300中多個區(qū)塊(圖3所示的第二區(qū)域304)加以保護(hù),以避免其于儲存目前圖片308的各區(qū)塊至幀緩沖器時遺失;步驟406參照該參考圖片中被保護(hù)的至少一部分區(qū)塊,執(zhí)行對應(yīng)目前圖片308的位移補償流程;步驟408于儲存目前圖片308的至少一區(qū)塊至幀緩沖器之后,調(diào)整參考圖片300中被保護(hù)的多個區(qū)塊,以停止保護(hù)參考圖片300中被保護(hù)的多個區(qū)塊中至少一過期區(qū)塊(expiredblock)并開始保護(hù)該參考圖片的另一未保護(hù)區(qū)塊;其中,過期區(qū)塊是指參考圖片300中一個在后續(xù)位移補償流程中不會再需使用到的區(qū)塊,因此,過期區(qū)塊便可以被目前圖片308中一個尚未處理的宏區(qū)塊來加以覆寫;步驟410于一影像編碼器執(zhí)行位移估測時,根據(jù)對應(yīng)儲存至幀緩沖器的多個區(qū)塊,位移補償流程會產(chǎn)生一編碼位串流(encodedbitstream);或者是,于一影像編碼器/影像譯碼器執(zhí)行位移補償時,產(chǎn)生儲存至幀緩沖器的一譯碼圖片(decodedpicture)。圖5為依據(jù)圖4的一第一實施例而自同一起始地址起儲存至幀緩沖器的參考圖片300與目前圖片308的示意圖。于本實施例中,參考圖片300首先會自一第一起始地址(其對應(yīng)5圖所示的pic_1_base_addr)儲存至幀緩沖器中,接著,對應(yīng)目前圖片308的每個目前宏區(qū)塊的位移補償操作會一個區(qū)塊接著一個區(qū)塊地執(zhí)行。當(dāng)對應(yīng)目前圖片308的目前宏區(qū)塊310的位移補償操作已經(jīng)執(zhí)行完畢之后,目前宏區(qū)塊310便會自第二起始地址pic_2_base_addr(其等同于第一起始地址pic_1_base_addr)起儲存于幀緩沖器中。因此,當(dāng)目前圖片308的區(qū)塊儲存于幀緩沖器中,這些區(qū)塊便會覆寫參考圖片300的一部分?jǐn)?shù)據(jù)。一般來說,每一張圖片(無論是參考圖片或是其它圖片)都會具有相同的最大儲存容量,因此,于本實施例中,幀緩沖器的容量只須等同于參考圖片的儲存需求(或是目前圖片的儲存需求)即可,這使得整體對于存儲容量的需求變成一半。圖6為本發(fā)明影像處理方法的一些實施例中連同圖5所示的幀緩沖器一起使用的一快取緩沖器(cachebuffer)602與一可忽略宏區(qū)塊對照表(skiptable)604的示意圖。如前所述,必須對參考圖片300的第二區(qū)域304中多個區(qū)塊加以保護(hù),以避免其于儲存目前圖片308的各區(qū)塊至幀緩沖器時遺失,這是由于在后續(xù)的位移補償流程中,第二區(qū)域304的宏區(qū)塊尚須被使用到,因此,于本實施例中,為了允許對第二區(qū)域304的宏區(qū)塊的保護(hù),參考圖片中被保護(hù)的宏區(qū)塊儲存于快取緩沖器602中。于本發(fā)明的其它實施例中,則將目前圖片儲存于快取緩沖器中,以保護(hù)參考圖片300的第二區(qū)域304的區(qū)塊。在此請注意,快取緩沖器602一般建置于幀緩沖器的外部,并且各儲存區(qū)塊暫存單一個M×N大小的宏區(qū)塊(譬如16×16大小的宏區(qū)塊)。在此請注意,前述用來執(zhí)行位移補償流程的方法不但可應(yīng)用于影像編碼器,也可應(yīng)用于影像譯碼器之中。舉例來說,當(dāng)其應(yīng)用于編碼器的位移估測操作時,圖4的流程圖可另包含步驟410,以根據(jù)對應(yīng)存入幀緩沖器的區(qū)塊的位移補償流程而產(chǎn)生一編碼位串流;相同地,當(dāng)其應(yīng)用于譯碼器的位移補償操作時,圖4的流程圖可包含步驟410以顯示儲存于幀緩沖器中的區(qū)塊。圖9為圖4所示的保護(hù)第二區(qū)域304的步驟404的另一實施例的示意圖。一般來說,影像編碼器會使用一個搜尋范圍高速緩存(searchrangecache),其是一存儲裝置,可儲存圖9所示的參考圖片300中包含于搜尋范圍316中的數(shù)據(jù)片段;由于編碼器的搜尋范圍高速緩存已經(jīng)儲存有包含于搜尋范圍316中的數(shù)據(jù)片段,因此便無需將數(shù)據(jù)片段900另行保護(hù)于快取緩沖器602中,如此一來,步驟404可以修改為于影像編碼器執(zhí)行位移估測操作時,將該參考圖片中被保護(hù)的一搜尋范圍316中多個區(qū)塊儲存于一搜尋范圍緩沖器中以及將該參考圖片中其它被保護(hù)的數(shù)據(jù)片段902(其包含多個區(qū)塊)儲存于一快取緩沖器,以便保護(hù)該參考圖片的多個區(qū)塊。如此一來,由于數(shù)據(jù)片段900的那一部分無需額外儲存,所以快取緩沖器602的存儲容量需求便可以更進(jìn)一步地降低。在此請注意,當(dāng)應(yīng)用于一影像譯碼器時,影像譯碼與影像顯示必須同步,以確保區(qū)塊可以于影像顯示之前及時地譯碼出來。換言之,若目前圖片的區(qū)塊一開始儲存于快取緩沖器中以保護(hù)參考圖片的特定區(qū)塊(譬如圖9所示的數(shù)據(jù)片段902);那么這些儲存于快取緩沖器的區(qū)塊便會讀取出來,以供前述的顯示操作并且將其重新存入幀緩沖器的原本地址。在及時地顯示這些區(qū)塊之后,這些儲存于快取緩沖器的區(qū)塊會重新存入幀緩沖器中,以供后續(xù)的位移補償流程使用;此外,若快取緩沖器用來儲存該參考圖片中必須保護(hù)以避免覆寫的特定區(qū)塊,那么原先儲存于快取緩沖器的這些區(qū)塊可被顯示而無需重新存入幀緩沖器。為了將位移估測操作或位移補償操作相關(guān)的影像處理流程加以最佳化,本發(fā)明另利用圖6所示的可忽略宏區(qū)塊對照表604來指出哪些宏區(qū)塊分類為可忽略宏區(qū)塊(skipblock),以進(jìn)而提供一增強措施。由于可忽略區(qū)塊的分類方式已為業(yè)界所公知,故不另贅述于此。被分類為可忽略的各區(qū)塊可于對照表中604具有一對應(yīng)位設(shè)置(bitset);如此一來,若一區(qū)塊被分類為可忽略區(qū)塊,那么該區(qū)塊便無需存入幀緩沖器,這是因為儲存于幀緩沖器的參考圖片的原始數(shù)據(jù)仍可適用于目前圖片,因此覆寫該區(qū)塊至幀緩存器的操作便可以省略。很明顯地,前述的增強措施不但可以節(jié)省時間并且亦可降低幀緩沖器的頻寬需求。在此請參閱圖7,圖7為依據(jù)圖4的一第二實施例而自不同的起始地址儲存至幀緩沖器的參考圖片300與目前圖片308的示意圖。如圖7所示,于本實施例之中,步驟404中保護(hù)參考圖片的多個區(qū)塊的操作是借由定義該參考圖片的第一起始地址(如圖7所示的pic_1_base_addr),其與目前圖片的第二起始地址(如圖7所示的pic_2_base_addr)之間具有一間隔d,其中間隔d等于或大于參考圖片中欲保護(hù)的多個區(qū)塊的總?cè)萘浚粨Q言之,前述的間隔d的最小值對應(yīng)圖3所示的第二區(qū)域304的大小。如此一來,幀緩沖器所具有的的容量大小等于參考圖片加上參考圖片中欲保護(hù)的多個區(qū)塊的存儲需求,或是所具有的的容量大小等于目前圖片加上參考圖片中欲保護(hù)的多個區(qū)塊的存儲需求,其等于前兩者中最大的。于位移補償流程之中,當(dāng)先前的起始地址(譬如前述的pic_1_base_addr)與目前的起始地址(譬如前述的pic_2_base_addr)隨著每個存入幀緩沖器的目前圖片變動時,先前的起始地址(譬如前述的pic_1_base_addr)與目前的起始地址(譬如前述的pic_2_base_addr)之間的間隔仍維持一常數(shù)。在本實施例中,由于每個后續(xù)圖片的起始地址都會循環(huán)性的變動,如圖7所示,間隔d是由目前起始地址之后的區(qū)塊所組成,如此一來,更新后續(xù)圖片的起始地址的操作便如一環(huán)狀緩沖器(circularbuffer)。雖然相較于前述的第一實施例,幀緩沖器的存儲容量需求會稍微增加,但是本實施例不須快取緩沖器便可加以實施。此外,于圖10所示的另一實施例中,于幀緩沖器中,先前的起始地址與目前的起始地址的值是固定值,以供存入幀緩沖器的每個新的參考圖片300與每個新的目前圖片308之用;換言之,當(dāng)目前圖片成為一個新的參考圖片以供新的目前圖片之用時,在本發(fā)明將新的目前圖片存入該幀緩沖器之前,便必須將新的參考圖片的所有數(shù)據(jù)從目前起始地址移動至先前的起始地址。如圖10所示,于時點1,當(dāng)圖片pic_1已經(jīng)完全處理完畢,圖片pic_1便會儲存于幀緩沖器中;而于時點2,會開始對圖片pic_2進(jìn)行處理,而且圖片pic_2是從幀緩沖器的最上面開始儲存,并且逐漸地覆寫圖片pic_1;當(dāng)圖片pic_2已經(jīng)完全處理完畢,于時點3時,一部分的圖片pic_1已經(jīng)被覆寫了;于時點4,由于其后的操作已經(jīng)無需使用圖片pic_1,因此整張圖片pic_2便會被移動(或復(fù)制)至原本圖片pic_1所在的位置。在重新安置圖片pic_2的過程中,區(qū)塊會從幀緩沖器中讀取出來,并且可以同時被輸出以進(jìn)行顯示。在此請注意,本實施例包含有輸出區(qū)塊以進(jìn)行顯示的步驟,但于實際應(yīng)用中,此步驟必須考量到整體系統(tǒng)的數(shù)據(jù)處理能力以實施之,舉例來說,譯碼的速度與顯示的需求必須配合的很好。接著,于時點5時,會開始對圖片pic_3進(jìn)行處理;當(dāng)圖片pic_3完全處理完畢之后,于時點6時,一部分的圖片pic_2會被覆寫,并且其操作便會如前述的流程般進(jìn)行。在此請參閱圖11,圖11則再顯示另一實施例,其與圖10所示的實施例相似。圖11與圖10所示的實施例之間的差別在于于圖10所示的實施例中,當(dāng)圖片/幀完全處理完畢之后,圖10所示的實施例會一次將整張圖片移動/復(fù)制;但是于圖11所示的實施例中,圖片會被分割成多個部分,并且當(dāng)每個部分完全處理完畢之后,圖11所示的實施例對處理完畢的部分進(jìn)行移動/復(fù)制。如圖所示,每張圖片都會被分割成3個部分,在此請注意,于所有的實施例中,被保護(hù)的區(qū)域都必須大于或等于圖3所示的第二區(qū)域304或是圖9所示的有使用到搜尋范圍緩沖器下的數(shù)據(jù)片段902。如圖11所示,于時點1,圖片pic_1已經(jīng)完全處理完畢圖片;于時點2,圖片pic_2的部分P2_1已經(jīng)儲存于幀緩沖器的第一區(qū)段;于時點3,當(dāng)圖片pic_2的部分P2_1的處理已經(jīng)進(jìn)行完畢,其后的操作便無需使用圖片pic_1的部分P1_1,因此,部分P2_1便會被移動/復(fù)制至第二區(qū)段以覆寫部分P1_1。再者,在重新定位部分P2_1的時候,可以將部分P2_1輸出并用來顯示。幀緩沖器的第一區(qū)段(最上面的區(qū)段)具有圖6所示的快取緩沖器的類似功能;于時點4,會將部分P2_2儲存至幀緩沖器的第一區(qū)段以覆寫部分P2_1以開始對部分P2_2進(jìn)行相關(guān)處理;于時點5,當(dāng)其后的操作無需使用部分P1_2時,部分P2_2會復(fù)制至幀緩沖器的第三區(qū)段以覆寫部分P1_2;于時點6,會開始處理部分P2_3;于時點7,當(dāng)其后的操作無需使用部分P1_3,部分P2_3會復(fù)制至幀緩沖器的第四區(qū)段以覆寫部分P1_3;最后,于時點8,會開始處理圖片pic_3,因此便會循環(huán)開始又一次前述的流程。在此請參閱圖8,圖8為圖4的一第三實施例中儲存至三個不同緩沖器800、802、804的參考圖片300與目前圖片308的示意圖。在此請注意,本實施例與圖7所示的實施例相當(dāng)類似;然而,于圖8中,幀緩沖器中三個不同的儲存庫(storagebank)是用來儲存參考圖片300與目前圖片308的區(qū)塊。在此請另行注意,本發(fā)明并未限制緩沖器的數(shù)目,在實際應(yīng)用上,若每張圖片被分割為N個部分,那么便至少必須要使用到N+1個緩沖器以暫存所輸入的圖片的數(shù)據(jù)。在本發(fā)明的一實施例中,幀緩沖器可以用一動態(tài)隨機存取存儲器(DRAM)來加以實作,且每一個緩沖器(亦即儲存庫)便以動態(tài)隨機存取存儲器的一不同的儲存庫實現(xiàn)之。因此,于前述的操作中,在時點1,參考圖片pic_1的第一部分會先存入至第一儲存庫800中,而參考圖片pic_1的第二部分便會存入第二儲存庫802中,目前圖片pic_2的第一部分會存入第三儲存庫804中;并且于時點2,目前區(qū)塊的第二部分會存入第一儲存庫800中以覆寫參考圖片的第一部分;于時點3,下一張圖片pic_3的第一部分會存入儲存庫802中;于時點4,下一張圖片pic_3的第二部分會存入儲存庫804中。因此,后續(xù)的圖片會以相同的順序儲存入這些儲存庫800、802、804中,如此一來,經(jīng)由使用不同的儲存庫,在進(jìn)行位移補償?shù)牧鞒虝r,便可以減少因為存儲分頁未命中(pagemiss)而造成的存儲分頁切換操作。在此請注意,雖然前述的揭露著重應(yīng)用于I圖片(intra-codedpicture)與P圖片(predictedpicture)的位移估測操作或位移補償操作,但是對此領(lǐng)域具有通常知識者而言,可輕易明白本發(fā)明亦可應(yīng)用于B圖片(bi-directionalinterpolatedpicture)。舉例來說,本發(fā)明可以借由另包含一個幀緩沖器,以暫存解壓縮后的B圖片,其中P圖片的每一個宏區(qū)塊可以依據(jù)先前最接近的I圖片加以編碼或是根據(jù)先前最靠近的P圖片來加以譯碼;接著,B圖片的每一個宏區(qū)塊可以根據(jù)一個或多個之前的I圖片或P圖片以向前預(yù)測的方式加以編碼,或是可以根據(jù)一個或多個其后的I圖片或P圖片以借由向后預(yù)測的方式加以編碼,亦或是同時借由先前與其后的I圖片或P圖片而以雙向預(yù)測的方式來加以編碼。當(dāng)位移補償流程通過參考該參考圖片中被保護(hù)的多個區(qū)塊以處理一目前圖片的特定區(qū)塊時,借由自一第一起始地址儲存一參考圖片至一幀緩沖器,自一第二起始地址儲存一目前圖片的一部分至該幀緩存器以覆寫該參考圖片中至少一子集合,以及儲存該目前圖片的每個區(qū)塊至該幀緩沖器時保護(hù)該參考圖片中多個區(qū)塊以避免遺失,本發(fā)明便可以大大降低幀緩沖器的儲存容量需求。以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明申請專利范圍所做的均等變化與修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。權(quán)利要求1.一種應(yīng)用于影像譯碼器與編碼器的影像處理方法,該方法包含有自一幀緩沖器的一第一開始地址起,儲存一參考圖片至該幀緩沖器;自該幀緩沖器的第二開始地址起,儲存一目前圖片的至少一部分以覆寫該參考圖片的至少一子集合;于儲存該目前圖片的各區(qū)塊時,保護(hù)該參考圖片的多個區(qū)塊以避免該參考圖片的該多個區(qū)塊遺失;執(zhí)行對應(yīng)該目前圖片的一特定區(qū)塊的一位移補償程序,借由參考該參考圖片中被保護(hù)的該多個區(qū)塊的至少一部分;以及在將該目前圖片的至少一區(qū)塊覆寫至該幀緩沖器之后,改變該參考圖片中被保護(hù)的該多個區(qū)塊,以停止保護(hù)該參考圖片中被保護(hù)的該多個區(qū)塊中至少一過期區(qū)塊以及開始保護(hù)該參考圖片的至少一下一區(qū)塊。2.如權(quán)利要求1所述的方法,其另包含有根據(jù)對應(yīng)該特定區(qū)塊的一指定搜尋范圍,執(zhí)行對應(yīng)該目前圖片的該特定區(qū)塊的位移補償程序,借由參考該參考圖片中被保護(hù)的該多個區(qū)塊的一子集合中。3.如權(quán)利要求2所述的方法,其中該參考圖片中被保護(hù)的該多個區(qū)塊對應(yīng)于該目前圖片中相同位置且已經(jīng)處理過的區(qū)塊,但是被保護(hù)的該多個區(qū)塊于執(zhí)行后續(xù)區(qū)塊的位移補償流程中仍須被使用到。4.如權(quán)利要求1所述的方法,其中該第一起始地址與該第二起始地址相同。5.如權(quán)利要求1所述的方法,其中保護(hù)該參考圖片中該多個區(qū)塊的步驟包含有將該參考區(qū)塊中被保護(hù)的該多個區(qū)塊儲存于一快取緩沖器中。6.如權(quán)利要求1所述的方法,其中保護(hù)該參考圖片中該多個區(qū)塊的步驟包含有將該目前圖片中對應(yīng)于該參考圖片中被保護(hù)的該多個區(qū)塊的相同位置的多個區(qū)塊儲存于一快取緩沖器中。7.如權(quán)利要求6所述的方法,其另包含有顯示儲存于該快取緩沖器的多個區(qū)塊以及將顯示過的該多個區(qū)塊重新存入該幀緩沖器中的原本位置。8.如權(quán)利要求1所述的方法,其中保護(hù)該參考圖片中該多個區(qū)塊的步驟包含有將該參考區(qū)塊中被保護(hù)的多個區(qū)塊儲存于一位移估測流程中所使用的一搜尋范圍緩沖器中;以及將該參考區(qū)塊中被保護(hù)的其余多個區(qū)塊儲存于一快取緩沖器。9.如權(quán)利要求1所述的方法,其中該幀緩沖器所具有的一容量大小與該參考圖片的存儲需求相同,或所具有的一容量大小與該目前圖片的存儲需求相同。10.如權(quán)利要求1所述的方法,其應(yīng)用于一編碼器中以執(zhí)行位移估測操作,其中該方法另包含有根據(jù)位移補償處理多個區(qū)塊后的結(jié)果來產(chǎn)生一編碼位串流。11.如權(quán)利要求1所述的方法,其應(yīng)用于一譯碼器中以執(zhí)行位移補償,其中該方法另包含有將儲存于該幀緩沖器的多個幀加以顯示。12.如權(quán)利要求1所述的方法,其另包含有不將被分類為可忽略區(qū)塊的任何區(qū)塊儲存于該幀緩沖器中。13.一種應(yīng)用于影像譯碼器與編碼器的影像處理方法,該方法包含有自一第一起始地址起,儲存一參考區(qū)塊至一幀緩沖器;自一第二起始地址起,儲存一目前圖片的至少一部分至該幀緩沖器以覆寫該參考圖片中至少一子集合;保護(hù)該參考圖片中多個區(qū)塊,以避免其于儲存該目前圖片的每個區(qū)塊至該幀緩沖器時遺失;以及執(zhí)行對應(yīng)該目前圖片的一特定區(qū)塊的一位移補償流程,借由參考該參考區(qū)塊中被保護(hù)的至少一部分。14.如權(quán)利要求13所述的方法,其中保護(hù)該參考圖片的該多個區(qū)塊的步驟包含有定義該第一起始地址與該第二起始地址為兩個分隔的地址,其中該第一起始地址與該第二起始地址之間具有一間隔,以及該間隔是等于或大于該參考圖片中欲保護(hù)的該多個區(qū)塊的容量大小。15.如權(quán)利要求13所述的方法,其另包含有根據(jù)對應(yīng)該目前圖片的該特定區(qū)塊的一指定搜尋范圍,執(zhí)行對應(yīng)該目前圖片的該特定區(qū)塊的該位移補償流程,借由參考該參考圖片中被保護(hù)的該多個區(qū)塊的一子集合。16.如權(quán)利要求15所述的方法,其中該參考圖片中被保護(hù)的該多個區(qū)塊對應(yīng)于該目前圖片中相同位置且已經(jīng)處理過的區(qū)塊,但是被保護(hù)的該多個區(qū)塊于執(zhí)行后續(xù)區(qū)塊的位移補償流程中仍須被使用到。17.如權(quán)利要求13所述的方法,其中該幀緩沖器所具有的一容量大小不小于該參考圖片加上該參考圖片中欲保護(hù)的該多個區(qū)塊的存儲需求,或是所具有的一容量大小不小于該目前圖片加上該參考圖片中欲保護(hù)的該多個區(qū)塊的存儲需求。18.如權(quán)利要求13所述的方法,其中當(dāng)該第一起始地址與該第二起始地址伴隨著儲存于該幀緩存器的每個新的參考圖片或每個新的目前圖片而改變時,該第一起始地址與該第二起始地址之間的間隔固定不變。19.如權(quán)利要求13所述的方法,其中對于儲存于該幀緩存器的每個新的參考圖片或是每個新的目前圖片的該第一起始地址與該第二起始地址固定不變。20.如權(quán)利要求13所述的方法,其另包含有于儲存該參考圖片與該目前圖片時,提供位于該幀緩沖器中的一第一儲存庫、一第二儲存庫與一第三儲存庫以供儲存使用;儲存該參考圖片的一第一部分至該第一儲存庫;儲存該參考圖片的一第二部分至該第二儲存庫;儲存該目前圖片的一第一部分至該第三儲存庫;以及儲存該目前圖片的一第二部分至該第一儲存庫。21.如權(quán)利要求13所述的方法,其中該幀緩沖器是一動態(tài)隨機存取存儲器,并且該第一、第二、第三儲存庫是該動態(tài)隨機存取存儲器中不同的儲存庫。22.如權(quán)利要求13所述的方法,其應(yīng)用于一編碼器中以執(zhí)行位移估測操作,其中該方法另包含有根據(jù)位移補償處理多個區(qū)塊后的結(jié)果來產(chǎn)生一編碼位串流。23.如權(quán)利要求13所述的方法,其應(yīng)用于一譯碼器中以執(zhí)行位移補償,其中該方法另包含有將儲存于該幀緩沖器的多個幀加以顯示。全文摘要本發(fā)明提供一種應(yīng)用于影像譯碼器與編碼器的影像處理方法,該方法包含自第一開始地址儲存一參考圖片至一幀緩沖器;自第二開始地址儲存一目前圖片的至少一部分,以覆寫參考圖片的至少一子集合;于儲存目前圖片的各區(qū)塊至幀緩沖器時,保護(hù)參考圖片的多個區(qū)塊以防止其遺失;執(zhí)行對應(yīng)目前圖片的一特定區(qū)塊的位移補償程序,借由參考參考圖片中被保護(hù)的多個區(qū)塊。文檔編號H04N7/26GK1968420SQ200610147040公開日2007年5月23日申請日期2006年11月13日優(yōu)先權(quán)日2005年11月14日發(fā)明者李坤儐申請人:聯(lián)發(fā)科技股份有限公司