專利名稱:解碼裝置中控制片內(nèi)存儲器的數(shù)據(jù)并行讀寫的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)解碼裝置,尤其涉及數(shù)據(jù)解碼裝置的片內(nèi)存 儲裝置中數(shù)據(jù)的讀寫控制方法及其裝置。
背景技術(shù):
目前視頻解碼芯片對于基于宏塊的運(yùn)動補(bǔ)償視頻解碼方案如下-由解碼數(shù)據(jù)中獲取當(dāng)前圖像或當(dāng)前幀中的一個(gè)宏塊(以下稱 "當(dāng)前塊")的信息,其中包括運(yùn)動矢量以及原始圖像中當(dāng)前塊與參 考塊之間的殘差塊數(shù)據(jù)。其中,所述運(yùn)動矢量用以指示當(dāng)前塊與參考 幀中相應(yīng)宏塊的參考塊之間的相對位置。-基于該運(yùn)動矢量在片外存儲裝置的參考幀數(shù)據(jù)中找到相應(yīng)的 參考塊數(shù)據(jù),并讀入片內(nèi)存儲裝置。其中,所述片外存儲裝置是視頻 解碼裝置外部的存儲裝置,所述片內(nèi)存儲裝置是設(shè)置在視頻解碼裝置 內(nèi)部的存儲裝置。-將參考塊數(shù)據(jù)與殘差塊數(shù)據(jù)相加,即可復(fù)原出當(dāng)前塊的原始圖 像的編碼數(shù)據(jù)。然而,實(shí)際過程中,基于運(yùn)動矢量計(jì)算出的參考塊位置信息可能 并非是整數(shù)值。此時(shí)不能將參考塊數(shù)據(jù)直接與殘差塊數(shù)據(jù)相加,而需 要由參考塊數(shù)據(jù)利用插值計(jì)算來獲取與當(dāng)前塊對應(yīng)的預(yù)測塊數(shù)據(jù)。具體的,例如當(dāng)前塊的象素位置為(x,y),運(yùn)動矢量為(a,b),則 對應(yīng)的參考塊象素位置應(yīng)為(x,, y,),其中,x,=x-a; y,=y-b,當(dāng)x,, y, 并非整數(shù)值時(shí),則不可能直接讀取相應(yīng)的象素值,只能由與之相鄰的 整數(shù)位置上的象素值進(jìn)行插值計(jì)算來獲取,通常可有2-4個(gè)象素值 來進(jìn)行插值計(jì)算,即(xl, yl ) , (xl, y2), (x2, yl), (x2, y2),其中, xl<x,<x2; yl<y,<y2。因此,在讀取參考塊數(shù)據(jù)時(shí),除與當(dāng)前塊象素 數(shù)量對應(yīng)的象素外,還需要讀取周圍的額外象素?cái)?shù)據(jù),以用于對邊緣 象素進(jìn)行插值計(jì)算。而以上過程中,運(yùn)動補(bǔ)償?shù)挠?jì)算量主要在于兩個(gè)部分其一是從片外存儲裝置讀取參考塊的圖像的編碼數(shù)據(jù);其二是對 讀取的參考塊的圖像的編碼數(shù)據(jù)進(jìn)行插值計(jì)算?,F(xiàn)在的視頻解碼裝置,特別是在手持設(shè)備的視頻解碼裝置中,片外存儲裝置訪問速度比較慢,尤其是在現(xiàn)有的采用AHB架構(gòu) (Advanced High performance BUS,高性能總線)來訪問SDRAM (Synchronous DRAM,同步動態(tài)隨機(jī)存儲器)的情況下,訪問片外存 儲裝置產(chǎn)生的延遲遠(yuǎn)大于插值計(jì)算的延遲。因此,在支持手持設(shè)備的 視頻解碼才莫塊中,MC (Motion Compensation,運(yùn)動補(bǔ)償)^殳計(jì)的瓶頸主 要是如何減少讀取參考圖像的延遲。而在現(xiàn)有技術(shù)中的視頻解碼裝置中,片內(nèi)存儲裝置只設(shè)置一個(gè)存 儲器,用于存儲由片外存儲裝置中讀取的參考塊的圖像的編碼數(shù)據(jù), 且對片外存儲裝置中的數(shù)據(jù)讀取與對所存儲的參考塊的圖像的編碼 數(shù)據(jù)的插值計(jì)算進(jìn)行串行處理,即對片外存儲裝置中的參考塊的圖像 的編碼數(shù)據(jù)的讀取后才能對該部分參考塊塊的圖像的編碼數(shù)據(jù)進(jìn)行 插值計(jì)算且在該次插值計(jì)算完畢后才能繼續(xù)對片外存儲裝置中下一 參考塊的讀取。這種方案無疑增加了由片外存儲裝置讀取數(shù)據(jù)的間隔和訪問片 外存儲裝置的次數(shù),因此必然導(dǎo)致插值計(jì)算延遲。具體的,對于上述片外存儲裝置的參考塊的圖像的編碼數(shù)據(jù)的讀 取與插值計(jì)算方案,現(xiàn)有技術(shù)包括以下兩種實(shí)現(xiàn)方式第一種方式在視頻解碼裝置中,設(shè)置一個(gè)大容量的存儲器作為 片內(nèi)存儲裝置,當(dāng)一個(gè)宏塊的參考塊全部存儲完畢后,再對保存在該 存儲器中的該參考塊的圖像的編碼數(shù)據(jù)讀取以進(jìn)行插值計(jì)算,其中該 片內(nèi)存儲裝置的大小至少能夠容納 一個(gè)宏塊的參考圖像的數(shù)據(jù)。圖1所示為現(xiàn)有技術(shù)讀取片外存儲裝置中參考塊的圖像的編碼數(shù) 據(jù)以及對該圖像的編碼數(shù)據(jù)進(jìn)行插值計(jì)算的第一種方式的示意圖。
步驟Sll中,視頻解碼裝置計(jì)算出當(dāng)前宏塊的相關(guān)信息,其中所 述相關(guān)信息包括該宏塊的參考塊的圖像的編碼數(shù)據(jù)。步驟S12中,視頻解碼裝置從片外存儲裝置中讀取并保存該當(dāng)前 宏塊的參考塊的圖像的編碼數(shù)據(jù)。步驟S13,判斷當(dāng)前宏塊的數(shù)據(jù)是否全部讀取,如果沒有全部讀 取,則返回步驟S12繼續(xù)從片外存儲裝置讀取并保存其余的圖像的編碼數(shù)據(jù),如果讀取完畢,則執(zhí)行步驟S14。步驟S14中,視頻解碼裝置對所讀取的圖像的編碼數(shù)據(jù)進(jìn)行插值 計(jì)算。步驟S15中,視頻解碼裝置對插值計(jì)算的結(jié)果輸出。 這種方式在 一 個(gè)宏塊的數(shù)據(jù)讀取時(shí)只需要對片外存儲裝置執(zhí)行 一次讀取操作,因而延遲較小。但是這種方式釆用的存儲器的大小必須足夠大以能容納至少一 個(gè)宏塊的參考塊的圖像的編碼數(shù)據(jù)。而大容量的存儲器無疑將大大增 加一見頻解碼芯片的面積和制造成本。第二種方式在視頻解碼裝置中,設(shè)置一個(gè)小容量的存儲器,并 且每次從片外存儲裝置中讀取宏塊中的一個(gè)分塊(例如4x4塊)的 參考塊的圖像的編碼數(shù)據(jù)寫入該存儲器,保存完畢后對該存儲器中的 數(shù)據(jù)進(jìn)行插值計(jì)算。插值計(jì)算完畢后,再將下一個(gè)分塊的參考塊的圖 像的編碼數(shù)據(jù)寫入該存儲器,保存完畢后再進(jìn)行該下一個(gè)分塊的插值 計(jì)算,如此往復(fù)。由于這種方式的插值計(jì)算將一個(gè)宏塊分割成多個(gè)分 塊依次進(jìn)行存儲和插值,因此一個(gè)宏塊的存儲和插值計(jì)算分為多次進(jìn) 行。圖2所示為現(xiàn)有技術(shù)讀取片外存儲裝置中圖像的編碼數(shù)據(jù)以及對 該圖像的編碼數(shù)據(jù)進(jìn)行插值計(jì)算的第二種方式的示意圖。步驟S21中,視頻解碼裝置計(jì)算出當(dāng)前宏塊的相關(guān)信息,其中所 述相關(guān)信息包括該宏塊的參考塊的圖像的編碼數(shù)據(jù)。步驟S22中,視頻解碼裝置從片外存儲裝置中讀取一預(yù)定量的該 當(dāng)前宏塊的參考塊的圖像的編碼數(shù)據(jù)。步驟S23,視頻解碼裝置對所述預(yù)定量的圖像的編碼數(shù)據(jù)進(jìn)行插
值計(jì)算。步驟S24,判斷當(dāng)前宏塊的參考塊的圖像的編碼數(shù)據(jù)是否全部讀 取并插值計(jì)算完畢,如果沒有當(dāng)前宏塊的參考塊的圖像的編碼數(shù)據(jù)沒有全部讀取并插值計(jì)算完畢,則返回步驟S12繼續(xù)從片外存儲裝置讀取該宏塊下 一預(yù)定量的圖像的編碼數(shù)據(jù)。步驟S25中,視頻解碼裝置對插值計(jì)算的結(jié)果輸出。 對比第一方式,這種方式減少了所需的存儲器的大小,但是由于 每次讀取的圖像的編碼數(shù)據(jù)大大減少,相同大小的宏塊就需要分成多 次來讀取,因此增加了訪問片外存儲裝置的次數(shù),增加了訪問片外存 儲裝置產(chǎn)生的延遲。綜上所述,現(xiàn)有技術(shù)的上述兩種方式,對片外存儲裝置中的圖像 的編碼數(shù)據(jù)的讀取并存入存儲器的操作與對存儲器中數(shù)據(jù)讀取并進(jìn) 行插值計(jì)算的操作是串行處理的。因此不論是上述第一種方式或者是 上述第二種方式,在從片外存儲裝置中讀取數(shù)據(jù)的同時(shí),不能進(jìn)行插 值計(jì)算,而插值計(jì)算的同時(shí),也不能對片外存儲裝置進(jìn)行讀取,增加 了運(yùn)動補(bǔ)償中讀取和插值計(jì)算的,悉時(shí)間,從而導(dǎo)致了視頻解碼運(yùn)算時(shí) 間的增長。特別是第二種方式,由于其讀取次數(shù)增加,每次進(jìn)行讀取需要對 片外存儲裝置,例如SDRAM,進(jìn)行包括請求仲裁、激活memory的 行、讀數(shù)據(jù)、關(guān)閉等操作,因而,大大增加了讀取的延遲時(shí)間。而第一種方式,由于雖然由于其對片外存儲裝置中當(dāng)前宏塊的圖 像的編碼數(shù)據(jù)一次讀取完畢保存在解碼裝置內(nèi)部的存儲器中,但是為 了能夠完整保存當(dāng)前宏塊的圖像的編碼數(shù)據(jù),所使用的存儲器必須足 夠大,而大容量的存儲器無疑大大增加了視頻解碼裝置的成本。發(fā)明內(nèi)容針對現(xiàn)有技術(shù)的解碼裝置特別是視頻解碼裝置所采用的片外存 儲裝置中的外部數(shù)據(jù)特別是圖像的編碼數(shù)據(jù)的讀取和對該外部數(shù)據(jù) 的解碼計(jì)算的串行執(zhí)行方案存在的讀取延遲大和需要在解碼裝置內(nèi)
部設(shè)置大容量的存儲器的問題,本發(fā)明采用了一樸并行讀取外部數(shù)據(jù) 與對已存數(shù)據(jù)進(jìn)行解碼運(yùn)算的控制方法及其裝置。根據(jù)本發(fā)明的第 一 方面,提供了 一種在數(shù)據(jù)解碼裝置中用于控制 將外部數(shù)據(jù)寫入片內(nèi)存儲裝置并由片內(nèi)存儲裝置讀取外部數(shù)據(jù)進(jìn)行 解碼運(yùn)算的方法,其特征在于該方法并行地控制將從片外存儲裝置讀 取的外部數(shù)據(jù)存入片內(nèi)存儲裝置以及從片內(nèi)存儲裝置讀取已存數(shù)據(jù) 進(jìn)行解碼運(yùn)算的操作。根據(jù)本發(fā)明的第二方面,提供了 一種在數(shù)據(jù)解碼裝置中用于控制 將外部數(shù)據(jù)寫入片內(nèi)存儲裝置并由片內(nèi)存儲裝置讀取已存數(shù)據(jù)進(jìn)行 解碼運(yùn)算的讀寫控制裝置,其特征在于,并行地控制從片外存儲裝置 讀取外部數(shù)據(jù)存入所述片內(nèi)存儲裝置以及從片.內(nèi)存儲裝置讀取已存 儲的數(shù)據(jù)進(jìn)行解碼運(yùn)算的操作。根據(jù)本發(fā)明的第三方面,提供了 一種用于控制將外部數(shù)據(jù)寫入片 內(nèi)存儲裝置并由片內(nèi)存儲裝置讀取外部數(shù)據(jù)進(jìn)行解碼運(yùn)算的數(shù)據(jù)解 碼裝置,其特征在于,包括所述的讀寫控制裝置。與現(xiàn)有技術(shù)相比,本發(fā)明對片外存儲裝置的圖像的編碼數(shù)據(jù)的讀取 和插值計(jì)算是并行進(jìn)行的,其中,對片外存儲裝置讀取可以連續(xù)進(jìn)行, 因而降低了對片外存儲裝置的外部數(shù)據(jù)的讀取延遲,而由于解碼計(jì)算與 對片外存儲裝置中的數(shù)據(jù)讀取是并行處理的,解碼計(jì)算完畢后的數(shù)據(jù)可 以被覆蓋,而不必占據(jù)解碼裝置內(nèi)部的片內(nèi)存儲裝置的存儲空間,因而 也減低了所需要的片內(nèi)存儲裝置的大小。
通過閱讀以下參照附圖所作的對非限制性實(shí)施例的詳細(xì)描述,本發(fā) 明的其它特征、目的和優(yōu)點(diǎn)將會變得更明顯。圖1為現(xiàn)有技術(shù)的外部數(shù)據(jù)的讀取和解碼計(jì)算的第一種方式的流 程圖;圖2為現(xiàn)有技術(shù)的圖像的編碼數(shù)據(jù)的讀取和插值計(jì)算的第二種方 式的流程圖3為根據(jù)本發(fā)明一個(gè)具體實(shí)施例的釆用一個(gè)存儲器作為片內(nèi)存 儲裝置的控制并行地進(jìn)行編碼數(shù)據(jù)的寫入片內(nèi)存儲裝置與從片內(nèi)存 儲裝置中讀取的方法的示意圖;圖4為根據(jù)本發(fā)明一個(gè)具體實(shí)施例的采用一個(gè)存儲器作為片內(nèi)存 儲裝置的控制并行地進(jìn)行編碼數(shù)據(jù)的寫入片內(nèi)存儲裝置與從片內(nèi)存 儲裝置中讀取的方法的流程圖;圖5為根據(jù)本發(fā)明一個(gè)具體實(shí)施例的采用兩個(gè)存儲器作為片內(nèi)存儲裝置的控制并行地進(jìn)行編碼數(shù)據(jù)的寫入片內(nèi)存儲裝置與從片內(nèi)存儲裝置中讀取的方法的示意圖;圖6為根據(jù)本發(fā)明一個(gè)具體實(shí)施例的采用多個(gè)存儲器作為片內(nèi)存 儲裝置的控制并行地進(jìn)行編碼數(shù)據(jù)的寫入片內(nèi)存儲裝置與從片內(nèi)存 儲裝置中讀取的方法流程圖;圖7a為根據(jù)本發(fā)明一個(gè)具體實(shí)施例的intel16 x 8格式的宏塊劃分 為兩個(gè)塊的示意圖;圖7b為根據(jù)本發(fā)明一個(gè)具體實(shí)施例的intel8x. 8格式的宏塊劃分 為四個(gè)塊的示意圖;圖7c為才艮據(jù)本發(fā)明一個(gè)具體實(shí)施例的intel8 x 16才各式的宏塊由兩 個(gè)塊劃分為四個(gè)分塊的示意圖;圖8a為根據(jù)本發(fā)明一個(gè)具體實(shí)施例的intel8 x 16格式的宏塊中一 個(gè)塊的相關(guān)參考塊示意圖;圖8b為根據(jù)本發(fā)明一個(gè)具體實(shí)施例的intel8 x 16格式的宏塊中另 一個(gè)塊的相關(guān)參考塊示意圖;圖8c為根據(jù)本發(fā)明一個(gè)具體實(shí)施例的intel8 x 16格式的宏塊中相 鄰兩個(gè)分塊的公共參考象素塊的示意圖;圖9a為根據(jù)本發(fā)明一個(gè)具體實(shí)施例的一個(gè)控制并行地進(jìn)行編碼 數(shù)據(jù)的寫入與讀取的讀寫控制裝置的結(jié)構(gòu)圖;圖9b為根據(jù)本發(fā)明一個(gè)具體實(shí)施例的一個(gè)控制并行地進(jìn)行編碼 數(shù)據(jù)的寫入與讀取的讀寫控制裝置的 一 個(gè)優(yōu)選例的結(jié)構(gòu)圖;圖10a為根據(jù)本發(fā)明 一個(gè)具體實(shí)施例的另 一個(gè)控制并行地進(jìn)行編
碼數(shù)據(jù)的寫入與讀取的讀寫控制裝置的結(jié)構(gòu)圖;圖10b為根據(jù)本發(fā)明 一個(gè)具體實(shí)施例的 一個(gè)控制并行地進(jìn)行編碼 數(shù)據(jù)的寫入與讀取的讀寫控制裝置的另 一 個(gè)優(yōu)選例的結(jié)構(gòu)圖。
具體實(shí)施方式
為了更好地理解本發(fā)明,下面結(jié)合本發(fā)明的具體實(shí)施例作進(jìn)一步說 明,但其不限制本發(fā)明。根據(jù)本發(fā)明的第一方面,提出了一種在數(shù)據(jù)解碼裝置中用于控制 將外部數(shù)據(jù)從片外存儲裝置寫入片內(nèi)存儲裝置并由片內(nèi)存儲裝置讀 取已存數(shù)據(jù)進(jìn)行解碼運(yùn)算的方法,其中,所述片外存儲裝置指設(shè)置在數(shù)據(jù)解碼芯片外部的SDRAM (Synchronous DRAM,同步動態(tài)隨機(jī)存 儲器),閃存卡(Flash memory card),光盤和硬盤等存儲裝置,所述 片內(nèi)存儲裝置指設(shè)置在數(shù)據(jù)解碼芯片內(nèi)部的緩存以及寄存器等存儲 裝置,其采用了以下兩種實(shí)施方案第一種方案,采用片內(nèi)存儲裝置只采用一個(gè)存儲器,且該片內(nèi)存 儲裝置分為已存區(qū)域和空閑區(qū)域兩部分,當(dāng)外部數(shù)據(jù)從片外存儲裝置 中讀取并寫入片內(nèi)存儲裝置中空閑區(qū)域中時(shí),同時(shí)從片內(nèi)已存區(qū)域中 讀取已存數(shù)據(jù)以進(jìn)行解碼計(jì)算。第二種方案,采用片內(nèi)存儲裝置采用多個(gè)存儲器,并將待解碼的數(shù) 據(jù)分為多個(gè)分塊,其中所述多個(gè)存儲器可以是多個(gè)獨(dú)立的存儲裝置,也 可以是一個(gè)存儲裝置劃分成的多個(gè)存儲區(qū)域,所述多個(gè)存儲器包括空閑 存儲器和已寫存儲器。當(dāng)從片外存儲裝置中讀取當(dāng)前分塊的外部數(shù)據(jù)寫 入空閑存儲器時(shí),同時(shí)執(zhí)行從已寫存儲器中讀取前一分塊的已存數(shù)據(jù)進(jìn) 行解碼計(jì)算。當(dāng)前分塊的數(shù)據(jù)全部寫入所述空閑存儲器且前一分塊的已 存數(shù)據(jù)已經(jīng)全部讀耳又,則將所述空閑存儲器作為已寫存儲器,將存儲所 述前一分塊數(shù)據(jù)的已寫存儲器作為空閑存儲器,并執(zhí)行下一分塊數(shù)據(jù)的 存儲與所述當(dāng)前分塊數(shù)據(jù)的讀取以做解碼計(jì)算。下面結(jié)合附圖對本發(fā)明的兩種方案進(jìn)行具體說明。
首先,參照圖3和圖4對本發(fā)明的第一種方案即采用一個(gè)存儲器 作為片內(nèi)存儲裝置12方案進(jìn)行說明。
首先,在步驟S41中,數(shù)據(jù)解碼裝置01控制并行地將由片外存 儲裝置11讀取的外部數(shù)據(jù)寫入所述存儲器的空閑區(qū)域及讀取所述存 儲器已存區(qū)域中的已存數(shù)據(jù),以進(jìn)行解碼運(yùn)算,例如在基于宏塊的視 頻解碼裝置中,所述解碼運(yùn)算可以包括插值運(yùn)算。
數(shù)據(jù)解碼裝置01從片外存儲裝置11中讀取外部數(shù)據(jù)存入片內(nèi)存 儲裝置12,同時(shí)對已經(jīng)存入片內(nèi)存儲裝置12的數(shù)據(jù)進(jìn)行解碼運(yùn)算。
如圖3所示,片內(nèi)存儲裝置12包括已保存數(shù)據(jù)的已存區(qū)域13, 和已存區(qū)域中已存數(shù)據(jù)已被讀取以做解碼計(jì)算的區(qū)域14。
讀寫控制裝置02從片外存儲裝置11中讀取外部數(shù)據(jù),并順次存 入片內(nèi)存儲裝置12中空閑部分。當(dāng)外部數(shù)據(jù)從片外存儲裝置11中寫 入片內(nèi)存儲裝置12后,存儲后的所述外部數(shù)據(jù)即為存儲在所述片內(nèi) 存儲裝置12中的已存數(shù)據(jù)。在將片外存儲裝置11中的外部數(shù)據(jù)寫入 片內(nèi)存儲裝置12的同時(shí),讀寫控制裝置02還讀取片內(nèi)存儲裝置1211 中的已存數(shù)據(jù)以做解碼計(jì)算。
接著,在步驟S42中,數(shù)據(jù)解碼裝置控制將所述空閑區(qū)域中的寫 入已存數(shù)據(jù)的部分由空閑區(qū)域中去除且合并入已存區(qū)域;參考圖3,片內(nèi)存儲裝置12包括可以寫入新的外部數(shù)據(jù)的空閑 區(qū)域15和已經(jīng)存在已存數(shù)據(jù)的已存區(qū)域13。具體地,所述空閑區(qū)域 15與所述已存區(qū)域13的轉(zhuǎn)換方式有以下兩種在第一種轉(zhuǎn)換方法中,當(dāng)空閑區(qū)域15寫入外部數(shù)據(jù)后,該寫入 數(shù)據(jù)部分的空閑區(qū)域15被并入已存區(qū)域13,寫入的外部數(shù)據(jù)即成為 已存數(shù)據(jù)。
這種轉(zhuǎn)換方式在外部數(shù)據(jù)的寫入過程中,隨著外部數(shù)據(jù)的寫入, 空閑區(qū)域15減少,已存區(qū)域13增加。因此這種方法的片內(nèi)存儲裝置 12的空閑區(qū)域的存儲量足夠大,例如讀寫控制裝置01是使用在在基 于運(yùn)動補(bǔ)償?shù)囊曨l解碼裝置的讀寫控制裝置時(shí),對于每一個(gè)當(dāng)前宏塊 處理開始時(shí),其片內(nèi)存儲裝置12中的空閑區(qū)域的存儲量必須大于所
要處理的宏塊的圖像的編碼數(shù)據(jù)的最大數(shù)據(jù)量。在第二種轉(zhuǎn)換方式中,當(dāng)空閑區(qū)域15寫入外部數(shù)據(jù)后,該寫入 數(shù)據(jù)部分的空閑區(qū)域15被并入已存區(qū)域13,寫入的外部數(shù)據(jù)即成為 已存數(shù)據(jù),并且在已存區(qū)域13中有已存數(shù)據(jù)被讀取后,該已存數(shù)據(jù)已被讀取的部分已存區(qū)域,即圖3中附圖標(biāo)記14所示的部分已存區(qū)域,由于其所存儲的已存數(shù)據(jù)已經(jīng)被讀取,因此該部分的已存數(shù)據(jù)可以被覆蓋,所述部分已存區(qū)域14可以并入空閑區(qū)域15。因此,在第二種轉(zhuǎn)換方式中,步驟S42還可以包括以下步驟 控制將所述已存區(qū)域中的已存數(shù)據(jù)已被讀取的部分由所述已存區(qū)域中去除且合并入空閑區(qū)域。該步驟可以在讀取已存數(shù)據(jù)以進(jìn)行解碼運(yùn)算的同時(shí)進(jìn)行。另外,在對外部數(shù)據(jù)的存儲和對已存數(shù)據(jù)的讀取過程中,由于對片外存儲裝置11的讀取速度通常較讀取片內(nèi)存儲裝置12中已存數(shù)據(jù)以進(jìn)行解碼運(yùn)算的速度為慢,所以本發(fā)明還可以進(jìn)一 步對外部數(shù)據(jù)寫入片內(nèi)存儲裝置12的過程與從片內(nèi)存儲裝置12讀取已存數(shù)據(jù)以進(jìn)行解碼運(yùn)算的過程進(jìn)行協(xié)調(diào)處理。所以優(yōu)選地,步驟S41還進(jìn)一步包括以下步驟:.檢測所述已存區(qū)域中未被讀取的已存數(shù)據(jù)量;其中,所述對片內(nèi)存 儲裝置12中未被讀取的已存數(shù)據(jù)的數(shù)據(jù)量的檢測可以通過地址指針 或者地址表計(jì)算得到。當(dāng)檢測到所述已存區(qū)域中未被讀取的已存數(shù)據(jù)量小于第 一 預(yù)定 闊值時(shí),控制停止讀取所述已存區(qū)域中的已存數(shù)據(jù);當(dāng)檢測到已存區(qū)域中未被讀取的已存數(shù)據(jù)量大于第二預(yù)定閾值 時(shí),控制開始讀取已存區(qū)域中的已存數(shù)據(jù)。例如,參照圖3,所述檢測未被讀取的已存數(shù)據(jù)量是否大于第一 預(yù)定閾值操作在對所述存儲在片內(nèi)存儲裝置12中的已存數(shù)據(jù)的讀取 操作前進(jìn)行,所述檢測未被讀取的已存數(shù)據(jù)量是否小于第一預(yù)定閾值 的操作在對所述存儲在片內(nèi)存儲裝置12中的已存數(shù)據(jù)的讀取操作時(shí) 進(jìn)行。 并設(shè)定片內(nèi)存儲裝置12中未被讀取以做解碼運(yùn)算的已存數(shù)據(jù)大 于一第二預(yù)定閾值時(shí),開始讀取片內(nèi)存儲裝置12中的已存數(shù)據(jù)以作 解碼運(yùn)算,而小于一第一預(yù)定閾值時(shí),停止讀取片內(nèi)存儲裝置12中 的已存數(shù)據(jù)以作解碼運(yùn)算。對于使用在基于運(yùn)動補(bǔ)償?shù)囊曨l解碼裝置中的讀寫控制方法,所 述外部數(shù)據(jù)是存儲在片外存儲裝置11中的當(dāng)前宏塊對應(yīng)的圖像的編 碼數(shù)據(jù),所述第一預(yù)定閾值可以時(shí)3 x 3塊象素對應(yīng)的數(shù)據(jù)量,所述第二預(yù)定閾值可以是9x9塊象素對應(yīng)的圖像的編碼數(shù)據(jù)的數(shù)據(jù)量。 由于讀取片內(nèi)存儲裝置12中的已存數(shù)據(jù)以進(jìn)行解碼運(yùn)算的速度遠(yuǎn)大于從片外存儲裝置11中的讀取外部數(shù)據(jù)的速度,因此,每次從片內(nèi)存儲裝置12中讀取數(shù)據(jù)進(jìn)行解碼運(yùn)算一段時(shí)間后,片內(nèi)存儲裝置12 中未解碼運(yùn)算的已存數(shù)據(jù)將小于所述第一預(yù)定閾值,當(dāng)已存數(shù)據(jù)小于 所述第一預(yù)定閾值時(shí),則停止對所述片內(nèi)存儲裝置12中已存數(shù)據(jù)的 讀取。停止讀取片內(nèi)存儲裝置12中的已存數(shù)據(jù)后,從片外存儲裝置 11中讀取并存入片內(nèi)存儲裝置12的已存數(shù)據(jù)的增加,當(dāng)所述片內(nèi)存 儲裝置12中未解碼運(yùn)算的已存數(shù)據(jù)大于所述第一預(yù)定閾值時(shí),對所 述片內(nèi)存儲裝置12中已存數(shù)據(jù)的讀取重新啟動。而與此已存數(shù)據(jù)的 間歇性讀取不同,從片外存儲裝置11中讀取外部數(shù)據(jù)寫入片內(nèi)存儲 裝置12的過程可以是連續(xù)的。上述第 一 、第二閾值可以由本領(lǐng)域技術(shù)人員根據(jù)具體應(yīng)用情況確 定,在此不再累述。其中,對片內(nèi)存儲裝置12中未被讀取作解碼運(yùn)算的已存數(shù)據(jù)的 數(shù)據(jù)量的判斷,在順序存儲的情況下,可以使用已存區(qū)域與已存區(qū)域 中已存數(shù)據(jù)已讀取部分的指針的地址差計(jì)算得到。在非順序存儲的情況下,可以設(shè)置一個(gè)地址表,用來記錄所有已 存區(qū)域的地址段信息,以及記錄所有已存區(qū)域中已讀取部分的已存數(shù) 據(jù)的地址段,根據(jù)地址表中所有已存區(qū)域的地址段得到已存區(qū)域的數(shù) 據(jù)量,并根據(jù)所有已存區(qū)域中已讀取部分的已存數(shù)據(jù)的地址段得到已 存區(qū)域中已讀取部分的已存數(shù)據(jù)的數(shù)據(jù)量,從而計(jì)算得到所述片內(nèi)存
儲裝置12中未被讀取作解碼運(yùn)算的已存數(shù)據(jù)的數(shù)據(jù)量。然后,在步驟S43中,數(shù)據(jù)解碼裝置01判斷所述外部數(shù)據(jù)均已被讀取,如果沒有全部讀取,則重復(fù)步驟S41和S42,直至所述外部 數(shù)據(jù)均已被讀取,以進(jìn)行解碼運(yùn)算。下面結(jié)合圖3和圖4,以intell6x 16格式的宏塊數(shù)據(jù)的讀取過程 為例對根據(jù)本發(fā)明的 一個(gè)具體實(shí)施例的使用在基于運(yùn)動補(bǔ)償?shù)囊曨l 解碼裝置中的片內(nèi)存儲器的讀寫控制方法作進(jìn)一步說明。其中設(shè)置在該視頻解碼裝置內(nèi)部的片內(nèi)存儲裝置12為一個(gè)156 x4字節(jié)的存儲器。intel16 x 16格式的宏塊只包含一個(gè)16x16的塊,其對應(yīng)的參考 塊的圖像的編碼數(shù)據(jù)最大值為126x4字節(jié)小于156x4字節(jié)。首先,以片內(nèi)存儲裝置12的地址0作為存儲起始地址,將保存 在片外存儲裝置11中的當(dāng)前處理的intell6x 16格式的宏塊的參考塊 的圖像的編碼數(shù)據(jù)作為外部數(shù)據(jù)存儲到片內(nèi)存儲裝置12中,直至該 宏塊的參考塊的圖像的所有編碼數(shù)據(jù)都保存完畢。在所述宏塊的參考塊的圖像的編碼數(shù)據(jù)存儲的同時(shí),開始檢測所 述作為片內(nèi)存儲裝置12的存儲器中已經(jīng)保存但尚未被讀取以做插值 計(jì)算的已存數(shù)據(jù)的數(shù)據(jù)量,并將16x4字節(jié)作為第一預(yù)定閾值,將9 x4字節(jié)作為第二預(yù)定閾值,當(dāng)該數(shù)據(jù)量大于該第一預(yù)定閾值即16 x 4字節(jié)時(shí),開始讀取存儲器中的未被讀取的已存數(shù)據(jù)以作解碼運(yùn)算, 由于對片內(nèi)存儲裝置12中數(shù)據(jù)讀取速度大于對片內(nèi)存儲裝置12的已 存數(shù)據(jù)的讀取速度,隨著讀取過程的進(jìn)行,所述未被讀取的已存數(shù)據(jù) 量逐漸減少。當(dāng)該數(shù)據(jù)量小于該第二預(yù)定闊值即9x4字節(jié)時(shí),讀取 片內(nèi)存儲裝置12中的已存數(shù)據(jù)以作解碼運(yùn)算的過程停止。停止后所 述未被讀取的已存數(shù)據(jù)量逐漸增加,當(dāng)該數(shù)據(jù)量大于第 一預(yù)定閾值 時(shí),再次讀取片內(nèi)存儲裝置12中未被讀取的已存數(shù)據(jù)。如此往復(fù), 直至該當(dāng)前intell6xl6格式的宏塊的參考塊的圖#^的編碼數(shù)據(jù)全部 被存儲到片內(nèi)存儲裝置12中,并全部被讀取以做插值運(yùn)算。上述第
一、第二閾值可以由本領(lǐng)域技術(shù)人員根據(jù)具體應(yīng)用情況確定,在此不 再累述。本發(fā)明的第二種方案是采用多個(gè)存儲器作為片內(nèi)存儲裝置12的 方案,該方案中所要讀取的外部數(shù)據(jù)被分為多個(gè)分塊。其中設(shè)置在數(shù)據(jù)解碼裝置01內(nèi)部的片內(nèi)存儲裝置12包括兩個(gè)或兩個(gè)以上的存儲器,所述兩個(gè)或者兩個(gè)以上地存儲器可以是物理上獨(dú) 立的兩個(gè)或者兩個(gè)以上內(nèi)部存儲器,也可以是也可以是一個(gè)內(nèi)部存儲 器劃分出來的兩個(gè)或兩個(gè)以上存儲區(qū)域。以下參照圖4 圖8c,以采用兩個(gè)物理上獨(dú)立的存儲器的片內(nèi)存 儲裝置12的解碼裝置中的讀寫控制裝置為例來對多個(gè)存儲器的片內(nèi) 存儲裝置12的讀取控制方法作進(jìn)一步說明。具體地,所述兩個(gè)存儲器即第一存儲器51與第二存儲器52交替 地作為空閑存儲器和已存存儲器。其中,空閑存儲器用于存儲從片外 存儲裝置11中讀取的數(shù)據(jù),已存存儲器中的數(shù)據(jù)用于被讀取以進(jìn)行 解碼運(yùn)算。在數(shù)據(jù)解碼開始時(shí)如果第一存儲器51與第二存儲器52中都沒有 存儲需要進(jìn)行解碼運(yùn)算的數(shù)據(jù),則所述第一存儲器51和所述第二存 儲器52都可以用來存儲數(shù)據(jù),兩者都可以作為空閑存儲器。隨機(jī)或 者缺省地選擇第一存儲器51或者第二存儲器52用來存儲從片外存儲 裝置11中讀取的外部數(shù)據(jù)。而由于第一存儲器51與第二存儲器52 都沒有寫入數(shù)據(jù),開始時(shí)不存在已寫存儲器,因此此時(shí)也不執(zhí)行讀取已寫存儲器中的已存數(shù)據(jù)的操作,而只執(zhí)行從片外存儲裝置11讀取 外部數(shù)據(jù)的操作。從片外存儲裝置11中讀取第一個(gè)分塊的外部數(shù)據(jù) 可以存入所述空閑存儲器。當(dāng)?shù)?一分塊的數(shù)據(jù)全部存入一個(gè)空閑存儲 器例如第二存儲器52后,所述第二存儲器52則轉(zhuǎn)換為已寫存儲器狀 態(tài),繼續(xù)執(zhí)行如上述參照圖3和圖4所述的并行讀寫數(shù)據(jù)的處理流程。 下面參照圖5a和圖5b來對第一存儲器51和第二存儲器52交替 作為空閑存儲器和已寫存儲器執(zhí)行并行讀寫操作的處理流程進(jìn)行說明。圖5a中,第一存儲器51作為空閑存儲器,第二存儲器52作為 已寫存儲器。從片外存儲裝置11讀取當(dāng)前分塊對應(yīng)的外部數(shù)據(jù)寫入 空閑存儲器,即第一存儲器51,同時(shí)讀取已寫存儲器,即第二存儲器 52中的已存數(shù)據(jù),即存儲在第二存儲器52中前一分塊對應(yīng)的已存數(shù) 據(jù)進(jìn)行解碼運(yùn)算。由于通常讀取片內(nèi)存儲裝置12以做解碼運(yùn)算的速 度遠(yuǎn)大于對片外存儲裝置11的讀取速度,因此當(dāng)?shù)诙鎯ζ?2中的 已存數(shù)據(jù)讀取完畢時(shí),將第二存儲器52作為空閑存儲器,對片外存 儲裝置11中的數(shù)據(jù)的讀取可能尚未完成,即將外部數(shù)據(jù)寫入第一存 儲器51的操作仍在繼續(xù),所述第一存儲器51仍然是空閑存儲器。當(dāng) 所述當(dāng)前分塊的數(shù)據(jù)全部存入第一存儲器51后,所述第一存儲器51 轉(zhuǎn)為已寫存儲器,繼續(xù)執(zhí)行如圖4所示的下一分塊對應(yīng)的外部數(shù)據(jù)寫 入空閑存儲器和讀取已寫存儲器中當(dāng)前分塊數(shù)據(jù)的操作,如圖5b所 示。圖5b中,第一存儲器51為已寫存儲器狀態(tài),第二存儲器52為 空閑存儲器狀態(tài)。將下一分塊作為當(dāng)前分塊,從片外存儲裝置11中 讀取該當(dāng)前分塊即前述如圖5a所示的操作中的下一分塊對應(yīng)的外部 數(shù)據(jù)寫入空閑存儲器即第二存儲器52,并從已寫存儲器即第 一存儲器 51中,讀取當(dāng)前分塊的數(shù)據(jù)進(jìn)行解碼運(yùn)算。當(dāng)所述已寫存儲器中的當(dāng) 前數(shù)據(jù)讀取完畢,且所述下一分塊的外部數(shù)據(jù)在空閑存儲器中存儲完 畢,則將第二存儲器52轉(zhuǎn)換為已存存儲器狀態(tài),將第一存儲器轉(zhuǎn)換 為空閑存儲器狀態(tài)。隨后,執(zhí)行如圖5a所示的操作,即從片外存儲裝置11中讀取所 迷當(dāng)前分塊的下一分塊的外部數(shù)據(jù)寫入空閑存儲器,從已寫存儲器中 讀取所述當(dāng)前分塊的已存數(shù)據(jù)進(jìn)行解碼運(yùn)算。如此往復(fù),直至需要解 碼運(yùn)算的全部外部數(shù)據(jù)解碼運(yùn)算完畢。本領(lǐng)域技術(shù)人員根據(jù)以上描述,應(yīng)可無需任何創(chuàng)造性勞動即可類 推到兩個(gè)存儲區(qū)域來實(shí)現(xiàn)本發(fā)明的方案,在此不在累述。
當(dāng)片內(nèi)存儲裝置12包括的存儲器多于兩個(gè)時(shí),情況與上述2個(gè) 存儲器的情況類似,將寫入外部數(shù)據(jù)的存儲器作為已寫存儲器,從未 寫入數(shù)據(jù)以及寫入數(shù)據(jù)但已經(jīng)被讀取完畢的存儲器中隨機(jī)或者以缺 省順序選擇一個(gè)存儲器作為空閑存儲器執(zhí)行上述并行執(zhí)行數(shù)據(jù)讀寫 的操作。本領(lǐng)域技術(shù)人員根據(jù)以上對兩個(gè)存儲器的方案的描述,應(yīng)能 無需任何創(chuàng)造性勞動實(shí)現(xiàn)多于兩個(gè)存儲器的方案,在此不再累述。圖6所示的流程圖為根據(jù)本發(fā)明的另一種具體實(shí)施方式
即控制包括多個(gè)存儲器。 、^ — ' ° ''該方法包括以下步驟首先在步驟S61中,控制將并行地由片外存儲裝置11中讀取的 當(dāng)前分塊的外部數(shù)據(jù)寫入所述多個(gè)存儲器中的 一 空閑存儲器中;以及 控制由所述多個(gè)存儲器中的已寫存儲器中讀取前一分塊的已存數(shù)據(jù), 以進(jìn)行解碼運(yùn)算;其次在步驟S62中,當(dāng)檢測到所述當(dāng)前分塊的外部數(shù)據(jù)已完全寫 入所述空閑存儲器中且所述前 一 分塊的已存數(shù)據(jù)已由所述已寫存儲 器中完全讀出,則將所述已寫存儲器作為空閑存儲器和將所述空閑存 儲器作為已寫存儲器,然后在步驟S63中,重復(fù)上述步驟S61,直至所述參考塊的所有 分塊的外部數(shù)據(jù)均已被讀取,以進(jìn)行解碼運(yùn)算。另外,作為本發(fā)明的一種優(yōu)化例,當(dāng)空閑存儲器中已存儲的數(shù)據(jù) 與將要存儲進(jìn)該空閑存儲器中的外部數(shù)據(jù)有部分重疊時(shí),該部分重疊 的數(shù)據(jù)可以不再讀取從而減少讀取外部數(shù)據(jù)的時(shí)間。為實(shí)現(xiàn)這種功能,步驟S61還可以包括以下步驟檢測在所述多個(gè)存儲器之一中順序?qū)懭氲膬蓚€(gè)分塊之間是否存 在重疊冗余數(shù)據(jù)。如果當(dāng)檢測在所述空閑存儲器中前一寫入的分塊與當(dāng)前分塊之 間存在重疊冗余數(shù)據(jù),則控制在所述空閑存儲器中保留所述重疊冗余 數(shù)據(jù)而僅寫入當(dāng)前分塊中非重疊冗余的數(shù)據(jù)。
下面結(jié)合圖5a和圖5b,以兩個(gè)存儲器的基于運(yùn)動補(bǔ)償?shù)囊曨l解 碼裝置中的數(shù)據(jù)讀寫控制裝置為例對根據(jù)本發(fā)明 一 個(gè)具體實(shí)施例的采用多個(gè)存儲器的片內(nèi)存儲裝置12的在數(shù)據(jù)解碼裝置中用于控制將 外部數(shù)據(jù)寫入片內(nèi)存儲裝置12并由片內(nèi)存儲裝置12讀取已存數(shù)據(jù)進(jìn)行解碼運(yùn)算的方法做進(jìn) 一 步說明。該讀寫控制裝置中設(shè)置在該視頻解碼裝置內(nèi)部的片內(nèi)存儲裝置12的大小可以由根據(jù)宏塊所劃分的分塊的對應(yīng)的參考塊的圖像的編 碼數(shù)據(jù)的大小確定。下面以現(xiàn)有16x 16的宏塊的處理方法為例進(jìn)行說明,以下實(shí)施 例中的所述片內(nèi)存儲裝置12包括第一存儲器51和第二存儲器52,所 述第一存儲器51和所述第二存儲器52由一個(gè)156x4字節(jié)大小的存 儲裝置所劃分出的兩個(gè)78 x 4字節(jié)大小的存儲區(qū)域構(gòu)成,即所述兩個(gè) 存儲區(qū)域分別構(gòu)成第一存儲器51和第二存儲器52,其中所述第一存 儲器的起始地址為0,所述第二存儲器的起始地址為78。由于該讀寫 控制裝置使用在視頻解碼裝置中,所述外部數(shù)據(jù)和所述已存數(shù)據(jù)為圖 像塊的數(shù)據(jù)。進(jìn)一 步在所述基于運(yùn)動補(bǔ)償?shù)囊曨l解碼裝置的應(yīng)用環(huán)境 中,所述圖像塊包括參考宏塊。具體的,對于intell6x8類型的宏塊的數(shù)據(jù),如圖7a所示,該類 型的宏塊包括2個(gè)16x8的塊,以每個(gè)塊為一個(gè)分塊。下面參照圖7、 圖5a、圖5b來對本發(fā)明進(jìn)行描述。由于intell6x8類型的宏塊,其對應(yīng)的參考塊的數(shù)據(jù)的理論最大 值為2x 13x21Byte,但實(shí)際的操作中,為了便于整行存儲,實(shí)際上 存儲這些數(shù)據(jù)的最大存儲量為2 x 13 x 24Byte,即156x4字節(jié),即單 個(gè)塊所需的最大存儲量為78x4字節(jié)。因此,78x4字節(jié)的存儲器足 夠用來存儲一個(gè)所述16 x 8的塊對應(yīng)的數(shù)據(jù)。將當(dāng)前宏塊的第 一個(gè)分塊的對應(yīng)的參考塊的圖像的編碼數(shù)據(jù)存 儲到第一存儲器,其存儲的起始地址為第一存儲器的起始地址,即從
0地址開始存儲。存儲完畢后,將第二個(gè)分塊對應(yīng)的參考塊的圖像的 編碼數(shù)據(jù)存儲到第二存儲器52中,其存儲的起始地址為第二存儲器52的起始地址,即從78地址開始存儲。同時(shí)對存儲在第一存儲器51 中的第 一個(gè)分塊對應(yīng)的圖像的編碼數(shù)據(jù)進(jìn)行插值運(yùn)算,待第二分塊的 數(shù)據(jù)存儲完畢后,對存儲在第二存儲器52中的第二分塊對應(yīng)的圖像 的編碼數(shù)據(jù)進(jìn)行插值計(jì)算。對于intel8x 8格式的宏塊,如圖7b所示,宏塊包含4個(gè)8x8 塊,且每個(gè)8 x 8塊可以進(jìn)一步劃分為i個(gè)8x8分塊,或者2個(gè)8x4或者4x8分塊,又或者4個(gè)4x4分塊。其中,每個(gè)分塊最大的理論最大值為13xi3Byte,但在實(shí)際應(yīng)用 中,為了便于整行存儲,每個(gè)分塊的圖像的編碼數(shù)據(jù)占用的最大存儲 量為13xl6字節(jié),即52x4字節(jié)。由于每個(gè)塊可以進(jìn)一步分為1個(gè), 或者2個(gè),或者4個(gè)分塊,每個(gè)分塊的圖像的編碼數(shù)據(jù)占用的最大存 儲量應(yīng)是小于或者等于52x4字節(jié),因此,不論是單個(gè)分塊對應(yīng)的參 考塊的圖像的編碼數(shù)據(jù)還是單個(gè)塊對應(yīng)的參考塊圖像的編碼數(shù)據(jù)都 小于一個(gè)存儲器的存儲大小,即78x4字節(jié)。在將intel8x8格式的宏塊的圖像的編碼數(shù)據(jù)寫入片內(nèi)存儲裝置 12并從片內(nèi)存儲裝置12中讀出該宏塊已寫入的分塊或者塊對應(yīng)的參 考塊的圖像的編碼數(shù)據(jù)以進(jìn)行插值計(jì)算時(shí),該分塊或者塊對應(yīng)的參考 塊的圖像的編碼數(shù)據(jù)作為該分塊或者塊的外部數(shù)據(jù),在寫入片內(nèi)存儲 裝置12后,保存在該片內(nèi)存儲裝置12的該分塊或者塊對應(yīng)的參考塊 的圖像的編碼數(shù)據(jù)作為該分塊或者塊的已存數(shù)據(jù),由于一個(gè)分塊或者 塊對應(yīng)的參考塊的圖像的編碼數(shù)據(jù)需要的存儲量都小于一個(gè)存儲器 的存儲大小,因此,即可以以分塊為單位進(jìn)行寫入與讀出,也可以以 塊為單位進(jìn)行寫入與讀出。以分塊為單位進(jìn)行所述intd8x8格式的宏塊圖像的編碼數(shù)據(jù)的 寫入與讀取操作如下將第一個(gè)分塊對應(yīng)的外部數(shù)據(jù)存儲到第一存儲器51,其存儲的起
始地址為第一存儲器51的起始地址,即從地址0.開始存儲。存儲完 畢后,將第二個(gè)分塊的外部數(shù)據(jù)存儲到第二存儲器52中,其存儲的起始地址為第二存儲器52的起始地址,即從地址78開始存儲。同時(shí) 對存儲在第一存儲器51中的第一個(gè)分塊的已存數(shù)據(jù)進(jìn)行插值運(yùn)算, 待第二分塊的外部數(shù)據(jù)存儲完畢后,對存儲在第二存儲器52中的第二分塊的已存數(shù)據(jù)進(jìn)行插值計(jì)算,并將第三分塊對應(yīng)的外部數(shù)據(jù)從0 地址開始存儲到第一存儲器51中。如此往復(fù),直至所有分塊都被插 值計(jì)算完畢。以塊為單位進(jìn)行所述intel8xg格式的宏塊圖像的編碼數(shù)據(jù)的寫 入與讀舉4喿作如下將第一個(gè)塊的外部數(shù)據(jù)存儲到第一存儲器51,其存儲的起始地址 為第一存儲器51的起始地址,即從地址0開始存儲。存儲完畢后, 將將第二個(gè)塊對應(yīng)的外部數(shù)據(jù)存儲到第二存儲器52中,其存儲的起 始地址為第二存儲器52的起始地址,即從地址78開始存儲。同時(shí)對 存儲在第一存儲器51中的第一個(gè)塊的已存數(shù)據(jù)進(jìn)行插值運(yùn)算,待第 二塊的數(shù)據(jù)存儲完畢后,對存儲在第二存儲器52中的第二塊的已存 數(shù)據(jù)進(jìn)行插值計(jì)算,并將第三塊對應(yīng)的已存數(shù)據(jù)從地址0開始存儲到 第一存儲器51中。如此往復(fù),直至所有塊的已存數(shù)據(jù)都被插值計(jì)算 完畢。其中,各塊或者分塊的外部數(shù)據(jù)在第一存儲器51或者第二存儲 器52中存儲也可以不從該第一存儲器51或者第二存儲器52的起始 地址開始存儲,只需要保證該塊或者分塊的外部數(shù)據(jù)都可以保存在該 第一存儲器51或者第二存儲器52中即可。對于intel8x 16格式的宏塊,如圖7c所示,該intel8 x 16格式的 宏塊包括兩個(gè)8xl6塊,且每個(gè)塊各有一個(gè)運(yùn)動矢量對應(yīng)。當(dāng)所述8 x 16塊對應(yīng)的運(yùn)動矢量的x和y值,都非整數(shù)時(shí),該8xl6塊做插值 運(yùn)算過程中,還需要該8x 16塊以外的象素點(diǎn),即行列各加5個(gè)象素 作為插值運(yùn)算的參考值。因此,運(yùn)動矢量的x和y值非整數(shù)的8 x 16
塊的相關(guān)圖像的編碼數(shù)據(jù)理論值為21 x 13Byte,同理,在實(shí)際使用中, 為了保持整行存儲,實(shí)際需要的存儲量為21 x 16Byte,即84x4字節(jié)。顯然,對intel8x 16格式的宏塊,如果使用上述的將第一存儲器 51與第二存儲器52交替地用于存儲以及讀取塊對.應(yīng)的參考塊的圖像 的編碼數(shù)據(jù)的方法,則每個(gè)塊對應(yīng)的參考塊的圖像的編碼數(shù)據(jù)所需要 的實(shí)際存儲量為84x4字節(jié),顯然該值大于第一存儲器51或者第二 存儲器52的存儲量,即78x4字節(jié)。為了解決這個(gè)問題,如圖7c所 示,本發(fā)明將每個(gè)intel8 x 16宏塊中的8 x 16的塊進(jìn)一步劃分為2個(gè) 分塊,具體地,該2個(gè)分塊可以相同大小,確保每個(gè)分塊插值運(yùn)算所 需的已存數(shù)據(jù)小于第一存儲器51或者第二存儲器52的存儲量。分別 對每個(gè)分塊進(jìn)行寫入第一存儲器51或者第二存儲器52以及從第一存 儲器51或者第二存儲器52中讀取已存的分塊的已存數(shù)據(jù)以用于插值 計(jì)算。開始存儲時(shí),第一存儲器51和所述第二存儲器52均為空閑存 儲器,將第一分塊731的外部數(shù)據(jù)保存在第一存儲器51中,保存完 畢后,將該第一存儲器52標(biāo)記為已寫存儲器,將第二分塊742外部 數(shù)據(jù)保存在第二存儲器52中,同時(shí)將第一存儲器51中保存的第一分 塊731已存數(shù)據(jù)進(jìn)行插值計(jì)算,計(jì)算完畢后將第一存儲器標(biāo)記為空閑 存儲器,當(dāng)?shù)诙謮K742外部數(shù)據(jù)保存完畢后,將第二存儲器52設(shè) 定為已存存儲器,將第三分塊733外部數(shù)據(jù)保存在第一存儲器51即 空閑存儲器中,同時(shí)對已寫存儲器即第二存儲器52中的第二分塊742 已存數(shù)據(jù)以進(jìn)行插值計(jì)算,計(jì)算完畢將第二存儲器52標(biāo)記為空閑存 儲器,當(dāng)?shù)谌謮K733外部全部保存在第一存儲器51中后,將第一 存儲器51標(biāo)記為已寫存儲器,將第四分塊744外部數(shù)據(jù)保存在空閑 存儲器即第二存儲器52中,對已寫存儲器即第一存儲器51中的第三 分塊733已存數(shù)據(jù)以進(jìn)行插值計(jì)算,當(dāng)插值計(jì)算完畢,對第一存儲器 51標(biāo)記為空閑存儲器,當(dāng)?shù)谒姆謮K744的外部數(shù)據(jù)保存完畢,將第二 存儲器52標(biāo)記為已寫存儲器,如此往復(fù),直至所有分塊的圖像的編 碼數(shù)據(jù)全部插值計(jì)算完畢。其中,當(dāng)一個(gè)分塊的運(yùn)動矢量的x或者y不為整數(shù)時(shí),其劃分出
來的兩個(gè)分塊的參考塊的象素存在重疊,如圖8c所示,當(dāng)分塊"對應(yīng)的運(yùn)動矢量并非整數(shù)值,其劃分出的第一分塊731和第三分塊733 的參考象素有部分是重疊的。當(dāng)分塊73對應(yīng)的運(yùn)動矢量并非整數(shù)值, 第一分塊731插值計(jì)算所需的圖像象素的編碼數(shù)據(jù)是圖8a中的附圖 標(biāo)記81所示部分的圖像象素對應(yīng)的編碼數(shù)據(jù),其中陰影部分為第一 分塊731以外的參考象素,而第三分塊733插值計(jì)算所需的圖像象素 的編碼數(shù)據(jù)是圖8b中的附圖標(biāo)記82所示部分的圖像象素對應(yīng)的編碼 數(shù)據(jù),其中陰影部分為第三分塊733以外的參考象素。由于第一分塊 731與第三分塊733都是由分塊73劃分出來,第一分塊731對應(yīng)的參 考塊象素與第三分塊733對應(yīng)的參考塊象素存在重疊的公共參考象素 塊,即附圖8c中,附圖標(biāo)記83所示部分。當(dāng)將第一分塊731的外部數(shù)據(jù)保存于第一存儲器51中時(shí),為了 節(jié)省存儲器的存儲量可以覆蓋原先保存于第一存儲器51中且已經(jīng)被 插值計(jì)算的第三分塊733的已存數(shù)據(jù),但是公共參考象素塊81對應(yīng) 的圖像的編碼數(shù)據(jù)同時(shí)也是第三分塊733對應(yīng)的參考塊的圖像的編碼 數(shù)據(jù)的一部分,因此在第一分塊731的參考塊圖像的編碼數(shù)據(jù)覆蓋第 二分塊733的參考塊的圖像的編碼數(shù)據(jù)時(shí),公共參考象素塊81對應(yīng) 的參考塊的圖像的編碼數(shù)據(jù)可以保留,以減少重復(fù)讀取所述公共參考 象素塊81對應(yīng)的參考塊的圖像的編碼數(shù)據(jù)的時(shí)間。具體地,下面結(jié)合圖5a、圖5b、圖6、圖7c、圖8a、圖8b和圖 8c,以一種8x 16格式的宏塊的圖像的編碼數(shù)據(jù)的寫入以及讀取控制 方法為例進(jìn)行詳細(xì)描述。其中為便于描述,將各分塊或者各塊對應(yīng)的 參考塊的圖像的編碼數(shù)據(jù)作為該分塊或者該塊的外部數(shù)據(jù),在寫入片 內(nèi)存儲裝置12后,保存在該片內(nèi)存儲裝置12中的該分塊或者該塊對 應(yīng)的參考塊的圖像的編碼數(shù)據(jù)又成為該分塊或者塊的已存數(shù)據(jù)。本實(shí)施例中,為了便于描述,當(dāng)前宏塊的各分塊對應(yīng)的圖像的編 碼數(shù)據(jù)在片外存儲裝置11為順序存儲,且第一存儲器與第二存儲器 由同一片內(nèi)存儲裝置12劃分而成,其中第一存儲器的地址為0~77,
第二存儲器的地址為77~ 156。則第一存儲器51與第二存儲器52的 大小都為78x4字節(jié),由于8x 16格式宏塊的圖像的編碼數(shù)據(jù)的寫入 以及讀取控制方法是以分塊為單位寫入片內(nèi)存儲裝置12以及從片內(nèi) 存儲裝置12讀取以做插值計(jì)算,因此,首先確定各分塊的參考塊的 圖像的編碼數(shù)據(jù)大小方法如下對接收到的當(dāng)前宏塊中塊的分塊的運(yùn)動矢量進(jìn)行判斷,確定各分 塊的運(yùn)動矢量中的x與y值是否為整數(shù)值。根據(jù)x與y是否整數(shù)值的判斷,確定每個(gè)分塊劃分出地2個(gè)分塊 的參考塊的圖像的編碼數(shù)據(jù)大小,以便確定需要從片外存儲裝置11 中需要讀取的參考塊圖像的數(shù)據(jù)量。本實(shí)施例中,第一塊73所劃分出的第一分塊731與第三分塊733 大小相同,且由于第一分塊731與第三分塊733都是由第一塊73劃 分出來,第一塊73只具有一個(gè)運(yùn)動矢量,所以第一分塊731與第三 分塊733的參考塊的圖像的編碼數(shù)據(jù)量相同。同理,第二塊74所劃 分出來的第二分塊742與第四分塊744的參考塊的圖像的編碼數(shù)據(jù)量 相同。另外,根據(jù)運(yùn)動矢量中x與y是否整數(shù)值的情況,可以確定第三 分塊733與第一分塊731有多少象素重疊以及第三分塊733與第一分 塊731所需要的參考塊的圖像的編碼數(shù)據(jù),因而也確定在進(jìn)行第三分 塊存儲時(shí),未與第一分塊731重疊的參考塊的象素的圖像的編碼數(shù)據(jù) 的大小,從而決定在進(jìn)行第三分塊存儲時(shí)需要將多少圖像的編碼數(shù)據(jù) 寫入片內(nèi)存儲裝置12。具體地,第一塊73的兩個(gè)分塊731與733的參考塊圖像象素的 情況如下當(dāng)?shù)谝粔K73對應(yīng)的運(yùn)動矢量的x與y都為整數(shù)時(shí),第一分塊731 與第三分塊733的參考塊都是8x8的塊,兩者之間沒有公共參考象 素塊,因此第一分塊731對應(yīng)的參考塊的圖像的編碼數(shù)據(jù)的數(shù)據(jù)量為 16x4字節(jié),第三分塊733對應(yīng)的參考塊的圖像的編碼數(shù)據(jù)的數(shù)據(jù)量 也是16x4字節(jié)。
當(dāng)?shù)谝粔K73對應(yīng)的運(yùn)動矢量中的X為整數(shù),y為非整數(shù)時(shí),其 所劃分出來的第一分塊731與第三分塊733的參考塊都是13 x 8的塊, 且兩者之間存在公共參考象素塊,第三分塊733出去公共參考象素塊 后為一8x8的塊,因此,在存儲第一分塊731時(shí),需要存儲的參考 塊的圖像的編碼數(shù)據(jù)的數(shù)據(jù)量為26x4字節(jié),而在存儲第一分塊731 時(shí),只需要存儲一 8x8的參考塊的圖像的編碼數(shù)據(jù),即需要存儲的 參考塊的數(shù)據(jù)量為16x4字節(jié)。當(dāng)?shù)谝粔K73對應(yīng)的運(yùn)動矢量中的x為非整數(shù),y為整數(shù)時(shí),第 一分塊731與第三分塊733的參考塊都是8 x 13的參考塊,但是在實(shí) 際存儲中,為了存儲方便,通常在存儲器中保持整行存儲,通常采用 8 x 16的參考塊進(jìn)行存儲。而且由于第一分塊731與第三分塊733的 參考圖像都位于x方向,因此第一分塊731與第三分塊733之間不存 在公共參考象素塊,因此,在存儲第一分塊731時(shí),需要存儲的參考 塊的圖像的編碼數(shù)據(jù)的數(shù)據(jù)量為32x4字節(jié),而在存儲第一分塊731 時(shí),需要存儲的參考塊的數(shù)據(jù)量為32x4字節(jié)。當(dāng)?shù)谝粔K73對應(yīng)的運(yùn)動矢量中的x為非整數(shù),y為非整數(shù)時(shí), 第一分塊731與第三分塊733的參考塊是13 x 13的塊,但是在實(shí)際 存儲中,為了存儲方便,通常在存儲器中為了保持整行存儲,通常采 用13 x 16的參考塊進(jìn)行存儲。而且第一分塊731與第三分塊733在x 方向沒有存在重疊象素,因此不存在公共參考象素塊,而只在y方向 存在公共參考象素塊,因此第一分塊731與第三分塊733之間只在y 方向上存在公共參考象素塊,因此,在存儲第一分塊731時(shí),需要存 儲的參考塊的圖像的編碼數(shù)據(jù)的數(shù)據(jù)量為52x4字節(jié),而在存儲第一 分塊731時(shí),y方向上的公共參考象素塊對應(yīng)的圖.像的編碼數(shù)據(jù)不需 要再次寫入存儲器,而只需要存儲8 x 16的參考塊的圖像的編碼數(shù)據(jù), 即需要存儲的參考塊的數(shù)據(jù)量為32 x 4字節(jié)。第二塊74劃分成的第二分塊742與第四分塊744的存儲情況與 上述的第一分塊731與第三分塊733的情況類似,在此不再累述。 根據(jù)以上分析,將8x 16格式的宏塊的各分塊的參考塊的圖像的編碼數(shù)據(jù)寫入片內(nèi)存儲裝置12的方法各有不同,具體的步驟如下步驟1 、第 一 分塊7 31的外部數(shù)據(jù)存儲如下在第一存儲器51中,將寫入地址設(shè)置為0地址,并從片外存儲 裝置11中讀取該8 x 16宏塊中第一分塊73對應(yīng)的參考塊數(shù)據(jù)如下當(dāng)?shù)谝粔K73的運(yùn)動矢量中x與y都是整數(shù)值時(shí),從片外存儲裝 置11中讀取第一分塊731對應(yīng)的外部數(shù)據(jù),即第一分塊731對應(yīng)參 考塊的圖像的編碼數(shù)據(jù)并寫入第一存儲器51,即從當(dāng)前宏塊的第一塊 73在片外存儲裝置11的存儲起始地址起讀取一個(gè)8 x 8塊對應(yīng)的圖像 的編碼數(shù)據(jù)的數(shù)據(jù)量,即16x4字節(jié)的數(shù)據(jù)存入第一存儲器。當(dāng)?shù)谝粔K73的運(yùn)動矢量中x是整數(shù),y是非整數(shù)時(shí),從片外存 儲裝置11中讀取第一分塊731對應(yīng)的參考塊圖像的編碼數(shù)據(jù)并寫入 第一存儲器51,從當(dāng)前宏塊的第一塊73在片外存儲裝置11的存儲起 始地址起讀取一個(gè)13x8塊對應(yīng)的圖像的編碼數(shù)據(jù)的數(shù)據(jù)量,即26 x4字節(jié)的數(shù)據(jù)存入第一存儲器51。當(dāng)?shù)谝粔K73的運(yùn)動矢量中x是非整數(shù),y是整數(shù)時(shí),從片外存 儲裝置11中讀取第一分塊731對應(yīng)的圖像的編碼數(shù)據(jù)并寫入第一存 儲器,從當(dāng)前宏塊的第一塊73在片外存儲裝置11的存儲起始地址起 讀取一個(gè)8x 16塊對應(yīng)的圖像的編碼數(shù)據(jù)的數(shù)據(jù)量,即32x4字節(jié)的 數(shù)據(jù)存入第一存儲器51。當(dāng)?shù)谝粔K73的運(yùn)動矢量中x與y都是整數(shù)時(shí),從片外存儲裝置 11中讀取第一分塊731對應(yīng)的圖像的編碼數(shù)據(jù)并寫入第一存儲器51, 從當(dāng)前宏塊的第一塊73在片外存儲裝置11的存儲起始地址起讀取一 個(gè)13 x 16塊對應(yīng)的圖像的編碼數(shù)據(jù)的數(shù)據(jù)量,即52x4字節(jié)的數(shù)據(jù) 存入第一存儲器51。步驟2、對第 一存儲器中的第 一分塊731的已存數(shù)據(jù)的讀取如下 在第一分塊731的圖像的編碼數(shù)據(jù)存儲完畢后,第一存儲器51 作為已寫存儲器,對第一分塊的數(shù)據(jù)進(jìn)行讀取以做插值計(jì)算,其讀取
的起始地址為地址0,當(dāng)讀取完畢時(shí),將該第一存儲器51重新作為空 閑存儲器。步驟3、對第二分塊742的外部數(shù)據(jù)的存儲過程如下 在對已寫存儲器,即第一存儲器51開始進(jìn)行讀取的同時(shí),開始 進(jìn)行將第二分塊742對應(yīng)的圖像的編碼數(shù)據(jù)寫入第二存儲器52,即將 寫入地址設(shè)置為地址78,將第二分塊742對應(yīng)的圖像的編碼數(shù)據(jù)從 78地址起存入第二存儲器52。 具體地當(dāng)?shù)诙K74的運(yùn)動矢量中x與y都是整數(shù)值時(shí),從片外存儲裝 置11中讀取第二分塊742對應(yīng)的外部數(shù)據(jù),即第二分塊742對應(yīng)的 圖像的編碼數(shù)據(jù)并寫入第二存儲器52,從當(dāng)前宏塊的第二塊74在片 外存儲裝置11的存儲起始地址起讀取一個(gè)8x8塊對應(yīng)的圖像的編碼 數(shù)據(jù)的數(shù)據(jù)量,即16x4字節(jié)的數(shù)據(jù)存入第二存儲器52。當(dāng)?shù)诙K74的運(yùn)動矢量中x是整數(shù),y是非整數(shù)時(shí),從片外存 儲裝置11中讀取第二分塊742對應(yīng)的圖像的編碼數(shù)據(jù)并寫入第二存 儲器52,從當(dāng)前宏塊的第二塊74在片外存儲裝置11的存儲起始地址 起讀取一個(gè)13 x 8塊對應(yīng)的圖像的編碼數(shù)據(jù)的數(shù)據(jù)量,即26x4字節(jié) 的數(shù)據(jù)存入第二存儲器52。當(dāng)?shù)诙K74的運(yùn)動矢量中x是非整數(shù),y是整數(shù)時(shí),從片外存 儲裝置11中讀取第二分塊742對應(yīng)的圖像的編碼數(shù)據(jù)并寫入第二存 儲器52,從當(dāng)前宏塊的第二塊74在片外存儲裝置11的存儲起始地址 起讀取一個(gè)8x 16塊對應(yīng)的圖像的編碼數(shù)據(jù)的數(shù)據(jù)量,即32x4字節(jié) 的數(shù)據(jù)存入第二存儲器52。當(dāng)?shù)诙K74的運(yùn)動矢量中x與y都是整數(shù)時(shí),從片外存儲裝置 11中讀取第二分塊742對應(yīng)的圖像的編碼數(shù)據(jù)并寫入第二存儲器52, 從當(dāng)前宏塊的第二分塊73在片外存儲裝置11的存儲起始地址起讀取 一個(gè)13 x 16塊對應(yīng)的圖像的編碼數(shù)據(jù)的數(shù)據(jù)量,即52x4字節(jié)的數(shù) 據(jù)存入第二存儲器52。
步驟4、對第二分塊742的已存數(shù)據(jù)進(jìn)行讀取當(dāng)?shù)诙謮K742對應(yīng)的參考塊的圖像的編碼數(shù)據(jù)全部寫入所述第 二存儲器52后,將該第二存儲器52作為已寫存儲器,并在已寫存儲 器,即第二存儲器52中讀取第二分塊742的數(shù)據(jù)以做插值計(jì)算,其 讀取的起始地址為78地址,當(dāng)?shù)诙謮K742的數(shù)據(jù)讀取完畢時(shí),將 該第二存儲器52重新作為空閑存儲器。步驟5、對第三分塊731的外部數(shù)據(jù)進(jìn)行存儲在對已寫存儲器,即第二存儲器進(jìn)行數(shù)據(jù)開始讀取的同時(shí),開始 將第三分塊743對應(yīng)的參考塊的圖像的編碼數(shù)據(jù)寫入第一存儲器51 的操作,其具體過程如下當(dāng)?shù)谌謮K73的運(yùn)動矢量中x與y都是整數(shù)值時(shí),將第一存儲 器51的存儲地址設(shè)置為16,從片外存儲裝置11中讀取第三分塊733 的數(shù)據(jù)并從地址16開始寫入第一存儲器,即將片外存儲裝置11中第 一塊73對應(yīng)的圖像的編碼數(shù)據(jù)中從第一分塊731的數(shù)據(jù)之后再讀取 16 x 4字節(jié)的圖像的編碼數(shù)據(jù)寫入第一存儲器51。當(dāng)?shù)谝粔K73的運(yùn)動矢量中x是整數(shù),y是非整數(shù)時(shí),將第一存 儲器51的寫地址設(shè)置為6,從片外存儲裝置11中讀取第三分塊733 的數(shù)據(jù)并從地址26開始寫入第一存儲器,即將片外存儲裝置11中第 一分塊73對應(yīng)的圖像的編碼數(shù)據(jù)中從第一分塊731的數(shù)據(jù)之后再讀 取下一個(gè)8x8塊的圖像的編碼數(shù)據(jù),即16x4字節(jié)大小的圖像的編 碼數(shù)據(jù)寫入第一存儲器51。當(dāng)?shù)谝环謮K73的運(yùn)動矢量中x是非整數(shù),y是整數(shù)時(shí),將第一 存儲器51的寫地址設(shè)置為32,并從片外存儲裝置11中讀取第三分塊 733中除公共參考象素塊以外的圖像的編碼數(shù)據(jù)并從地址26開始寫 入第一存儲器,即將片外存儲裝置11中第一分塊73對應(yīng)的圖像的編 碼數(shù)據(jù)中從第 一 分塊7 31的數(shù)據(jù)之后再讀取8 x 16塊的圖像的編碼數(shù) 據(jù),即再讀取32x4字節(jié)的圖像的編碼數(shù)據(jù)寫入第一存儲器51。
當(dāng)?shù)谝粔K73的運(yùn)動矢量中x是非整數(shù),y是非整數(shù)時(shí),將第一 存儲器的寫地址設(shè)置為52,并從片外存儲裝置11中讀取第三分塊733 中除公共參考象素塊以外的圖像的編碼數(shù)據(jù)的數(shù)據(jù)并從地址52開始寫入第一存儲器51,即將片外存儲裝置11中第一分塊73對應(yīng)的參考 塊的圖像的編碼數(shù)據(jù)中從第 一分塊731的外部數(shù)據(jù)的存儲地址之后再 讀取一個(gè)8x 16塊的數(shù)據(jù),即32x4字節(jié)的圖像的編碼數(shù)據(jù)寫入第一 存儲器。其中,由于第一存儲器存儲量為78x4字節(jié),而且如圖8c 所示,公共參考塊象素的圖像的編碼數(shù)據(jù)位于第一分塊731與第三分 塊733交界處,由于圖像的編碼數(shù)據(jù)在片外和片內(nèi)存儲裝置12為順 序存儲,所述公共參考塊象素位于第一存儲器的地址32-51處,因 此第一存儲器中地址0 5段保存的第一分塊731的圖像編碼數(shù)據(jù)是 非公共參考像素塊的圖像的編碼數(shù)據(jù),而且已經(jīng)被差值計(jì)算完畢,因而該段地址保存的圖像的編碼數(shù)據(jù)是可以被覆蓋的,因此,第三分塊 733對應(yīng)的非公共參考塊以外部分對應(yīng)的參考塊的圖像的編碼數(shù)據(jù)被 順次寫入第 一存儲器的地址52 ~ 77 ,以及地址0 ~ 5部分中。步驟6、讀取第一存儲器51中的第三分塊733的已存數(shù)據(jù)以進(jìn) 行插值計(jì)算。在第三分塊733的圖像的編碼數(shù)據(jù)存儲完畢后,第一存儲器51 作為已寫存儲器,對第三分塊的數(shù)據(jù)進(jìn)行讀取以做插值計(jì)算。其中, 需要指出的是,當(dāng)?shù)谌謮K733與第一分塊731存在時(shí),第三分塊733 還應(yīng)包括所述公共參考塊象素的圖像的編碼數(shù)據(jù),而不僅僅是第三分 塊733的非公共參考塊部分的圖像的編碼數(shù)據(jù)。具體地當(dāng)?shù)谝粔K73的運(yùn)動矢量中x與y都是整數(shù)值時(shí),從第一存儲器 11的地址16起讀取一個(gè)8 x 8塊對應(yīng)參考塊的圖像的編碼數(shù)據(jù)的數(shù)據(jù) 量,即16x4字節(jié)的數(shù)據(jù)做插值計(jì)算。當(dāng)?shù)谝粔K73的運(yùn)動矢量中x是整數(shù),y是非整數(shù)時(shí),從第一存 儲器11的地址16起讀取一個(gè)13 x 8塊對應(yīng)的參考塊的圖像的編碼數(shù)
據(jù)的數(shù)據(jù)量,即讀取26 x 4字節(jié)的數(shù)據(jù)做插值計(jì)算。當(dāng)?shù)谝粔K73的運(yùn)動矢量中x是非整數(shù),y是整數(shù)時(shí),從第一存 儲器51的地址32起讀取一個(gè)8 x 16塊對應(yīng)的參考塊的圖像的編碼數(shù) 據(jù)的數(shù)據(jù)量,即讀取32 x 4字節(jié)的數(shù)據(jù)做插值計(jì)算。當(dāng)?shù)谝粔K73的運(yùn)動矢量中x與y都是整數(shù)時(shí),從第一存儲器51 的地址32起讀取一個(gè)13 x 16塊對應(yīng)的圖像的編碼數(shù)據(jù)的數(shù)據(jù)量即52 x4字節(jié)的數(shù)據(jù),即讀取第一存儲器51中32~ 75,以及0 5地址存 儲的圖像的編碼數(shù)據(jù)以做插值運(yùn)算。當(dāng)?shù)谝淮鎯ζ?1中第三分塊733對應(yīng)的已存數(shù)據(jù)全部被讀出以 做插值計(jì)算后,將所述第一存儲器51作為空閑存儲器。步驟7、將第四分塊744外部數(shù)據(jù)寫入第二存儲器52在對第三分塊733開始進(jìn)行讀取的同時(shí),開始將第四分塊744對 應(yīng)的圖像的編碼數(shù)據(jù)寫入第二存儲器52的過程的操作,該操作與上 述第三分塊733的寫入過程類似,具體地在對已寫存儲器,即第二存儲器52進(jìn)行數(shù)據(jù)開始讀取的同時(shí), 開始將第三分塊743對應(yīng)的參考塊的圖像的編碼數(shù)據(jù)寫入第 一存儲器 5l的操作,其具體過程如下當(dāng)?shù)谒姆謮K74的運(yùn)動矢量中x與y都是整數(shù)'值時(shí),將第二存儲 器52的存儲地址設(shè)置為94,從片外存儲裝置11中讀取第四分塊744 的數(shù)據(jù)并從地址94開始寫入第二存儲器52,即將片外存儲裝置11 中第二分塊74對應(yīng)的圖像的編碼數(shù)據(jù)中從第二分塊742的外部數(shù)據(jù) 之后再讀取16x4字節(jié)的圖像的編碼數(shù)據(jù)寫入第一存儲器51。當(dāng)?shù)谒姆謮K74的運(yùn)動矢量中x是整數(shù),y是非整數(shù)時(shí),將第一 存儲器51的寫地址設(shè)置為104,從片外存儲裝置11中讀取第四分塊 744的數(shù)據(jù)并從地址104開始寫入第二存儲器,即將片外存儲裝置11 中第二塊74對應(yīng)的圖像的編碼數(shù)據(jù)中從第二分塊742的外部數(shù)據(jù)之 后再讀取下一個(gè)8x8塊對應(yīng)的參考塊的圖像的編碼數(shù)據(jù),即16x4 字節(jié)大小的圖像的編碼數(shù)據(jù)寫入第二存儲器52中。當(dāng)?shù)谒膲K74的運(yùn)動矢量中X是非整數(shù),y是整數(shù)時(shí),將第一存 儲器51的寫地址設(shè)置為110,并從片外存儲裝置11中讀取第四分塊 744中除公共參考象素塊以外的圖像的編碼數(shù)據(jù),并從地址110開始 寫入第一存儲器51,即將片外存儲裝置11中第二塊74對應(yīng)的圖像的 編碼數(shù)據(jù)中從第四分塊744的圖像的編碼數(shù)據(jù)之后再讀取32 x 4字節(jié) 的圖像的編碼數(shù)據(jù)寫入第一存儲器51。當(dāng)?shù)诙謮K74的運(yùn)動矢量中x是非整數(shù),y是非整數(shù)時(shí),將第二 存儲器52的寫地址設(shè)置為130,并從片外存儲裝置11中讀取第四分 塊733中除公共參考象素塊以外的參考塊的圖像的編碼數(shù)據(jù)的數(shù)據(jù)并 從地址52開始寫入第一存儲器51,即將片外存儲裝置11中第一塊 73對應(yīng)參考塊的圖像的編碼數(shù)據(jù)中從第一分塊731的數(shù)據(jù)的存儲地 址之后再讀取一個(gè)8 x 16塊的數(shù)據(jù),即32x 4字節(jié)的圖像的編碼數(shù)據(jù) 寫入第一存儲器51。與第三分塊733的存儲過程同理,第二分塊742 與第四分塊744公共參考塊象素位于第一存儲器51的地址110~ ]29 處,因此第一存儲器51中地址78 83段保存的第二分塊742的圖像 的編碼數(shù)據(jù)是非公共參考像素塊,而且已經(jīng)被差值計(jì)算完畢,因而該 段地址保存的圖像的編碼數(shù)據(jù)是可以被覆蓋的,因此,第四分塊744 對應(yīng)的非公共參考塊以外部分對應(yīng)的圖像的編碼數(shù)據(jù)被順次寫入第 一存儲器51的地址130 ~ 155,以及地址78~ 83部分中。當(dāng)?shù)谒姆謮K744的全部數(shù)據(jù)全部寫入第二存儲器52后,將第二 存儲器52作為已寫存儲器。步驟8、對第四分塊744的已存數(shù)據(jù)進(jìn)行讀取以進(jìn)行插值計(jì)算 當(dāng)?shù)谒姆謮K744的圖像的編碼數(shù)據(jù)全部保存完畢后,開始對第四分塊744的圖像的編碼數(shù)據(jù)進(jìn)行讀取以進(jìn)行插值計(jì)算。其中,需要指出的是,當(dāng)?shù)谒姆謮K744與第二分塊742存在時(shí),第四分塊733的圖像的編碼數(shù)據(jù)還應(yīng)包括所述公共參考塊象素對應(yīng)的參考塊的圖像的編碼數(shù)據(jù),而不僅僅是第四分塊744的非公共參考塊部分的參考塊的圖像的編碼數(shù)據(jù),其具體過程如下
當(dāng)?shù)诙K74的運(yùn)動矢量中X與y都是整數(shù)值時(shí),從第一存儲器51的地址94起讀取一個(gè)8x8塊對應(yīng)的圖像的編碼數(shù)據(jù)的數(shù)據(jù)量,即 16 x 4字節(jié)的數(shù)據(jù)做插值計(jì)算。當(dāng)?shù)诙K74的運(yùn)動矢量中x是整數(shù),y是非整數(shù)時(shí),從第一存 儲器51的地址94起讀取一個(gè)13 x 8塊對應(yīng)的圖像的編碼數(shù)據(jù)的數(shù)據(jù) 量,即26 x 4字節(jié)的已存數(shù)據(jù)做插值計(jì)算。當(dāng)?shù)诙K74的運(yùn)動矢量中x是非整數(shù),y是整數(shù)時(shí),從第一存 儲器51的地址110起讀取一個(gè)8x 16塊對應(yīng)的圖像的編碼數(shù)據(jù)的數(shù) 據(jù)量,即32x4字節(jié)的已存數(shù)據(jù)做插值計(jì)算。當(dāng)?shù)诙K74的運(yùn)動矢量中x與y都是整數(shù)時(shí),從第一存儲器51 的地址110起讀取一個(gè)13 x 16塊對應(yīng)的圖4象的編碼數(shù)據(jù)的數(shù)據(jù)量, 即52x 4字節(jié)的數(shù)據(jù)存入第二存儲器,即讀取第二存儲器52中110 ~ 155,以及78~ 83地址存儲的圖像的編碼數(shù)據(jù)以做插值運(yùn)算。當(dāng)?shù)诙鎯ζ?2中第四分塊744對應(yīng)的數(shù)據(jù)全部被讀出后,將 所述第一存儲器51作為空閑存儲器。通過以上過程,即可完成將一個(gè)intel8 x 16格式宏塊的圖像的編 碼數(shù)據(jù)寫入片內(nèi)存儲裝置12,以及從片內(nèi)存儲裝置12中讀取所述宏 塊的圖像的編碼數(shù)據(jù)以做插值計(jì)算。與現(xiàn)有技術(shù)相比,采用了本發(fā)明的讀寫控制方法后,對片外存儲裝 置11的圖像的編碼數(shù)據(jù)的讀取和插值計(jì)算是并行進(jìn)行的,其中,對片外 存儲裝置11讀取可以連續(xù)進(jìn)行,因而降低了對片外存儲裝置11的外部 數(shù)據(jù)的讀取延遲時(shí)間。另外而由于解碼計(jì)算與對片外存儲裝置11中的數(shù) 據(jù)讀取是并行處理的,解碼計(jì)算完畢后的數(shù)據(jù)可以被覆蓋,.而不必占據(jù) 解碼裝置內(nèi)部的片內(nèi)存儲裝置12的存儲空間,因而也減低了所需要的 片內(nèi)存儲裝置12的大小。根據(jù)本發(fā)明的第二方面,提供了 一種在數(shù)據(jù)解碼裝置中用于控制 將外部數(shù)據(jù)寫入片內(nèi)存儲裝置12并由片內(nèi)存儲裝置12讀取已存數(shù)據(jù) 進(jìn)行解碼運(yùn)算的讀寫控制裝置,其特征在于,并行地控制從片外存儲
裝置11讀取外部數(shù)據(jù)存入所述片內(nèi)存儲裝置12以及從片內(nèi)存儲裝置 12讀取已存儲的數(shù)據(jù)進(jìn)行解碼運(yùn)算的操作。其中,所述讀寫控制裝置 02的片內(nèi)存儲裝置12包括一個(gè)存儲器和多個(gè)存儲器兩種方案。下面參照圖3、圖5a、圖5b以及圖9a 圖10b對本發(fā)明的讀寫 控制裝置做進(jìn)一步說明。如附圖9a所示,采用一個(gè)存儲器作為片內(nèi)存儲裝置12的在數(shù)據(jù) 解碼裝置中用于控制將外部數(shù)據(jù)寫入片內(nèi)存儲裝置12并由片內(nèi)存儲 裝置12讀取已存數(shù)據(jù)進(jìn)行解碼運(yùn)算的讀寫控制裝置,包括第一控制 裝置91和第二控制裝置92。下面參考圖3和圖9a,對該采用一個(gè)存儲器作為片內(nèi)存儲裝置 12讀寫控制裝置進(jìn)行進(jìn)一步說明。第一控制裝置91控制將由片外存儲裝置11中讀取數(shù)據(jù)寫入所述 存儲器的空閑區(qū)域15及并行地執(zhí)行控制讀取所述存儲器已存區(qū)域13 中的已存儲的數(shù)據(jù),以進(jìn)行解碼運(yùn)算。第二控制裝置92根據(jù)第一控制裝置91的數(shù)據(jù)寫入片內(nèi)存儲裝置 12后,片內(nèi)存儲裝置12中已存數(shù)據(jù)的存儲位置的變化,控制將所述 空閑區(qū)域15中的寫入已存數(shù)據(jù)的部分由空閑區(qū)域15中去除且合并入 已存區(qū)域。優(yōu)選地,所述第一控制裝置91還可以根據(jù)片內(nèi)存儲裝置12中已 被讀取的已存數(shù)據(jù)的存儲位置,控制重復(fù)地將所述由片外存儲裝置 1112中讀取數(shù)據(jù)寫入所述空閑區(qū)域15及并行地讀取所述已存區(qū)域15 中的已存儲的數(shù)據(jù);且所述第二控制裝置92還用于控制重復(fù)地將所 述空閑區(qū)域中的寫入數(shù)據(jù)的部分由空閑區(qū)域15中去除且合并入已存 區(qū)域13,直至所述參考塊的數(shù)據(jù)均已被讀取,以進(jìn)行解碼運(yùn)算。另外,參照圖9b,所述的讀寫控制裝置具有一個(gè)優(yōu)化例,該優(yōu)化 例中,所述第二控制裝置92還用于控制將所述已存區(qū)域中的已存數(shù) 據(jù)已被讀取的部分由所述已存區(qū)域中去除且合并入空閑區(qū)域。具體地,該讀寫控制裝置還包括了第一檢測裝置93,并在策一控 制裝置91中增加了一個(gè)停止控制裝置911和一個(gè)啟動控制裝置912。
第一檢測裝置93,檢測所述已存區(qū)域13中未被讀取的已存數(shù)據(jù)的數(shù)據(jù)量;其中,第一控制裝置91還包括停止控制裝置911,用于當(dāng)?shù)谝粰z測裝置93檢測到所述已存區(qū)域 中未被讀取的已存數(shù)據(jù)的數(shù)據(jù)量小于第 一預(yù)定閾值時(shí),停止控制裝置 911控制停止讀取所述已存區(qū)域中的已存數(shù)據(jù);啟動控制裝置912,用于當(dāng)檢測到所述已存區(qū)域中未被讀取的已 存數(shù)據(jù)量大于第二預(yù)定閾值時(shí),控制開始讀取所述已存區(qū)域中的已存 數(shù)據(jù)。第一檢測裝置93在對已存區(qū)域中未被讀取的已存數(shù)據(jù)量進(jìn)行檢 測后,將檢測到的已存信息發(fā)送第 一控制裝置中的停止控制裝置與啟 動控制裝置。停止控制裝置根據(jù)已存信息判斷所述已存區(qū)域中未被讀取的已 存數(shù)據(jù)量是否小于第一預(yù)定閾值,當(dāng)小于第一預(yù)定閾值時(shí),控制停止 讀取所述已存區(qū)域中的已存數(shù)據(jù)。啟動控制裝置根據(jù)已存信息判斷所述已存區(qū)域中未被讀取的已 存數(shù)據(jù)量是否大于第二預(yù)定閾值,當(dāng)大于第二預(yù)定閾值時(shí),控制開始 讀取所述已存區(qū)域中的已存數(shù)據(jù)。其中所述的第一預(yù)定閾值與第二預(yù)定閾值可以是預(yù)先設(shè)定的。例 如第一預(yù)定閾值可以是16x4字節(jié),第二預(yù)定闊值可以是。采用多個(gè)存儲器作為片內(nèi)存儲裝置12的在數(shù)據(jù)解碼裝置中用于 控制將外部數(shù)據(jù)寫入片內(nèi)存儲裝置12并由片內(nèi)存儲裝置12讀取已存 數(shù)據(jù)進(jìn)行解碼運(yùn)算的讀寫控制裝置的結(jié)構(gòu)與上述采用單個(gè)存儲器作 為片內(nèi)存儲裝置12的讀寫控制裝置不同。下面參考附圖10a、圖5a和圖5b,對采用多個(gè)存儲器作為片內(nèi) 存儲裝置12的在數(shù)據(jù)解碼裝置中用于控制將外部數(shù)據(jù)寫入片內(nèi)存儲 裝置12并由片內(nèi)存儲裝置12讀取已存數(shù)據(jù)進(jìn)行解碼運(yùn)算的讀寫控制 裝置進(jìn)行說明。 所述采用兩個(gè)存儲器作為片內(nèi)存儲裝置12的.讀寫控制裝置包括 第三控制裝置101和狀態(tài)轉(zhuǎn)換裝置102。所述片內(nèi)存儲裝置12包括多個(gè)存儲器,例如使用兩個(gè)78x4字 節(jié)大小的存儲器即第一存儲器51和第二存儲器52,所述數(shù)據(jù)包括多 個(gè)分塊。第三控制裝置101控制將由片外存儲裝置11中讀取的當(dāng)前分塊 的外部數(shù)據(jù)寫入所述多個(gè)存儲器中的 一 空閑存儲器中;以及并行地控 制由所述多個(gè)存儲器中的已寫存儲器中讀取前一分塊的已存數(shù)據(jù),以 進(jìn)行解碼運(yùn)算;讀寫狀態(tài)轉(zhuǎn)換裝置102,在檢測到所述當(dāng)前分塊的外部數(shù)據(jù)已完 全寫入所述空閑存儲器中且所述前一分塊的數(shù)據(jù)已由所述已寫存儲 器中完全讀出時(shí),將所述已寫存儲器作為空閑存儲器和將所述空閑存 儲器作為已寫存儲器。在各分塊的數(shù)據(jù)沒有全部讀取完畢前,第三控制裝置101重復(fù)地 控制將由片外存儲裝置11中讀取的當(dāng)前分塊的外部數(shù)據(jù)寫入所述空 閑存儲器中且并行地由所述已寫存儲器中讀取前一分塊的已存數(shù)據(jù),圖10b所示為圖10a所示的讀寫控制裝置的一個(gè)優(yōu)化例。該讀寫 控制裝置在圖10a所示的讀寫控制裝置的基礎(chǔ)上,還增加了一個(gè)第二 檢測裝置103,并在第三控制裝置101中增加了一個(gè)冗余處理控制裝 置1011。該第二檢測裝置103對所述多個(gè)存儲器之一中順序?qū)懭氲膬蓚€(gè)分 塊之間是否存在重疊冗余數(shù)據(jù)進(jìn)行檢測。'第三控制裝置101中的冗余處理控制裝置1011,在接收了第二檢 測裝置103檢測到的重疊冗余數(shù)據(jù)的信息后,控制在空閑存儲器中保 留所述重疊冗余數(shù)據(jù)而僅寫入所述當(dāng)前分塊中的非重疊冗余數(shù)據(jù)。另外,上述讀寫控制裝置特別適用于視頻解碼裝置的讀寫控制裝 置,使用在視頻解碼裝置中時(shí),所述數(shù)據(jù)解碼裝置包括視頻解碼裝置, 所述數(shù)據(jù)包括參考塊的圖像數(shù)據(jù)。
特別的,當(dāng)如圖10a或者圖10b所示的讀寫控制裝置,使用在基 于運(yùn)動補(bǔ)償?shù)囊曨l解碼裝置中時(shí),所述數(shù)據(jù)解碼裝置包括基于運(yùn)動補(bǔ) 償?shù)囊曨l解碼裝置,所述圖像塊包括參考宏塊。所述圖像塊包括參考宏塊且所述參考宏塊的類型包括intel16 x 8、 intel8 x 16、 intel8 x 8類 型,所述重疊冗余數(shù)據(jù)包括所述參考宏塊的兩個(gè)分塊之間的重疊象素 的象素?cái)?shù)據(jù)。其中,所述第二檢測裝置根據(jù)接收到的當(dāng)前宏塊的宏塊 類型以及運(yùn)動矢量中x和y值是否整數(shù)來對確定同 一存儲器中順序?qū)?入的兩個(gè)分塊之間是否存在重疊冗余數(shù)據(jù)。如本發(fā)明所述的在數(shù)據(jù)解碼裝置中用于控制將外部數(shù)據(jù)寫入片 內(nèi)存儲裝置12并由片內(nèi)存儲裝置12讀取已存數(shù)據(jù)進(jìn)行解碼運(yùn)算的讀 寫控制裝置,并行地控制從片外存儲裝置11讀取外部數(shù)據(jù)存入所述 片內(nèi)存儲裝置12以及從片內(nèi)存儲裝置12讀取已存儲的數(shù)據(jù)發(fā)送給數(shù) 據(jù)解碼裝置中的解碼運(yùn)算裝置進(jìn)行解碼運(yùn)算,由于如上所述對片外存 儲裝置11中的外部數(shù)據(jù)的讀取與對片內(nèi)存儲裝置12中已存數(shù)據(jù)的讀 取以做解碼運(yùn)算是并行進(jìn)行的,所以包括了本發(fā)明所述用于控制將外 部數(shù)據(jù)寫入片內(nèi)存儲裝置12并由片內(nèi)存儲裝置12讀取已存數(shù)據(jù)進(jìn)行 解碼運(yùn)算的讀寫控制裝置的數(shù)據(jù)解碼裝置在對片外存儲裝置11中的 外部數(shù)據(jù)進(jìn)行讀取并寫入片內(nèi)存儲裝置12時(shí),同步地對已保存在片 外存儲裝置11中的已存數(shù)據(jù)進(jìn)行讀取以作插值計(jì)算。如本發(fā)明所述的讀寫控制裝置或者包括了該讀寫控制裝置的數(shù)據(jù) 解碼裝置,其對片外存儲裝置11的圖像的編碼數(shù)據(jù)的讀取和插值計(jì)算是 并行進(jìn)行的。其中,該讀寫控制裝置或者包括該讀寫控制裝置的數(shù)據(jù)解碼裝置對 片外存儲裝置11的讀取是可以連續(xù)進(jìn)行,因而降低了對片外存儲裝置 11的外部數(shù)據(jù)的讀取延遲。而且由于解碼計(jì)算與對片外存儲裝置11中的數(shù)據(jù)讀取是并行處理 的,解碼計(jì)算完畢后的數(shù)據(jù)可以被覆蓋,而不必占據(jù)解碼裝置內(nèi)部的片
內(nèi)存儲裝置12的存儲空間,因而也減低了所述讀寫控制裝置或者包括 該所述讀寫控制裝置的數(shù)據(jù)解碼裝置所需要設(shè)置的片內(nèi)存儲裝置12的 大小,從而也降低了該讀寫控制裝置的成本。另一方面,本發(fā)明提出的第二種讀寫控制裝置進(jìn)一步將外部解碼數(shù) 據(jù)分為多個(gè)分塊,以分塊為單位進(jìn)行寫入片內(nèi)存儲裝置12以及從片內(nèi)存儲裝置12讀取以進(jìn)行解碼運(yùn)算的操作,因而每次需要存儲的分塊的存儲量也大大小于整塊數(shù)據(jù)的大小,因而也大大減少了所需要設(shè)置的片內(nèi)存儲裝置12的存儲量,從而大大減少了讀寫控制裝置以及包括該讀 寫控制裝置的數(shù)據(jù)解碼裝置的成本。當(dāng)然,本發(fā)明還可以有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)變,但這些相應(yīng)的改變都應(yīng)屬于本發(fā)明權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1、一種在數(shù)據(jù)解碼裝置中用于控制將外部數(shù)據(jù)寫入片內(nèi)存儲裝置并由片內(nèi)存儲裝置讀取已存數(shù)據(jù)進(jìn)行解碼運(yùn)算的方法,其特征在于,并行地控制將從片外存儲裝置讀取的外部數(shù)據(jù)存入片內(nèi)存儲裝置以及從片內(nèi)存儲裝置讀取已存數(shù)據(jù)以進(jìn)行解碼運(yùn)算的操作。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述片內(nèi)存儲裝 置包括一個(gè)存儲器,其中,該方法包括以下步驟a. 控制并行地將由片外存儲裝置讀取的外部數(shù)據(jù)寫入所述存儲 器的空閑區(qū)域及讀取所述存儲器已存區(qū)域中的已存數(shù)據(jù),以進(jìn)行解碼 運(yùn)算;b. 控制將所述空閑區(qū)域中的寫入已存數(shù)據(jù)的部分由空閑區(qū)域中 去除且合并入已存區(qū)域;c. 重復(fù)步驟a和b,直至所述外部數(shù)據(jù)均已被讀取,以進(jìn)行解碼 運(yùn)算。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟b還包 括以下步驟區(qū)域中去除且合并入所述空閑區(qū)域。
4. 根據(jù)權(quán)利要求2或3所述的方法,其特征在于,還包括以下 步驟-檢測所述已存區(qū)域中未被讀取的已存數(shù)據(jù)量.; 其中,所述步驟a還包括以下步驟-當(dāng)檢測到所述已存區(qū)域中未被讀取的已存數(shù)據(jù)量小于第 一預(yù)定 閾值時(shí),控制停止讀取所述已存區(qū)域中的已存數(shù)據(jù); 其中,所述步驟a還包括以下步驟 -當(dāng)檢測到所述已存區(qū)域中未被讀取的已存數(shù)據(jù)量大于第二預(yù)定 閾值時(shí),控制開始讀取所述已存區(qū)域中的已存數(shù)據(jù)。
5、 如權(quán)利要求1所述的方法,其特征在于,所述片內(nèi)存儲裝置 包括多個(gè)存儲器;所述外部數(shù)據(jù)包括多個(gè)分塊,其中,該方法包括以下步驟A. 控制并行地將由片外存儲裝置中讀取的當(dāng)前分塊的外部數(shù)據(jù) 寫入所述多個(gè)存儲器中的 一空閑存儲器中;以及由所述多個(gè)存儲器中 的已寫存儲器中讀取前一分塊的已存數(shù)據(jù),用以進(jìn)行解碼運(yùn)算;B. 當(dāng)檢測到所述當(dāng)前分塊的外部數(shù)據(jù)已完全寫入所述空閑存儲 器中且所述前一分塊的已存數(shù)據(jù)已由所述已寫存儲器中完全讀出,則 將所述已寫存儲器作為空閑存儲器和將所述空閑存儲器作為已寫存 儲器,重復(fù)上述步驟A和B,直至所述已存數(shù)據(jù)的所有分塊的外部數(shù) 據(jù)均已被讀取,以進(jìn)行解碼運(yùn)算。
6、 如權(quán)利要求5所述的方法,其特征在于,還包含以下步驟-檢測在所述多個(gè)存儲器之一中順序?qū)懭氲膬蓚€(gè)分塊之間是否存 在重疊冗余數(shù)據(jù);其中,步驟A還包括-當(dāng)檢測在所述空閑存儲器中前一寫入的分塊與當(dāng)前分塊之間存 在重疊冗余數(shù)據(jù),則控制在所述空閑存儲器中保留所述重疊冗余數(shù)據(jù) 而僅寫入當(dāng)前分塊中非重疊冗余數(shù)據(jù)。
7、 根據(jù)權(quán)利要求5或6所述的方法,其特征在于,所述片內(nèi)存 儲裝置包括兩個(gè)存儲器。
8、 根據(jù)權(quán)利要求1至7中任一項(xiàng)所述的方法,其特征在于,所 述數(shù)據(jù)解碼裝置包括視頻解碼裝置,所述外部數(shù)據(jù)和所述已存數(shù)據(jù)包 括參考塊的圖像的編碼數(shù)據(jù)。
9、 根據(jù)權(quán)利要求8所述的方法,其特征在于,所述視頻解碼裝 置包括基于運(yùn)動補(bǔ)償?shù)囊曨l解碼裝置,所述圖像塊包括參考宏塊。
10、 根據(jù)權(quán)利要求8或者9所述的方法,其特征在于,所述數(shù)據(jù)解碼裝置包括基于運(yùn)動補(bǔ)償?shù)囊曨l解碼裝置,且所述圖像塊包括參考 宏塊,所述重疊冗余數(shù)據(jù)包括所述參考宏塊的兩個(gè)分塊之間的重疊象素的編碼數(shù)據(jù),且所述參考宏塊的類型包括intel16 x 8、 intel8 x 16、 intel8x8類型。
11、 根據(jù)權(quán)利要求10所述的方法,其特征在于,所述存儲器的 存儲量為78x4字節(jié)。
12、 一種在數(shù)據(jù)解碼裝置中用于控制將外部數(shù)據(jù)寫入片內(nèi)存儲裝 置并由片內(nèi)存儲裝置讀取已存數(shù)據(jù)進(jìn)行解碼運(yùn)算的讀寫控制裝置,其 特征在于,并行地控制從片外存儲裝置讀取外部數(shù)據(jù)存入所述片內(nèi)存 儲裝置以及從片內(nèi)存儲裝置讀取已存儲的數(shù)據(jù)以進(jìn)行解碼運(yùn)算的操作。
13、 如權(quán)利要求12所述的讀寫控制裝置,其特征在于,所述片 內(nèi)存儲裝置包括一個(gè)存儲器,其中,所述讀寫控制裝置包括第 一控制裝置,用于控制并行地將由片外存儲裝置中讀取數(shù)據(jù)寫 入所述存儲器的空閑區(qū)域及執(zhí)行控制讀取所述存儲器已存區(qū)域中的 已存儲的數(shù)據(jù),以進(jìn)行解碼運(yùn)算;第二控制裝置,用于控制將所述空閑區(qū)域中的寫入已存數(shù)據(jù)的部 分由空閑區(qū)域中去除且合并入已存區(qū)域;其中,所述第一控制裝置還用于控制并行地重復(fù)地將所述由片外 存儲裝置中讀取數(shù)據(jù)寫入所述空閑區(qū)域及讀取所述已存區(qū)域中的已 存儲的數(shù)據(jù);且所述第二控制裝置還用于控制重復(fù)地將所述空閑區(qū)域中的寫入數(shù)據(jù)的部分由空閑區(qū)域中去除且合并入已存區(qū)域,直至所述 參考塊的數(shù)據(jù)均已被讀取,以進(jìn)行解碼運(yùn)算。
14、 如權(quán)利要求13所述的讀寫控制裝置,其特征在于,所述第 二控制裝置還用于控制將所述已存區(qū)域中的已存數(shù)據(jù)已被讀取的部 分由所述已存區(qū)域中去除且合并入空閑區(qū)域。
15、 根據(jù)權(quán)利要求13或者14所述的讀寫控制裝置,其特征在于 還包括量; 、其中,第一控制裝置還包括停止控制裝置,用于當(dāng)檢測到所述已存區(qū)域中未被讀取的已存數(shù) 據(jù)量小于第 一 預(yù)定閾值時(shí),控制停止讀取所述已存區(qū)域中的已存數(shù) 據(jù);啟動控制裝置,用于當(dāng)檢測到所述已存區(qū)域中未被讀取的已存數(shù) 據(jù)量大于第二預(yù)定閾值時(shí),控制開始讀取所述已存區(qū)域中的已存數(shù) 據(jù)。
16、 根據(jù)權(quán)利要求12所述的讀寫控制裝置,其特征在于,所述片內(nèi)存儲裝置包括多個(gè)存儲器,所述數(shù)據(jù)包括多個(gè)分塊,其中,所述 讀寫控制裝置包括第三控制裝置,用于控制并行地將由片外存儲裝置中讀取的當(dāng)前 分塊的外部數(shù)據(jù)寫入所述多個(gè)存儲器中的一空閑存儲器中;以及由所述多個(gè)存儲器中的已寫存儲器中讀取前一分塊的已存數(shù)據(jù)以進(jìn)行解 碼運(yùn)算;讀寫狀態(tài)轉(zhuǎn)換裝置,用于在檢測到所述當(dāng)前分塊的外部數(shù)據(jù)已完 全寫入所述空閑存儲器中且所述前一分塊的數(shù)據(jù)已由所述已寫存儲 器中完全讀出時(shí),將所述已寫存儲器作為空閑存儲器和將所述空閑存儲器作為已寫存儲器;其中,所述第三控制裝置重復(fù)地控制并行地將由片外存儲裝置中 讀取的當(dāng)前分塊的外部數(shù)據(jù)寫入所述空閑存儲器中且由所述已寫存 儲器中讀取前一分塊的已存數(shù)據(jù)直至所述參考塊的所有分塊的已存數(shù)據(jù)均已被讀取。
17、 根據(jù)權(quán)利要求16所述的讀寫控制裝置,其特征在于,還包括第二檢測裝置,用于檢測在所述多個(gè)存儲器之一中順序?qū)懭氲膬蓚€(gè)分塊之間是否存在重疊冗余數(shù)據(jù);其中,第三控制裝置還包括冗余處理控制裝置,用于當(dāng)檢測在所述空閑存儲器中前 一 寫入的 分塊與當(dāng)前分塊之間存在重疊冗余數(shù)據(jù)時(shí),控制在空閑存儲器中保留 所述重疊冗余數(shù)據(jù)而僅寫入所述當(dāng)前分塊中的非重疊冗余數(shù)據(jù)。
18、 根據(jù)權(quán)利要求16或者17所述的讀寫控制裝置,其特征在于, 所述片內(nèi)存儲裝置包括兩個(gè)存儲器。
19、 根據(jù)權(quán)利要求12~18中任一項(xiàng)所述的讀寫控制裝置,其特 征在于所述數(shù)據(jù)解碼裝置包括視頻解碼裝置,所述數(shù)據(jù)包括參考塊的 圖像數(shù)據(jù)。
20、 根據(jù)權(quán)利要求12~19中任一項(xiàng)所述的讀寫控制裝置,其特 征在于,所述視頻解碼裝置包括基于運(yùn)動補(bǔ)償?shù)囊曨l解碼裝置,所述 圖像塊包括參考宏塊。
21、 根據(jù)權(quán)利要求17或者18所述的讀寫控制裝置,其特征在于, 所述數(shù)據(jù)解碼裝置包括基于運(yùn)動補(bǔ)償?shù)囊曨l解碼裝置,所述圖像塊包 括參考宏塊且所述參考宏塊的類型包括intell6x 8、 intel8 x 16、 intel8 x 8類型,所述重疊冗余數(shù)據(jù)包括所述參考宏塊的兩個(gè)分塊之間的重 疊象素的編碼數(shù)據(jù)。
22、 根據(jù)權(quán)利要求21所述的讀寫控制裝置,'其特征在于,所述存儲器的存儲量為78x4字節(jié)。
23、 一種數(shù)據(jù)解碼裝置,其特征在于,包括如權(quán)利要求11-20 中任一項(xiàng)所述的用于控制將外部數(shù)據(jù)寫入片內(nèi)存儲裝置及由片內(nèi)存 儲裝置讀取外部數(shù)據(jù)以進(jìn)行解碼運(yùn)算的讀寫控制裝置。
全文摘要
現(xiàn)有的基于宏塊的運(yùn)動補(bǔ)償視頻解碼方案,對外部數(shù)據(jù)的讀取和讀取已存數(shù)據(jù)以做插值運(yùn)算是串行操作的,導(dǎo)致了設(shè)置在視頻解碼裝置內(nèi)部的片內(nèi)存儲裝置的容量較大以及解碼速度下降,本發(fā)明提供了一種在數(shù)據(jù)解碼裝置中用于控制并行地將外部數(shù)據(jù)寫入片內(nèi)存儲裝置并由片內(nèi)存儲裝置讀取已存數(shù)據(jù)進(jìn)行解碼運(yùn)算的方法及其裝置可以減少所需要的片內(nèi)存儲裝置的容量和解碼的時(shí)間。
文檔編號H04N7/26GK101399977SQ20071004671
公開日2009年4月1日 申請日期2007年9月29日 優(yōu)先權(quán)日2007年9月29日
發(fā)明者羅忠祥 申請人:智多微電子(上海)有限公司