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

運動矢量檢測裝置以及移動圖像照相機的制作方法

文檔序號:7600937閱讀:112來源:國知局
專利名稱:運動矢量檢測裝置以及移動圖像照相機的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種在運動補償預(yù)測編碼過程中檢測運動矢量的技術(shù),該運動補償預(yù)測編碼是移動圖像的壓縮方法之一。
背景技術(shù)
近年來,已經(jīng)出現(xiàn)一種能夠?qū)崿F(xiàn)高壓縮比的圖像壓縮技術(shù)。這項技術(shù)可以用于數(shù)碼相機和數(shù)碼攝像機。
MPEG(移動圖像專家組)是一種為人們所熟知的移動圖像壓縮方法。在MPEG方法中,采用運動補償預(yù)測對圖像數(shù)據(jù)進(jìn)行有效地壓縮,通過這項技術(shù)只需對目標(biāo)圖像的位移數(shù)據(jù)和差分?jǐn)?shù)據(jù)進(jìn)行編碼。在這種運動補償預(yù)測方法中,可以采用多種方法,例如塊匹配法,計算表示目標(biāo)圖像位移的運動矢量。
專利文獻(xiàn)1[早期公開號為3-85884(美國的專利申請?zhí)枮?,173,771)的日本專利]提供了一種參考圖像數(shù)據(jù)緩沖器,其包括第一存儲體和第二存儲體。將沿參考幀圖像中的水平方向設(shè)置并且作為一個處理單元的四十三塊圖像寫入第一存儲體。每一塊圖像由16像素×8行組成。讀取存儲在第一存儲體中的圖像數(shù)據(jù)以計算運動矢量。與此同時,將參考幀圖像中緊隨其后的處理單元寫入第二存儲體,接下來將對這一單元進(jìn)行處理。然后,第一存儲體再接替第二存儲體的作用,反之亦然。讀取存儲在第二存儲體中的數(shù)據(jù),計算運動矢量,與此同時將參考幀圖像中接下來的處理單元寫入第一存儲體。這些操作將按照上述規(guī)律重復(fù)進(jìn)行。
下面將對專利文獻(xiàn)1中給出的方法予以說明,這里假設(shè)參考圖像數(shù)據(jù)緩沖器的容量盡可能小。更確切地說,假設(shè)一幀圖像由128像素×128行的圖像數(shù)據(jù)組成。將一幀圖像平均分為六十四(8×8)個宏塊。在該幀中,按照由左至右、從上到下的順序?qū)陦K進(jìn)行編號。一個宏塊包括16像素×16行的圖像數(shù)據(jù)。在下文中,將宏塊的編號稱為“塊編號”。而且,將包括在參考幀圖像中塊編號為“n”的宏塊稱為“參考塊n”,將包括在目標(biāo)幀圖像中編號為“n”的宏塊稱為“目標(biāo)塊n”,其余依此類推。另外,構(gòu)成參考幀圖像的宏塊稱為參考塊,構(gòu)成目標(biāo)幀圖像的宏塊稱為目標(biāo)塊。
如圖25A所示,參考圖像數(shù)據(jù)緩沖器200包括第一存儲體50和第二存儲體51。各存儲體由9個區(qū)組成,并且各區(qū)具有存儲一個宏塊的容量。
在一個目標(biāo)塊運動矢量的檢測過程中,“參考區(qū)”是指位于包含3行×3列參考塊的參考幀圖像中的區(qū),使得與目標(biāo)塊具有相同編號的參考塊位于這些參考塊的中心。參考幀圖像存儲在參考幀存儲器中。
首先,如圖25A所示,第一存儲體50中編號為50e、50f、50h和50i的區(qū)分別存儲參考塊“1”、參考塊“2”、參考塊“9”和參考塊“10”。這些參考塊包括在目標(biāo)塊編號為“1”的參考區(qū)內(nèi)。
接下來,如圖25B所示,在存儲在第一存儲體的參考塊中檢測運動矢量。與此同時,包括在目標(biāo)塊編號為“2”的參考區(qū)內(nèi)的編號為“1”、“2”、“3”、“9”、“10”和“11”的參考塊從參考幀存儲器中分別傳輸?shù)降诙鎯w51的區(qū)51e到區(qū)51i中。
接下來,第一存儲體50將接替第二存儲體的任務(wù),反之亦然。然后,如圖25C所示,包括在目標(biāo)塊編號為“3”的參考區(qū)內(nèi)的參考塊“2”、“3”、“4”、“10”、“11”和“12”從參考幀存儲器分別傳輸?shù)降谝淮鎯w的區(qū)50d到50i中。與此同時,在存儲在第二存儲體51的參考塊中檢測運動矢量。
有關(guān)檢測運動矢量的操作將按照上述描述重復(fù)進(jìn)行。
這里,在圖25B中,存儲在第一存儲體50的區(qū)50h內(nèi)的參考塊“2”和存儲在第二存儲體51的區(qū)51e內(nèi)的參考塊“2”是冗余的。另外,存儲在第一存儲體50的區(qū)50i中的參考塊“10”和存儲在第二存儲體51的區(qū)51f內(nèi)的參考“10”也是冗余的。而且,在圖25C中,參考塊“2”、參考塊“3”、參考塊“10”和參考塊“11”既存儲在第一存儲體50中,又存儲在第二存儲體51中。
存儲在參考圖像數(shù)據(jù)緩沖器200中的參考塊根據(jù)需要從參考幀存儲器中傳輸。因此,在上述情況中,會多次將相同的數(shù)據(jù)從參考幀存儲器傳輸?shù)絽⒖紙D像數(shù)據(jù)緩沖器中,這種做法會降低工作效率。

發(fā)明內(nèi)容
因此,本發(fā)明的目的在于提供一種運動矢量檢測裝置、運動矢量檢測方法以及移動圖像照相機,其能夠減少從參考幀存儲器到參考圖像數(shù)據(jù)緩沖器的冗余數(shù)據(jù)傳輸。
上述目的通過運動矢量檢測裝置實現(xiàn),該裝置參照參考幀以檢測包括在目標(biāo)幀的目標(biāo)塊的運動矢量,該裝置包括參考幀存儲單元,用于存儲由預(yù)訂數(shù)目的參考塊組成的參考幀;目標(biāo)塊存儲單元,用于存儲包括在目標(biāo)幀中的目標(biāo)塊;包含檢測區(qū)和預(yù)備區(qū)的參考塊存儲單元,其中檢測區(qū)存儲多個參考塊,其中包括與所述目標(biāo)塊相對應(yīng)的參考塊;寫入單元,用于在包括與后繼目標(biāo)塊相對應(yīng)的參考塊的多個參考塊中讀取一個或多個未存儲在檢測區(qū)內(nèi)的參考塊,并將讀取的參考塊寫入預(yù)備區(qū)中,后繼目標(biāo)塊與所述目標(biāo)塊相鄰;檢測單元,根據(jù)存儲在檢測區(qū)內(nèi)的參考塊檢測目標(biāo)塊的運動矢量。
根據(jù)所述結(jié)構(gòu),參考塊存儲單元包括預(yù)備區(qū),而且在包括與后繼目標(biāo)塊相對應(yīng)的參考塊在內(nèi)的多個參考塊中,寫入單元只把未存儲在檢測區(qū)內(nèi)的參考塊寫入預(yù)備區(qū)。因此,按照本發(fā)明的運動矢量檢測裝置,在將檢測后繼目標(biāo)塊的運動矢量所需的參考塊從參考幀存儲單元傳輸?shù)絽⒖級K存儲單元的過程中,可以消除先前讀取的用于檢測目標(biāo)塊運動矢量的參考塊和用于檢測后繼目標(biāo)塊運動矢量的參考塊之間的冗余。
檢測單元可以在寫入單元執(zhí)行寫入操作的同時檢測目標(biāo)塊的運動矢量。
根據(jù)所述功能,可以提高運動矢量檢測的處理速度。
上述目標(biāo)是由一運動矢量檢測裝置完成的,該裝置能夠在參考幀的基礎(chǔ)上檢測出包括在目標(biāo)幀中的目標(biāo)塊的運動矢量,其包括參考幀存儲單元,用于存儲由預(yù)訂數(shù)目的參考塊組成的參考幀;目標(biāo)塊存儲單元,用于存儲包括在目標(biāo)幀中的目標(biāo)塊;參考塊存儲單元,用于存儲多個參考塊,其中包含與目標(biāo)塊相對應(yīng)的參考塊;設(shè)置單元,用于在參考塊存儲單元中根據(jù)目標(biāo)塊在目標(biāo)幀中所處的位置設(shè)置檢測區(qū)和預(yù)備區(qū),在檢測區(qū)中存儲多個參考塊,其中包括與目標(biāo)塊相對應(yīng)的參考塊;寫入單元,用于在多個參考塊(包括與后繼目標(biāo)塊相對應(yīng)的參考塊)中讀取一個或多個未存儲在檢測區(qū)內(nèi)的參考塊,并將所讀取的參考塊寫入預(yù)備區(qū),所述后繼目標(biāo)塊與該目標(biāo)塊相鄰;檢測單元,可以基于存儲在檢測區(qū)中的參考塊檢測目標(biāo)塊的運動矢量。
根據(jù)所述結(jié)構(gòu),可以將參考塊存儲單元中的任一區(qū)設(shè)置為檢測區(qū)。這意味著,可以連續(xù)檢測目標(biāo)幀中相鄰目標(biāo)塊的運動矢量。
檢測單元可以在寫入單元執(zhí)行寫入操作的同時檢測目標(biāo)塊的運動矢量。
利用所述功能,可以提高運動矢量檢測的處理速度。
設(shè)置單元可以通過對檢測區(qū)的設(shè)置,將對應(yīng)于目標(biāo)塊的參考塊設(shè)置在檢測區(qū)的中央。
憑借所述功能,可以精確地檢測到各目標(biāo)塊的運動矢量。
可以通過物理地址標(biāo)識存儲在參考塊存儲單元中的各參考塊,這一物理地址指示出存儲在參考塊存儲單元中的參考塊的位置,所述檢測單元包括指定單元,用于指定一邏輯地址,這一邏輯地址可以標(biāo)識參考塊在檢測區(qū)中所處的位置;轉(zhuǎn)換單元,用于將邏輯地址轉(zhuǎn)換為物理地址;讀取單元,用于從參考塊存儲單元中逐像素地讀取根據(jù)物理地址確定的參考塊;重復(fù)控制單元,用于控制指定單元、轉(zhuǎn)換單元和讀取單元,使之循環(huán)往復(fù)地完成檢測區(qū)內(nèi)所有參考塊的指定、轉(zhuǎn)換和讀取操作;計算單元,利用讀取的參考塊和目標(biāo)塊計算目標(biāo)塊的運動矢量。
憑借所述功能,無論檢測區(qū)在參考塊存儲單元中所處的位置如何,運動矢量都可以得到檢測。這是充分利用了參考塊存儲單元。
參考塊存儲單元可以存儲多個參考塊,其中包括與目標(biāo)塊相對應(yīng)的參考塊,這里的目標(biāo)塊與目標(biāo)幀的邊緣相鄰,設(shè)置單元把包括與目標(biāo)塊相對應(yīng)的參考塊在內(nèi)的多個參考塊設(shè)置為檢測區(qū)中的計算范圍,檢測單元會基于檢測區(qū)內(nèi)包括在計算范圍中的參考塊檢測運動矢量。
憑借所述結(jié)構(gòu),可以精確地檢測到與目標(biāo)幀邊緣相鄰的目標(biāo)塊圖像的運動矢量。
參考幀存儲單元可以包含多個存儲單元,這些存儲單元按照矩陣形式排列,可以通過一個行地址和一個列地址確定各存儲單元的位置,構(gòu)成參考幀的各參考塊存儲在多個存儲單元中,這些存儲單元的位置由相同的行地址確定,寫入單元從多個存儲單元(它們的位置由相同的行地址指定)中讀取參考塊。
根據(jù)所述結(jié)構(gòu),可以先固定一個行地址,然后,只需按順序指定列地址就可以高速讀取參考幀圖像。
參考塊存儲單元可以包含一存儲3行×4列參考塊的區(qū)域,設(shè)置單元可以將檢測區(qū)設(shè)置為一個存儲3行×3行參考塊的區(qū)域,預(yù)備區(qū)則可以存儲3行×1列參考塊。
憑借所述結(jié)構(gòu),可以對構(gòu)成目標(biāo)幀圖像某一行的目標(biāo)塊的運動矢量進(jìn)行連續(xù)檢測。
參考塊存儲單元可以包含一個存儲3行×5列參考塊的區(qū)域,設(shè)置單元可以將檢測區(qū)設(shè)置成一個存儲3行×3列的區(qū)域,預(yù)備區(qū)則可以存儲3行×2列參考塊。
憑借所述結(jié)構(gòu),可以對構(gòu)成一個目標(biāo)幀的各目標(biāo)塊的運動矢量進(jìn)行連續(xù)檢測。


