本發(fā)明與影像處理技術相關,并且尤其與用以儲存影像數(shù)據(jù)的幀緩沖器相關。
背景技術:
隨著各類數(shù)字電子產品的蓬勃發(fā)展,目前的影音多媒體數(shù)據(jù)大多是以數(shù)字格式存在。影音數(shù)據(jù)的數(shù)字檔案通常相當龐大,且解析度愈高者數(shù)據(jù)量愈大。舉例來說,于視頻電話或數(shù)字電視等的應用中,這些影音數(shù)據(jù)通常以串流的方式經由無線網絡傳輸,由于數(shù)據(jù)量很高,可能導致傳輸頻寬不足的問題。因此,在傳送端會采用數(shù)字影音編碼技術將這些影音數(shù)據(jù)編碼之后再行傳輸,目前廣為應用的數(shù)字影音編碼技術例如為MPEG-4、H.264等。
當接收端接收到被影音編碼后的數(shù)據(jù),令解碼器將編碼后的數(shù)據(jù)解碼還原為傳送端發(fā)送的影音數(shù)據(jù)。許多接收端會使用雙倍數(shù)據(jù)率同步動態(tài)隨機存取存儲器(Double Data Rate Synchronous Dynamic Random Access Memory,DDR SDRAM)等儲存裝置做為緩沖器(buffer)來暫存還原后的影音數(shù)據(jù),以供后續(xù)的影像處理程序使用。
解碼后的影音數(shù)據(jù)包含多個視頻幀,儲存于幀緩沖器中,每個視頻幀被定義為具有多個影像區(qū)塊,每個影像區(qū)塊作為視頻幀被存取的單位,供進行后續(xù)的影像處理程序,例如圖1(A)中的視頻幀包含影像區(qū)塊(0,0)~影像區(qū)塊(M,N),而每個影像區(qū)塊的大小是固定的。
然而,由于影音數(shù)據(jù)的數(shù)據(jù)量龐大,所耗費的幀緩沖器空間也大;另一方面,在進行影像處理程序時,若希望提高自幀緩沖器存取影音數(shù)據(jù)的速度,便需要采用頻寬較大、但也較為昂貴的存儲器。如此一來無疑會造成硬件系統(tǒng)的整體成本上升。
技術實現(xiàn)要素:
為解決上述問題,本發(fā)明提出一種新的視頻幀緩沖器及動態(tài)影像處理系統(tǒng)。
根據(jù)本發(fā)明的一具體實施例為一種影像處理系統(tǒng),用以針對多個影像區(qū)塊進行一影像處理程序。該多個影像區(qū)塊中的每一影像區(qū)塊包含多個第一類編碼區(qū)塊與 至少一第二類編碼區(qū)塊。該影像處理系統(tǒng)包含一影像處理模塊、一幀緩沖編碼模塊、一幀緩沖器與一幀緩沖控制器。該影像處理模塊對一目標影像區(qū)塊中的多個第一類編碼區(qū)塊施以影像處理,以產生一組第一影像處理結果。該幀緩沖編碼模塊對該組第一影像處理結果施以幀緩沖編碼,以產生一組第一幀緩沖編碼結果。該幀緩沖器對應于該目標影像區(qū)塊設有一第一暫存區(qū)域以及一第二暫存區(qū)域。該第一暫存區(qū)域具有至少一第一隨機存取點。該第二暫存區(qū)域具有至少一第二隨機存取點,獨立于該至少一第一隨機存取點。該幀緩沖控制器令該組第一幀緩沖編碼結果被存入該幀緩沖器中的該第一暫存區(qū)域,并且令該目標影像區(qū)塊的至少一第二類編碼區(qū)塊被存入該幀緩沖器中的該第二暫存區(qū)域。
根據(jù)本發(fā)明的另一具體實施例為一種影像處理方法,用以配合一幀緩沖器針對多個影像區(qū)塊進行一影像處理程序。該多個影像區(qū)塊中的每一影像區(qū)塊包含多個第一類編碼區(qū)塊與至少一第二類編碼區(qū)塊。該幀緩沖器對應于一目標影像區(qū)塊設有一第一暫存區(qū)域以及一第二暫存區(qū)域。該第一暫存區(qū)域具有至少一第一隨機存取點。該第二暫存區(qū)域具有至少一第二隨機存取點,獨立于該至少一第一隨機存取點。首先,該目標影像區(qū)塊中的多個第一類編碼區(qū)塊被施以影像處理,以產生一組第一影像處理結果。接著,該組第一影像處理結果被施以幀緩沖編碼,以產生一組第一幀緩沖編碼結果。隨后,該組第一幀緩沖編碼結果被存入該幀緩沖器中該第一暫存區(qū)域,且該目標影像區(qū)塊的至少一第二類編碼區(qū)塊被存入該幀緩沖器中的該第二暫存區(qū)域。
關于本發(fā)明的優(yōu)點與精神可以藉由以下發(fā)明詳述及附圖得到進一步的了解。
附圖說明
圖1(A)為一畫面被分割為多個影像區(qū)塊的示意圖。
圖1(B)為一影像區(qū)塊被分割為多個編碼區(qū)塊的示意圖。
圖2(A)呈現(xiàn)一種典型的幀緩沖器內儲存空間規(guī)劃方式。
圖2(B)呈現(xiàn)一種配合數(shù)據(jù)壓縮的幀緩沖器內儲存空間的規(guī)劃方式。
圖3(A)~圖3(C)為根據(jù)本發(fā)明的一實施例中的影像處理系統(tǒng)的功能方塊圖。
圖4(A)~圖4(D)以一個影像區(qū)塊的八個編碼區(qū)塊為例,呈現(xiàn)根據(jù)本發(fā)明的幀緩沖器中隨機存取點與第一暫存區(qū)域、第二暫存區(qū)域的相對關系的幾種范例。
圖5為根據(jù)本發(fā)明的另一實施例中的影像處理系統(tǒng)的功能方塊圖。
圖6呈現(xiàn)一種將編碼區(qū)塊分割為多個預測區(qū)塊的示意圖。
圖7為根據(jù)本發(fā)明的一實施例中的影像處理方法的流程圖。
符號說明
300、500:影像處理系統(tǒng) 31、51:幀緩沖器
32、52:幀緩沖控制器 33、53:影像解碼模塊
34、54:影像處理模塊 35、55:幀緩沖編碼模塊
410:第一暫存區(qū)域 420:第二暫存區(qū)域
S71~S74:流程步驟
須說明的是,本發(fā)明的附圖包含呈現(xiàn)多種彼此關聯(lián)的功能性模塊的功能方塊圖。這些附圖并非細部電路圖,且其中的連接線僅用以表示信號流。功能性元件及/或程序間的多種互動關系不一定要透過直接的電性連結始能達成。此外,個別元件的功能不一定要如圖式中繪示的方式分配,且分散式的區(qū)塊不一定要以分散式的電子元件實現(xiàn)。
具體實施方式
根據(jù)本發(fā)明的一實施例中,各個影像區(qū)塊又被進一步定義為多個編碼區(qū)塊,例如影像區(qū)塊(0,0)被進一步定義為圖1(B)中的編碼區(qū)塊0~編碼區(qū)塊7。本實施例中,編碼區(qū)塊是存取視頻幀的最小單位。圖2(A)繪示一影像區(qū)塊以編碼區(qū)塊為單位儲存于幀緩沖器中。以這些編碼區(qū)塊的數(shù)據(jù)量各自為64個位元組的情況為例,呈現(xiàn)一種幀緩沖器內儲存空間規(guī)劃方式。在這個范例中,影像區(qū)塊(0,0)的八個編碼區(qū)塊0~7(以符號EB0(0,0)、EB1(0,0)、…、EB7(0,0)表示,統(tǒng)稱[EB0~EB7](0,0))各自被儲存在一個長度為64位元組的存儲器空間內。
根據(jù)本發(fā)明的一實施例為一種影像處理系統(tǒng)300,其功能方塊圖繪示于圖3(A)。影像處理系統(tǒng)300包含一幀緩沖器31、一幀緩沖控制器32、一影像解碼模塊33、一影像處理模塊34與一幀緩沖編碼模塊35。影像處理系統(tǒng)300用以針對多個影像區(qū)塊,例如圖1(A)中的影像區(qū)塊(0,0)~影像區(qū)塊(M,N),進行影像處理程序。以下段落主要以圖1(A)影像區(qū)塊劃分方式為例來說明,本發(fā)明所屬技術領域中具有通常知識者透過后續(xù)說明可理解,本發(fā)明的范疇不以上述區(qū)塊劃分方式為限。
請一并參考圖2(A)的影像區(qū)塊的架構以及圖3(A)的影像處理系統(tǒng)300。在進行影像處理程序時,常見的情況是,由于影像區(qū)塊(0,0)的編碼區(qū)塊6、7在原始畫面中與影像區(qū)塊(1,0)相鄰,在針對所欲處理的目標影像區(qū)塊,也就是影像區(qū)塊(1,0),于影像處理模塊34中進行影像處理程序時,需將影像區(qū)塊(0,0)當作參考影像區(qū)塊。更詳細來說,其是參考影像區(qū)塊(0,0)的編碼區(qū)塊6、7的數(shù)據(jù)。假設影像區(qū)塊(0,0)稍早已被存入幀緩沖器31,影像處理模塊34在針對影像區(qū)塊(1,0)進行影像處理程序時,例如去區(qū)塊化程序,幀緩沖控制器32便依照影像處理模塊34的請求,自幀緩沖器31將影像區(qū)塊(0,0)的編碼區(qū)塊6、7的數(shù)據(jù)讀出至影像處理模塊34。在一實施例中,為了達到僅讀取部分編碼區(qū)塊而非整個影像區(qū)塊的目的,存放影像區(qū)塊(0,0)的編碼區(qū)塊0~7的八個存儲器空間各自被分派以一個隨機存取點(random access point),如同圖2(A)中的隨機存取點0~7。幀緩沖控制器32因此得以依照影像處理模塊34的請求,自幀緩沖器31中直接存取影像區(qū)塊(0,0)的任一個編碼區(qū)塊,而不需先從位于較前地址的編碼區(qū)塊開始讀取。
如圖3(A)所示的本發(fā)明一實施例中,解碼后的影音數(shù)據(jù)于存入幀緩沖器31之前,會被幀緩沖編碼模塊35進行幀緩沖編碼,再將幀緩沖編碼后的影音數(shù)據(jù)存入幀緩沖器31,可節(jié)省自幀緩沖器31存取影音數(shù)據(jù)時所需要的傳輸頻寬。本文中所稱的幀緩沖編碼可為一種壓縮方式,在此不對壓縮方式進行任何限定,壓縮方式也不應限定本發(fā)明的范疇。
此外,圖2(B)呈現(xiàn)一種配合數(shù)據(jù)壓縮的幀緩沖器內儲存空間規(guī)劃方式。在這個范例中,對應于影像區(qū)塊(0,0)的八個編碼區(qū)塊的八筆壓縮后數(shù)據(jù)(以符號[EB0~EB7]”(0,0)表示)大小不等。如圖2(B)所示,壓縮后數(shù)據(jù)[EB0~EB7]”(0,0)自隨機存取點0開始被連續(xù)無間隔地儲存在幀緩沖器內。于此范例中,壓縮后數(shù)據(jù)EB0”(0,0)與壓縮后數(shù)據(jù)EB1”(0,0)的數(shù)據(jù)量總和為64位元,因此共同占據(jù)自隨機存取點0開始第一列長度為64位元組的存儲器空間。壓縮后數(shù)據(jù)EB2”(0,0)的數(shù)據(jù)量小于64位元,因此有一部份的壓縮后數(shù)據(jù)EB3”(0,0)(標示為EB3A”(0,0))與壓縮后數(shù)據(jù)EB2”(0,0)共同占據(jù)第二列長度為64位元組的存儲器空間。相似地,另一部分的壓縮后數(shù)據(jù)EB3”(0,0)(標示為EB3B”(0,0))與一部分的壓縮后數(shù)據(jù)EB4”(0,0)(標示為EB4A”(0,0)))共同占據(jù)第三列長度為64位元組的存儲器空間。依此類推,圖2(B)的范例中的壓縮后數(shù)據(jù)[EB0~EB7]”(0,0)自隨機存取點0開始,總共占據(jù)了六列存儲器空間(僅使用一部份而非全部的第六列)。
如本發(fā)明所屬技術領域中具有通常知識者所知,每次能自幀緩沖器被讀取出的數(shù)據(jù)量為定值,例如32個位元組或64個位元組。以每次能自幀緩沖器被讀取出的數(shù)據(jù)量為32個位元組(對應于半列存儲器空間)的情況為例,比較圖2(A)與圖2(B)可看出,如需被讀出與編碼區(qū)塊0~7相關的數(shù)據(jù),圖2(A)所示的編碼區(qū)塊總共需被讀取512個位元組(8列)的數(shù)據(jù),而圖2(B)所示,已經過幀緩沖編碼后的編碼區(qū)塊的只需從隨機存取點0開始,被讀取352個位元組(5.5列)的數(shù)據(jù)。顯然,采用如圖2(B)所示的經過幀緩沖編碼的編碼區(qū)塊可以達到節(jié)省數(shù)據(jù)傳輸量的效果。然而,圖2(B)這種做法的缺點在于,當僅有壓縮后數(shù)據(jù)[EB6~EB7]”(0,0)需被讀取出來時,因為只有一個隨機存取點0存在于幀緩沖器的起始位置(也就是壓縮后數(shù)據(jù)EB0”(0,0)的起始位置),在壓縮后數(shù)據(jù)[EB6~EB7]”(0,0)被讀取出來之前,壓縮后數(shù)據(jù)[EB0~EB5]”(0,0)也需被全部讀取出來,反而導致讀取效率低落以及讀取頻寬的浪費。
在根據(jù)本發(fā)明的另一實施例中,影像區(qū)塊中所包含的編碼區(qū)塊被分為兩類。更明確地說,每一影像區(qū)塊各自包含多個第一類編碼區(qū)塊與至少一個第二類編碼區(qū)塊。此等編碼區(qū)塊分類的方式基于以下因素:欲對一影像區(qū)塊(稱之目標影像區(qū)塊)的一部分進行影像處理時,另一影像區(qū)塊(稱之參考影像區(qū)塊)的一部分亦須被讀取以供上述影像處理程序。據(jù)此,上述目標影像區(qū)塊的一部分被視為第一類編碼區(qū)塊,上述參考影像區(qū)塊的一部分被視為第二類編碼區(qū)塊。當參考影像區(qū)塊的第二類編碼區(qū)塊需被讀取,而該參考影像區(qū)塊的第一類編碼區(qū)塊不需被讀取的狀況下,該第二類編碼區(qū)塊可自幀緩沖器31被單獨讀取。以影像編碼規(guī)格H.264和圖1(B)呈現(xiàn)的編碼區(qū)塊劃分方式為例,每一個影像區(qū)塊中的編碼區(qū)塊0~5可被視為第一類編碼區(qū)塊,而編碼區(qū)塊6、7可被視為第二類編碼區(qū)塊。請參考圖3(A),本發(fā)明一實施例的影像處理系統(tǒng)300中,針對每一個處理中的影像區(qū)塊,幀緩沖器31設有對應于第一類編碼區(qū)塊的第一暫存區(qū)域以及對應于第二類編碼區(qū)塊的第二暫存區(qū)域。該第一暫存區(qū)域具有至少一第一隨機存取點,且該第二暫存區(qū)域具有至少一第二隨機存取點。藉由不同的隨機存取點的設置,在對應于同一個影像區(qū)塊的第一類編碼區(qū)塊未被讀取的情況下,第二類編碼區(qū)塊仍可單獨自幀緩沖器31被讀取,也就是說,讀取第二類編碼區(qū)塊之前,不需先讀取第一類編碼區(qū)塊。根據(jù)本發(fā)明的第一隨機存取點與第二隨機存取點的設置方式范例隨后將配合圖4(A)~圖4(D)說明。
如圖3(A)所示,在影像處理系統(tǒng)300中,影像解碼模塊33負責對輸入數(shù)據(jù)I 施以影像解碼,以得到各個編碼區(qū)塊的數(shù)據(jù)(例如各個像素的灰階、彩度、亮度…等)。每一個編碼區(qū)塊在所屬影像區(qū)塊中的相對位置為預先所知者。因此,影像解碼模塊33可判斷解碼出的每一個編碼區(qū)塊為第一類編碼區(qū)塊或第二類編碼區(qū)塊。影像解碼模塊33的輸出端會將不同類的編碼區(qū)塊傳遞至不同的信號路徑。更明確地說,對同一影像區(qū)塊而言,影像解碼模塊33將其第一類編碼區(qū)塊提供至影像處理模塊34,并透過幀緩沖控制器32的控制將其第二類編碼區(qū)塊存入幀緩沖器31。幀緩沖控制器32負責接收各個模塊對于幀緩沖器31的存取請求、協(xié)調幀緩沖器31的數(shù)據(jù)出入端的使用權,并可根據(jù)各影像區(qū)塊的編號將相對應的存取起始地址提供給提出請求的模塊。舉例而言,在收到影像解碼模塊33希望將某一個影像區(qū)塊的第二類編碼區(qū)塊存入幀緩沖器31的請求后,幀緩沖控制器32會將對應于該影像區(qū)塊的第二類編碼區(qū)塊的儲存起始地址提供給影像解碼模塊33,令該一個或多個第二類編碼區(qū)塊被存入幀緩沖器31中對應于該影像區(qū)塊的第二暫存區(qū)域。在接收到影像解碼模塊33提供的第一類編碼區(qū)塊后,影像處理模塊34會對這些第一類編碼區(qū)塊施以影像處理,以產生一組第一影像處理結果。舉例而言,影像處理模塊34所進行的影像處理可以為一去區(qū)塊化程序。隨后,幀緩沖編碼模塊35負責將對該組第一影像處理結果施以幀緩沖編碼,以產生一組第一幀緩沖編碼結果,并且透過幀緩沖控制器32的協(xié)助,將該組第一幀緩沖編碼結果存入幀緩沖器31中對應于這些第一類編碼區(qū)塊所屬的影像區(qū)塊的第一暫存區(qū)域。
此外,圖3(A)以影像處理系統(tǒng)300處理圖1(A)中的影像區(qū)塊(1,0)的情況為例,標示出各模塊間傳遞的信號內容。假設每一個影像區(qū)塊中的編碼區(qū)塊0~5為第一類編碼區(qū)塊,編碼區(qū)塊6、7為第二類編碼區(qū)塊。又,如先前所述,假設影像處理模塊34在對某一目標影像區(qū)塊的第一類編碼區(qū)塊進行影像處理時需要參考一參考影像區(qū)塊的第二類編碼區(qū)塊。如圖3(A)所示,影像解碼模塊33在完成影像區(qū)塊(1,0)的解碼后,將影像區(qū)塊(1,0)的第一類編碼區(qū)塊[EB0~EB5](1,0)傳遞給影像處理模塊34,并將影像區(qū)塊(1,0)的第二類編碼區(qū)塊[EB6~EB7](1,0)傳遞給幀緩沖器31。若影像區(qū)塊(0,0)相對于影像區(qū)塊(1,0)為其參考影像區(qū)塊,且影像區(qū)塊(0,0)的兩個第二類編碼區(qū)塊[EB6~EB7](0,0)已在稍早被影像解碼模塊33存入幀緩沖器31,則影像處理模塊34可對幀緩沖控制器32提出請求,以自幀緩沖器31中對應于影像區(qū)塊(0,0)的第二暫存區(qū)域讀取出影像區(qū)塊(0,0)的第二類編碼區(qū)塊[EB6~EB7](0,0)。接著,影像處理模塊34與幀緩沖編碼模塊35負責據(jù)此依序產生對 應于影像區(qū)塊(1,0)的一組第一影像處理結果[EB0~EB5]’(1,0)以及一組第一幀緩沖編碼結果[EB0~EB5]”(1,0)。隨后,該組第一幀緩沖編碼結果[EB0~EB5]”(1,0)將被存入幀緩沖器31中對應于影像區(qū)塊(1,0)的第一暫存區(qū)域。
于一實施例中,影像處理模塊34在對影像區(qū)塊(1,0)的第一類編碼區(qū)塊[EB0~EB5](1,0)進行影像處理時,也會對影像區(qū)塊(0,0)的第二類編碼區(qū)塊[EB6~EB7](0,0)進行影像處理,產生一組第二影像處理結果[EB6~EB7]’(0,0)。以影像處理模塊34的功能為去區(qū)塊化的情況為例,影像處理模塊34亦可能一并參考影像區(qū)塊(1,0)的第一類編碼區(qū)塊[EB0~EB5](1,0)以及影像區(qū)塊(0,0)的第二類編碼區(qū)塊[EB6~EB7](0,0)來修改影像區(qū)塊(0,0)的第二類編碼區(qū)塊[EB6~EB7](0,0)。這個情況下,上述第二影像處理結果[EB6~EB7]’(0,0)也就是經過去區(qū)塊化后的第二類編碼區(qū)塊[EB6~EB7](0,0)。如圖3(B)所示,該組第二影像處理結果[EB6~EB7]’(0,0)被回存至幀緩沖器31中對應于影像區(qū)塊(0,0)的第二暫存區(qū)域?;蛘?,如圖3(C)所示,該組第二影像處理結果[EB6~EB7]’(0,0)被交由幀緩沖編碼模塊35進行幀緩沖編碼為一組第二幀緩沖編碼結果[EB6~EB7]”(0,0)。隨后,幀緩沖編碼模塊35會對幀緩沖控制器32提出請求,以令第二幀緩沖編碼結果[EB6~EB7]”(0,0)被存回幀緩沖器31中對應于影像區(qū)塊(0,0)的第二暫存區(qū)域。須說明的是,影像數(shù)據(jù)的幀緩沖編碼方式為本發(fā)明所屬技術領域中具有通常知識者所知,于此不贅述。
如先前所述,第一類編碼區(qū)塊在經過影像處理后,被存入幀緩沖器31之前,都會被幀緩沖編碼模塊35壓縮,而第二類編碼區(qū)塊在經過影像處理后,被存入幀緩沖器31之前,亦可能經過幀緩沖編碼模塊35的壓縮處理,例如圖3(C)所示。圖4(A)~圖4(D)以影像區(qū)塊(1,0)的八個編碼區(qū)塊0~7為例,呈現(xiàn)幀緩沖器31中隨機存取點與第一暫存區(qū)域、第二暫存區(qū)域的相對關系的幾種范例。在這四個圖例中,用以儲存第一類編碼區(qū)塊的第一暫存區(qū)域被標示為410,用以儲存第二類編碼區(qū)塊的第二暫存區(qū)域被標示為420。實務上,第一類編碼區(qū)塊與第二類編碼區(qū)塊的數(shù)量為可預先得知者,并可據(jù)此設定第一暫存區(qū)域410和第二暫存區(qū)域420的容量。以高效能影像編碼(HEVC)規(guī)范和圖1(B)呈現(xiàn)的編碼區(qū)塊劃分方式為例,若每一個影像區(qū)塊的長寬各自為32像素*16像素,則八個編碼區(qū)塊0~7被壓縮前的數(shù)據(jù)量大小各自為64個位元組。在采用無損式(lossless)壓縮技術的情況下,第一暫存區(qū)域410可被設計為包含六個長度為64位元組的存儲器空間,而第二暫存區(qū)域420可被設計為包含兩個長度為64位元組的存儲器空間,以確保無論實際壓縮 比例為何,第一暫存區(qū)域410和第二暫存區(qū)域420加總后皆足以容納一個影像區(qū)塊的完整數(shù)據(jù)。
首先請參見圖4(A)。于此范例中,第一暫存區(qū)410包含八個長度為64位元組的存儲器空間。幀緩沖編碼模塊35提供的第一組幀緩沖編碼結果[EB0~EB5]”(1,0)被各自存入第一暫存區(qū)域410。由圖4(A)中可看出,這五個幀緩沖編碼結果[EB0~EB5]”(1,0)分別對應于一個編碼區(qū)塊,且各自被幀緩沖控制器32分派以一個第一隨機存取點(1-0、1-1、…、1-5)。影像解碼模塊33提供的兩個第二類編碼區(qū)塊[EB6~EB7](1,0)則是被存入第二暫存區(qū)域420,且各自被幀緩沖控制器32分派以一個第二隨機存取點(2-0、2-1)。在這個情況下,影像處理系統(tǒng)300中的各個模塊可請求幀緩沖控制器32協(xié)助,自幀緩沖器31中單獨存取幀緩沖編碼結果[EB0~EB5]”(1,0)及編碼區(qū)塊[EB6~EB7](1,0)這八筆數(shù)據(jù)中的任一筆數(shù)據(jù)。
請參見圖4(B)。于此范例中,幀緩沖編碼模塊35提供的第一組幀緩沖編碼結果[EB0~EB5]”(1,0)被連續(xù)無間隔地儲存在第一暫存區(qū)域410內,且有一第一隨機存取點(1-0)。也就是說,幀緩沖編碼結果EB0”(1,0)之后會緊接著的存儲器空間會被用以儲存幀緩沖編碼結果EB1”(1,0),依此類推。直到某一列存儲器空間已滿,幀緩沖控制器才會開始于第一暫存區(qū)域410內的下一列存儲器空間儲存數(shù)據(jù)。如圖4(B)所示,第一暫存區(qū)域410中的第一列存儲器空間便同時儲存有幀緩沖編碼結果EB0”(1,0)與幀緩沖編碼結果EB1”(1,0),而第一暫存區(qū)域410中的第二列存儲器空間同時儲存有幀緩沖編碼結果EB2”(1,0)和一部分的幀緩沖編碼結果EB3”(1,0)(標示為EB3A”(1,0))。在這個范例中,第一組幀緩沖編碼結果[EB0~EB5]”(1,0)占據(jù)了第一暫存區(qū)域410中的第一~四列存儲器空間(僅使用一部份而非全部的第四列)。另一方面,兩個編碼區(qū)塊[EB6~EB7](1,0)各自被儲存在第二暫存區(qū)域420中的一列存儲器空間內,且各自被幀緩沖控制器32分派以一個第二隨機存取點(2-0、2-1)。這種做法的好處在于,編碼區(qū)塊[EB6~EB7](1,0)中的任一個編碼區(qū)塊可被單獨讀取。
請參見圖4(C)。于此范例中,幀緩沖編碼模塊35提供的幀緩沖編碼結果[EB0~EB5]”(1,0)被分為五個部分,各自存入第一暫存區(qū)域410,且各自被幀緩沖控制器32分派以一個第一隨機存取點(1-0、1-1、…、1-5)。另一方面,未經幀緩沖編碼的兩個第二類編碼區(qū)塊[EB6~EB7](1,0)則是被連續(xù)無間隔地儲存在第二暫存區(qū)域420內,且共用一第二隨機存取點(2-0)。
請參見圖4(D)。于此范例中,幀緩沖編碼模塊35提供的幀緩沖編碼結果[EB0~ EB5]”(1,0)被連續(xù)無間隔地儲存在第一暫存區(qū)域410內,且共用一第一隨機存取點(1-0)。相似地,未經幀緩沖編碼的兩個第二類編碼區(qū)塊[EB6~EB7](1,0)被連續(xù)無間隔地儲存在第二暫存區(qū)域420內,且共用一第二隨機存取點(2-0)。實務上,幀緩沖編碼模塊35可將各個編碼區(qū)塊是否經過幀緩沖編碼以及各個幀緩沖編碼結果的數(shù)據(jù)量記錄下來,儲存在幀緩沖器31內或是其他暫存器中。易言之,幀緩沖器31中對應于各個編碼區(qū)塊的數(shù)據(jù)量可為已知數(shù)。假設幀緩沖控制器32每次能自幀緩沖器31讀取的數(shù)據(jù)量固定為32個位元組(對應于圖中的半列存儲器空間)。就圖4(D)呈現(xiàn)的范例而言,欲從幀緩沖器31讀取影像區(qū)塊(1,0)時,幀緩沖控制器32可根據(jù)幀緩沖編碼結果[EB0~EB5]”(1,0)各自的數(shù)據(jù)量估計出幀緩沖編碼結果[EB0~EB5]”(1,0)占據(jù)第一暫存區(qū)域410中的第一~四列存儲器空間,且使用超過一半的第四列存儲器空間。另一方面,未經幀緩沖編碼的編碼區(qū)塊[EB6~EB7](1,0)占據(jù)第二暫存區(qū)域420中的第一列與第二列存儲器空間。因此,幀緩沖控制器32首先應自第一隨機存取點1-0開始,連續(xù)八次讀取32個位元組(共讀取256個位元組的數(shù)據(jù)),便可將幀緩沖編碼結果[EB0~EB5]”(1,0)讀出。隨后,幀緩沖控制器32再自第二隨機存取點2-0開始,連續(xù)四次讀取32個位元組(共讀取96個位元組的數(shù)據(jù)),便可將編碼區(qū)塊[EB6~EB7](1,0)讀出。另一方面,自幀緩沖器31讀取編碼區(qū)塊[EB6~EB7](1,0)時,幀緩沖控制器32可直接自第二隨機存取點2-0開始,連續(xù)四次讀取32個位元組(共讀取96個位元組的數(shù)據(jù))。
值得注意的是,因第二類編碼區(qū)塊被存放在不同于第一暫存區(qū)域410的第二暫存區(qū)域420,獨立于壓縮后第一類編碼區(qū)塊之外讀取、修改、壓縮并回存壓縮后第二類編碼區(qū)塊是可行的。此外,若無單獨讀取幀緩沖編碼結果[EB0~EB5]”(1,0)中任一幀緩沖編碼結果的需求,令幀緩沖編碼結果[EB0~EB5]”(1,0)用同一個第一隨機存取點并不會造成問題,亦即不需要將各個幀緩沖編碼結果分別儲存在不同存儲器空間且各自分派一個隨機存取點。
須說明的是,將儲存于第二暫存區(qū)域420中的第二類編碼區(qū)塊交給影像處理模塊34做為參考數(shù)據(jù)只是一種使用第二類編碼區(qū)塊的可能性。這些第二類編碼區(qū)塊亦可為影像處理系統(tǒng)300中的其他模塊所用。
圖5為根據(jù)本發(fā)明的另一實施例中的影像處理系統(tǒng)的功能方塊圖。影像處理系統(tǒng)500與圖3(A)中的影像處理系統(tǒng)300的主要差別在于,影像解碼模塊53解碼產生的編碼區(qū)塊都會被先儲存到幀緩沖器51中。待影像處理模塊54需要某些編碼 區(qū)塊的數(shù)據(jù)時,才對幀緩沖控制器52提出請求,自幀緩沖器51將這些數(shù)據(jù)取出。相似地,影像處理模塊54產生的第一影像處理結果會交由幀緩沖編碼模塊55壓縮后,再存入幀緩沖器51。與幀緩沖器31相同,幀緩沖器51亦為每一個處理中的影像區(qū)塊設有對應于第一類編碼區(qū)塊的第一暫存區(qū)域以及對應于第二類編碼區(qū)塊的第二暫存區(qū)域。該第一暫存區(qū)域具有至少一第一隨機存取點,且該第二暫存區(qū)域具有至少一第二隨機存取點。藉此,即使在對應于同一個影像區(qū)塊的第一類編碼區(qū)塊未被讀取的情況下,第二類編碼區(qū)塊仍可單獨自幀緩沖器51被讀取。
本發(fā)明所屬技術領域中具有通常知識者可理解,本發(fā)明的范疇不以上述范例中的區(qū)塊數(shù)量、數(shù)據(jù)量大小、區(qū)塊劃分方式、存儲器空間分配方式等為限。
實務上,每一編碼區(qū)塊可如圖6所示,各自再被劃分為包含多個預測區(qū)塊。在圖6的范例中,一編碼區(qū)塊包含四個預測區(qū)塊。舉例而言,假設做為動態(tài)影像編碼基本單位的每一個影像區(qū)塊4長寬為32像素*16像素,則每一編碼區(qū)塊的長寬可為16像素*4像素,而每一預測區(qū)塊的長寬可為4像素*4像素。預測區(qū)塊可被設定為一最小壓縮/解壓縮單位區(qū)塊。也就是說,該多個預測區(qū)塊中每一預測區(qū)塊各自具有相對應的一壓縮資訊,例如壓縮后的位元長度(bit length)。
須說明的是,若編碼區(qū)塊于存入幀緩沖器31、51前經過幀緩沖編碼的壓縮,在后續(xù)被取出使用前可交由一幀緩沖解碼模塊(未繪示)解壓縮。于一實施例中,幀緩沖編碼模塊35、55選擇性地對影像處理模塊34、54輸出的影像處理結果施以幀緩沖編碼,并根據(jù)一壓縮效率門檻值決定是否對一影像處理結果進行壓縮。舉例而言,假設該壓縮效率門檻值為70%,幀緩沖編碼模塊35在針對一影像處理結果進行壓縮前可先評估壓縮后數(shù)據(jù)量是否會低于壓縮前數(shù)據(jù)量的70%。若否,則幀緩沖編碼模塊35便不對該影像處理結果施以壓縮程序。這個做法的好處在于能省去對壓縮效率不佳的影像處理結果進行幀緩沖編碼/幀緩沖解碼所需要的電力和時間。
根據(jù)本發(fā)明的另一實施例為一種影像處理方法,用以配合一幀緩沖器針對多個影像區(qū)塊進行一影像處理程序,其流程圖繪示于圖7。該多個影像區(qū)塊中的每一影像區(qū)塊包含多個第一類編碼區(qū)塊與至少一第二類編碼區(qū)塊。該幀緩沖器對應于一目標影像區(qū)塊設有一第一暫存區(qū)域以及一第二暫存區(qū)域。該第一暫存區(qū)域具有至少一第一隨機存取點。該第二暫存區(qū)域具有至少一第二隨機存取點,獨立于該至少一第一隨機存取點。首先,步驟S71為對該目標影像區(qū)塊中的多個第一類編碼區(qū)塊施以影像處理,以產生一組第一影像處理結果。接著,步驟S72為對該組第一影像處 理結果施以幀緩沖編碼,以產生一組第一幀緩沖編碼結果。隨后,步驟S73為將該組第一幀緩沖編碼結果存入該幀緩沖器中的該第一暫存區(qū)域。步驟S74則是將該目標影像區(qū)塊的至少一第二類編碼區(qū)塊被存入該幀緩沖器中的該第二暫存區(qū)域。須說明的是,步驟S74可獨立于步驟S71~步驟S73存在,亦即其執(zhí)行時間可不受步驟S71~步驟S73的執(zhí)行時間的限制。
本發(fā)明所屬技術領域中具有通常知識者可理解,先前在介紹影像處理系統(tǒng)300、500時描述的各種可能變化亦可應用至圖7中的影像處理方法,其細節(jié)不再贅述。本發(fā)明的概念能應用在H.264、高效能影像編碼(HEVC)等影音壓縮編碼技術中,但不以為限。
藉由以上較佳具體實施例的詳述,希望能更加清楚描述本發(fā)明的特征與精神,而并非以上述所揭示的較佳具體實施例來對本發(fā)明的范疇加以限制。相反地,其目的是希望能涵蓋各種改變及具相等性的安排于本發(fā)明所欲申請的專利范圍的范疇內。