專利名稱:外部存儲裝置、存儲圖像數據的方法及圖像處理器的制作方法
技術領域:
與本發明一致的設備和方法涉及存儲圖像數據,并且,更具體地,涉及外部存儲裝置、用于該外部存儲裝置的存儲圖像數據的方法、以及使用該方法來改善圖像編碼和/或解碼速度的圖像處理器。
背景技術:
在諸如運動圖像專家組(MPEG)-1、MPEG-2、MPEG-4視覺(Visual)、H.261、H.263、以及H.264標準的視頻壓縮標準中,將輸入圖像劃分為16×16個宏塊。在以幀間預測(interprediction)的所有編碼模式和幀內預測(intraprediction)的所有編碼模式編碼每個宏塊之后,比較編碼宏塊所需的比特率和編碼模式的速率失真(RD)代價。然后根據比較的結果選擇適合的編碼模式并以所選編碼模式編碼宏塊。在幀間預測中,以宏塊為單位執行運動估計和運動補償,以使用視頻幀之間的相似性來在時間上減小冗余分量。
圖1為相關技術的視頻編碼器10的框圖。
參照圖1,視頻編碼器10包括外部存儲器11、壓縮單元12、以及輸出緩沖器13。
外部存儲器11存儲外部輸入的圖像、以及在通過壓縮單元12而被壓縮編碼之后重構的先前幀的圖像。
在幀間預測中,壓縮單元12通過以宏塊為單位,對輸入圖像執行運動估計、運動補償、量化、離散余弦變換(DCT)、以及熵編碼,而壓縮輸入圖像。更具體地,壓縮單元12通過在存儲在外部存儲器11中的先前幀中搜索與當前宏塊最相似的區域、并計算運動向量,而執行運動估計。另外,壓縮單元12通過使用通過運動估計得到的所計算的運動向量、從存儲在外部存儲器11中的先前幀的圖像讀取與當前宏塊最相似的區域、并從當前宏塊中減去所讀取的區域以生成剩余數據,而執行運動補償。壓縮單元12可具有嵌入在其中的獨立的本地存儲器,用來存儲用于運動估計和補償的先前幀的圖像數據,但是,由于其嵌入存儲器的大小的限制,通常,壓縮單元12從具有大容量的外部存儲器11讀取所需的先前幀的圖像數據。
輸出緩沖器13可通過先進先出(FIFO)存儲器而被實現,并且,作為輸出位流而輸出由壓縮單元12壓縮的圖像。
圖2為用于說明圖1的視頻編碼器10的外部存儲器11中的圖像數據的存儲的圖。
參照圖2,將作為編碼或解碼的單位的宏塊的行中的像素存儲在外部存儲器11的行中。例如,將宏塊的行中的16個像素存儲在與地址x0001_0000相對應的外部存儲器11的行中。當單個像素所需的位數為8時,將128位圖像數據存儲在外部存儲器11的行中。
如上所述,當圖1的視頻編碼器10的壓縮單元12執行運動補償時,壓縮單元12從外部存儲器11讀取由通過運動估計得到的運動向量指示的先前數據的圖像數據。根據H.264標準,將宏塊劃分為16×8、8×16、8×8、或4×4塊,用于運動補償。換句話說,將每個宏塊劃分為各種大小的子塊,用于運動補償。這樣的運動補償被稱為樹形結構運動補償。
當壓縮單元12使用樹形結構運動補償對4×4塊執行運動估計和補償時,從外部存儲器11讀取與4×4塊相對應的先前幀的圖像數據所需的時間Tc如下Tc=(總線接口開銷處理時間+傳送時間)×(從外部存儲器讀取的總行數)總線接口開銷處理時間是訪問外部存儲器11的一行以及訪問外部存儲器11的另一行之間的等待時間(latency)。在外部存儲器11是動態隨機存取存儲器(DRAM)、同步DRAM(SDRAM)、或雙數據速率(DDR)SDRAM時,可能出現總線接口開銷處理時間。換句話說,由于針對于每個預定讀取單元而作出對外部存儲器11的訪問,所以,在預定讀取單元改變時,出現預定等待時間。在圖2中,假定總線接口開銷處理時間為7個時鐘周期。
通過將要從外部存儲器11的行讀取的數據的位數除以總線帶寬,而得到傳送時間。總線帶寬與在單個時鐘周期期間可通過外部存儲器11和壓縮單元12之間的數據傳送路徑(即,總線)傳送的位數相關。假定總線帶寬為32位。由此,當要從外部存儲器11的行讀取4個像素(即,4字節(32位)圖像數據)時,傳送時間是32/32,即,1個時鐘周期。
圖3為示出從外部存儲器11讀取圖像數據、并執行運動補償所需的時間的相關技術的時序圖。
當將先前幀的圖像數據存儲在外部存儲器11中時,壓縮單元12訪問外部存儲器11四次,以讀取與4×4當前子塊相對應的存儲在外部存儲器11中的先前幀的圖像數據。這是因為,4×4當前子塊的每行的圖像數據被存儲在外部存儲器11的不同行中。在此情況下,如下計算讀取4×4當前子塊所引用的先前幀的4×4圖像數據所需的總讀取時鐘周期Tc1Tc1={(7+1)×4}=32cc(時鐘周期)如上所述,總線接口開銷處理時間是7cc,讀取存儲在外部存儲器11的行中的4個像素所需的傳送時間是1cc,并且,讀取先前幀的4行的圖像數據需要對外部存儲器11進行4次訪問。
從以上等式中可以看出,提取與在一個宏塊中包括的16個4×4塊相對應的先前幀的圖像數據需要,16×Tc1,即,512cc。當針對于單個4×4塊的運動補償所需的時間是9cc、且可與讀取操作并行地執行運動補償時,如圖3所示,從外部存儲器11讀取用于在單個宏塊中包括的16個4×4塊的運動補償的圖像數據、并執行運動補償所需的時間是521cc。
根據相關技術,當以從宏塊劃分的4×4塊為單位執行運動補償時,將宏塊的行中的像素存儲在外部存儲器11的不同行中。結果,讀取用于每個4×4塊的運動補償的先前幀的圖像數據需要對外部存儲器11的至少四次訪問,這增加了圖像的壓縮編碼所需的整體處理時間。
發明內容
本發明的示范實施例克服了以上缺點和未描述的其它缺點。并且,本發明不需要克服上述缺點,并且,本發明的示范實施例可以不克服上述任何問題。
本發明提供了外部存儲裝置、用于該外部存儲裝置的存儲圖像數據的方法、以及使用該方法的圖像處理器,其中,可通過使對存儲圖像處理中的參考幀的外部存儲器的訪問次數最小,而減小對圖像進行壓縮編碼和/或解碼所需的時間。
本發明還通過使對外部存儲器的訪問次數最小,而減小操作頻率和功耗量。
根據本發明的一方面,提供了將用于圖像的壓縮編碼和/或解碼的圖像數據存儲在外部存儲器中的方法。該方法包括將在從宏塊劃分的預定大小的子塊中包括的圖像數據形成至少一個數據存儲單位;以及將數據存儲單位存儲在外部存儲器中。
根據本發明的另一方面,提供了存儲用于圖像的壓縮編碼和/或解碼的圖像數據的外部存儲裝置。該外部存儲裝置存儲作為至少一個數據存儲單位的圖像數據,在根據作為用于圖像的壓縮編碼和/或解碼的處理單位的單位塊劃分的預定大小的子塊中包括該圖像數據。
根據本發明的另一方面,提供了對圖像進行壓縮編碼和/或解碼的圖像處理器。該圖像處理器包括外部存儲器、存儲器控制單元、以及圖像處理單元。外部存儲器存儲外部輸入的圖像數據、以及先前處理的參考幀的圖像數據。存儲器控制單元將在從宏塊劃分的預定大小的子塊中包括的圖像數據形成至少一個數據存儲單位,并控制針對每個數據存儲單位而向外部存儲器寫入、或從外部存儲器讀取圖像數據。圖像處理單元將用于圖像數據的請求傳送到存儲器控制單元,接收在存儲器控制單元的控制下讀取的圖像數據,并對圖像執行編碼和/或解碼。
通過參照附圖而詳細描述本發明的示范實施例,本發明的以上和其它方面將變得更為清楚,附圖中圖1為相關技術的視頻編碼器的框圖;圖2為用于說明相關技術的視頻編碼器的外部存儲器中的圖像數據的存儲的圖;圖3為示出從相關技術的視頻編碼器的外部存儲器讀取圖像數據、并執行運動補償所需的時間的時序圖;圖4為根據本發明的示范實施例的圖像處理器的框圖;圖5圖解了根據本發明的示范實施例的存儲4×4個子塊的圖4的外部存儲器的結構;圖6圖解了根據本發明的示范實施例的存儲8×8個子塊的圖4的外部存儲器的結構;圖7為作為圖4的圖像處理單元的示范實施例的視頻編碼器的框圖;圖8為示出根據本發明的示范實施例的從外部存儲器讀取圖像數據、并執行運動補償所需的時間的時序圖;以及圖9為圖解根據本發明的示范實施例的將圖像數據存儲在外部存儲器中的方法的流程圖。
具體實施例方式
下文中,將通過參照附圖來描述本發明的示范實施例。
圖4為根據本發明的示范實施例的圖像處理器的框圖。
參照圖4,圖像處理器包括外部存儲器400、存儲器控制單元520、以及圖像處理單元530。存儲器控制單元520、以及圖像處理單元530可被包括在單個片上系統(SOC)500中。圖像處理器具有通過存儲器控制單元520的與外部存儲器400的相互數據接口的結構。執行運動估計、運動補償、離散余弦變換(DCT)、量化和熵編碼的視頻編碼器、或者通過利用編碼的逆過程處理圖像數據而執行解碼的視頻解碼器可用于圖像處理單元530。
圖像處理單元530將關于讀取或寫入圖像數據的編碼或解碼所需的圖像數據的請求傳送到存儲器控制單元520。
存儲器控制單元520響應于該請求控制以預定數據單位向外部存儲器400寫入圖像數據、或從外部存儲器400讀取圖像數據的操作。更具體地,存儲器控制單元520將在從宏塊劃分的預定大小的子塊中包括的圖像數據形成外部存儲器400中的單個數據存儲單位,并且,控制寫入和讀取操作,以便以被包括在外部存儲器400的單個數據存儲單位中的方式提供在子塊中包括的圖像數據。這樣,存儲器控制單元520減小了在圖像處理單元530以子塊為單位執行運動估計和運動補償時對外部存儲器400的訪問次數。這里,單個數據存儲單位涉及與外部存儲器400的一個地址相對應的讀取單元,并可為外部存儲器400的單個行。
圖5圖解了根據本發明的示范實施例的存儲4×4個子塊的圖4的外部存儲器400的結構。在圖5中,M1至M64各自指示4×4子塊的行,即,4個像素。另外,假定可在外部存儲器400的行中存儲的數據大小為16字節。
參照圖5,將從宏塊劃分的預定大小的子塊存儲在外部存儲器400的單個行中。更具體地,將4×4塊的4行連續地存儲在與單個地址相對應的外部存儲器400的行中。例如,將在宏塊的左上角的4×4子塊的4行M1、M2、M3和M4連續地存儲在外部存儲器400的行A1中。這里,假定與行A1相對應的地址為x0001_0000。如上所述,根據相關技術,將宏塊的行而不是子塊的行存儲在外部存儲器的行中。換句話說,根據相關技術,將M1、M5、M9和M13的像素存儲在外部存儲器400的行中,即,單個讀取單元中。
通常,圖像處理中的運動估計和運動補償需要最大的計算和存儲器訪問。當根據本發明的示范實施例、使用外部存儲器400對4×4子塊執行運動補償時,可通過僅讀取存儲在外部存儲器400的行中的圖像數據,而提取4×4子塊的運動補償所需的參考幀的圖像數據,而不需要如相關技術中那樣讀取存儲在外部存儲器400的4行中的圖像數據,由此,減小了對外部存儲器400的訪問次數。
當可被存儲在外部存儲器400的行中的數據大小改變時,可通過將4×4子塊的圖像數據連續地存儲在外部存儲器400中,而減小對外部存儲器400的訪問次數。
圖6圖解了根據本發明的示范實施例的存儲8×8個子塊的圖4的外部存儲器400的結構。在圖6中,N1至N32各自指示8×8個子塊的行,即,8個像素。
參照圖6,將從宏塊劃分的8×8子塊的像素存儲在外部存儲器400的連續行B1至B4中。在圖6中,假定可被存儲在外部存儲器400的單個行中的數據大小為16字節。在此情況下,將8×8子塊的8行中的兩個存儲在外部存儲器400的行(即,與單個地址相對應的單個數據存儲單位)中。例如,將宏塊的左上角的8×8子塊的N1和N2存儲在外部存儲器400的第一行B1中,將N3和N4存儲在外部存儲器400的第二行B2中,將N5和N6存儲在外部存儲器400的第三行B3中,并且,將N7和N8存儲在外部存儲器400的第四行B4中。這樣,將8×8子塊的8行N1至N8中的像素存儲在外部存儲器400的4行B1至B4中。如上所述,由于根據現有技術將宏塊的行存儲在外部存儲器的行中,所以,應當讀取至少8行的圖像數據,以讀取存儲在外部存儲器中的8×8子塊的圖像數據。然而,根據本發明,可通過讀取外部存儲器的4行中的圖像數據,而讀取8×8塊的運動估計和運動補償所需的參考幀的圖像數據。
這樣,即使在不能將在從宏塊劃分的8×8子塊中包括的圖像數據存儲在外部存儲器400的行中時,也將其形成為至少一個數據存儲單位,并存儲在外部存儲器400的連續行中,由此,減小了為了讀取8×8子塊的運動估計和運動補償所需的參考幀的圖像數據而訪問外部存儲器400的次數。
圖7為作為圖4的圖像處理單元530的例子的視頻編碼器的框圖。
參照圖7,圖像處理單元530包括運動估計單元531、運動補償單元532、變換單元533、量化單元534、重新配置單元535、熵編碼單元536、逆量化單元537、逆變換單元538、濾波器539、第二本地存儲器540、以及幀內預測單元541。運動估計單元531可包括用來暫時存儲用于運動估計的圖像數據的第一本地存儲器531a。
對于幀間預測,運動估計單元531在參考畫面中搜索當前宏塊的預測值。為得到運動估計所需的參考幀的圖像數據,運動估計單元531從第二本地存儲器540讀取所需的圖像數據,或將關于所需圖像數據的請求傳送到存儲器控制單元520。這里,參考幀可為過去或將來的幀、或者先前編碼并傳送的幀。
運動估計單元531在參考幀的區域中搜索匹配預定大小的塊的區域。在根據H.264標準的樹形結構運動補償的情況下,預定大小的塊可為從宏塊劃分的16×8、8×16、8×8、或4×4塊。更具體地,運動估計單元531比較當前幀的預定大小的當前塊以及從當前塊延伸的預定搜索區域中的塊,以搜索最佳匹配區域。這里,運動估計單元531選擇這樣的候選區域作為最佳匹配區域,該候選區域使通過從當前塊中減去該候選區域而得到的剩余能量最小。作為運動估計的結果,計算指示最佳匹配區域的位置的運動向量。
運動補償單元532通過使用運動向量、從當前塊中減去從參考幀提取的最佳匹配區域,而生成余數(residue)。由于將數據以預定大小的塊為單位存儲在根據本發明的示范實施例的外部存儲器400中,所以,可減小運動補償單元532訪問外部存儲器400的次數。
通過運動補償生成的余數通過變換單元533和量化單元534而被變換和量化。量化的余數通過重新配置單元535,以被熵編碼單元536編碼。為了得到用于幀間預測的參考畫面而被量化的畫面通過逆量化單元537和逆變換單元538,由此,重構當前畫面。重構的當前畫面通過執行解塊濾波的濾波器539,并被存儲在第二本地存儲器540或外部存儲器400中,以用于幀間預測,即,下一個畫面的運動估計和運動補償。
圖8為示出根據本發明的示范實施例的從外部存儲器400讀取圖像數據、并執行運動補償所需的時間的時序圖。
圖像處理單元530可通過對外部存儲器400的單次訪問,而讀取與4×4當前子塊相對應的參考幀的圖像數據。
根據本發明的示范實施例而從外部存儲器400讀取先前幀的4×4圖像數據所需的總讀取時鐘周期Tc2如下Tc2=7+4=11cc,其中,7cc是總線接口開銷處理時間,而4cc是在總線帶寬是32位時、讀取與存儲在外部存儲器400的行中的16個像素相對應的128位所需的傳送時間。由此,提取與在單個宏塊中包括的16個4×4子塊相對應的參考幀的圖像數據需要16×Tc2,即176cc。當單個4×4子塊的運動估計所需的時間是9cc、且可與讀取操作并行地執行運動補償時,如圖8所示,從外部存儲器400提取用于在單個宏塊中包括的16個4×4子塊的運動補償的圖像數據、并執行運動補償所需的時間是185cc。由此,可以看到,與圖3中圖解的現有技術相比,處理速度改善了約50%。
圖9為圖解根據本發明的示范實施例的將圖像數據存儲在外部存儲器400中的方法的流程圖。
參照圖9,在操作910中,存儲器控制單元520將在從先前處理的參考幀的圖像數據的宏塊劃分的預定大小的子塊中包括的圖像數據形成至少一個數據存儲單位。
在操作920中,存儲器控制單元520將數據存儲單位存儲在外部存儲器中,以控制根據圖像處理單元530的請求、針對每個預定大小的子塊而寫入或讀取圖像數據。
根據本發明的示范實施例,當提取用于從宏塊劃分的預定大小的子塊(例如,4×4子塊)的運動估計和運動補償的參考幀的圖像數據時,可減小對外部存儲器的訪問次數,并且,由此,可減小用于圖像處理的計算量和功耗量。具體地,根據本發明的示范實施例的外部存儲裝置防止總線接口的過度開銷,并且在應用于使用流水線方法的運動估計和運動補償模塊時,減小了用于運動估計和運動補償的計算量和功耗量,由此,減小了圖像編碼或解碼所需的處理時間。
如上所述,根據本發明的示范實施例,可減小在圖像處理中對外部存儲器訪問的次數,由此,減小了圖像處理中的計算量和功耗量。
此外,根據本發明的示范實施例,可優化外部存儲器和圖像處理單元之間的總線帶寬的使用。
還可作為計算機可讀記錄介質上的計算機可讀代碼來實現本發明。計算機可讀記錄介質是可存儲之后可由計算機系統讀取的數據的任意數據存儲裝置。計算機可讀記錄介質的例子包括只讀存儲器(ROM)、隨機存取存儲器(RAM)、CD-ROM、磁帶、軟盤、光數據存儲裝置、以及載波。計算機可讀記錄介質還可在與計算機系統耦接的網絡上分布,以便以分布式方式存儲并執行計算機可讀代碼。
盡管已通過參照本發明的示范實施例而具體示出并描述了本發明,但本領域的技術人員將理解,可在其中作出各種形式和細節上的改變,而不會背離如由所附權利要求定義的本發明的精神和范圍。
權利要求
1.一種將用于圖像的壓縮編碼或解碼的圖像數據存儲在存儲器中的方法,該方法包括將在從宏塊劃分的子塊中包括的圖像數據形成至少一個數據存儲單位;以及將數據存儲單位存儲在存儲器中。
2.如權利要求1所述的方法,其中,通過連接子塊的行而形成數據存儲單位。
3.如權利要求1所述的方法,其中,將數據存儲單位存儲在與單個地址相對應的存儲器的單個行中。
4.如權利要求1所述的方法,其中,子塊是4×4子塊和8×8子塊中的一個。
5.如權利要求1所述的方法,其中,圖像數據指示圖像的像素的像素值。
6.如權利要求1所述的方法,其中,從用于子塊的運動估計和運動補償的參考幀導出圖像數據。
7.一種存儲用于圖像的壓縮編碼或解碼的圖像數據的存儲裝置,其中,該存儲裝置存儲作為至少一個數據存儲單位的圖像數據,在根據作為用于圖像的壓縮編碼或解碼的處理單位的單位塊劃分的子塊中包括該圖像數據。
8.如權利要求7所述的存儲裝置,其中,通過連接子塊的行而形成數據存儲單位。
9.如權利要求7所述的存儲裝置,其中,將數據存儲單位存儲在與單個地址相對應的存儲器的單個行中。
10.如權利要求7所述的存儲裝置,其中,子塊是4×4子塊和8×8子塊中的一個。
11.如權利要求7所述的存儲裝置,其中,圖像數據指示圖像的像素的像素值。
12.如權利要求7所述的存儲裝置,其中,從用于子塊的運動估計和運動補償的參考幀導出圖像數據。
13.一種對圖像進行壓縮編碼或解碼的圖像處理器,該圖像處理器包括存儲器,其存儲外部輸入的圖像數據、以及先前處理的參考幀的圖像數據;存儲器控制單元,其將在從宏塊劃分的子塊中包括的圖像數據形成至少一個數據存儲單位,并控制針對每個數據存儲單位而向存儲器寫入、或從存儲器讀取圖像數據;以及圖像處理單元,其將關于圖像數據的請求傳送到存儲器控制單元,接收在存儲器控制單元的控制下讀取的圖像數據,并對圖像執行編碼或解碼。
14.如權利要求13所述的圖像處理器,其中,通過連接子塊的行而形成數據存儲單位。
15.如權利要求13所述的圖像處理器,其中,將數據存儲單位存儲在與單個地址相對應的存儲器的單個行中。
16.如權利要求13所述的圖像處理器,其中,子塊是4×4子塊和8×8子塊中的一個。
17.如權利要求13所述的圖像處理器,其中,圖像數據指示圖像的像素的像素值。
18.如權利要求13所述的圖像處理器,其中,從用于子塊的運動估計和運動補償的參考幀導出圖像數據。
全文摘要
提供了外部存儲裝置、用于該外部存儲裝置的存儲圖像數據的方法、以及使用該方法來改善圖像編碼和/或解碼速度的圖像處理器。該方法包括將在從宏塊劃分的預定大小的子塊中包括的圖像數據形成至少一個數據存儲單位;以及將數據存儲單位存儲在外部存儲器中。
文檔編號H04N7/24GK1937773SQ200610159509
公開日2007年3月28日 申請日期2006年9月25日 優先權日2005年9月23日
發明者李映燮, 全鐘求, 沈優星, 姜羽錫, 俞基源 申請人:三星電子株式會社