下述說明連同所附的體現(xiàn)本發(fā)明具體實施例的附圖可以清晰地描述本發(fā)明所具有的這些和其它目的、優(yōu)點和特征。
圖1示出了移動圖像照相機100的結(jié)構(gòu)框圖;圖2示出了移動圖像照像機100所處理的幀圖像的一個示例;圖3示出了運動檢測裝置130的結(jié)構(gòu)框圖;圖4示出了第一實施例中參考圖像數(shù)據(jù)緩沖器134的結(jié)構(gòu);圖5示出了根據(jù)在目標(biāo)幀上的位置對各目標(biāo)塊的分類;圖6示出了參考圖像數(shù)據(jù)緩沖器134的物理地址和運動矢量計算單元所使用的邏輯地址空間234之間的關(guān)系;圖7示出了運動檢測單元130所執(zhí)行的檢測構(gòu)成一幀的目標(biāo)塊的運動矢量的操作流程圖(接圖8);圖8示出了運動檢測單元130所執(zhí)行的檢測構(gòu)成一幀的目標(biāo)塊的運動矢量的操作流程圖(接圖7);圖9示出了參考幀存儲器控制單元133所執(zhí)行的選擇參考塊的操作流程圖;圖10示出了運動檢測單元所執(zhí)行的檢測各目標(biāo)塊的運動矢量的操作流程圖;圖11示出了運動檢測控制單元132所執(zhí)行的選擇寫入目的地的操作流程圖;
圖12示出了參考圖像數(shù)據(jù)緩沖器134中的檢測區(qū)的轉(zhuǎn)換圖;圖13示出了第一實施例的效果圖;圖14示出了在第二實施例中運動檢測單元130b的結(jié)構(gòu)方框圖;圖15示出了在第二種實施例中參考圖像數(shù)據(jù)緩沖器134b的結(jié)構(gòu)方框圖;圖16示出了參考圖像數(shù)據(jù)緩沖器134b的物理地址和運動矢量計算單元所采用的邏輯地址空間234b之間的關(guān)系;圖17示出了運動檢測單元130b所執(zhí)行的檢測構(gòu)成一幀的目標(biāo)塊的運動矢量的操作流程圖(接圖18);圖18示出了運動檢測單元130b所執(zhí)行的檢測構(gòu)成一幀的目標(biāo)塊的運動矢量的操作流程圖(接圖17);圖19示出了運動檢測單元130b所執(zhí)行的檢測一個目標(biāo)塊的運動矢量的操作流程圖;圖20示出了運動檢測控制單元132b所執(zhí)行的選擇寫入目的地的操作流程圖;圖21示出了參考圖像數(shù)據(jù)緩沖器134b中檢測區(qū)的轉(zhuǎn)換圖;圖22示出了在變型例(1)中參考幀存儲器131所存儲的參考幀的示例;圖23在時間行上示出了在存儲頁模式下進(jìn)行參考幀存儲器131的寫入/讀取操作時,輸出到參考幀存儲器的時鐘信號、指令類型、地址類型以及輸入到參考幀存儲器131或由其輸出的像素數(shù)據(jù)示意圖;圖24在時間行上示出了在脈沖模式下進(jìn)行參考幀存儲器131的寫入/讀取操作時,輸出到參考幀存儲器的時鐘信號、指令類型、地址類型以及輸入到參考幀存儲器131或由其輸出的像素數(shù)據(jù)的示意圖;圖25示出了采用傳統(tǒng)技術(shù)的參考圖像數(shù)據(jù)緩沖器200的結(jié)構(gòu)及其檢測區(qū)轉(zhuǎn)換的示意圖;具體實施方式
1.第一實施例下面按照本發(fā)明的優(yōu)選實施例描述移動圖像照像機100。
1.1移動圖像照像機100的結(jié)構(gòu)如圖1所示,移動圖像照像機100包括照像機單元101、分類單元102、開關(guān)103、減法單元104、DCT單元105、量化單元106、可變長度編碼單元107、緩沖存儲器108、速率控制單元109、主存儲器110、預(yù)測圖像生成單元123、加法單元124、反DCT單元125、反量化單元126、開關(guān)127、運動檢測單元130和參考幀存儲器131。
照像機單元101在固定的時間間隔上由探測到的光生成由128像素×128行組成的幀圖像信號?;谒傻膸瑘D像信號,照像機單元101生成由量度信號Y和色差信號Cr、Cb組成的幀圖像。之后,照像機單元101將這一幀圖像輸出到分類單元102。
分類單元102接收來自照像機單元101的幀圖像,并確定該幀圖像的類別,即由幀內(nèi)編碼生成的I-圖像(幀內(nèi)編碼圖像)、由幀間編碼生成的P-圖像(預(yù)測圖像)或B-圖像(雙向圖像)。首先,分類單元102將I-圖像輸出至減法單元104,然后,將P-圖像和B-圖像輸出至減法單元104和運動檢測單元130。如圖2所示,由分類單元102處理的各幀圖像都包括六十四個宏塊,這些宏塊通過將幀圖像300等分成8行8列生成。各宏塊包括16像素×16行的像素數(shù)據(jù)。這些宏塊從1到64連續(xù)編碼,具體的編碼方式為第一行的八個宏塊從左至右的編碼為1到8,第二行的八個編碼從左至右的編碼為9到16,其余依此類推。各塊編號表示宏塊在幀圖像中所處的位置和編碼的順序。
當(dāng)輸出編碼為“1”的P-圖像或I-圖像的宏塊時,分類單元102將表示幀圖像開始的控制信號輸出到運動檢測單元130。
在分類單元102、減法單元104、DCT單元105、量化單元106、可變長度編碼單元107、預(yù)測圖像生成單元123、加法單元124、反DCT單元125、反量化單元126、運動檢測單元130和參考幀存儲器131中,以宏塊為單元進(jìn)行幀圖像的處理。
減法單元104接收到來自分類單元102的I-圖像的宏塊,并將接收到的宏塊原封不動地輸出給DCT單元105。而且,減法單元104還接收來自分類單元102的P-圖像宏塊或B-圖像宏塊,以及接收來自預(yù)測圖像生成單元123的P-圖像或B-圖像宏塊的預(yù)測圖像,并通過從接收來自分類單元102的宏塊減去預(yù)測圖像而生成差分?jǐn)?shù)據(jù)。減法單元104將生成的P-圖像或B-圖像宏塊的差分?jǐn)?shù)據(jù)輸出到DCT單元105。
DCT單元105接收來自減法單元104的I-圖像宏塊。而且,DCT單元105還接收來自減法單元104的P-圖像或B-圖像宏塊的差分?jǐn)?shù)據(jù)。DCT單元105對接收到的I-圖像宏塊,以及P-圖像宏塊的差分?jǐn)?shù)據(jù)或B-圖像宏塊的差分?jǐn)?shù)據(jù)執(zhí)行DCT變換(離散余弦變換),并由此生成DCT系數(shù)。然后,DCT單元105將生成的DCT系數(shù)輸出到量化單元106。
量化單元106接收來自DCT單元105的I-圖像宏塊的DCT系數(shù)、P-圖像宏塊的差分?jǐn)?shù)據(jù)的DCT系數(shù)以及B-圖像宏塊的差分?jǐn)?shù)據(jù)的DCT系數(shù)。然后,量化單元106對接收到的DCT系數(shù)執(zhí)行量化操作,以生成量化DCT系數(shù),并將生成的I-圖像宏塊的量化DCT系數(shù)和P-圖像宏塊的差分?jǐn)?shù)據(jù)的量化DCT系數(shù)輸出到可變長度編碼單元107和反量化單元126。而且,量化單元106還將B-圖像宏塊的差分?jǐn)?shù)據(jù)的DCT系數(shù)輸出到可變長度編碼單元107。
可變長度編碼單元107接收來自量化單元106的I-圖像宏塊的量化DCT系數(shù)、或P-圖像宏塊的差分?jǐn)?shù)據(jù)的量化DCT系數(shù)、或B-圖像宏塊的差分?jǐn)?shù)據(jù)的量化DCT系數(shù)。而且,可變長度編碼單元107還接收來自運動檢測單元130的P-圖像或B-圖像的運動矢量。然后,可變長度編碼單元107根據(jù)接收到的各塊數(shù)據(jù)的出現(xiàn)頻率生成可變長度碼,具體的方式是可變編碼單元107為出現(xiàn)頻率高的數(shù)據(jù)塊分配短代碼,為出現(xiàn)頻率低的數(shù)據(jù)塊分配長代碼。然后,可變長度編碼單元107將生成的可變長度碼輸出到緩沖存儲器108。
緩沖存儲器108接收來自可變長度編碼單元107的可變長度碼,并將這些代碼存儲起來。存儲在緩沖存儲器108中的可變長度碼將被輸出到主存儲器110。
速率控制單元109負(fù)責(zé)監(jiān)測緩沖存儲器108接收到的可變長度碼中包含的比特數(shù)量,并對量化單元106的量化位階進(jìn)行優(yōu)化。
主存儲器110接收來自緩沖存儲器108的可變長度碼,并將這些代碼存儲起來。存儲在主存儲器110中的可變長度碼將被輸出到外部存儲設(shè)備(CD-R、存儲卡等)。
反量化單元126接收I-圖像宏塊的量化DCT系數(shù),或P-圖像宏塊的差分?jǐn)?shù)據(jù)的量化DCT系數(shù)。然后,反量化單元126對接收到的量化DCT系數(shù)執(zhí)行反量化操作,以生成DCT系數(shù)。之后,反量化單元126將生成的I-圖像宏塊的DCT系數(shù)或P-圖像宏塊的差分?jǐn)?shù)據(jù)的DCT系數(shù)輸出到反DCT單元125。
反DCT單元125接收來自反量化單元126的I-圖像宏塊的DCT系數(shù),或P-圖像宏塊的差分?jǐn)?shù)據(jù)的DCT系數(shù),并對接收到的DCT系數(shù)執(zhí)行反DCT變換,進(jìn)而生成I-圖像的宏塊或P-圖像宏塊的差分?jǐn)?shù)據(jù)。之后,反DCT單元125將生成的I-圖像宏塊或P-圖像宏塊的差分?jǐn)?shù)據(jù)輸出到加法單元124。
加法單元124接收來自反DCT單元125的I-圖像宏塊或P-圖像宏塊的差分?jǐn)?shù)據(jù),以及來自預(yù)測圖像生成單元123的P-圖像宏塊預(yù)測圖像。之后,加法單元124將接受到的I-圖像宏塊原封不動地輸出到參考幀存儲器131。此外,加法單元124還將接收到的P-圖像宏塊的差分?jǐn)?shù)據(jù)與P-圖像宏塊的預(yù)測圖像相加,生成P-圖像宏塊,并將生成的P-圖像宏塊輸出到參考幀存儲器131。
參考幀存儲器131接收來自加法單元124的I-圖像宏塊和P-圖像宏塊,并將接收到的這些宏塊存儲起來。
運動檢測單元130接收來自分類單元102的P-圖像宏塊或B-圖像宏塊,并基于存儲在參考幀存儲器131內(nèi)的I-圖像宏塊或P-圖像宏塊檢測接收到的P-圖像宏塊或B-圖像宏塊的運動矢量,并將檢測到的運動矢量輸出到可變長度編碼單元107和預(yù)測圖像生成單元123。在面將對運動檢測單元130進(jìn)行詳細(xì)說明。
預(yù)測圖像生成單元123接收來自運動檢測單元130的P-圖像宏塊或B-圖像宏塊的運動矢量,并基于接收的運動矢量和存儲在參考幀存儲器131內(nèi)的I-圖像或P-圖像宏塊生成P-圖像或B-圖像的預(yù)測圖像。之后,預(yù)測圖像生成單元123將生成的P-圖像宏塊的預(yù)測圖像輸出到減法單元104和加法單元124。另外,預(yù)測圖像生成單元123還將B-圖像宏塊的預(yù)測圖像輸出到減法單元104。
1.2參考幀存儲器131參考幀存儲器131由RAM構(gòu)成,用于存儲I-圖像和P-圖像的幀圖像,在運動補償預(yù)測編碼中,運動矢量的檢測和預(yù)測圖像的生成都在這些幀圖像的基礎(chǔ)上完成。將由加法單元124輸出并存儲在參考幀存儲器131中的I-圖像或P-圖像稱為參考幀,并將構(gòu)成各參考幀的宏塊稱為參考塊。
1.3運動檢測單元130如圖3所示,運動檢測單元130包括運動檢測控制單元132、參考幀存儲器控制單元133、參考圖像數(shù)據(jù)緩沖器134、目標(biāo)圖像數(shù)據(jù)緩沖器135、運動矢量計算單元136、輸入單元137和輸出單元138。
(1)輸入單元137輸入單元137接收作為運動矢量檢測目標(biāo)的P-圖像宏塊或B-圖像宏塊(下文稱該宏塊為目標(biāo)塊),并將接收到的目標(biāo)塊傳輸?shù)侥繕?biāo)圖像數(shù)據(jù)緩沖器135。與此同時,輸入單元137將表示目標(biāo)塊接收的控制信號發(fā)送給運動檢測控制單元132。需特別指出的是,當(dāng)輸入單元137接收到表示來自分類單元102的添加到目標(biāo)塊上的表示幀圖像開始的控制信號時,輸入單元137將接收到的表示幀圖像開始的控制信號輸出到運動檢測控制單元132。
(2)參考圖像數(shù)據(jù)緩沖器134和目標(biāo)圖像數(shù)據(jù)緩沖器135如圖3所示,參考圖像數(shù)據(jù)緩沖器134包括141到144四個存儲器,各存儲器的容量為16像素×48行。存儲器141到144分別由單獨的總線146到149連接到運動矢量計算單元136和參考幀存儲器控制單元133。存儲器141到144還分別由單獨的總線151到154連接到運動檢測控制單元132。
各存儲器有三個塊區(qū),各塊區(qū)具有存儲一個宏塊的容量。圖4示出了參考圖像數(shù)據(jù)緩沖器134中此類塊區(qū)的示意圖。
如圖4所示,參考圖像數(shù)據(jù)緩沖器134由1到12共十二個塊區(qū)組成,這些塊區(qū)按照三行四列的矩陣形式排列。存儲器141由第一列中的塊區(qū)1、5和9組成,存儲器142由第二列中的塊區(qū)2、6和10組成。存儲器143由第三列中的塊區(qū)3、7和11組成,存儲器144由第四列中的塊區(qū)4、8和12組成。
第一行的塊區(qū)1到4所分配的物理地址分別為“1”、“2”、“3”、“4”。第二行的塊區(qū)5到8所分配的物理地址分別為“5”、“6”、“7”、“8”。第三行塊區(qū)9到12所分配的物理地址分別為“9”、“10”、“11”、“12”。各物理地址表示相應(yīng)塊區(qū)所處的位置。
各塊區(qū)都由按16行16列的矩陣形式排列的存儲單元組成。各存儲單元會分配一單元地址。更確切地說,物理地址為“1”的塊區(qū)中第一行的十六個存儲單元所分配的單元地址分別為0到15。物理地址為“2”的塊區(qū)中第一行的存儲單元所分配到的單元地址分別為16到31。物理地址為“3”的塊區(qū)中第一行的存儲單元所分配到的單元地址分別為32到47。物理地址為“4”的塊區(qū)中第一行的存儲單元所分配到的單元地址分別為48到63。另外,物理地址為“1”的塊區(qū)中第二行的十六個存儲單元所分配到的單元地址分別為64到79。物理地址為“2”的塊區(qū)中第二行的存儲單元所分配到的單元地址分別為80到95。物理地址為“3”的塊區(qū)中第二行的存儲單元所分配到的單元地址分別為96到111。物理地址為“4”的塊區(qū)中第二行存儲單元所分配到的單元地址分別為112到127。這樣,連續(xù)的單元地址就通過這種方式分配給每行的六十四個存儲單元,單元地址0到3071分別分配給參考圖像數(shù)據(jù)緩沖器134中的3072個存儲單元。
參考圖像數(shù)據(jù)緩沖器134接收來自參考幀存儲器控制單元133的參考塊,并將接收到的參考塊存儲起來。
目標(biāo)圖像數(shù)據(jù)緩沖器135具有存儲一個宏塊的容量,其接收來自輸入單元137的目標(biāo)塊,并將接收到的目標(biāo)塊存儲起來。
(3)運動檢測控制單元132運動檢測控制單元132按如下方式控制檢測運動矢量的整個操作。
在下面針對運動矢量檢測的說明中,“參考區(qū)”是指參考幀圖像中包含3行×3列參考塊的區(qū)域,使得與目標(biāo)塊具有相同編號的參考塊包含在這些參考塊的中心。
一幀的運動矢量檢測的控制在下述說明中,將包括構(gòu)成幀圖像一行的區(qū)域稱為宏塊行。將塊編號為“n”的參考塊稱為參考塊“n”,將塊編號為“n”的目標(biāo)塊稱為目標(biāo)塊“n”。
運動檢測控制單元132通過下面的操作(i)到(iii)控制一幀圖像的運動矢量檢測。
(i)初始化運動檢測控制單元132通過輸入單元137接收來自分類單元102的表示幀圖像開始的控制信號。然后,運動檢測控制單元132將塊變量“n”的值設(shè)置為“1”,并利用塊變量“n=1”設(shè)置PAT標(biāo)志。
運動檢測控制單元132會將塊變量“n”存儲起來,它表示作為運動矢量檢測目標(biāo)的目標(biāo)塊的塊編號。在接收到來自輸入單元137并表示已經(jīng)接收到了目標(biāo)塊的控制信號后,運動檢測控制單元132使塊變量“n”加“1”。下面描述PAT標(biāo)志。
(ii)各宏塊行的重復(fù)操作對目標(biāo)幀中的各宏塊行重復(fù)執(zhí)行下述(A)到(C)操作。
(A)運動檢測控制單元132將參考塊寫入?yún)⒖紙D像數(shù)據(jù)緩沖器134。該參考塊用于檢測位于宏塊行起始處的目標(biāo)塊的運動矢量。
(B)運動檢測控制單元132對構(gòu)成一個宏塊行的第一到第七個目標(biāo)塊重復(fù)執(zhí)行下面的操作(a)和操作(b)。
(a)運動檢測控制單元132對各目標(biāo)塊并行執(zhí)行下面的操作(a-1)和操作(a-2)(a-1)檢測各目標(biāo)塊的運動矢量(a-2)寫入與后繼目標(biāo)塊相對應(yīng)的參考塊(b)運動檢測控制單元132接收來自輸入單元137并表示接收到了目標(biāo)塊的控制信號。該目標(biāo)塊將成為運動矢量檢測的下一目標(biāo)。然后,運動檢測控制單元132使塊變量“n”加“1”,并利用加和后產(chǎn)生的塊變量設(shè)置PAT標(biāo)志。
(C)運動檢測控制單元132對宏塊行中的第八個目標(biāo)塊執(zhí)行運動矢量檢測。接下來,運動檢測控制單元132接收來自輸入單元137的表示已經(jīng)接收到了目標(biāo)塊的控制信號。該目標(biāo)塊成為運動矢量檢測的下一個目標(biāo)。然后,運動檢測控制單元132使塊變量“n”加“1”,并利用加和后生成的塊變量設(shè)置PAT標(biāo)志。
(iii)運動檢測控制單元132檢測目標(biāo)塊“64”的運動矢量,并結(jié)束一幀的運動矢量檢測。
下面將對上述的操作(i)到(iii)進(jìn)行詳細(xì)說明。
(i)初始化運動檢測控制單元132接收來自輸入單元137并表示幀圖像開始的控制信號,并將塊變量“n”的值設(shè)置為“1”。
然后,運動檢測控制單元132設(shè)置一個四位的PAT標(biāo)志。下面是對PAT標(biāo)志的詳細(xì)說明。
如圖5所示,目標(biāo)幀310被劃分成六十四個宏塊。各宏塊都被劃分為如目標(biāo)幀320所示的9個區(qū)320a到320i中的一個。各宏塊的劃分是根據(jù)該宏塊是否靠近這一幀的上、下、左、右邊緣完成的。區(qū)320a包括既鄰接左邊緣,又鄰接上邊緣的目標(biāo)塊“1”。區(qū)320包括鄰接上邊緣的目標(biāo)塊“2”到“7”。區(qū)320c包括鄰接左邊緣的目標(biāo)塊“9”、“17”……“49”。區(qū)320d包括不鄰接任一邊緣的目標(biāo)塊“10”到“15”,“18”到“23”……“50”到“55”。區(qū)320e包括既鄰接下邊緣,又鄰接左邊緣的目標(biāo)塊“57”。區(qū)320f包括鄰接下邊緣的目標(biāo)塊“58”到“63”。區(qū)320g包括既鄰接上邊緣,又鄰接右邊緣的目標(biāo)塊“8”。區(qū)320h包括鄰接右邊緣的目標(biāo)塊“16”、“24”……“56”。區(qū)320i包含既鄰接右邊緣,又鄰接下邊緣的目標(biāo)塊“64”。
PAT標(biāo)志由第一位、第二位、第三位和第四位組成。如果目標(biāo)塊鄰接目標(biāo)幀的上邊緣,那么第一位就被設(shè)置為“1”。如果目標(biāo)塊未與上邊緣相鄰接,那么第一位就被設(shè)置為“0”。如果目標(biāo)塊鄰接目標(biāo)幀的下邊緣,那么第二位就被設(shè)置為“1”。如果目標(biāo)塊未與目標(biāo)幀的下邊緣相鄰接,那么第二位將被設(shè)置為“0”。如果目標(biāo)塊與目標(biāo)幀的左邊緣相鄰接,那么第三位將被設(shè)置為“1”。如果目標(biāo)塊未與目標(biāo)幀的左邊緣相鄰接,那么第三位將被設(shè)置為“0”。如果目標(biāo)塊與目標(biāo)幀的右邊緣相鄰接,那么第四位將被設(shè)置為“1”。如果目標(biāo)塊未與目標(biāo)幀的右邊緣相鄰接,那么第四位將被設(shè)置為“0”。
包括在目標(biāo)幀320的區(qū)320a內(nèi)的目標(biāo)塊“1”既鄰接上邊緣,又鄰接左邊緣。所以,第一位和第三位為“1”,第二位和第四位均為“0”。因此,其PAT標(biāo)志為“1010”。
包括在區(qū)320b中的目標(biāo)塊“2”到“7”鄰接上邊緣。因此,第一位為“1”,第二位、第三位和第四位均為“0”。進(jìn)而其PAT標(biāo)志為“1000”。包括在區(qū)320c中的目標(biāo)塊“9”、“17”……“49”鄰接左邊緣。因此,第三位為“1”,第一位、第二位和第四位均為“0”。進(jìn)而其PAT標(biāo)志為“0010”。包括在區(qū)320d中的目標(biāo)塊“10”到“15”,“18”到“23”……“50”到“55”未與任何邊緣相鄰接。因此所有的位均為“0”。進(jìn)而其PAT標(biāo)志為“0000”。包括在區(qū)320e中的目標(biāo)塊“57”既鄰接下邊緣,又鄰接左邊緣。因此,第二位和第三位為“1”,第一位和第四位為“0”。進(jìn)而其PAT標(biāo)志為“0110”。包括在區(qū)320f中的目標(biāo)塊“58”到“63”與下邊緣相鄰接。因此,第二位為“1”,第一位、第三位和第四位為“0”。進(jìn)而其PAT標(biāo)志為“0100”。包括在區(qū)320g中的目標(biāo)塊“8”既與上邊緣相鄰接,又與右邊緣相鄰接。因此第一位和第四位為“1”,第二位和第三位為“0”。進(jìn)而其PAT標(biāo)志為“1001”。包括在區(qū)320h中的目標(biāo)塊“16”、“24”……“56”與右邊緣相鄰接,因此,第四位為“1”,第一位、第二位和第三位為“0”。進(jìn)而其PAT標(biāo)志為0001。包塊在區(qū)320i中的目標(biāo)塊“64”既鄰接下邊緣,又鄰接右邊緣。因此,第二位和第四位為“1”,第一位和第三位為“0”。進(jìn)而其PAT標(biāo)志為“0101”。
運動檢測控制單元132通過下述方式利用塊變量“n”將PAT標(biāo)志的各位設(shè)置為“0”或“1”。
運動檢測控制單元132判斷是否滿足n≤8這一條件,如果滿足,將第一位設(shè)置為“1”,如果不滿足,將第一位設(shè)置為“0”。運動檢驗控制單元132判斷是否滿足n≥57這一條件,如果滿足,將第二位設(shè)置為“1”,否則設(shè)為“0”。接下來,運動檢測控制單元132計算n/8的余數(shù)。如果余數(shù)為“1”,運動檢測控制單元132會將第三位設(shè)置為“1”,如果余數(shù)不是“1”,就會將第三位設(shè)置為“0”。運動檢測控制單元132判斷n/8的余數(shù)是否為“0”。如果n/8的余數(shù)為“0”,運動檢測控制單元會將第四位設(shè)置為“1”。如果n/8的余數(shù)不為“0”,運動檢測控制單元就會將第四位設(shè)置為“0”。
每次塊變量“n”發(fā)生改變時,運動矢量控制單元132都會按照上述方式,根據(jù)改變后的塊變量“n”計算PAT標(biāo)志。
(ii)各宏塊行的重復(fù)操作對目標(biāo)幀中的各宏塊行重復(fù)執(zhí)行下面的操作(A)到(C)。
(A)運動檢測控制單元132輸出宏塊行頂部目標(biāo)塊的塊變量“n”,并將PAT標(biāo)志設(shè)置到參考幀存儲器控制單元133。然后,運動檢測控制單元132指示參考幀存儲器控制單元133讀取檢測目標(biāo)塊“n”的運動矢量所需的參考塊,并將讀取的參考塊輸出到參考圖像數(shù)據(jù)緩沖器134。
接下來,運動檢測控制單元132將參考幀存儲器控制單元133輸出的參考塊存儲到參考圖像數(shù)據(jù)緩沖器134的一個塊區(qū)中。這一塊區(qū)已經(jīng)被預(yù)先確定為寫入目的地。在下面有關(guān)參考幀存儲器控制單元133的說明當(dāng)中,會對參考幀存儲器控制單元133輸出的參考塊進(jìn)行詳細(xì)介紹。
而且,在被設(shè)置成與宏塊行的頂端目標(biāo)塊相對應(yīng)的參考塊的寫入目的地的塊區(qū)當(dāng)中,運動檢測控制單元132將右上方的塊區(qū)的物理地址設(shè)置為參數(shù)“t”。該參數(shù)“t”用于在參考圖像數(shù)據(jù)緩沖器134中計算目的地塊區(qū)的物理地址。與后繼目標(biāo)塊相對應(yīng)的參考塊將被寫入該目的地塊區(qū)。在下面的(a-2)中將對參數(shù)“t”進(jìn)行詳細(xì)描述。
更確切地講,運動檢測控制單元132將四個參考塊分別存儲在參考圖像數(shù)據(jù)緩沖器134所包括的物理地址為“6”、“7”、“10”和“11”的塊區(qū)中。這四個參考塊對應(yīng)于包括在區(qū)320a中的目標(biāo)塊(PAT標(biāo)志為1010)。然后,運動檢測控制單元132將參數(shù)“t”設(shè)置為“7”。
運動檢測控制單元132將六個參考塊分別存儲到包括在參考圖像數(shù)據(jù)緩沖器134中的物理地址為“2”、“3”、“6”、“7”、“10”和“11”的塊區(qū)中。這六個參考塊對應(yīng)于區(qū)320c中包括的目標(biāo)塊(PAT標(biāo)志為0010)。然后,運動檢測控制單元132將參數(shù)“t”設(shè)置為“3”。
運動檢測控制單元132將四個參考塊分別存儲到包括在參考圖像數(shù)據(jù)緩沖器134中物理地址分別為“2”、“3”、“6”、“7”的塊區(qū)中。這四個參考塊對應(yīng)于包括在區(qū)320e中的目標(biāo)塊(PAT標(biāo)志為0110)。然后,運動檢測控制單元132將參數(shù)“t”設(shè)置為“3”。
完成上述操作后,運動檢測控制單元132為參數(shù)“k”設(shè)置初值,即“k=0”。每次對運動矢量進(jìn)行檢測時,利用參數(shù)“k”讀取參考塊。在下面的操作(a-1)中將對參數(shù)“k”進(jìn)行詳細(xì)的說明。
(B)接下來,如果PAT標(biāo)志為“1010”、“1000”、“0010”,“0000”和“0100”(宏塊行中第一到第七目標(biāo)塊)中的任一個時,運動檢測控制單元132將根據(jù)塊編號“n”的PAT標(biāo)志重復(fù)執(zhí)行下面的操作(a)和操作(b)。如果PAT標(biāo)志為“1001”和“0001”(位于宏塊行的末尾的目標(biāo)塊),運動檢測控制單元132執(zhí)行操作(C)。如果PAT標(biāo)志為“0101”(目標(biāo)塊“64”),運動檢測控制單元132將執(zhí)行操作(iii)。
(a)運動檢測控制單元對各目標(biāo)塊并行執(zhí)行下面的(a-1)和(a-2)處理。
注意,運動檢測控制單元132可以單獨控制存儲器141到144,因為運動檢測控制單元132和參考圖像數(shù)據(jù)緩沖器134中的存儲器141到144是通過獨立的總線151到154相連接的。因此,運動檢測控制單元132可以從包括指定為檢測區(qū)的塊區(qū)的存儲器中讀取數(shù)據(jù),與此同時向包括監(jiān)測器以外的塊區(qū)的存儲器中寫入數(shù)據(jù)。這意味著運動檢測控制單元132可以并行執(zhí)行(a-1)操作和(a-2)操作。
(a-1)各目標(biāo)塊的運動矢量檢測運動檢測控制單元132通過下面的操作①到操作④控制各目標(biāo)塊的運動矢量檢測。
①首先,運動檢測控制單元132將一個塊區(qū)指定為檢測區(qū),該塊區(qū)用來存儲檢測目標(biāo)塊“n”的運動矢量所必需的參考塊。該塊區(qū)包括在參考圖像數(shù)據(jù)緩沖器134中。下面進(jìn)行詳細(xì)說明。
如圖6所示,在運動矢量的檢測過程中,運動矢量計算單元136所采用的邏輯地址空間234由按照3行3列的矩陣形式排列的邏輯塊區(qū)組成。邏輯地址“1”、“2”、“3”分別分配給第一行從左至右的三個邏輯塊區(qū)。邏輯地址“4”、“5”、“6”分別分配給第二行從左至右的三個邏輯塊區(qū)。邏輯地址“7”、“8”、“9”分別分配給第三行從左至右的三個塊區(qū)。
邏輯地址與物理地址不同。運動檢測控制單元132通過公式“m=i+I+k”計算邏輯地址“i”(i=1到9)對應(yīng)的物理地址“m”(m=1到12)。這個包括了9個塊區(qū),并且各塊區(qū)都具有計算的物理地址“m”的區(qū)域就是目標(biāo)塊“n”的檢測區(qū)。檢測區(qū)中的塊區(qū)與邏輯地址空間中的邏輯塊區(qū)相互對應(yīng),使得與目標(biāo)塊具有相同塊編號的參考塊放置在邏輯地址空間的中心。參數(shù)“I”由邏輯地址“i”確定,當(dāng)i=1到3時,I=0。當(dāng)i=4到6時,I=1。當(dāng)i=7到9時,I=2。注意,當(dāng)i=1到3并且m>4時,m=m-4。當(dāng)i=4到6并且m>8時,m=m-4。當(dāng)i=7到9并且m>12時,m=m-4。
參數(shù)“k”是一個取值范圍為0到3的變量。每次執(zhí)行目標(biāo)塊的運動矢量檢測時,參數(shù)“k”上就加1,同時參考圖像數(shù)據(jù)緩沖器134中的檢測區(qū)移至下一列。
下面將參考圖6描述檢測區(qū)按照參數(shù)“k”的變化而轉(zhuǎn)換。
當(dāng)k=0時,邏輯地址“i”和物理地址“m”之間的關(guān)系為“m=i+I”。在這種情況下,具體如圖6A所示,包括分別具有物理地址為“1”、“2”、“3”、“5”、“6”、“7”、“9”、“10”和“11”的塊區(qū)的區(qū)30將成為檢測區(qū)。當(dāng)k=1時,邏輯地址“i”和物理地址“m”之間的關(guān)系為“m=i+I+1”。在這種情況下,如圖6B所示,包括分別具有物理地址為“2”、“3”、“4”、“6”、“7”、“8”、“10”、“11”和“12”的塊區(qū)的區(qū)31將成為檢測區(qū)。當(dāng)k=2時,邏輯地址“i”和物理地址“m”之間的關(guān)系為“m=i+I+2”。在這種情況下,如圖6C所示,包括分別具有物理地址為“3”、“4”、“7”、“8”、“11”和“12”的塊區(qū)的區(qū)32a和包括分別具有物理地址分別為“1”、“5”和“9”的塊區(qū)的32b將成為檢測區(qū)。當(dāng)k=3時,邏輯地址“i”與物理地址“m”之間的關(guān)系為“m=i+I+3”。在這種情況下,如圖6D所示,包括分別具有物理地址為“4”、“8”和“12”的塊區(qū)的區(qū)33a和包括分別具有物理地址為“1”、“2”、“5”、“6”、“9”和“10”的塊區(qū)的區(qū)33b將成為檢測區(qū)。
②邏輯地址空間包含3×3個邏輯塊區(qū),其中對應(yīng)于存儲著與目標(biāo)塊“n”具有相同塊編號的參考塊的邏輯塊放置在中心。對于包括在區(qū)320a中的目標(biāo)塊來講,與存儲著檢測其運動矢量所需的參考塊的塊區(qū)相對應(yīng)的邏輯塊區(qū)只是分別具有邏輯地址為“5”、“6”、“8”和“9”的邏輯塊區(qū)。而且,對于包括在區(qū)320b中的目標(biāo)塊來講,與存儲著檢測其運動矢量所需的參考塊的塊區(qū)相對應(yīng)的邏輯塊區(qū)只是分別具有邏輯地址為“4”、“5”、“6”、“7”、“8”、“9”的邏輯塊區(qū)。對于包括在區(qū)320c中的目標(biāo)塊來講,與存儲著檢測其運動矢量所需的參考塊的塊區(qū)相對應(yīng)的邏輯塊區(qū)只是分別具有邏輯地址為“2”、“3”、“5”、“6”、“8”、和“9”的邏輯塊區(qū)。對于包括在區(qū)320e中的目標(biāo)塊來講,與存儲著檢測其運動矢量所需的參考塊的塊區(qū)相對應(yīng)的邏輯塊區(qū)只是分別具有邏輯地址為“2”、“3”、“5”、“6”的邏輯塊區(qū)。對于包括在區(qū)320f中的目標(biāo)塊來講,與存儲著檢測其運動矢量所需的參考塊的塊區(qū)相對應(yīng)的邏輯塊區(qū)只是分別具有邏輯地址為“1”、“2”、“3”、“4”、“5”和“6”的邏輯塊區(qū)。對于包括在區(qū)320g中的目標(biāo)塊來講,與存儲著檢測其運動矢量所需的參考塊的塊區(qū)相對應(yīng)的邏輯塊區(qū)只是分別具有邏輯地址為“4”、“5”、“7”、“8”的邏輯塊區(qū)。對于包括在區(qū)320h中的目標(biāo)塊來講,與存儲著檢測其運動矢量所需的參考塊的塊區(qū)相對應(yīng)的邏輯塊區(qū)只是分別具有邏輯地址為“1”、“2”、“4”、“5”、“7”和“8”的邏輯塊區(qū)。對于包括在區(qū)320i中的目標(biāo)塊來講,與存儲著檢測其運動矢量所需的參考塊的塊區(qū)相對應(yīng)的邏輯塊區(qū)只是分別具有邏輯地址為“1”、“2”、“4”、“5”的邏輯塊區(qū)。因此,運動檢測控制單元132在檢測區(qū)中指定計算范圍,避免在運動矢量檢測的過程中使用上述范圍之外的邏輯塊區(qū)。更確切地說,運動檢測控制單元132通過使用塊匹配法指定目標(biāo)塊位移(x,y)的范圍,進(jìn)而確定下面給出的計算范圍。在下文中將對塊匹配法進(jìn)行詳細(xì)說明。
如果目標(biāo)塊位于區(qū)320a(PAT標(biāo)志為“1010”)中,運動檢測控制單元132指定計算范圍為0≤x≤16,0≤y≤16。如果目標(biāo)塊位于區(qū)320b(PAT標(biāo)志為“1000”)中,那么運動檢測控制單元132指定計算范圍為-16≤x≤16,0≤y≤16。如果目標(biāo)塊位于區(qū)320c(PAT標(biāo)志為“0010”)中,那么運動檢測控制單元132指定計算范圍為0≤x≤16,-16≤y≤16。如果目標(biāo)塊位于區(qū)320d(PAT標(biāo)志為“0000”)中,那么運動檢測控制單元132指定計算范圍為-16≤x≤16,-16≤y≤16。如果目標(biāo)塊位于區(qū)320e(PAT標(biāo)志為“0110”)中,那么運動檢測控制單元132指定計算范圍為0≤x≤16,-16≤y≤0。如果目標(biāo)塊位于區(qū)320f(PAT標(biāo)志為“0100”)中,那么運動檢測控制單元132指定計算范圍為-16≤x≤16,-16≤y≤0。如果目標(biāo)塊位于區(qū)320g(PAT標(biāo)志為“1001”)中,那么運動檢測控制單元132指定計算范圍為-16≤x≤0,0≤y≤16。如果目標(biāo)塊位于區(qū)320h(PAT標(biāo)志為“0001”)中,那么運動檢測控制單元132指定計算范圍為-16≤x≤0,-16≤y≤16。如果目標(biāo)塊位于區(qū)320i(PAT標(biāo)志為“0101”)中,那么運動檢測控制單元指定計算范圍為-16≤x≤0,-16≤y≤0。
③接下來,運動檢測控制單元132將按照上述規(guī)律確定的計算范圍和執(zhí)行運動矢量檢測的指令輸出到運動矢量計算單元136。
然后,運動檢測控制單元132會反復(fù)執(zhí)行下面的操作③-1到操作③-4,直到從運動矢量計算單元136接收到表示運動矢量檢測已經(jīng)結(jié)束的控制信號為止。當(dāng)接收到表示運動矢量檢測已經(jīng)結(jié)束的控制信號時,運動檢測控制單元132會命令輸出單元138將檢測到的運動矢量輸出到預(yù)測圖像生成單元123和可變長度編碼單元107中。
③-1首先,運動檢測控制單元132從運動矢量計算單元136接收在目標(biāo)塊上的像素位置(p,j)和邏輯地址空間上的坐標(biāo)(x’,y’)。(在下文中會對像素位置(p,j)和坐標(biāo)(x’,y’)進(jìn)行詳細(xì)說明)。
③-2運動檢測控制單元132從目標(biāo)圖像數(shù)據(jù)緩沖器135中讀取與接收到的像素位置(p,j)相對應(yīng)的圖像數(shù)據(jù),并將讀取的圖像數(shù)據(jù)輸出到運動矢量計算單元136。
③-3運動檢測控制單元132通過下述計算將接收到的邏輯地址空間上的坐標(biāo)(x’,y’)轉(zhuǎn)換成單元地址。
首先,運動檢測控制單元132判斷參數(shù)“k”的值。如果k=0,運動檢測控制單元132計算“X=x’+16”和“Y=y(tǒng)’+16”的值。如果k=1,運動檢測控制單元132計算“X=x’+32”和“Y=y(tǒng)’+16”的值。如果k=2,運動檢測控制單元1 32計算“X=x’+48”(x’≤15),“X=x’-16”(x’≥16)和“Y=y(tǒng)’+16”的值。如果k=3,運動檢測控制單元1 32計算“X=x’+64”(x’≤-1),“X=x’”(x’≥0)和“Y=y(tǒng)’+16”的值。
這里,X與構(gòu)成參考圖像數(shù)據(jù)緩沖器134的48行×64列存儲器單元的各列逐一對應(yīng),并且表示包括其單元地址將要進(jìn)行計算的存儲器單元的列。Y與構(gòu)成參考圖像數(shù)據(jù)緩沖器134的48行×64列存儲器單元的各行逐一對應(yīng),并且表示包括其單元地址將要進(jìn)行計算的存儲器的行。(0≤x≤63,0≤y≤47)然后,運動檢測控制單元132計算單元地址“X+64Y”的值。
③-4運動檢測控制單元132讀取存儲在具有計算的單元地址的存儲單元中的像素數(shù)據(jù),并將讀取的像素數(shù)據(jù)輸出到運動矢量計算單元136。
④運動檢測控制單元132向參數(shù)“k”加“1”,并判斷參數(shù)“k”是否滿足k=4。如果k=4,運動檢測控制單元將“k”設(shè)置為“0”。如果k≠4,運動檢測控制單元132執(zhí)行下一步操作。
(a-2)寫入與目標(biāo)塊“n+1”相對應(yīng)的參考塊通過下述操作,將檢測運動矢量檢測的下一個目標(biāo)塊“n+1”的運動矢量所需的參考塊寫入?yún)⒖紙D像數(shù)據(jù)緩沖器134。
首先,運動檢測控制單元132計算“n’=n+1”的值,該值通過向塊變量“n”加“1”得到。然后,運動檢測控制單元132利用上面(i)中描述的方法設(shè)定塊變量“n’”的PAT標(biāo)志。
運動檢測控制單元132將塊變量“n’”的值和設(shè)置完畢的塊變量“n’”的PAT標(biāo)志輸出到參考幀存儲器控制單元133,并且控制參考塊的讀取并將讀取的參考塊輸出到參考圖像數(shù)據(jù)緩沖器134。
然后,運動檢測控制單元132選擇參考圖像數(shù)據(jù)緩沖器134內(nèi)的寫入目的地,并按照塊變量“n’”PAT標(biāo)志將參數(shù)“t”寫入?yún)⒖級K。
如果目標(biāo)塊所處的區(qū)為320a或320b,那么參數(shù)“t”的范圍是4到7,如果目標(biāo)塊所處的區(qū)為320c到320f,那么參數(shù)“t”的范圍為0到3。每次向參考圖像數(shù)據(jù)緩沖器134中寫入與目標(biāo)塊相對應(yīng)的參考塊時,參數(shù)“t”都會加“1”,并且參考圖像數(shù)據(jù)緩沖器134中準(zhǔn)備寫入?yún)⒖級K的寫入目的地區(qū)移到下一列。
如果塊變量“n’”的PAT標(biāo)志為“1000”,運動檢測控制單元132判斷參數(shù)“t”是否滿足t=8。如果t=8,運動檢測控制單元132將“t”設(shè)置為“4”。如果t≠8,運動檢測控制單元執(zhí)行下一步操作。然后,運動檢測控制單元132將物理地址分別為“t+1”和“t+5”的塊區(qū)指定為寫入目的地區(qū),并使參數(shù)“t”加“1”。
如果塊變量“n’”的PAT標(biāo)志為“0000”或“0100”,那么運動檢測控制單元132判斷參數(shù)“t”是否滿足t=4這一條件。如果t=4,運動檢測控制單元132將“t”設(shè)置為“0”。如果t≠4,運動檢測控制單元132將執(zhí)行下一步操作。然后,運動檢測控制單元132將物理地址分別為“t+1”、“t+5”和“t+9”的塊區(qū)指定為寫入目的地區(qū),并使參數(shù)“t”加“1”。
完成了加法操作后,運動檢測控制單元132將參考幀存儲器控制單元133輸出的參考塊寫入指定為寫入目的地的塊區(qū)。
(b)接下來,運動檢測控制單元132接收到來自輸入單元137并且表示已經(jīng)接收到目標(biāo)塊的控制信號,并向塊變量加“1”。然后,運動檢測控制單元132利用相加后的塊變量結(jié)果設(shè)置PAT標(biāo)志。
(c)運動檢測控制單元132按照(a-1)中描述的操作執(zhí)行宏塊行中第8個目標(biāo)塊的運動矢量檢測。然后,運動檢測控制單元132利用執(zhí)行完加法操作后得到的塊變量設(shè)置PAT標(biāo)志。
(iii)運動檢測控制單元132按照(a-1)中描述的操作檢測目標(biāo)塊“64”的運動矢量,并且完成了對一幀運動矢量的檢測。
(4)參考幀存儲器控制單元133參考幀存儲器控制單元133從運動檢測控制單元132接收塊變量“n”和由塊變量“n”計算的PAT標(biāo)志。然后,參考幀存儲器控制單元133接收讀取和輸出參考塊的指令。
參考幀存儲器控制單元133根據(jù)接收到的PAT標(biāo)志執(zhí)行下述計算,并選擇下一次將要從參考幀存儲器131傳輸?shù)絽⒖紙D像數(shù)據(jù)緩沖器134的參考塊。執(zhí)行選擇操作的目的在于防止存儲在參考圖像數(shù)據(jù)緩沖器134內(nèi)的參考塊產(chǎn)生重復(fù)。
如果目標(biāo)塊位于區(qū)320a(PAT標(biāo)志為“1010”),參考幀存儲器控制單元133選擇塊編號分別為“n”、“n+1”、“n+8”和“n+9”的參考塊。
如果目標(biāo)塊位于區(qū)320b(PAT標(biāo)志為“1000”),參考幀存儲器控制單元133選擇塊編號分別為“n+1”和“n+9”參考塊。
如果目標(biāo)塊位于區(qū)320c(PAT標(biāo)志為“0010”),參考幀存儲器控制單元133選擇塊編號分別為“n-8”、“n-7”、“n”、“n+1”、“n+8”和“n+9”的參考塊。
如果目標(biāo)塊位于區(qū)320d(PAT標(biāo)志為“0000”),參考幀存儲器控制單元133選擇塊編號分別為“n-7”、“n+1”和“n+9”的參考塊。
如果目標(biāo)塊位于區(qū)320e(PAT標(biāo)志為“0110”),參考幀存儲器控制單元133選擇塊編號分別為“n-8”、“n-7”、“n”和“n+1”的參考塊。
如果目標(biāo)塊位于區(qū)320f(PAT標(biāo)志為“0100”),參考幀存儲器控制單元133選擇塊編號分別為“n-7”和“n+1”的參考塊。
如果目標(biāo)塊位于區(qū)320g到320i(PAT標(biāo)志為“1001”、“0001”或“0101”),參考幀存儲器控制單元133不選擇任何參考塊并且執(zhí)行下一步操作。
然后,參考幀存儲器控制單元133從參考幀存儲器131中讀取選定的參考塊,并將讀取的參考塊輸出到參考圖像數(shù)據(jù)緩沖器134。
(5)運動矢量計算單元136對于運動矢量的計算,需要定義一坐標(biāo)系。在該坐標(biāo)系下,邏輯地址空間中邏輯地址為“5”的邏輯塊區(qū)的左上方像素所處的位置定義為原點(0,0)。x’軸表示的值從左至右逐漸增加,y’軸表示的值從上至下增加。借助這一坐標(biāo)系,可以采用坐標(biāo)的形式表示各像素。邏輯地址空間內(nèi)的各像素都處于-16≤x’≤31和-16≤y’≤31所表示的范圍內(nèi)。
如果目標(biāo)塊的位置轉(zhuǎn)換到了上面定義的邏輯地址空間中,那么將通過(x,y)表示這種轉(zhuǎn)換的位移。如果目標(biāo)塊與邏輯地址為“5”的邏輯塊區(qū)相同,那么該位移由(0,0)表示。目標(biāo)塊將在-16≤x≤16和-16≤y≤16所表示的范圍內(nèi)發(fā)生位移。
另外,坐標(biāo)值“p”和坐標(biāo)值“j”定義在目標(biāo)塊內(nèi)的16行×16列像素上。坐標(biāo)值“p”按照按從左到右的順序從0增加到15,坐標(biāo)值“j”按照從上到下的順序從0增加到15。通過(p,j)表示各像素。像素位置為(p,j)的像素數(shù)據(jù)由“初始(p,j)”表示。
如果目標(biāo)塊在邏輯空間內(nèi)的位移為(x,y),那么,與目標(biāo)塊上的像素位置(p,j)相對應(yīng)的邏輯地址空間上的像素坐標(biāo)為(p+x,j+y)。與邏輯空間上的坐標(biāo)(p+x,j+y)相對應(yīng)的參考塊上的像素數(shù)據(jù)由“當(dāng)前(p+x,j+y)”表示。
運動矢量計算單元136接收來自運動檢測控制單元132的用于檢測運動矢量的計算范圍和指令。運動矢量計算單元136通過執(zhí)行操作(i)和操作(ii)檢測運動矢量。下面是對操作(i)和操作(ii)的說明。
(i)運動矢量檢測在運動檢測控制單元132指定的檢測區(qū)內(nèi),所有位移(x,y)的運動矢量通過下面的操作(a)和操作(b)進(jìn)行檢測。
(a)誤差值S(x,y)的計算對各“p”和“j”(0≤p≤15,0≤j≤15)執(zhí)行下面的操作(a-1)至操作(a-3)計算位移(x,y)的誤差值S(x,y)。利用公式1作為誤差值的一個例子,可以按照下述操作計算出絕對平均誤差值。
(a-1)運動矢量計算單元136將目標(biāo)塊上的像素位置(p,j)和邏輯地址空間上與像素位置(p,j)相對應(yīng)的的坐標(biāo)(p+x,j+y)輸出到運動檢測控制單元132。(為簡化起見,假設(shè)x’和y’分別滿足x’=p+x和y’=j(luò)+y)。
(a-2)接下來,運動矢量計算單元136從運動檢測控制單元132接收目標(biāo)塊“n”上與像素位置(p,j)相對應(yīng)的像素數(shù)據(jù)“初始(p,j)”和參考塊上與坐標(biāo)(x’,y’)相對應(yīng)的像素數(shù)據(jù)“當(dāng)前(x’,y’)”。
(a-3)將接收到的像素數(shù)據(jù)分配給下面的公式1。
公式1S(x,y)=Σj=015Σp=015|original(p,j)-previous(p+x,j+y)|]]>original初始previous當(dāng)前(b)運動矢量計算單元136比較各位移(x,y)計算出的誤差值S(x,y),并確定最小位移(x,y)。
(ii)輸出運動矢量運動矢量計算單元136將操作(i)中確定的最小位移(x,y)作為目標(biāo)塊“n”的運動矢量輸出到輸出單元138,并將表示檢測已經(jīng)結(jié)束的控制信號輸出到運動檢測控制單元132。
通常將按照上述方法計算運動矢量的方法稱為“塊匹配法”。
(6)輸出單元138輸出單元138按照來自運動檢測控制單元132的指令接收由運動矢量計算單元136計算的運動矢量,并將接收到的運動矢量輸出到預(yù)測圖像生成單元123和可變長度編碼單元107。
1.4運動檢測單元130的操作(1)檢測一幀運動矢量的操作下面參照圖7和圖8中的流程圖對檢測一幀運動矢量的操作進(jìn)行說明。
輸入單元137接收來自分類單元102的目標(biāo)塊“1”和表示幀圖像開始的控制信號,并將接收到的目標(biāo)塊“1”寫入目標(biāo)圖像數(shù)據(jù)緩沖器135,并將表示幀圖像開始的控制信號傳輸?shù)竭\動檢測控制單元132。運動檢測控制單元132將塊變量“n”設(shè)置為“n=1”并將PAT標(biāo)志設(shè)置為由塊變量計算出的“1010”(步驟S301)。
在步驟S302到S338中,對各宏塊行重復(fù)執(zhí)行步驟S303到S337的處理,直到完成目標(biāo)幀內(nèi)所有宏塊行的矢量檢測為止。
運動檢測控制單元132將設(shè)置好的PAT標(biāo)志和塊變量“n”輸出到參考幀存儲器控制單元133,并命令參考幀存儲器控制單元133輸出參考塊(步驟S303)。
參考幀存儲器控制單元133根據(jù)從運動檢測控制單元132接收到的PAT標(biāo)志和塊變量“n”選擇需要讀取的參考塊(步驟S304)。然后,參考幀存儲器控制單元133從參考幀存儲器131中讀取選定的參考塊,并將讀取的參考塊輸出到參考圖像數(shù)據(jù)緩沖器134(步驟S305)。
接下來,運動檢測控制單元132標(biāo)識設(shè)定的的PAT標(biāo)志(步驟S306)。
如果標(biāo)識出的PAT標(biāo)志為“1010”(步驟S306),那么運動檢測控制單元132在參考圖像數(shù)據(jù)緩沖器134中將物理地址分別為“6”、“7”、“10”和“11”的塊區(qū)指定為步驟S305輸出的參考塊的寫入目的地,并將該參考塊寫入指定的塊區(qū)(步驟S307)。
接下來,運動檢測控制單元132將參數(shù)“t”設(shè)置為物理地址“7”的值(步驟S308)。該地址所屬的塊區(qū)位于步驟S307中指定為寫入目標(biāo)的塊區(qū)的右上方。
如果標(biāo)識出的PAT標(biāo)志為“0010”(步驟S306),那么運動檢測控制單元132在參考圖像數(shù)據(jù)緩沖器134中將物理地址分別為“2”、“3”、“6”、“7”、“10”和“11”的塊區(qū)指定為步驟S305輸出的參考塊的寫入目的地,并將該參考塊寫入指定的塊區(qū)(步驟S310)。
接下來,運動檢測控制單元132將參數(shù)“t”的值設(shè)置為物理地址“3”的值(步驟S311)。該地址所屬的塊區(qū)位于步驟S310中指定為寫入目的地的塊區(qū)的右上方。
如果標(biāo)識出的PAT標(biāo)志為“0110”(步驟S306),那么運動檢測控制單元132在參考圖像數(shù)據(jù)緩沖器134中將物理地址分別為“2”、“3”、“6”和“7”的塊區(qū)指定為步驟S305輸出的參考塊的寫入目的地,并將該參考塊寫入指定的塊區(qū)(步驟S312)。
接下來,運動檢測控制單元132將參數(shù)“t”的值設(shè)置為物理地址“3”的值(步驟S313)。該地址所屬的塊區(qū)位于步驟S312中指定為寫入目的地的塊區(qū)的右上方。
然后,將參數(shù)“k”設(shè)置為k=0(步驟S315)。
接下來,運動檢測控制單元132對PAT標(biāo)志進(jìn)行判斷(步驟S321)。如果PAT標(biāo)志為“1010”、“1000”、“0010”、“0000”、“0110”和“0100”中的任何一個(步驟S321),那么運動檢測控制單元132從參考圖像數(shù)據(jù)緩沖器134內(nèi)的檢測區(qū)中讀取參考塊,從目標(biāo)圖像數(shù)據(jù)緩沖器135中讀取目標(biāo)塊“n”,并將讀取的參考塊和目標(biāo)塊“n”輸出到運動矢量計算單元136。運動矢量計算單元136計算運動矢量(步驟S322)。
步驟S324到S329與步驟S322并行進(jìn)行。
運動檢測控制單元132通過向塊編號“n”加“1”的方式計算“n’”,并在塊變量“n’”的基礎(chǔ)上設(shè)置PAT標(biāo)志(步驟S324)。
然后,運動檢測控制單元132將計算出的塊變量“n’”和塊變量“n’”的PAT標(biāo)志輸出到參考幀存儲器控制單元133,并控制與目標(biāo)塊“n’”相對應(yīng)的參考塊的讀取和輸出(步驟S325)。
參考幀存儲器控制單元133根據(jù)接收到的PAT標(biāo)志和塊變量“n’”選擇需要讀取的參考塊(步驟S326)。然后,參考幀存儲器控制單元133從參考幀存儲器131中讀取選定的參考塊,并將讀取的參考塊輸出到參考圖像數(shù)據(jù)緩沖器134(步驟S327)。
接下來,運動檢測控制單元132根據(jù)塊變量“n’”的PAT標(biāo)志和參數(shù)“k”選擇參考圖像數(shù)據(jù)緩沖器134中作為寫入目的地的塊區(qū)(步驟S328)。然后,運動檢測控制單元132將步驟S327輸出的參考塊寫入選定的塊區(qū)(步驟S329)。
輸入單元137接收來自分類單元102的目標(biāo)塊“n+1”,并將接受到的目標(biāo)塊“n+1”寫入目標(biāo)圖像數(shù)據(jù)緩沖器135,并將表示接收到了目標(biāo)塊的控制信號輸出到運動檢測控制單元132。運動檢測控制單元132使塊變量“n”加“1”,并利用塊變量“n”設(shè)置PAT標(biāo)志(步驟S330)。
如果判定的PAT標(biāo)志為“1001”或“0001”(步驟S321),運動檢測控制單元132從參考圖像數(shù)據(jù)緩沖器134的檢測區(qū)中讀取參考塊,從目標(biāo)圖像數(shù)據(jù)緩沖器135中讀取目標(biāo)塊“n”,并將讀取的參考塊和目標(biāo)塊“n”輸出到運動矢量計算單元136。運動矢量計算單元136接收參考塊和目標(biāo)塊“n”,并根據(jù)接收到的參考塊和目標(biāo)塊“n”計算運動矢量(步驟S335)。
接下來,輸入單元137從分類單元102接收目標(biāo)塊,并將接收到的目標(biāo)塊寫入目標(biāo)圖像數(shù)據(jù)緩沖器135,并且將表示已經(jīng)接收到目標(biāo)塊的控制信號輸出到運動檢測控制單元132。運動檢測控制單元132使塊變量“n”加“1”,并利用塊變量設(shè)置PAT標(biāo)志(步驟S336)。
如果判定的PAT標(biāo)志為“0101”(步驟S321),運動檢測控制單元132從參考圖像數(shù)據(jù)緩沖器134的檢測區(qū)讀取參考塊,從目標(biāo)圖像數(shù)據(jù)緩沖器135中讀取目標(biāo)塊“n”,并將讀取的參考塊和目標(biāo)塊“n”輸出到運動矢量計算單元136。運動矢量計算單元136接收參考塊和目標(biāo)塊“n”,并根據(jù)接收到的參考塊和目標(biāo)塊“n”計算運動矢量(步驟S337)。然后,運動檢測控制單元132完成一幀運動矢量檢測的全部操作。
(2)參考幀存儲器控制單元執(zhí)行的參考塊選擇下面參照圖9所示的流程圖描述從參考幀存儲器131傳輸?shù)絽⒖紙D像數(shù)據(jù)緩沖器134的參考塊的選擇操作。注意,下面對圖7中的步驟S304和圖8中的步驟S326進(jìn)行詳細(xì)說明。
接收到來自運動檢測控制單元132的塊變量“n”和PAT標(biāo)志后,參考幀存儲器控制單元133根據(jù)接收到的PAT標(biāo)志執(zhí)行下述操作(步驟S250)。
如果PAT標(biāo)志為“1010”(步驟S250),那么參考幀存儲器控制單元133選擇塊編號分別為“n”、“n+1”、“n+8”和“n+9”的參考塊(步驟S251)。
如果PAT標(biāo)志為“1000”(步驟S250),那么參考幀存儲器控制單元133選擇塊編號分別為“n+1”和“n+9”的參考塊(步驟S252)。
如果PAT標(biāo)志為“0010”(步驟S250),那么參考幀存儲器控制單元133選擇塊編號分別為“n-8”、“n-7”、“n”、“n+1”、“n+8”和“n+9”的參考塊(步驟S253)。
如果PAT標(biāo)志為“0000”(步驟S250),那么參考幀存儲器控制單元133選擇塊編號分別為“n-7”、“n+1”和“n+9”的參考塊(步驟S254)。
如果PAT標(biāo)志為“0110”(步驟S250),那么參考幀存儲器控制單元133選擇塊編號分別為“n-8”、“n-7”、“n”和“n+1”的參考塊(步驟S255)。
如果PAT標(biāo)志為“0100”(步驟S250),那么參考幀存儲器控制單元133選擇塊編號分別為“n-7”和“n+1”的參考塊(步驟S256)。如果PAT標(biāo)志為“1001”、“0001”或“0101”,那么參考幀存儲器控制單元133將不會選擇任何參考塊,并執(zhí)行下一步操作。
(3)各目標(biāo)塊的運動矢量檢測下面將參照圖10所示的流程圖詳細(xì)描述檢測各目標(biāo)塊的運動矢量的操作。注意,下面對步驟S322、S335和S337進(jìn)行詳細(xì)說明。
可以通過公式“m=i+I+k”并利用參數(shù)“I”和“k”得出與邏輯地址“i”(i=1到9)相對應(yīng)的物理地址“m”(步驟S341)。參數(shù)“I”隨著邏輯地址“i”的變化而發(fā)生變化。如果i=1到3,則I=0。如果i=4到6,則I=1。如果i=7到9,則I=2。參數(shù)“k”的取值范圍為0到3,其初始值為“0”。注意如果i=1到3并且m>4,則m=m-4。如果i=4到6并且m>8,則m=m-4。如果i=7到9并且m>12,則m=m-4。檢測區(qū)就是由上面公式推導(dǎo)出的9個物理地址所代表的區(qū)組成的區(qū)域。
接下來,運動檢測控制單元132將設(shè)定好的與PAT標(biāo)志相對應(yīng)的計算范圍和運動矢量檢測指令輸出到運動矢量計算單元136(步驟S342)。
運動矢量計算單元136根據(jù)接收到的來自運動檢測控制單元132的指令在接收到的計算范圍內(nèi)檢測運動矢量(步驟S343)。
運動矢量檢測結(jié)束后,運動檢測控制單元132通過輸出單元138將檢測到的運動矢量輸出到預(yù)測圖像生成單元123和可變長度編碼單元107(步驟S344)。
接下來,運動檢測控制單元132使參數(shù)“k”加“1”(步驟S345)。這時,運動檢測控制單元132會判斷是否滿足k=4(步驟S346)。如果k=4,運動檢測控制單元132將“k”設(shè)置為“0”。如果k≠4(步驟S346),運動檢測控制單元132跳開此步操作,并結(jié)束對各目標(biāo)塊的運動矢量檢測。
(4)參考塊寫入目的地的選擇下面參照圖11所示的流程圖對選擇參考圖像數(shù)據(jù)緩沖器134中的塊區(qū)的操作進(jìn)行說明,該塊區(qū)將作為參考幀存儲器控制單元133輸出的參考塊的寫入目的地。注意,下面對圖8所示的流程圖中的步驟S328進(jìn)行詳細(xì)說明。
運動檢測控制單元132根據(jù)從塊變量“n’”計算出的PAT標(biāo)志執(zhí)行下述處理(步驟S351)。
如果PAT標(biāo)志為“1000”(步驟S351),運動檢測控制單元132判斷是否滿足t=8(步驟S352)。如果t=8,運動檢測控制單元132將“t”設(shè)置為“4”(步驟S353)。如果t≠8,運動檢測控制單元132跳過該操作并執(zhí)行步驟S354。
接下來,運動檢測控制單元132在參考圖像數(shù)據(jù)緩沖器134中將物理地址分別為“t+1”和“t+5”的塊區(qū)指定為參考塊的寫入目的地(步驟S354),并執(zhí)行步驟S363。
如果PAT標(biāo)志為“0000”或“0100”(步驟S351),運動檢測控制單元132判斷是否滿足t=4(步驟S360)。如果t=4,運動檢測控制單元將“t”設(shè)置為“0”(步驟S361)。如果t≠4,運動檢測控制單元跳開該操作并執(zhí)行步驟S362。
然后,運動檢測控制單元132將參考圖像數(shù)據(jù)緩沖器134中物理地址分別為“t+1”、“t+5”和“t+9”的塊區(qū)指定為參考塊的寫入目的地(S362)。然后,運動檢測控制單元132使參數(shù)“t”加“1”(步驟S363),并執(zhí)行步驟S329。
(5)運動檢測控制單元132執(zhí)行的改變檢測區(qū)的操作在參考圖像數(shù)據(jù)緩沖器134中,通過上述計算確定檢測區(qū)和參考塊的寫入目的地。每處理完一目標(biāo)塊后,檢測區(qū)和參考塊的寫入目的地就向下一區(qū)域轉(zhuǎn)換。圖12示出了在目標(biāo)幀中位于第一行的宏塊行中的目標(biāo)塊運動矢量的檢測過程中,檢測區(qū)和參考塊寫入目的地的轉(zhuǎn)換。圖12中的編號代表存儲在各塊區(qū)內(nèi)的參考塊的塊編號。下面給出了在參考圖像數(shù)據(jù)緩沖器134中改變參考塊的寫入目的地和運動矢量檢測區(qū)的操作說明。
首先,參考幀存儲器控制單元133根據(jù)塊變量“n=1”和PAT標(biāo)志“1010”輸出檢測目標(biāo)塊“1”的運動矢量所需的參考塊。如圖12A所示,輸出的參考塊“1”、“2”、“9”和“10”將被分別寫入物理地址為“6”、“7”、“10”和“11”的塊區(qū)。
接下來,如圖12B所示,運動檢測控制單元132將包含3行3列塊區(qū)的區(qū)域13設(shè)置為檢測區(qū)。區(qū)域13的中央是存儲目標(biāo)塊“1”的塊區(qū)。然后,運動矢量計算單元136對運動矢量進(jìn)行計算。與此同時,如圖12B所示,在檢測目標(biāo)塊“2”的運動矢量所需的參考塊中,沒有存儲到參考圖像數(shù)據(jù)緩沖器134中的參考塊“3”和參考塊“11”被寫入物理地址分別為“8”和“12”的塊區(qū)。
目標(biāo)塊“1”的運動矢量檢測完成后,如圖12C所示,運動檢測控制單元132將包含3行3列塊區(qū)的區(qū)域15設(shè)置為檢測區(qū)。區(qū)域15的中央是存儲參考塊“2”的塊區(qū)。與此同時,在檢測目標(biāo)塊“3”的運動矢量所需的參考塊中,沒有存儲到參考圖像數(shù)據(jù)緩沖器134中的參考塊“4”和參考塊“12”被寫入物理地址分別為“5”和“9”的塊區(qū)。
目標(biāo)塊“2”的運動矢量檢測完成后,如圖12D所示,運動檢測控制單元132將包含3行2列塊區(qū)的區(qū)域17a和包含3行1列塊區(qū)的區(qū)域17b設(shè)置為檢測區(qū)。區(qū)域17a包含存儲參考塊“3”的塊區(qū)。然后,運動矢量計算單元136對運動矢量進(jìn)行計算。盡管檢測區(qū)17a和17b彼此分隔開,但這樣并不會產(chǎn)生問題,因為下面還要按照上述的說明在邏輯地址空間中對它們進(jìn)行重新定位。與此同時,如圖12D所示,在檢測目標(biāo)塊“4”所需的參考塊中,沒有存儲到參考圖像數(shù)據(jù)緩沖器134的參考塊“5”和參考塊“13”被寫入物理地址分別為“6”和“10”的塊區(qū)。
目標(biāo)塊“3”的運動矢量檢測完成后,如圖12E所示,運動檢測控制單元1 32將包含3行1列塊區(qū)的區(qū)域19a和包含3行2列塊區(qū)的區(qū)域19b設(shè)置為檢測區(qū)。區(qū)域19b包含存儲參考塊“4”的塊區(qū)。然后,運動矢量計算單元136對運動矢量進(jìn)行計算。與此同時,如圖12E所示,在檢測目標(biāo)塊“5”所需的參考塊中,未存儲到參考圖像數(shù)據(jù)緩沖器134的參考塊“6”和參考塊“14”被寫入物理地址分別為“7”和“11”的塊區(qū)。
目標(biāo)塊“4”的運動矢量檢測完成后,如圖12F所示,運動檢測控制單元132將包含3行3列塊區(qū)的區(qū)域21設(shè)置為檢測區(qū)。在區(qū)域21的中央為存儲參考塊“5”的塊區(qū)。然后,運動矢量計算單元136對運動矢量進(jìn)行計算。與此同時,如圖12F所示,在檢測目標(biāo)塊“6”所需的參考塊中,未存儲到參考圖像數(shù)據(jù)緩沖器134的參考塊“7”和參考塊“15”被寫入物理地址分別為“8”和“12”的塊區(qū)。
如上所述,通過逐行移動檢測區(qū)可以重復(fù)將參考塊寫入檢測區(qū)外的塊區(qū)的操作。
1.5效果/總結(jié)如上所述,按照本發(fā)明,參考圖像數(shù)據(jù)存儲器134由四個存儲器141到144構(gòu)成,這些存儲器由運動檢測控制單元132獨立控制。
運動檢測控制單元132在參考圖像數(shù)據(jù)緩沖器134中指定檢測區(qū),并從檢測區(qū)中逐像素地讀取參考塊,然后將讀取的參考塊輸出到運動矢量計算單元136。與此同時,運動檢測控制單元132將檢測下一目標(biāo)塊的運動矢量所需的參考塊寫入未指定為檢測區(qū)的區(qū)域。這里,參考幀存儲器控制單元133對參考塊進(jìn)行選擇,避免參考圖像數(shù)據(jù)緩沖器134中的參考塊發(fā)生重復(fù)。
圖13示出了在檢測到目標(biāo)幀上的目標(biāo)塊的運動矢量的同時,從參考幀存儲器131新傳輸?shù)絽⒖紙D像數(shù)據(jù)緩沖器134的參考塊的編號。如果采用傳統(tǒng)技術(shù),由參考幀存儲器131傳輸?shù)絽⒖紙D像數(shù)據(jù)緩沖器134的參考塊總數(shù)為每目標(biāo)幀484個。相反,如果采用本發(fā)明,參考塊的總數(shù)僅為每目標(biāo)幀176個??梢?,本發(fā)明可以在參考圖像數(shù)據(jù)緩沖器134容量較小的條件下,降低參考塊的冗余傳輸。因此,本發(fā)明可以顯著降低總流量。
2.第二實施例下面描述按照本發(fā)明另一優(yōu)選實施例的移動圖像照像機100。
2.1移動圖像照像機100的結(jié)構(gòu)移動圖像攝像機100包括照像機單元101、分類單元102、開關(guān)103、減法單元104、DCT單元105、量化單元106、可變長度編碼單元107、緩沖存儲器108、速率控制單元109、主存儲器110、預(yù)測圖像生成單元123、加法單元124、反DCT單元125、反量化單元126、開關(guān)127、運動檢測單元130b和參考幀存儲器131。照像機單元101、分類單元102、開關(guān)103、減法單元104、DCT單元105、量化單元106、可變長度編碼單元107、緩沖存儲器108、速率控制單元109、主存儲器110、預(yù)測圖像生成單元123、加法單元124、反DCT單元125、反量化單元126、開關(guān)127和參考幀存儲器131的結(jié)構(gòu)和所執(zhí)行的操作與第一實施例中相同,所以這里省略了相關(guān)描述。
2.2運動檢測單元130b如圖14所示,運動檢測單元130b包括運動檢測控制單元132b、參考幀存儲器控制單元133、參考圖像數(shù)據(jù)緩沖器134b、目標(biāo)圖像數(shù)據(jù)緩沖器135、運動矢量計算單元136、輸入單元137和輸出單元138。參考幀存儲器控制單元133、運動矢量計算單元136、輸入單元137和輸出單元138的結(jié)構(gòu)和所執(zhí)行的操作與第一實施例中相同,目標(biāo)圖像數(shù)據(jù)緩沖器135的結(jié)構(gòu)與第一實施例中相同。因此,這里省略了相關(guān)說明。
(1)參考圖像數(shù)據(jù)緩沖器134如圖14所示,參考圖像數(shù)據(jù)緩沖器134b包括5個存儲器,即存儲器161到165,各存儲器都具有存儲16像素×48行的容量。存儲器161到165通過獨立的總線166到170分別連接到運動矢量計算單元136和參考幀存儲器控制單元133。存儲器161到165還通過獨立的總線171到175分別連接到運動檢測控制單元132b。
另外,如圖15所示,參考圖像數(shù)據(jù)緩沖器134b由15個塊區(qū)構(gòu)成,即按照3行5列的矩陣形式排列的塊區(qū)81到95。各塊區(qū)都具有存儲一個宏塊的容量。存儲器161由第一列中的塊區(qū)81、86和91組成。存儲器162由第二列中的塊區(qū)82、87和92組成。存儲器163由第三列中的塊區(qū)83、88和93組成。存儲器164由第四列中的塊區(qū)84、89和94組成。存儲器165由第五列中的塊區(qū)85、90和95組成。
第一行中的塊區(qū)81到塊區(qū)85所分配到的物理地址分別為“1”、“2”、“3”、“4”、“5”。第二行中的塊區(qū)86到90所分配到的物理地址分別為“6”、“7”、“8”、“9”、“10”。第三行中的塊區(qū)91到95所分配到的物理地址分別為“11”、“12”、“13”、“14”和“15”。各物理地址都可以表示塊區(qū)所處的位置。
構(gòu)成各塊區(qū)的存儲單元都按照16行16列的矩陣形式排列。單元地址分配到各存儲單元。更確切地說,物理地址為“1”的塊區(qū)81中,第一行中的16個存儲單元所分配到的單元地址分別為0到15。物理地址為“2”的塊區(qū)82中,第一行的存儲單元所分配到的單元地址分別為16到31。物理地址為“3”的塊區(qū)83中,第一行的存儲單元所分配到的單元地址分別為32到47。物理地址為“4”的塊區(qū)84中,第一行的存儲單元所分配到的單元地址分別為48到63。物理地址為“5”的塊區(qū)85中,第一行的存儲單元所分配到的單元地址分別為64到79。在物理地址為“1”的塊區(qū)81中,第二行的16個存儲單元所分配到的單元地址分別為80到95。在物理地址為“2”的塊區(qū)82中,第二行的存儲單元所分配到的單元地址分別為96到111。在物理地址為“3”的塊區(qū)83中,第二行的存儲單元所分配到的單元地址分別為112到127。在物理地址為“4”的塊區(qū)84中,第二行的存儲單元所分配到的單元地址分別為128到143。物理地址為“5”的塊區(qū)85中,第二行的存儲單元所分配到的單元地址分別為144到159。這樣,連續(xù)的單元地址就分配給每行的八十個存儲單元,單元地址0到3839分別分配給構(gòu)成參考圖像數(shù)據(jù)緩沖器134b的3840個存儲單元。
參考圖像數(shù)據(jù)緩沖器134b接收來自參考幀存儲器控制單元133的參考塊,并將接收到的參考塊存儲起來。
(2)運動檢測控制單元132b一幀的運動矢量檢測的控制運動檢測控制單元132b通過下面的操作(i)和操作(ii)對一幀圖像的運動矢量檢測進(jìn)行控制。
在下面對運動矢量檢測的說明中,“參考區(qū)”表示參考幀圖像中包括3行3列參考塊的區(qū)域,使得與目標(biāo)塊具有相同編號的參考塊包含在這些參考塊的中央。
(i)初始化運動檢測控制單元132b接收來自輸入單元137的表示幀圖像開始的控制信號,將塊變量“n”設(shè)置為“1”,并控制檢測目標(biāo)塊“1”的運動矢量所需的“參考塊”向參考圖像數(shù)據(jù)緩沖器134b的寫入過程。
運動檢測控制單元132b將表示作為運動矢量檢測目標(biāo)的目標(biāo)塊的塊編號的塊變量“n”存儲起來。在接收到來自輸入單元137的表示已經(jīng)接收到了目標(biāo)塊的控制信號后,運動檢測控制單元132使塊變量“n”加“1”。
需特別指出的是,在接收到來自輸入單元137的表示幀圖像開始的控制信號時,運動檢測控制單元132b將塊變量“n”設(shè)置為“1”。
PAT的設(shè)置方式與第一實施例中相同,這里省略了相關(guān)說明。
(ii)對每個宏塊行的重復(fù)操作運動檢測控制單元132b對目標(biāo)塊“1”到“64”同時執(zhí)行操作(a)和操作(b)。
(a)檢測各目標(biāo)塊中的運動矢量(b)寫入與下一目標(biāo)塊相對應(yīng)的參考塊。
下面對上述的操作(i)和操作(ii)進(jìn)行詳細(xì)說明。
(i)初始化在接收到來自輸入單元137的表示幀圖像開始的控制信號時,運動檢測控制單元132b將塊變量“n”設(shè)置為“1”,并利用塊編號“n=1”將PAT標(biāo)志設(shè)置為“1010”。
接下來,運動檢測控制單元132b將PAT標(biāo)志“1010”和塊編號“n=1”輸出到參考幀存儲器控制單元133,并命令參考幀存儲器控制單元133讀取和輸出該參考塊。
運動檢測控制單元132b將參考幀存儲器133輸出的參考塊存儲在參考圖像數(shù)據(jù)緩沖器134b的塊區(qū)中。這些被預(yù)先確定為寫入目的地的塊區(qū)的物理地址分別為“7”、“8”、“12”和“13”。然后,運動檢測控制單元132b將參數(shù)“t”設(shè)置為“8”。參數(shù)“t”的作用在于計算參考圖像數(shù)據(jù)緩沖器134b中作為寫入目的地的塊區(qū)的物理地址。該目的地塊區(qū)位于與后繼目標(biāo)塊相對應(yīng)的參考塊內(nèi)。參數(shù)“t”是取值范圍為5到9的變量。運動檢測控制單元132b每將一與目標(biāo)塊相對應(yīng)的參考塊寫入?yún)⒖紙D像數(shù)據(jù)緩沖器134b,就會使“t”加“1”或加“2”,這樣,參考圖像數(shù)據(jù)緩沖器134b內(nèi)的參考塊寫入目的地區(qū)就會移到下一列或下下一列。
(ii)運動檢測控制單元132b對目標(biāo)塊“1”到“64”重復(fù)并且并行執(zhí)行下面的操作(a)和操作(b)。運動檢測控制單元132b可以獨立控制存儲器161到165,因為運動檢測控制單元132b和參考圖像數(shù)據(jù)緩沖器134b中的存儲器161到165是通過獨立總線171到175分別連接的。因此,運動檢測控制單元132b可以在從指定為檢測區(qū)的塊區(qū)內(nèi)讀取數(shù)據(jù)的同時,向檢測區(qū)以外的塊區(qū)內(nèi)寫入數(shù)據(jù)。
(a)各目標(biāo)塊的運動矢量檢測運動檢測控制單元132b通過下面的操作①到操作③控制各目標(biāo)塊的運動矢量檢測。
①如圖16所示,在運動矢量的檢測過程中,運動矢量計算單元136所采用的邏輯地址空間234b包括按照3行3列矩陣的形式排列的多個邏輯塊區(qū)。第一行從左至右的三個邏輯塊區(qū)分配的邏輯地址分別為“1”、“2”、“3”。第二行從左至右的三個邏輯塊區(qū)分配的邏輯地址分別為“4”、“5”、“6”。第三行從左至右的三個塊區(qū)分配的邏輯地址分別為“7”、“8”、“9”。
邏輯地址與參考圖像數(shù)據(jù)緩沖器134b中的物理地址不同。運動檢測控制單元132b通過公式“m=i+I+k”計算與邏輯地址“i”(i=1到12)相對應(yīng)的物理地址“m”(m=1到15)。目標(biāo)塊“n”的檢測區(qū)是由九個塊區(qū)組成的區(qū)域,其中各塊區(qū)都具有經(jīng)計算得出的物理地址“m”。檢測區(qū)內(nèi)的塊區(qū)與邏輯地址空間內(nèi)的邏輯塊區(qū)相互對應(yīng),使得與目標(biāo)塊具有相同塊編號的參考塊放置在邏輯地址空間的中央。參數(shù)“I”由邏輯地址“i”確定。如果i=1到3,則I=0。如果i=4到6,則I=2。如果i=7到9,I=4。注意,如果i=1到3且m>5,則m=m-5。另外,如果i=4到6且m>10,則m=m-5。如果i=7到9且m>15,則m=m-5。
如上所述,參數(shù)k是取值范圍為0到4的變量。檢測區(qū)根據(jù)參數(shù)“k”移到下一列或下下一列。下面將參照圖16描述檢測區(qū)是如何根據(jù)參數(shù)“k”的變化進(jìn)行轉(zhuǎn)換的。
當(dāng)k=0時,邏輯地址“i”和物理地址“m”之間的關(guān)系為“m=i+I”,這時,如圖16A所示,由物理地址分別為“1”、“2”、“3”、“6”、“7”、“8”、“11”、“12”和“13”的塊區(qū)組成的區(qū)域70將成為檢測區(qū)。
當(dāng)k=1時,邏輯地址“i”和物理地址“m”之間的關(guān)系為“m=i+I+1”,這時,如圖16B所示,由物理地址分別為“2”、“3”、“4”、“7”、“8”、“9”、“12”、“13”和“14”的塊區(qū)組成的區(qū)域71將成為檢測區(qū)。當(dāng)k=2時,邏輯地址“i”和物理地址“m”之間的關(guān)系為“m=i+I+2”,這時,如圖16C所示,由物理地址分別為“3”、“4”、“5”、“8”、“9”、“10”、“13”、“14”和“15”的塊區(qū)組成的區(qū)域72將成為檢測區(qū)。當(dāng)k=3時,邏輯地址“i”和物理地址“m”之間的關(guān)系為“m=i+I+3”,這時,如圖16D所示,由物理地址分別為“4”、“5”、“9”、“10”、“14”和“15”的塊區(qū)組成的區(qū)域73a和由邏輯地址分別為“1”、“6”和“11”的塊區(qū)組成的區(qū)域73b將成為檢測區(qū)。當(dāng)k=4時,邏輯地址“i”和物理地址“m”之間的關(guān)系為“m=i+I+4”,這時,如圖16E所示,由物理地址分別為“5”、“10”和“15”的塊區(qū)組成的區(qū)域74a和由物理地址分別為“1”、“2”、“6”、“7”、“11”和“12”的塊區(qū)組成的區(qū)域74b將成為檢測區(qū)。
②接下來,運動檢測控制單元132b會將計算范圍和執(zhí)行運動矢量計算的指令輸出到運動矢量計算單元136。這里的計算范圍與第一實施例中相同,因此省略了相關(guān)說明。
然后,運動檢測控制單元132b將重復(fù)執(zhí)行②-1到②-4直到從運動矢量計算單元136接收到表示運動矢量檢測已經(jīng)結(jié)束的控制信號為止。接收到表示運動矢量檢測已經(jīng)結(jié)束的控制信號后,運動檢測控制單元132b命令輸出單元將檢測到的運動矢量輸出到預(yù)測圖像生成單元123和可變長度編碼單元107。
②-1運動檢測控制單元132b從運動矢量計算單元136接收目標(biāo)塊上的像素位置(p,j)和邏輯地址空間內(nèi)的坐標(biāo)(x’,y’)。目標(biāo)塊上的像素位置(p,j)和邏輯地址空間內(nèi)的坐標(biāo)(x’,y’)與第一實施例中相同,因此這里省略了相關(guān)說明。
②-2運動檢測控制單元132b從目標(biāo)圖像數(shù)據(jù)緩沖器135中讀取與接收到的像素位置(p,j)相對應(yīng)的圖像數(shù)據(jù),并將讀取的數(shù)據(jù)輸出到運動矢量計算單元136。
②-3運動檢測控制單元132b將接收到的邏輯空間內(nèi)的坐標(biāo)(x’,y’)轉(zhuǎn)換成單元地址。
更確切地說,首先,運動檢測控制單元132b判斷參數(shù)“k”的值。如果k=0,則運動檢測控制單元132b計算X=x’+16和Y=y(tǒng)’+16的值。如果k=1,則運動檢測控制單元132b計算X=x’+32和Y=y(tǒng)’+16的值。如果k=2,則運動檢測控制單元132b計算X=x’+48和Y=y(tǒng)’+16的值。如果k=3,則運動檢測控制單元132b計算X=x’+64(x’≤15),X=x’-16(x’≥16)和Y=y(tǒng)’+16的值。如果k=4,則運動檢測控制單元132b計算X=x’+80(x’≤-1),X=x’(x’≥0)和Y=y(tǒng)’+16的值。
這里,X與構(gòu)成參考圖像數(shù)據(jù)緩沖器134b的48行80列存儲單元中的每一列逐一對應(yīng),并且表示包括將要進(jìn)行計算的單元地址所屬的存儲單元的列。Y與構(gòu)成參考圖像數(shù)據(jù)緩沖器134b的48行80列存儲單元中的每一行逐一對應(yīng),并且表示包括將要進(jìn)行計算的單元地址所屬的存儲單元的行。(0≤X≤79,0≤Y≤47)然后,運動檢測控制單元132b計算單元地址“X+80Y”。
②-4運動檢測控制單元132b讀取存儲在具有計算的單元地址的存儲單元中的圖像數(shù)據(jù),并將讀取的像素數(shù)據(jù)輸出到運動矢量計算單元136。
③運動檢測控制單元132b判斷PAT標(biāo)志如果PAT標(biāo)志為“1001”或“0001”(表示位于宏塊行中的最后一目標(biāo)塊),運動檢測控制單元132b使參數(shù)“k”加“2”。如果PAT標(biāo)志為“1010”、“1000”、“0000”、“0110”和“0100”中的任何一個,那么運動檢測控制單元132b使參數(shù)“k”加“1”。
執(zhí)行完上述計算后,運動檢測控制單元132b判斷是否滿足k≥5。如果k≥5,運動檢測控制單元132b就從參數(shù)“k”上減“5”。如果k<5,則運動檢測控制單元132b就跳過該步驟,并且執(zhí)行下一步。
如果經(jīng)判斷,PAT標(biāo)志為“0101”(目標(biāo)塊“64”),那么運動檢測控制單元132b跳過上述加法操作,并結(jié)束一幀的運動矢量檢測。
(b)寫入與下一目標(biāo)塊相對應(yīng)的參考塊運動檢測控制單元132b按照下述操作將與運動檢測的下一目標(biāo)相對應(yīng)的參考塊寫入?yún)⒖紙D像數(shù)據(jù)緩沖器134b。
運動檢測控制單元132b判斷PAT標(biāo)志是否為“0101”(目標(biāo)塊“64”)。如果PAT標(biāo)志為“0101”,結(jié)束操作(a),一幀的運動矢量檢測結(jié)束。
如果PAT標(biāo)志不是“0101”,那么運動檢測控制單元132b使塊編號“n”加“1”,從而求得n’=n+1的值,并利用塊變量“n’”設(shè)置PAT標(biāo)志。
然后,運動檢測控制單元132b將塊變量“n’”的值和PAT標(biāo)志輸出到參考幀存儲器控制單元133,并且對參考塊的讀取以及將讀取的參考塊輸出到參考圖像數(shù)據(jù)緩沖器134b進(jìn)行控制。
接下來,運動檢測控制單元132b根據(jù)下述操作在參考圖像數(shù)據(jù)緩沖器134b中選擇參考塊的寫入目的地。
首先,運動檢測控制單元132b判斷參數(shù)“t”是否滿足t≥10。如果t≥10,運動檢測控制單元132b就從“t”上減“5”。如果t<10,運動檢測控制單元132b就會跳過這一減法操作,并且執(zhí)行下一步操作。
接下來,運動檢測控制單元132b采取下述方式,根據(jù)塊變量“n’”的PAT標(biāo)志,在參考圖像數(shù)據(jù)緩沖器134b中選擇參考塊的寫入目的地。
如果塊變量“n’”的PAT標(biāo)志為“1000”,運動檢測控制單元132b將物理地址分別為“t+1”和“t+6”的塊區(qū)指定為寫入目的地區(qū),并使參數(shù)“t”加“1”。
如果塊變量“n’”的PAT標(biāo)志為“0010”,運動檢測控制單元132b將物理地址分別為“t-4”、“t-3”、“t+1”、“t+2”、“t+6”和“t+7”的塊區(qū)指定為寫入目的地區(qū)。這時,運動檢測控制單元132b判斷是否滿足“t+7≥16”。如果t+7≥16,運動檢測控制單元132b將物理地址為“t-8”的塊區(qū)指定為寫入目的地區(qū),而不是將物理地址為“t+7”的塊區(qū)指定為寫入目的地區(qū)。如果t+7<16,運動檢測控制單元132b就跳過這一操作,并使參數(shù)“t”加“2”。
如果塊變量“n’”的PAT標(biāo)志為“0000”,運動檢測控制單元132b將物理地址分別為“t-4”、“t+1”和“t+6”的塊區(qū)指定為寫入目的地區(qū),并使參數(shù)“t”加“1”。
如果塊變量“n’”的PAT標(biāo)志為“0110”,運動檢測控制單元132b將物理地址分別為“t-4”、“t-3”、“t+1”和“t+2”的塊區(qū)指定為寫入目的地區(qū)。這時,運動檢測控制單元1 32b判斷是否滿足“t+2≥11”。如果t+2≥11,運動檢測單元132b將物理地址為“t-8”的塊區(qū)指定為寫入目的地區(qū),而不是將物理地址為“t+2”的塊區(qū)指定為寫入目的地區(qū)。如果t+2<11,運動檢測控制單元132b就跳過該操作,并使參數(shù)“t”加“2”。
如果塊變量“n’”的PAT標(biāo)志為“0100”,運動檢測控制單元132b將物理地址分別為“t-4”和“t+1”的塊區(qū)指定為寫入目的地區(qū),并使參數(shù)“t”加“1”。
如果塊變量“n’”的PAT標(biāo)志為“1001”或“0001”,運動檢測控制單元132b將不選擇任何塊區(qū)作為寫入目的地區(qū),這時只需使參數(shù)“t”加“1”。
如上所述,運動檢測控制單元132b根據(jù)“n’”的PAT標(biāo)志將參考幀存儲器控制單元133輸出的參考塊寫入指定為寫入目的地的塊區(qū)。
在接收到表示已經(jīng)接收到了來自輸入單元137的目標(biāo)塊的控制信號后,運動檢測控制單元132b使塊變量“n”上加“1”,并根據(jù)加法運算得出的塊變量“n”設(shè)置PAT標(biāo)志。
2.3運動檢測單元130b的操作(1)檢測一幀運動矢量的操作下面將參照圖17和圖18所示的流程圖對一幀運動矢量檢測的相關(guān)操作進(jìn)行說明。
輸入單元137從分類單元102接收到目標(biāo)塊“1”和表示幀圖像開始的控制信號,將接收到的目標(biāo)塊“1”寫入目標(biāo)圖像數(shù)據(jù)緩沖器135,并將表示幀圖像開始的控制信號輸出到運動檢測控制單元132b。運動檢測控制單元132b將塊變量“n”設(shè)置為“n=1”并根據(jù)塊變量將PAT標(biāo)志設(shè)置為“1010”(步驟S401)。
運動檢測控制單元132b將設(shè)置好的PAT標(biāo)志“1010”和塊編號“n=1”輸出到參考幀存儲器控制單元133,并控制參考塊的讀取并將讀取的參考塊輸出到參考圖像數(shù)據(jù)緩沖器134b(步驟S402)。
參考幀存儲器控制單元133根據(jù)PAT標(biāo)志和從運動檢測控制單元132b接收到的塊編號“n=1”選擇將要讀取的參考塊(步驟S403)。然后,參考幀存儲器控制單元133讀取選定的參考塊,并將讀取的參考塊輸出到參考圖像數(shù)據(jù)緩沖器134b(步驟S404)。由參考幀存儲器控制單元133執(zhí)行的選擇參考塊的操作與第一實施例中的相同,因此,這里省略了相關(guān)說明。
接下來,參考幀存儲器控制單元133將步驟S404中輸出的參考塊寫入到參考圖像數(shù)據(jù)緩沖器134中物理地址分別為“7”、“8”、“12”和“13”的塊區(qū)中(步驟S405)。
然后,參考幀存儲器控制單元133將參數(shù)“t”設(shè)為“8”,并將參數(shù)“k”設(shè)為“0”(步驟S406)。
在步驟S407到S428中,步驟S410到S427中的操作反復(fù)執(zhí)行,直到構(gòu)成一個目標(biāo)幀的塊編碼分別為1到64的所有目標(biāo)塊都經(jīng)過處理為止。
運動檢測控制單元132b命令運動矢量計算單元136檢測運動矢量,運動矢量計算單元136計算運動矢量(步驟S410)。
步驟S420到S427與步驟S410同時進(jìn)行。首先,運動檢測控制單元132b判斷塊變量“n”的PAT標(biāo)志是否為“0101”(步驟S420)。如果PAT為“0101”,運動檢測控制單元132b結(jié)束步驟S410,同時也結(jié)束對各目標(biāo)塊運動矢量檢測的重復(fù)操作(步驟S428)。
如果PAT標(biāo)志不是“0101”(步驟S420),運動檢測控制單元132b計算塊變量n’=n+1的值,并根據(jù)塊變量n’設(shè)置PAT標(biāo)志(步驟S421)。
然后,運動檢測控制單元1 32b將塊變量“n’”和“n’”的PAT標(biāo)志輸出到參考幀存儲器控制單元133(步驟S422)。
參考幀存儲器控制單元133根據(jù)接收到的PAT標(biāo)志和塊變量n’選擇將要讀取的參考塊(步驟S423),并將選定的參考塊輸出到參考圖像數(shù)據(jù)緩沖器134b(步驟S424)。
然后,運動檢測控制單元132b在參考圖像數(shù)據(jù)緩沖器134b中選擇寫入目的地,步驟S424中輸出的參考塊將被寫入選定的寫入目的地區(qū)中(步驟S425)。
運動檢測控制單元132b將步驟S424中輸出的參考塊存儲到步驟S425指定為寫入目的地的塊區(qū)內(nèi)(步驟S426)。
輸入單元137接收到來自分類單元102的目標(biāo)塊“n+1”,將接收到的目標(biāo)塊“n+1”寫入目標(biāo)圖像數(shù)據(jù)緩沖器135,并將表示已經(jīng)接收到目標(biāo)塊的控制信號輸出到運動檢測控制單元132b。接收到表示已經(jīng)接收到了目標(biāo)塊的控制信號后,運動檢測控制單元132b使塊變量“n”加“1”,并利用加法運算得出的塊變量“n”設(shè)置PAT標(biāo)志(步驟S427)。
注意,在圖17的步驟S403和圖18的步驟S423中執(zhí)行的有關(guān)參考塊選擇的操作與第一實施例中相同,因此,這里省略了相關(guān)說明。
(2)一個目標(biāo)塊的運動矢量檢測下面將參照圖19所示的流程圖說明一個目標(biāo)塊的運動矢量檢測的相關(guān)操作。注意,下面對圖18中的步驟S410進(jìn)行詳細(xì)描述。
運動檢測控制單元132b利用參數(shù)“I”和參數(shù)“k”,通過公式“m=i+I+k”計算與邏輯地址“i”相對應(yīng)的物理地址“m”(步驟S440)。參數(shù)“I”隨著邏輯地址“i”的不同而變化。如果i=1到3,則I=0。如果i=4到6,則I=2。如果i=7到9,則i=4。參數(shù)“k”的取值范圍為0到4,并且隨著一幀運動矢量檢測的進(jìn)行而變化。注意,當(dāng)i=1到3且m>5時,m=m-5。當(dāng)i=4到6且m>10時,m=m-5。當(dāng)i=7到9且m>15時,m=m-5。檢測區(qū)是由上面公式推導(dǎo)出的九個物理地址所代表的塊區(qū)。
接下來,運動矢量檢測控制單元132b將計算范圍和運動矢量檢測的指令輸出到運動矢量計算單元136(步驟S441)。
運動矢量計算單元136接收來自運動檢測控制單元132b的指令,并計算包括在計算范圍內(nèi)的運動矢量(步驟S442)。
運動矢量計算結(jié)束后,運動檢測控制單元132b通過輸出單元138將計算的運動矢量輸出到預(yù)測圖像生成單元123和可變長度編碼單元107(步驟S443)。
然后,運動檢測控制單元132b判斷塊變量“n”的PAT標(biāo)志。如果PAT標(biāo)志為“1001”或者“0001”,運動檢測控制單元132b使參數(shù)“k”加“2”(步驟S446)。如果PAT標(biāo)志為“1010”、“1000”、“0010”、“0000”、“0110”和“0100”中的任何一個,運動檢測控制單元132b使參數(shù)“k”加“1”(步驟S447)。這時,運動檢測控制單元132b判斷是否滿足k≥5(步驟S450)。如果k≥5,運動檢測控制單元132b使“k”減“5”(步驟S451)。如果k<5(步驟S450),運動檢測控制單元132b結(jié)束目標(biāo)塊的運動矢量檢測,并執(zhí)行步驟S428。
如果經(jīng)判斷,PAT標(biāo)志為“0101”(步驟S445),運動檢測控制單元132b跳過這一操作,并且執(zhí)行步驟S428。
(3)參考塊寫入目的地的選擇下面將參照圖20所示的流程圖對參考圖像數(shù)據(jù)緩沖器134中寫入目的地的塊區(qū)選擇進(jìn)行說明。注意,下面是對圖18中步驟S425的詳細(xì)說明。
運動檢測控制單元132b根據(jù)塊變量“n’”的PAT標(biāo)志和參數(shù)“t”選擇寫入目的地。
首先,運動檢測控制單元132b判斷參數(shù)“t”是否滿足t≥10(步驟S460)。如果t≥10,運動檢測控制單元使參數(shù)“t”減“5”,即“t=t-5”(步驟S461)。如果t<10,運動檢測控制單元132b跳過該操作,并執(zhí)行步驟S462。
然后,運動檢測控制單元132b判斷塊變量“n’”的PAT標(biāo)志(步驟S462),并根據(jù)PAT標(biāo)志選擇寫入目的地。
如果PAT標(biāo)志為“1000”(步驟S462),運動檢測控制單元132b將物理地址分別為“t+1”和“t+6”的塊區(qū)指定為寫入目的地區(qū)(步驟S463),使參數(shù)“t”加“1”(步驟S464)并結(jié)束寫入目的地的選擇。這時,處理過程跳轉(zhuǎn)至步驟S426。
如果塊變量“n’”的PAT標(biāo)志為“0010”(步驟S462),運動檢測控制單元132b將物理地址分別為“t-4”、“t-3”、“t+1”、“t+2”、“t+6”和“t+7”的塊區(qū)指定為寫入目的地區(qū)(步驟S465)。然后,運動檢測控制單元132b判斷是否滿足t+7≥16(步驟S466)。如果t+7≥16,運動檢測控制單元132b指定物理地址為“t-8”的塊區(qū)為寫入目的地,而不是指定物理地址為“t+7”的塊區(qū)為寫入目的地(步驟S467)。如果t+7<16,運動檢測控制單元132b就跳過這一操作并執(zhí)行步驟S468。然后,運動檢測控制單元132b使參數(shù)“t”加“2”(步驟S468),結(jié)束寫入目的地的選擇,并且執(zhí)行步驟S426。
如果塊變量“n’”的PAT標(biāo)志為“0000”(步驟S462),運動檢測控制單元132b指定物理地址分別為“t-4”、“t+1”和“t+6”的塊區(qū)為寫入目的地區(qū)(步驟S470),使參數(shù)“t”加“1”(步驟471),結(jié)束寫入目的地的選擇,并執(zhí)行步驟S426。
如果塊變量“n’”的PAT標(biāo)志為“0110”(步驟S462),運動檢測控制單元132b將物理地址分別為“t-4”、“t-3”、“t+1”和“t+2”的塊區(qū)指定為寫入目的地區(qū)(步驟S475)。然后,運動檢測控制單元132b判斷是否滿足t+2≥11(步驟S476)。如果t+2≥11,運動檢測控制單元132b將物理地址為“t-8”的塊區(qū)指定為寫入目的地,而不是將物理地址為“t+2”的塊區(qū)指定為寫入目的地(步驟S477)。如果t+2<11,運動檢測控制單元132b就跳過該操作,并且執(zhí)行步驟S478。然后,運動檢測控制單元132b使參數(shù)“t”加“2”,結(jié)束寫入目的地的選擇,并執(zhí)行步驟S426。
如果塊變量“n’”的PAT標(biāo)志為“0100”(步驟S462),運動檢測控制單元132b將物理地址分別為“t-4”和“t+1”的塊區(qū)指定為寫入目的地區(qū)(步驟S480),使參數(shù)“t”加“1”(步驟S481),結(jié)束寫入目的地區(qū)的選擇,并且執(zhí)行步驟S426。
如果塊變量“n’”的PAT標(biāo)志為“1001”或“0001”(步驟S462),運動檢測控制單元132b不將任何塊區(qū)指定為寫入目的地區(qū),并將直接執(zhí)行步驟S481。
(4)由運動檢測控制單元132b執(zhí)行的改變檢測區(qū)的操作參考圖像數(shù)據(jù)緩沖器134b中的檢測區(qū)和參考塊的寫入目的地區(qū)通過上述計算設(shè)定,每處理完一個目標(biāo)塊,參考塊的寫入目的地就移至下一區(qū)域。圖21示出了在對一目標(biāo)幀的目標(biāo)塊進(jìn)行運動矢量檢測的過程中,檢測區(qū)和參考塊寫入目的地區(qū)域的轉(zhuǎn)換。圖21中的數(shù)字表示存儲在各塊區(qū)中的參考塊的塊編碼。下文對改變參考圖像數(shù)據(jù)緩沖器134b中的寫入目的地區(qū)和運動矢量檢測區(qū)的操作進(jìn)行了說明。
目標(biāo)塊“1”到“6”的檢測與第一實施例中執(zhí)行的檢測相同,在這一過程中,檢測區(qū)和目標(biāo)塊區(qū)每次移動一行。因此,這里省略了相關(guān)說明。下文對目標(biāo)塊“7”和其后目標(biāo)塊的檢測進(jìn)行說明。
如圖21A所示,運動檢測控制單元132b將包括3行3列塊區(qū)的區(qū)域40設(shè)置為檢測區(qū),并檢測目標(biāo)塊“6”的運動矢量。位于區(qū)域40中央的塊區(qū)將存儲參考塊“6”。與此同時,在檢測目標(biāo)塊“7”的運動矢量所需的參考塊當(dāng)中,將未存儲在參考圖像數(shù)據(jù)緩沖器134b內(nèi)的參考塊“8”和參考塊“16”寫入物理地址分別為“9”和“14”的塊區(qū)內(nèi)。
如圖21B所示,當(dāng)目標(biāo)塊“6”的運動矢量檢測結(jié)束后,運動檢測控制單元132b將包括3行3列塊區(qū)的區(qū)域42設(shè)置為檢測區(qū),并檢測目標(biāo)塊“7”的運動矢量。位于區(qū)域42中央的塊區(qū)將存儲參考塊“7”。這時,已經(jīng)將檢測目標(biāo)塊“8”所需的參考塊寫入了參考圖像數(shù)據(jù)緩沖器134b。因此,并為發(fā)生從參考幀存儲器131到參考圖像數(shù)據(jù)緩沖器134b的數(shù)據(jù)轉(zhuǎn)移。
如圖21C所示,在結(jié)束對目標(biāo)塊“7”的運動矢量檢測后,運動檢測控制單元132b將包括3行3列塊區(qū)的區(qū)域43設(shè)置為檢測區(qū),并檢測目標(biāo)塊“8”的運動矢量。位于區(qū)域43中央的塊區(qū)將存儲目標(biāo)塊“8”。與此同時,檢測目標(biāo)塊“9”的運動矢量所需的參考塊“1”、“2”、“9”、“10”、“17”和“18”將被寫入物理地址分別為“1”、“2”、“6”、“7”、“11”和“12”的塊區(qū)。
如圖21D所示,在結(jié)束對目標(biāo)塊“8”的運動矢量檢測后,運動檢測控制單元132b將包括3行1列塊區(qū)的區(qū)域45a和包含3行2列塊區(qū)的區(qū)域45b設(shè)置為檢測區(qū),并執(zhí)行運動矢量檢測。區(qū)域45b包括存儲參考塊“9”的塊區(qū)。與此同時,在檢測目標(biāo)塊“10”的運動矢量所需的參考塊中,將未存儲在參考圖像數(shù)據(jù)緩沖器134b中的參考塊“3”、“11”和“19”寫入物理地址分別為“3”、“8”和“13”的塊區(qū)中。
按照這種方式,設(shè)置檢測區(qū)和目的地塊區(qū)的操作通過每次移動一行或兩行的方式重復(fù)執(zhí)行,直到構(gòu)成一幀的六十四個目標(biāo)塊的運動矢量檢測全部結(jié)束為止。
2.5第二實施例的效果根據(jù)本發(fā)明,參考圖像數(shù)據(jù)緩沖器134b包括5個存儲器,即存儲器161到165??梢酝ㄟ^運動檢測控制單元132b對它們進(jìn)行獨立控制。
運動檢測控制單元132b在參考圖像數(shù)據(jù)緩沖器134b中指定檢測區(qū),讀取存儲在檢測區(qū)中的參考塊,并將讀取的參考塊輸出到運動矢量計算單元136。與此同時,運動檢測控制單元132b將檢測下一目標(biāo)塊的運動矢量所需的參考塊寫入未被指定為檢測區(qū)的區(qū)域內(nèi)。這時,參考幀存儲器控制單元133對參考塊進(jìn)行選擇,以確保在參考圖像數(shù)據(jù)緩沖器134b中不會出現(xiàn)參考塊重復(fù)的現(xiàn)象。
借助這一結(jié)構(gòu),在每個目標(biāo)幀的運動矢量檢測過程中,由參考幀存儲器131向參考圖像數(shù)據(jù)緩沖器134b轉(zhuǎn)移的參考塊的總數(shù)為176個,這意味著數(shù)據(jù)流量的顯著降低。
而且,憑借第二實施例中描述的結(jié)構(gòu),一幀圖像的運動矢量檢測速度要高于第一實施例中的檢測速度。
如圖13所示,由參考幀存儲器131最新轉(zhuǎn)移到圖像數(shù)據(jù)緩沖器134b的參考塊的數(shù)量應(yīng)為位于宏塊行頂部的四個或六個。但是,在第一實施例中,參考圖像數(shù)據(jù)緩沖器134包含3行4列的塊區(qū),而且未被指定為檢測區(qū)的塊區(qū)所具有的容量只能存儲3個宏塊。因此,在檢測宏塊行最后一個目標(biāo)塊的運動矢量時,不可能將對應(yīng)于下一宏塊行頂部的目標(biāo)塊的參考塊寫入?yún)⒖紙D像數(shù)據(jù)緩沖器134。這意味著在第一實施例中,在結(jié)束某一宏塊行最后一目標(biāo)塊的運動矢量檢測之后,才能將對應(yīng)于下一宏塊行頂部目標(biāo)塊的參考塊寫入?yún)⒖紙D像數(shù)據(jù)緩沖器134。因此,需要等待周期。
在第二實施例中,參考圖像數(shù)據(jù)緩沖器134b包括3行5列塊區(qū),總是有六個宏塊的塊區(qū)未被指定為檢測區(qū)。因此,可以在檢測宏塊行最后一個目標(biāo)塊的運動矢量的過程中,將對應(yīng)于下一宏塊行頂部目標(biāo)塊的參考塊寫入?yún)⒖紙D像數(shù)據(jù)緩沖器134b。這表明在第一實施例中需要的等待周期在第二實施例中并不存在。對于構(gòu)成目標(biāo)幀的六十四個目標(biāo)塊而言,運動矢量檢測和對應(yīng)于下一個目標(biāo)塊的參考塊的寫入都同時進(jìn)行。
上述方法實現(xiàn)了一幀運動矢量檢測速度的提高。
3.變型前面基于兩個實施例對本發(fā)明進(jìn)行了解釋。但是,本發(fā)明肯定不局限于上述實施例。下述內(nèi)容也包含在本發(fā)明當(dāng)中。
(1)可以按照下述說明對第一實施例和第二實施例中參考幀存儲器131的數(shù)據(jù)寫入和數(shù)據(jù)讀取進(jìn)行改動。
(A)如圖22所示,參考幀存儲器131包含16384個存儲單元,這些存儲單元按照64行256列的矩陣形式排列。存儲單元的位置通過行地址1到64和列地址1到256確定,各存儲單元的容量為8字節(jié)。為簡化起見,用“行r”表示行地址“r”(r=1到64)并且用“列c”代表列地址“c”(c=1到256)。
在構(gòu)成參考塊“1”的16行16列像素數(shù)據(jù)中,第1行的16個像素將分別存儲在指定為行“1”,列“1”到列“16”的存儲單元中。第2行的16個像素將分別存儲在由行“1”,列“17”到列“32”確定的存儲單元中。依此類推,第3行到第16行的像素數(shù)據(jù)將存儲在由行“1”,列“33”到列“256”確定的存儲單元中。
和參考塊“1”的分配方式相同,構(gòu)成參考塊“2”的像素數(shù)據(jù)將被存儲到由行“2”,列“1”到列“256”確定的存儲單元內(nèi)。
通過這種方式,參考幀中的參考塊“3”到“64”將被存儲到包括在一列中的由行“3”到行“64”確定的存儲單元中,其中每行包括256個存儲單元。
(B)加法單元124加法單元124按照第1行到第16行的順序,將16行16列像素數(shù)據(jù)輸出到參考幀存儲器131。
如圖23所示,加法單元輸出與時鐘信號231保持同步的指令241、地址251和數(shù)據(jù)261。
指令241a用于輸出表示操作開始的指令“開始”。指令241b代表讀取和寫入由參考幀存儲器131輸出的指令。如果該指令是針對讀取的,就會輸出“讀取”,如果是針對寫入的,就會輸出“寫入”。
(i)存儲頁模式下的寫入下面將參照圖23對存儲頁模式下的寫入操作進(jìn)行描述,在存儲頁模式下,通過將行固定,只輸出列的方式對一行中的存儲單元進(jìn)行訪問。
加法單元124在“t1”時刻將表示操作開始的指令241a(開始)輸出到參考幀存儲器131。與此同時,加法單元124輸出行地址251a(行“1”),即數(shù)據(jù)將被寫入的該存儲單元的地址。
加法單元124在時刻“t3”輸出指令241b(寫入)。與此同時,加法單元124輸出列地址251b(列1),即數(shù)據(jù)將被寫入的該存儲單元的地址。
加法單元124在時刻“t5”輸出像素數(shù)據(jù)261a。
加法單元124在時刻“t7”輸出列地址251c(列“2”),即下一次輸出的存儲單元的地址,并在時刻“t9”輸出像素數(shù)據(jù)261b。
采用這種方式,不斷重復(fù)與時鐘信號231同步的列和像素數(shù)據(jù)的輸出,就可以將像素數(shù)據(jù)存儲到由行“1”和列“3”到列“256”確定的存儲單元中。如果構(gòu)成參考塊“1”的256塊像素數(shù)據(jù)分別存儲到由行“1”和列“1”到列“256”確定的存儲單元中,加法單元124就會輸出行“2”。然后,加法單元124執(zhí)行構(gòu)成參考塊“2”的像素數(shù)據(jù)的輸出。
通過這種方式,參考塊“3”到“64”將被輸出到參考幀存儲器131中行“3”到行“64”的存儲單元中,構(gòu)成該參考幀的所有64個參考塊都將被輸出到參考幀存儲器131。
也可以采用下面的方法(ii)。
(ii)脈沖模式下的寫入下面將參照圖24對脈沖模式下的寫入進(jìn)行說明,在這一模式下,只輸出位于訪問起始處的存儲單元的行和列,在所述輸出結(jié)束后,會有多個后繼存儲單元被訪問。
如圖24所示,加法單元在與時鐘信號232保持同步的條件下,將地址252和像素數(shù)據(jù)262輸出到參考幀存儲器131。
指令242a代表表示操作開始的指令“開始”的輸出。指令242b代表輸出到參考幀存儲器131的讀取或?qū)懭胫噶?。如果這一指令是針對讀取的,指令242b將為“讀取”,如果這一指令是針對寫入的,指令242b將為“寫入”。
加法單元124在時刻“t1”輸出指令242a(開始),與此同時輸出寫入目的地存儲單元的行地址252a(行1)。然后,加法單元124會在時刻“t3”輸出指令242b(寫入),與此同時輸出寫入目的地存儲單元的列地址252b(列“1”)。
加法單元124在時刻“t5”輸出像素數(shù)據(jù)262a,在時刻“t6”輸出像素數(shù)據(jù)262b。同樣地,加法單元124按順序輸出與時鐘信號232保持同步的像素數(shù)據(jù)262c、262d、262e……。輸出的像素數(shù)據(jù)262a、262b、262c……將被分別存儲在由行“1”和列“1”到列“256”確定的存儲單元內(nèi)。
如果構(gòu)成參考塊“1”的所有像素數(shù)據(jù)都被分別存儲在由行“1”和列“1”到列“256”確定的存儲單元內(nèi),那么加法單元就輸出行“2”,并且數(shù)據(jù)處理移至對構(gòu)成參考塊“2”的像素數(shù)據(jù)的輸出上。
同樣地,參考塊“3”到“64”將被輸出到參考幀存儲器131中行“3”到行“64”的存儲單元內(nèi),這樣,構(gòu)成參考幀的所有六十四個參考塊都被寫入?yún)⒖紟鎯ζ?31中。
(C)參考幀存儲器控制單元133如上所述,參考幀存儲器控制單元133選擇參考塊,該參考塊根據(jù)從運動檢測控制單元132接收到的塊變量和PAT標(biāo)志由參考幀存儲器131輸出至參考圖像數(shù)據(jù)緩沖器134。
然后,參考幀存儲器控制單元133按照下述方式從參考幀存儲器131中讀取選定的參考塊。
例如,這里接收到了塊變量“1”和PAT標(biāo)志“1010”。在這種情況下,參考幀存儲器控制單元133選擇參考塊“1”、“2”、“9”和“10”,并從參考幀存儲器131中讀取這些參考塊。
(i)存儲頁模式下的讀取下面將參照圖23描述由參考幀存儲器控制單元133執(zhí)行的從參考幀存儲器131中進(jìn)行數(shù)據(jù)讀取的操作。
參考幀存儲器控制單元133在時刻“t1”將表示操作開始的指令251a(開始)輸出到參考幀存儲器131,與此同時輸出讀取源單元的行地址251a(行“1”)。
參考幀存儲器控制單元133在時刻“t3”輸出指令241b(讀取),與此同時輸出讀取源單元的列地址251b(列“1”)。
參考幀存儲器控制單元133在時刻“t5”接收到像素數(shù)據(jù)261a。
參考幀存儲器控制單元133在時刻“t7”輸出下一次讀取的存儲單元的列地址251c(列“2”),并在時刻“t9”接收像素數(shù)據(jù)261b。
采用這種方式,在與時鐘信號231保持同步的情況下,重復(fù)列的輸出和像素數(shù)據(jù)的接收,參考幀存儲器控制單元133接收到分別存儲在由行“1”和列“3”到列“256”確定的存儲單元內(nèi)的像素數(shù)據(jù)。
當(dāng)構(gòu)成參考塊“1”的所有256塊像素數(shù)據(jù)均從由行“1”和列“1”到列“256”確定的存儲單元輸出后,參考幀存儲器控制單元133就輸出行“2”,并且數(shù)據(jù)處理移至分別存儲在由行“2”和列“1”到列“256”確定的存儲單元內(nèi)的參考塊“2”的讀取上。
結(jié)束對參考塊“2”的讀取后,參考幀存儲器控制單元133將采取同樣的方式讀取參考塊“9”和參考塊“10”。
也可以采用下面的方法(ii)。
(ii)脈沖模式下的讀取下面將參照圖24描述如何在脈沖模式下從參考幀存儲器131中讀取數(shù)據(jù)。
參考幀存儲器控制單元133在時刻“t1”輸出指令242a(開始),與此同時,輸出讀取源存儲單元的行地址252a(行“1”)。然后,參考幀存儲器控制單元133在時刻“t3”輸出指令242b(讀取),與此同時,輸出讀取源存儲單元的列地址252b(列“1”)。
參考幀存儲器控制單元133在時刻“t5”接收到像素數(shù)據(jù)262a,并在時刻“t6”接收到像素數(shù)據(jù)262b。同樣地,參考幀存儲控制單元133會在與時鐘信號232保持同步的情況下,接收像素數(shù)據(jù)262c、262d、262e……。當(dāng)分別存儲在由行“1”和列“1”到列“256”確定的存儲單元內(nèi)的構(gòu)成參考塊“1”的所有256塊像素數(shù)據(jù)均輸出后,參考幀存儲器控制單元133就輸出行“2”,并且數(shù)據(jù)處理移至分別存儲在由列“1”到列“256”確定的存儲單元內(nèi)的構(gòu)成參考塊“2”的256塊像素數(shù)據(jù)的讀取上。
(D)變型(1)的效果(i)就存儲頁模式下執(zhí)行讀取和寫入操作而言,如果針對某一列進(jìn)行數(shù)據(jù)讀取和寫入,那么不要求加法單元124和參考幀存儲器控制單元133分別輸出由列“2”到列“256”確定的存儲單元的行。因此,省略了255個存儲單元的行輸出。
(ii)就脈沖模式下執(zhí)行讀取和寫入操作而言,在結(jié)束了確定某列存儲單元頂部存儲單元位置的行地址的輸出并輸出列“1”后,不要求加法單元124或參考幀存儲器控制單元133輸出后繼的列“2”到列“256”的地址。因此,省略了255個存儲單元的行和列的輸出。
通過省略地址的輸出,可以降低數(shù)據(jù)讀取和寫入所需的時間。
(2)在上述第一實施例中,參考圖像數(shù)據(jù)緩沖器134由四個存儲器,即存儲器“141”到“144”構(gòu)成,而且這些存儲器通過獨立的總線分別連接到參考幀存儲器131和運動檢測控制單元132上。但是,這只是一個示例性結(jié)構(gòu),還可以采用其他結(jié)構(gòu)。
例如,參考圖像數(shù)據(jù)緩沖器134可以包含12個塊區(qū),這些塊區(qū)按照3行4列的矩陣形式排列,而且可以具有用于讀取的端口和用于寫入的端口。參考圖像數(shù)據(jù)緩沖器134可以通過一條總線連接到運動檢測控制單元132和參考幀存儲器單元131。如第一實施例中所述,數(shù)據(jù)從參考圖像數(shù)據(jù)緩沖器134的檢測區(qū)內(nèi)讀取,并向檢測區(qū)外的塊區(qū)內(nèi)寫入。因此,數(shù)據(jù)的讀取和寫入不會在一個塊區(qū)內(nèi)同時發(fā)生。
同樣,在第二實施例中,參考圖像數(shù)據(jù)緩沖器134可以包含15個塊區(qū),這些塊區(qū)按照3行5列的矩陣形式排列,并且可以具有用于讀取的端口和用于寫入的端口??梢酝ㄟ^一條總線將參考圖像數(shù)據(jù)緩沖器134b連接至運動檢測控制單元132b和參考幀存儲器單元131。
(3)在上述實施例中,參考幀上的參考區(qū)由3行3列參考塊組成,其中與運動矢量檢測目標(biāo)塊具有相同編號的參考塊位于中央。但是,參考區(qū)也可以由5行5列參考塊組成。
在這種情況下,參考圖像數(shù)據(jù)緩沖器134所包含的塊區(qū)將按照5行6列的矩陣形式排列。
運動矢量檢測的執(zhí)行方式與第一實施例中相同。
(4)本發(fā)明可以是上述方法。本發(fā)明也可以是上述實施例和上述變型的結(jié)合。
盡管通過舉例的形式參照附圖對本發(fā)明進(jìn)行了充分描述,但值得注意的是,對于那些精通所屬技術(shù)領(lǐng)域的人員來講,顯然存在著多種多樣的改動和變型。因此,除非此類改動和變型與本發(fā)明的范圍相背離,否則這些改動和變型將被劃歸到本發(fā)明的范圍之內(nèi)。
行業(yè)使用范圍本發(fā)明適用于下述行業(yè)生產(chǎn)和銷售帶有移動圖像照像機功能的設(shè)備,例如數(shù)碼攝像機和配有攝像頭的便攜式電話等;以經(jīng)營、連續(xù)和重復(fù)的方式創(chuàng)建和使用圖像內(nèi)容的行業(yè),例如電影行業(yè)和媒體行業(yè)等。
權(quán)利要求
1.一種參照參考幀對包括在目標(biāo)幀中的目標(biāo)塊進(jìn)行運動矢量檢測的運動矢量檢測裝置,包括參考幀存儲單元,用于存儲由預(yù)定數(shù)量的參考塊組成的參考幀;目標(biāo)塊存儲單元,用于存儲包括在目標(biāo)幀中的目標(biāo)塊;包括檢測區(qū)和預(yù)備區(qū)的參考塊存儲單元,所述檢測區(qū)存儲多個包括與所述目標(biāo)塊相對應(yīng)的參考塊的參考塊;寫入單元,用于在包括與后繼目標(biāo)塊相對應(yīng)的參考塊在內(nèi)的多個參考塊中,讀取一個或多個未存儲在檢測區(qū)內(nèi)的參考塊,并將讀取的參考塊寫入預(yù)備區(qū),所述后繼目標(biāo)塊與所述目標(biāo)塊相鄰;以及檢測單元,用于參照存儲在所述檢測區(qū)內(nèi)的參考塊檢測目標(biāo)塊的運動矢量。
2.按照權(quán)利要求1所述的運動矢量檢測裝置,其特征在于,所述檢測單元對所述目標(biāo)塊的運動矢量檢測與所述寫入單元執(zhí)行的寫入操作并行進(jìn)行。
3.一種基于參考幀對包括在目標(biāo)幀中的目標(biāo)塊進(jìn)行運動矢量檢測的運動矢量檢測裝置,包括參考幀存儲單元,用于存儲由預(yù)定數(shù)量的參考塊組成的參考幀;目標(biāo)塊存儲單元,用于存儲包括在目標(biāo)幀中的目標(biāo)塊;參考塊存儲單元,用于存儲包括與所述目標(biāo)塊相對應(yīng)的參考塊在內(nèi)的多個參考塊;設(shè)置單元,用于基于所述目標(biāo)塊在所述目標(biāo)幀中的位置設(shè)置檢測區(qū)和預(yù)備區(qū),所述檢測區(qū)存儲包括與所述目標(biāo)塊相對應(yīng)的參考塊在內(nèi)的多個參考塊;寫入單元,用于在包括與后繼目標(biāo)塊相對應(yīng)的參考塊在內(nèi)的多個參考塊中讀取未被存儲在預(yù)備區(qū)內(nèi)的參考塊,并將讀取的參考塊寫入預(yù)備區(qū),所述后繼目標(biāo)塊與所述目標(biāo)塊相鄰,以及檢測單元,用于根據(jù)存儲在所述檢測區(qū)內(nèi)的參考塊檢測所述目標(biāo)塊的運動矢量。
4.按照權(quán)利要求3所述的運動矢量檢測裝置,其特征在于,所述檢測單元對所述目標(biāo)塊的運動矢量檢測與所述寫入單元執(zhí)行的寫入操作并行進(jìn)行。
5.按照權(quán)利要求4所述的運動矢量檢測裝置,其特征在于,所述設(shè)置單元對所述檢測區(qū)進(jìn)行設(shè)置,使得與所述目標(biāo)塊相對應(yīng)的參考塊放置在所述檢測區(qū)的中心。
6.按照權(quán)利要求5所述的運動矢量檢測裝置,其特征在于,存儲在所述參考塊存儲單元內(nèi)的各參考塊由表示存儲在所述參考塊存儲單元中的參考塊的位置的物理地址確定,而且所述檢測單元包括指定單元,用于指定表示存儲在所述檢測區(qū)內(nèi)的所述參考塊的位置的邏輯地址;轉(zhuǎn)換單元,用于將所述邏輯地址轉(zhuǎn)換為物理地址;讀取單元,用于從所述參考塊存儲單元中逐像素讀取由所述物理地址確定的參考塊;重復(fù)控制單元,用于對所述指定單元、轉(zhuǎn)換單元和讀取單元進(jìn)行重復(fù)控制,從而對所述檢測區(qū)內(nèi)的所有參考塊執(zhí)行所述指定、轉(zhuǎn)換和讀取操作;以及計算單元,用于利用讀取的參考塊和目標(biāo)塊計算所述目標(biāo)塊的運動矢量。
7.按照權(quán)利要求6所述的運動矢量檢測裝置,其特征在于,所述參考塊存儲單元存儲多個參考塊,在這些參考塊中包括與鄰接所述目標(biāo)幀邊緣的所述目標(biāo)塊相對應(yīng)的參考塊。所述設(shè)置單元將包括與所述目標(biāo)塊相對應(yīng)的參考塊在內(nèi)的多個參考塊設(shè)置為檢測區(qū)內(nèi)的一個計算范圍,以及所述檢測單元根據(jù)包括在所述檢測區(qū)的所述計算范圍內(nèi)的參考塊計算運動矢量。
8.按照權(quán)利要求3所述的運動矢量檢測裝置,其特征在于,所述參考幀存儲單元包括多個按照矩陣形式排列的存儲器單元,各存儲器單元的位置由行地址和列地址確定,各參考塊構(gòu)成存儲在多個具有相同的行地址的存儲器單元內(nèi)的參考幀,以及所述寫入單元從由相同的行地址確定的所述多個存儲器單元內(nèi)讀取所述參考塊。
9.按照權(quán)利要求3所述的運動矢量檢測裝置,其特征在于,所述參考塊存儲單元包括用于存儲3行4列參考塊的區(qū)域,以及所述設(shè)置單元將所述檢測區(qū)設(shè)置為用于存儲3行3列參考塊的區(qū)域,并將所述預(yù)備區(qū)設(shè)置為用于存儲3行1列參考塊的區(qū)域。
10.按照權(quán)利要求3所述的運動矢量檢測裝置,其特征在于,所述參考塊存儲單元包括用于存儲3行5列參考塊的區(qū)域,以及所述設(shè)置單元將所述檢測區(qū)設(shè)置為用于存儲3行3列參考塊的區(qū)域,并將所述預(yù)備區(qū)設(shè)置為用于存儲3行2列參考塊的區(qū)域。
11.一種根據(jù)參考幀檢測包括在目標(biāo)幀內(nèi)的目標(biāo)塊的運動矢量檢測方法,包括參考幀存儲步驟,存儲由預(yù)定數(shù)量的參考塊構(gòu)成的參考幀;目標(biāo)塊存儲步驟,存儲包括在目標(biāo)幀圖像內(nèi)的目標(biāo)塊;參考塊存儲步驟,存儲包括與所述目標(biāo)塊相對應(yīng)的參考塊在內(nèi)的多個參考塊;設(shè)置步驟,根據(jù)所述目標(biāo)塊在所述目標(biāo)幀中的位置,在所述參考塊存儲單元中設(shè)置檢測區(qū)和預(yù)備區(qū),所述檢測區(qū)存儲包括與所述目標(biāo)塊相對應(yīng)的參考塊在內(nèi)的多個參考塊;寫入步驟,在包括與后繼目標(biāo)塊相對應(yīng)的參考塊在內(nèi)的多個參考塊中讀取一個或多個未存儲在所述檢測區(qū)內(nèi)的參考塊,并將讀取的參考塊寫入所述預(yù)備區(qū),所述后繼目標(biāo)塊與所述目標(biāo)塊相鄰,以及檢測步驟,根據(jù)存儲在所述檢測區(qū)內(nèi)的參考塊檢測所述目標(biāo)塊的運動矢量。
12.一種根據(jù)參考幀并利用運動補償預(yù)測對包括在目標(biāo)幀中的目標(biāo)塊進(jìn)行壓縮的移動圖像照相機,包括參考幀存儲單元,用于存儲由預(yù)定數(shù)量的參考塊構(gòu)成的參考幀;目標(biāo)塊存儲單元,用于存儲包括在目標(biāo)幀中的目標(biāo)塊;參考塊存儲單元,用于存儲包括與所述目標(biāo)塊相對應(yīng)的參考塊在內(nèi)的多個參考塊;設(shè)置單元,用于根據(jù)所述目標(biāo)塊在所述目標(biāo)幀中的位置在所述參考塊存儲單元中設(shè)置檢測區(qū)和預(yù)備區(qū),所述檢測區(qū)存儲包括與所述目標(biāo)塊相對應(yīng)的所述參考塊在內(nèi)的多個參考塊;寫入單元,用于在包括與后繼目標(biāo)塊相對應(yīng)的參考塊在內(nèi)的多個參考塊中讀取一個或多個未存儲在所述檢測區(qū)內(nèi)的參考塊,并將讀取的參考塊寫入所述預(yù)備區(qū),所述后繼目標(biāo)塊與所述目標(biāo)塊相鄰,以及檢測單元,用于根據(jù)存儲在所述檢測區(qū)內(nèi)的參考塊檢測所述目標(biāo)塊的運動矢量。
全文摘要
本發(fā)明公開了一種參照參考幀對包括在目標(biāo)幀中的目標(biāo)塊進(jìn)行運動矢量檢測的運動矢量檢測裝置,該裝置包括參考幀存儲單元,存儲由預(yù)定數(shù)量的參考塊構(gòu)成的參考幀;目標(biāo)塊存儲單元,存儲包括在目標(biāo)幀中的目標(biāo)塊;參考塊存儲單元,包括檢測區(qū),存儲包括與所述目標(biāo)塊相對應(yīng)的參考塊在內(nèi)的參考塊,以及預(yù)備區(qū);寫入單元,讀取在包括與后繼目標(biāo)塊相對應(yīng)的參考塊在內(nèi)的參考塊中未被存儲在檢測區(qū)內(nèi)的參考塊,并將讀取的參考塊寫入所述預(yù)備區(qū);以及檢測單元,參照所述參考塊對運動矢量進(jìn)行檢測。
文檔編號H04N7/12GK1649416SQ200410101568
公開日2005年8月3日 申請日期2004年12月23日 優(yōu)先權(quán)日2004年1月26日
發(fā)明者高倉憲太郎, 北村臣二 申請人:松下電器產(chǎn)業(yè)株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1