專利名稱:用于實(shí)現(xiàn)交織圖像數(shù)據(jù)的快速提取的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明總體涉及在電子設(shè)備中的數(shù)據(jù)處理。具體而言,本發(fā)明涉 及在例如具有內(nèi)置相機(jī)模塊的移動電話的移動電子設(shè)備中的不同類 型的數(shù)據(jù)的解交織。
背景技術(shù):
近年來,移動電話日益普遍配備內(nèi)置相機(jī)模塊。這些相機(jī)模塊使 得用戶可以拍攝數(shù)字照片并將照片快速傳送給朋友和家人。
圖1中10示出了一般的數(shù)碼相機(jī)系統(tǒng),其是移動電話或其他電 子設(shè)備的一部分。數(shù)碼相機(jī)10包括外殼11和至少一個(gè)圖像傳感器 18,其中該外殼11包含至少一個(gè)透鏡12并且該圖像傳感器18操作 性連接到存儲器單元14和處理器或控制器16,存儲器單元14和處 理器或控制器16二者被設(shè)置在相機(jī)模塊10的外部以及內(nèi)裝有相機(jī) 模塊10的移動電話或其他電子設(shè)備的內(nèi)部。存儲器單元14可以用 來存儲數(shù)字圖像和存儲用于執(zhí)行數(shù)碼相機(jī)10中的各種功能的計(jì)算機(jī) 軟件,也可以實(shí)現(xiàn)本發(fā)明。圖像傳感器18可以是電荷耦合器件 (CCD)、互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)、或其他系統(tǒng)。
由于許多原因,用于移動電話的相機(jī)模塊通常被設(shè)計(jì)為小型和廉 價(jià)的。作為這個(gè)事實(shí)的結(jié)果,典型的圖像傳感器18在相機(jī)模塊10 之內(nèi)不包括任何的幀存儲器??商娲氖?,來自已捕獲的圖像的圖 像數(shù)據(jù)一旦從傳感器讀出就必須輸出到電話引擎。否則,圖像數(shù)據(jù) 可能會丟失。典型地,圖像傳感器18以逐行方式被讀取,數(shù)據(jù)以相 同的順序被發(fā)送到電話引擎,電話引擎中有足夠的存儲空間用于存 儲數(shù)據(jù)。
為了減少在相機(jī)模塊10和電話引擎之間進(jìn)行圖像數(shù)據(jù)傳輸所需的帶寬,在發(fā)送數(shù)據(jù)之前圖像傳感器18通常會進(jìn)一步壓縮數(shù)據(jù)。為
了減少在電話引擎中的處理需求,許多相機(jī)模塊在該階段使用JPEG 壓縮,因?yàn)樵谌魏吻闆r下圖像很可能會以JPEG格式結(jié)束,因此電話 引擎不會由于JP EG編碼而需要花費(fèi)額外的時(shí)間。
從可用性方面看,僅將相機(jī)圖像進(jìn)行處理并存儲到存儲器是不夠 的。這是因?yàn)榻K端用戶可能還想在電話屏幕上查看他或她剛剛獲取 的圖像,例如,決定圖像是否有令人滿意的質(zhì)量。從用戶的角度來 看,也希望在向用戶呈現(xiàn)預(yù)覽圖像時(shí)沒有任何額外的延遲。
然而,不幸的是,從壓縮數(shù)據(jù)中產(chǎn)生預(yù)覽圖像不是一個(gè)即時(shí)的操 作,而是不可避免地會花費(fèi)一些額外時(shí)間。對于這個(gè)問題有一些不 同的可能的解決辦法,但是每個(gè)解決方法都具有其自身的嚴(yán)重缺陷。 其中一個(gè)解決方法涉及允許相機(jī)模塊IO以這樣一種格式輸出已捕獲 圖像的數(shù)據(jù),即允許快速構(gòu)造在電話顯示屏上顯示的較小的預(yù)覽圖 像。在實(shí)踐中,該方法使用了圖像數(shù)據(jù)的非壓縮格式。然而,該方 法的問題在于具有較高分辨率的相機(jī)可能不會有足夠的帶寬來傳輸 數(shù)據(jù)。
對于這個(gè)問題的另 一 個(gè)可能的解決辦法是使用含有足夠幀存儲 器的相機(jī)模塊以允許將相同的圖像傳輸兩次,第 一次作為具有合適 尺寸的圖像用于顯示,然后作為全分辨率圖像用于存儲。該方法的 問題在于對于事實(shí)上執(zhí)行這個(gè)解決方法而言,額外的存儲器非常昂貴。
對于上面所討論的問題的另一個(gè)可能的解決辦法涉及對用于存 儲的壓縮圖像和用于查看的非壓縮預(yù)覽圖像進(jìn)行交織。盡管在相機(jī)
模塊中沒有存儲器用于整個(gè)圖像幀,但是相機(jī)中的JPEG編碼器需要 存在用于圖像的8行的存儲器。這使得在壓縮的全分辨率圖像數(shù)據(jù) 中交織非壓縮預(yù)覽圖像數(shù)據(jù)成為可能。由于預(yù)覽數(shù)據(jù)旨在用于移動 電話的顯示屏(其分辨率實(shí)質(zhì)上低于相機(jī)傳感器中的一個(gè)),按比 例縮小的預(yù)覽圖像的交織不會增加大量的帶寬需求。圖2中描述了 交織的過程,其中兩種類型的數(shù)據(jù)被拆分成塊并一個(gè)接一個(gè)地被發(fā)送。在圖2中,白色和黑色菱形表示標(biāo)記塊的每個(gè)類型的開始的特
殊標(biāo)記符。實(shí)際上,標(biāo)記符必須被選擇為它們自身不能在數(shù)據(jù)中出 現(xiàn)??蛇x擇地,在每個(gè)標(biāo)記符中可以包括關(guān)于塊長度的信息。然而,
在JPEG編碼中,例如,在進(jìn)行編碼之前知道輸出數(shù)據(jù)的大小通常是 不可能的。因此為實(shí)現(xiàn)該方法,相機(jī)應(yīng)該配備額外的緩沖器。
傳輸 一 個(gè)圖像幀的所有數(shù)據(jù)需要傳輸預(yù)覽數(shù)據(jù)和壓縮數(shù)據(jù)的若 干塊。 一個(gè)塊可以包含在任何給定時(shí)間相機(jī)模塊能夠緩沖的那么多 的信息。例如,如果JPEG編碼器需要在某些種類的緩沖器中必須有 8行可用,則使用包含至少用于那8行的數(shù)據(jù)的塊是可能的。應(yīng)該注 意到,在相機(jī)模塊中也可能會有一些額外的緩沖容量。
圖2也示出了當(dāng)壓縮數(shù)據(jù)塊的長度可能變化時(shí),預(yù)覽圖像數(shù)據(jù)的 塊如何總是具有相同的長度。這是因?yàn)閴嚎s效率依賴于圖像內(nèi)容, 甚至在單一圖像內(nèi)壓縮效率可能改變。另一方面,預(yù)覽數(shù)據(jù)是非壓 縮的,因此在一個(gè)塊中總是有相同數(shù)量的預(yù)覽數(shù)據(jù)被發(fā)送。由于這 個(gè)原因,預(yù)覽數(shù)據(jù)塊(在壓縮數(shù)據(jù)塊的起始部分)之后的標(biāo)記符不 是必須的,因?yàn)轭A(yù)覽數(shù)據(jù)塊的長度總是已知的。
盡管壓縮和非壓縮數(shù)據(jù)的交織解決了出現(xiàn)在先前討論的其他的 可能的解決方法中的許多問題,但仍然有重大的缺陷。對于這個(gè)方 法,即使對于存儲的目的壓縮數(shù)據(jù)是可用的,對于顯示的目的預(yù)覽 數(shù)據(jù)是可用的,交織數(shù)據(jù)在其可以被使用之前首先必須被解交織。 換言之,在壓縮數(shù)據(jù)可以被存儲和預(yù)覽數(shù)據(jù)可以被查看之前,壓縮 數(shù)據(jù)必須從預(yù)覽數(shù)據(jù)中提取出來,或者預(yù)覽數(shù)據(jù)必須從壓縮數(shù)據(jù)中 提取出來。
在具有內(nèi)置的相機(jī)模塊的大多數(shù)傳統(tǒng)的移動電話中, 一旦所有的 圖像數(shù)據(jù)被接收到電話引擎中的存儲器中,圖像數(shù)據(jù)可以以這樣一 種方式進(jìn)一步被電話處理器處理或復(fù)制,即所有包含在圖像中的數(shù) 據(jù)依次被尋址。在交織數(shù)據(jù)的情況下,在處理時(shí)數(shù)據(jù)被復(fù)制到兩個(gè) 緩沖器中的一個(gè)。 一個(gè)緩沖器被專用于存儲預(yù)覽(非壓縮)數(shù)據(jù), 另一個(gè)緩沖器被專用于存儲壓縮數(shù)據(jù)。應(yīng)該注意到,在實(shí)踐中,如果不再需要原始交織數(shù)據(jù)但是其可以被重寫,則所述兩個(gè)緩沖器中 的一個(gè)可能與原始緩沖器相同。然而,這種處理耗費(fèi)時(shí)間和處理能力。
因此,希望開發(fā)一種系統(tǒng),使得在移動電話或其他電子設(shè)備中的 壓縮和非壓縮圖像數(shù)據(jù)能夠更加迅速和有效的傳輸和可用。
發(fā)明內(nèi)容
本發(fā)明提供了 一種系統(tǒng)和方法,用于通過使用微處理器單元
(MPU)和直接存儲器存取(DMA)硬件的組合來有效地對交織數(shù) 據(jù)解交織。由于MPU和DMA石更件凈皮同時(shí)用于處理數(shù)據(jù),依賴于壓 縮數(shù)據(jù)和預(yù)覽數(shù)據(jù)的塊的相對長度,整體處理時(shí)間可以明顯減少。
本發(fā)明提供了超過傳統(tǒng)系統(tǒng)的許多優(yōu)點(diǎn)。利用本發(fā)明,MPU完 全不需要處理預(yù)覽數(shù)據(jù);它能夠跳過預(yù)先已知大小的所有預(yù)覽數(shù)據(jù) 塊。結(jié)果,MPU有更多的時(shí)間執(zhí)行系統(tǒng)中的其他功能。另外,由于 DMA硬件和MPU二者同時(shí)處理數(shù)據(jù),相對于傳統(tǒng)的^f義有MPU的解 決方案,解交織可以更快的結(jié)束。更進(jìn)一步, 一旦DMA硬件被適當(dāng) 地配置,在操作期間幾乎不需要額外的配置。在依賴于DMA石更件的 最佳解決方案中,僅需要指示新的讀地址和使數(shù)據(jù)再傳輸。本發(fā)明 能夠與多種交織數(shù)據(jù)類型結(jié)合使用,其中一種類型有固定的長度并 且不僅僅局限于圖像數(shù)據(jù)。
本發(fā)明的這些和其他的優(yōu),泉和特征,以及其操作的結(jié)構(gòu)和方式, 當(dāng)與附圖相關(guān)聯(lián)時(shí),將在下面的詳細(xì)描述中變得清楚,貫穿下面描 述的附圖中同樣的元件具有相同的數(shù)字標(biāo)號。
圖1是普通數(shù)碼相機(jī)系統(tǒng)的截面?zhèn)纫晥D2示出了壓縮數(shù)據(jù)和非壓縮圖像預(yù)覽數(shù)據(jù)二者可以如何被交 織以用于從圖像傳感器到電話引擎的傳輸;
圖3是可以合并有本發(fā)明的原理的電子設(shè)備的透視圖;圖4是圖3所示的電子設(shè)備的電路的示意圖; 圖5是包含在本發(fā)明的一個(gè)具體實(shí)施例的執(zhí)行中的各種組件的 示圖;以及
圖6是執(zhí)行本發(fā)明的 一個(gè)具體實(shí)施例的流程圖。
具體實(shí)施例方式
本發(fā)明提供了一種系統(tǒng),該系統(tǒng)用于通過^吏用MPU和DMA的 處理能力的組合來對交織壓縮和非壓縮圖像數(shù)據(jù)進(jìn)行解交織。當(dāng) MPU和DMA硬件同時(shí)處理數(shù)據(jù)時(shí),依賴于壓縮數(shù)據(jù)和預(yù)覽數(shù)據(jù)的 塊的相對長度,整體處理時(shí)間可以減少百分之五十或更多。
圖3和圖4示出了一個(gè)典型的移動電話112,在其上可以執(zhí)行本 發(fā)明。然而,重要的是,要注意到本發(fā)明不限于任何類型的電子設(shè) 備,且可以并入例如個(gè)人數(shù)字助理、個(gè)人計(jì)算機(jī)之類的設(shè)備中。應(yīng) 該理解,本發(fā)明可以并入各種類型的移動電話112中。圖2和圖3 中的移動電話112包括外殼130、液晶顯示屏形式的顯示屏132、小 鍵盤134、麥克風(fēng)136、耳機(jī)138、電池140、紅外端口 142、天線 144、根據(jù)本發(fā)明的一個(gè)具體實(shí)施例通用集成電路卡(UICC)形式的 智能卡146、讀卡器148、無線接口電路152、編解碼器電路154、 控制器16和存儲器單元14。各電路和元件都是現(xiàn)有技術(shù)中已知的類 型,例如諾基亞移動電話系列中所使用的類型。
圖5是包括在本發(fā)明的一個(gè)具體實(shí)施例的執(zhí)行中的各種組件的 示圖。圖5顯示了交織數(shù)據(jù)緩沖器200、壓縮數(shù)據(jù)緩沖器210和非壓 縮數(shù)據(jù)緩沖器220。應(yīng)該注意到,如果原始數(shù)據(jù)在傳輸后不再需要且 能夠被改寫,則無論是壓縮數(shù)據(jù)緩沖器210還是非壓縮數(shù)據(jù)緩沖器 220,都可以使用與交織數(shù)據(jù)緩沖器200相同的存儲區(qū)域。交織數(shù)據(jù) 緩沖器200、壓縮數(shù)據(jù)緩沖器210和非壓縮數(shù)據(jù)緩沖器220的每一個(gè) 都可以包含在圖3和圖4所示的電子設(shè)備的存儲器158中。系統(tǒng)還 包括MPU 230和DMA硬件240。能夠包括圖4所示的系統(tǒng)的控制 器16的MPU 230,用于執(zhí)行系統(tǒng)軟件,以及執(zhí)行系統(tǒng)軟件指定的操作。DMA硬件240是硬件控制器,其能夠獨(dú)立于MPU 230將數(shù)據(jù) 從存儲器中的一個(gè)位置移到存儲器中的另 一個(gè)位置。應(yīng)該注意到, MPU 230、 DMA硬件240和存儲器單元14可以包括獨(dú)立組件,或 者它們可以被組合到單獨(dú)的集成電路中。
圖6是展示本發(fā)明一個(gè)具體實(shí)施例執(zhí)行的流程圖。圖6中的步驟 300表示用于數(shù)據(jù)單元的解交織的起點(diǎn)。在這點(diǎn),圖像已經(jīng)被捕獲, 交織數(shù)據(jù)緩沖器200包括原始交織數(shù)據(jù)單元。壓縮數(shù)據(jù)緩沖器210 和非壓縮數(shù)據(jù)緩沖器220被保留以鏈接形式相應(yīng)地存儲壓縮數(shù)據(jù)和 預(yù)覽數(shù)據(jù)。在操作期間沒有變化的那些DMA配置也在該點(diǎn)被執(zhí)行。
在圖6中的步驟310,假設(shè)數(shù)據(jù)單元開始于壓縮數(shù)據(jù),MPU230 從數(shù)據(jù)單元的起點(diǎn)開始檢查交織數(shù)據(jù)單元。MPU 230查找指示下一 個(gè)預(yù)覽數(shù)據(jù)塊開始位置的標(biāo)記符。當(dāng)執(zhí)行該動作時(shí),MPU 230復(fù)制 壓縮數(shù)據(jù)到壓縮數(shù)據(jù)緩沖器210直到但不包括指示預(yù)覽數(shù)據(jù)開始的 標(biāo)記符。應(yīng)該注意到,如果數(shù)據(jù)單元開始于預(yù)覽數(shù)據(jù),則該步驟將 凈皮3兆過。
在步驟320, DMA硬件240被初始化以執(zhí)行存儲器到存儲器的 復(fù)制,所述復(fù)制是從新發(fā)現(xiàn)的預(yù)覽數(shù)據(jù)的開頭部分到非壓縮數(shù)據(jù)緩 沖器220。應(yīng)該注意到,標(biāo)記符不包含在該存儲器復(fù)制中。DMA傳 輸?shù)拇笮∈且阎?,它是預(yù)覽數(shù)據(jù)塊的固定大小。
在步驟330,當(dāng)DMA硬件240在后臺傳輸數(shù)據(jù)時(shí),MPU 230跳 過預(yù)覽數(shù)據(jù)塊(其大小是已知的)并開始檢查緊隨著現(xiàn)在被跳過的 預(yù)覽塊的數(shù)據(jù)。如果期望并發(fā)現(xiàn)用于壓縮數(shù)據(jù)的可選擇標(biāo)記符,或 者如果可選擇標(biāo)記符沒有被使用,但是有更多的數(shù)據(jù)需要處理,則 MPU 230將繼續(xù)檢查數(shù)據(jù)直到用于預(yù)覽數(shù)據(jù)的標(biāo)記符被發(fā)現(xiàn)。當(dāng)執(zhí) 行該操作時(shí),MPU 230復(fù)制壓縮數(shù)據(jù)到壓縮數(shù)據(jù)緩沖器210,將其 置于緊接先前移動到壓縮數(shù)據(jù)緩沖器210中的數(shù)據(jù)之后。
在步驟340,可以假設(shè)DMA硬件240已經(jīng)完成了對在步驟320 中被復(fù)制的圖像數(shù)據(jù)塊的復(fù)制操作,或者系統(tǒng)可以特定檢查DMA硬 件240的狀態(tài)并可以等待直到傳輸結(jié)束。在上述事件的任何一個(gè)中,DMA硬件240被再次初始化以執(zhí)行用于下 一 個(gè)預(yù)覽數(shù)據(jù)塊的存儲器 到存儲器的復(fù)制,將數(shù)據(jù)復(fù)制到非壓縮數(shù)據(jù)緩沖器220,將其置于緊 接先前移動到非壓縮數(shù)據(jù)緩沖器220中的數(shù)據(jù)之后。
應(yīng)該注意到,由于DMA硬件被特別i殳計(jì)以用于快速移動數(shù)據(jù), 且由于MPU必須對正在復(fù)制的數(shù)據(jù)進(jìn)行額外的檢查,DMA硬件240 應(yīng)該能夠在相同的時(shí)間周期內(nèi)比MPU 230處理更多的凄t據(jù)。如果存 在一種危險(xiǎn),即新的DMA傳輸應(yīng)當(dāng)^皮啟動時(shí)DMA傳輸卻沒有完成, 則可選4奪的解決方案包括使用兩個(gè)或更多的DMA通道以使得對不 同的通道一直進(jìn)行連續(xù)的DMA請求。
在步驟350,確定是否整個(gè)數(shù)據(jù)單元已經(jīng)被復(fù)制。如果已經(jīng)復(fù)制 了整個(gè)數(shù)據(jù)單元,則在步驟360可以顯示預(yù)覽圖像,且壓縮數(shù)據(jù)被 存儲在壓縮數(shù)據(jù)緩沖器210中。如果沒有復(fù)制完整個(gè)數(shù)據(jù)單元,則 重復(fù)步驟330和步驟340直到整個(gè)數(shù)據(jù)單元被處理并分別置于壓縮 數(shù)據(jù)緩沖器210和非壓縮數(shù)據(jù)緩沖器220中。
如先前所提到的,圖6所描述的處理也可以工作在壓縮數(shù)據(jù)緩沖 器210與交織數(shù)據(jù)緩沖器200 二者相同的情況下。應(yīng)該注意到,如 果數(shù)據(jù)單元如圖2所示的順序,則在DMA硬件240傳輸數(shù)據(jù)塊到非 壓縮數(shù)據(jù)緩沖器220中的同時(shí),MPU 230將開始改寫第一個(gè)預(yù)覽數(shù) 據(jù)塊。然而,在大多數(shù)情況下,可以安全地^底設(shè)DMA^5更件24(H喿作 速度快于MPU 230,因?yàn)镈MA硬件240可以一味地復(fù)制數(shù)據(jù)而不 需要花費(fèi)任何時(shí)間去分析數(shù)據(jù)。因此,DMA硬件240能夠在預(yù)覽數(shù) 據(jù)被來自下一塊的壓縮數(shù)據(jù)改寫之前讀出該預(yù)覽數(shù)據(jù)。
由于DMA傳輸?shù)拇笮】偸窍嗤模跏蓟碌腄MA傳輸可以 只需要初始結(jié)構(gòu)被構(gòu)成之后的兩個(gè)操作。第一個(gè)操作是構(gòu)成DMA讀 起始地址,第二個(gè)操作是啟動DMA傳輸。假設(shè)DMA硬件240包括 寫指針,當(dāng)進(jìn)行傳輸處理時(shí)所述寫指針自動遞增。因此當(dāng)下一個(gè)預(yù) 覽數(shù)據(jù)塊被復(fù)制時(shí),寫指針自動的指向非壓縮數(shù)據(jù)緩沖器220中的 正確位置。
在本發(fā)明可選擇的實(shí)施例中,可以有多于兩種不同類型的數(shù)據(jù)塊。在這種情況下,當(dāng)D M A硬件240繼續(xù)處理所有固定大小的塊時(shí), MPU 230可以處理所有的大小可以變化的塊。如果有多于一種類型 的塊具有固定長度,則可以在DMA硬件240中使用多于一個(gè)的DMA 通道。這些多通道被用于確保在下一個(gè)傳輸可以開始之前,沒有必 要等待一個(gè)DMA傳輸?shù)慕Y(jié)束,因?yàn)槊恳粋€(gè)DMA通道能夠獨(dú)立于其 他的通道進(jìn)行操作。
應(yīng)該注意到,塊標(biāo)記符的各種類型可以與本發(fā)明結(jié)合使用,同時(shí) 本發(fā)明不局限于任何特定類型的標(biāo)記符。另外,雖然塊標(biāo)記符已經(jīng) 用于圖6所描述的處理中的每個(gè)塊的開頭部分,但是所述標(biāo)記符也
;。 々、 "、"、、、
本發(fā)明以方法步驟的普通上下文進(jìn)行了描述,其可以通過包括由 在網(wǎng)絡(luò)環(huán)境中的計(jì)算機(jī)執(zhí)行的例如程序代碼的計(jì)算機(jī)可執(zhí)行指令的 程序產(chǎn)品在 一 個(gè)實(shí)施例中被執(zhí)行。
通常,程序模塊包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等, 所述程序模塊執(zhí)行特定的任務(wù)或執(zhí)行特定的抽象數(shù)據(jù)類型。與數(shù)據(jù) 結(jié)構(gòu)相關(guān)聯(lián)的計(jì)算機(jī)可執(zhí)行指令和程序模塊表示這里所揭示的用于 執(zhí)行方法步驟的程序代碼的實(shí)例。所述可執(zhí)行指令的特定序列或關(guān) 聯(lián)的數(shù)據(jù)結(jié)構(gòu)表示所述步驟中描述的用于執(zhí)行功能的相應(yīng)的行為的 實(shí)例。
本發(fā)明的軟件和網(wǎng)絡(luò)實(shí)現(xiàn)可以通過標(biāo)準(zhǔn)的編程技術(shù)完成,所述標(biāo) 準(zhǔn)編程技術(shù)具有基于規(guī)則的邏輯和其他邏輯以完成各種數(shù)據(jù)庫搜索 步驟、相關(guān)步驟、比較步驟和決策步驟。還應(yīng)該注意到,這里和權(quán) 利要求中所用的詞語"組件"和"模塊",旨在包括使用 一 個(gè)或多個(gè)軟件 代碼行的實(shí)現(xiàn)和/或硬件實(shí)現(xiàn)和/或用于接收人工輸入的設(shè)備。
本發(fā)明具體實(shí)施例的先前描述已經(jīng)表達(dá)了示例和描述的目的。不 應(yīng)試圖窮舉或限制本發(fā)明在已揭示的精確形式中,根據(jù)上述教導(dǎo)改 進(jìn)和變化是可能的,或者改進(jìn)和變化可以從本發(fā)明的實(shí)施中獲得。 為解釋本發(fā)明原理,選擇并描述了具體實(shí)施例,該具體實(shí)施例的實(shí)并且具有各種改進(jìn)以適于預(yù)期的特定使用。
權(quán)利要求
1、一種處理交織數(shù)據(jù)單元的方法,所述交織數(shù)據(jù)單元包括多個(gè)第一類型的數(shù)據(jù)塊和多個(gè)第二類型的數(shù)據(jù)塊,該方法包括使用微處理器單元復(fù)制數(shù)據(jù)單元中的第一個(gè)第一類型的數(shù)據(jù)塊到第一緩沖器;使用直接存儲器存取硬件復(fù)制數(shù)據(jù)單元中的第一個(gè)第二類型的數(shù)據(jù)塊到第二緩沖器;在對第一個(gè)第一類型的數(shù)據(jù)塊的復(fù)制完成時(shí),使用微處理器單元復(fù)制數(shù)據(jù)單元中的下一個(gè)第一類型的數(shù)據(jù)塊到第一緩沖器;在對第一個(gè)第二類型的數(shù)據(jù)塊的復(fù)制完成時(shí),使用直接存儲器存取硬件復(fù)制數(shù)據(jù)單元中的下一個(gè)第二類型的數(shù)據(jù)塊到第二緩沖器;以及繼續(xù)使用微處理器單元和直接存儲器存取硬件將數(shù)據(jù)單元中的隨后的第一類型和第二類型的數(shù)據(jù)塊分別復(fù)制到第一緩沖器和第二緩沖器,直到數(shù)據(jù)單元中的所有數(shù)據(jù)塊被復(fù)制。
2、 如權(quán)利要求l所述的方法,其中多個(gè)第一類型的數(shù)據(jù)塊包括 壓縮數(shù)據(jù)的塊。
3、 如權(quán)利要求2所述的方法,其中多個(gè)第二類型的數(shù)據(jù)塊包括 非壓縮數(shù)據(jù)的塊。
4、 如權(quán)利要求3所述的方法,其中非壓縮數(shù)據(jù)的塊包括圖像預(yù)覽數(shù)據(jù)。
5、 如權(quán)利要求4所述的方法,進(jìn)一步包括,在數(shù)據(jù)單元中的第 二類型的所有數(shù)據(jù)塊已被復(fù)制到第二緩沖器之后,使用圖像預(yù)覽數(shù) 據(jù)向用戶顯示圖像。
6、 如權(quán)利要求2所述的方法,其中復(fù)制數(shù)據(jù)單元中的第一類型 的數(shù)據(jù)塊到第一緩沖器包括使用MPU來搜索標(biāo)記符,所述標(biāo)記符指 示下一個(gè)未復(fù)制的第一類型的數(shù)據(jù)塊的開始位置。
7、 如權(quán)利要求l所述的方法,其中多個(gè)第一類型的數(shù)據(jù)塊和多個(gè)第二類型的數(shù)據(jù)塊從交織數(shù)據(jù)緩沖器中被復(fù)制。
8、 如權(quán)利要求7所述的方法,其中交織數(shù)據(jù)緩沖器包括第一數(shù) 據(jù)緩沖器,以及其中在第一類型的數(shù)據(jù)塊復(fù)制期間,各個(gè)第二類型 的數(shù)據(jù)塊在交織數(shù)據(jù)緩沖器上被改寫。
9、 如權(quán)利要求l所述的方法,其中數(shù)據(jù)單元從由相機(jī)模塊進(jìn)行 的圖像捕獲中產(chǎn)生。
10、 如權(quán)利要求l所述的方法,其中多個(gè)第一類型的數(shù)據(jù)塊包括 具有非 一致長度的數(shù)據(jù)的塊。
11、 一種用于處理交織數(shù)據(jù)單元的計(jì)算機(jī)程序產(chǎn)品,該交織數(shù)據(jù) 單元包括多個(gè)第一類型的數(shù)據(jù)塊和多個(gè)第二類型的數(shù)據(jù)塊,該計(jì)算 機(jī)程序產(chǎn)品包括使用微處理器單元將數(shù)據(jù)單元中的第一個(gè)第一類型的數(shù)據(jù)塊復(fù) 制到第 一緩沖器的計(jì)算機(jī)代碼;使用直接存儲器存取硬件將數(shù)據(jù)單元中的第 一 個(gè)第二類型的數(shù) 據(jù)塊復(fù)制到第二緩沖器的計(jì)算機(jī)代碼;在對第一個(gè)第一類型的數(shù)據(jù)塊的復(fù)制完成時(shí),使用微處理器單元 將數(shù)據(jù)單元中的下一個(gè)第一類型的數(shù)據(jù)塊復(fù)制到第一緩沖器的計(jì)算 機(jī)代碼;在對第 一個(gè)第二類型的數(shù)據(jù)塊的復(fù)制完成時(shí),使用直接存儲器存 取硬件將數(shù)據(jù)單元中的下 一 個(gè)第二類型的數(shù)據(jù)塊復(fù)制到第二緩沖器 的計(jì)算機(jī)代碼;以及繼續(xù)使用微處理器單元和直接存儲器存取硬件將數(shù)據(jù)單元中的 隨后的第 一類型和第二類型的數(shù)據(jù)塊分別復(fù)制到第 一緩沖器和第二 緩沖器直到數(shù)據(jù)單元中的所有數(shù)據(jù)塊都被復(fù)制的計(jì)算機(jī)代碼。
12、 如權(quán)利要求11所述的計(jì)算機(jī)程序產(chǎn)品,其中多個(gè)第一類型 的數(shù)據(jù)塊包括壓縮數(shù)據(jù)的塊。
13、 如權(quán)利要求12所述的計(jì)算機(jī)程序產(chǎn)品,其中多個(gè)第二類型 的數(shù)據(jù)塊包括非壓縮數(shù)據(jù)的塊。
14、 如權(quán)利要求13所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括,在數(shù)據(jù)單元中的第二類型的所有數(shù)據(jù)塊已被復(fù)制到第二緩沖器之后使用 非壓縮數(shù)據(jù)向用戶顯示圖像的計(jì)算機(jī)代碼。
15、 如權(quán)利要求11所述的計(jì)算機(jī)程序產(chǎn)品,其中復(fù)制數(shù)據(jù)單元中的第 一類型的數(shù)據(jù)塊到第 一緩沖器包括使用MPU來搜索標(biāo)記符, 所述標(biāo)記符指示下一個(gè)未復(fù)制的第一類型的數(shù)據(jù)塊的開始位置。
16、 如權(quán)利要求11所述的計(jì)算機(jī)程序產(chǎn)品,其中多個(gè)第一類型 的數(shù)據(jù)塊和多個(gè)第二類型的數(shù)據(jù)塊從交織數(shù)據(jù)緩沖器中被復(fù)制。
17、 如權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,其中交織數(shù)據(jù)緩沖 器包括第 一數(shù)據(jù)緩沖器,以及其中在第 一類型的數(shù)據(jù)塊復(fù)制期間, 各個(gè)第二類型的數(shù)據(jù)塊在交織數(shù)據(jù)緩沖器上被改寫。
18、 一種電子設(shè)備,包括 微處理器單元;存儲器單元,操作性連接到多處理器單元,所述存儲器單元包括 第一緩沖器和第二緩沖器;以及直接存儲器存取硬件,操作性連接到存儲器單元, 其中,所述存儲器單元包括用于處理交織數(shù)據(jù)單元的計(jì)算機(jī)程序 產(chǎn)品,所述交織數(shù)據(jù)單元包括多個(gè)第一類型的數(shù)據(jù)塊和多個(gè)第二類 型的數(shù)據(jù)塊,該計(jì)算機(jī)程序產(chǎn)品包括使用微處理器單元將數(shù)據(jù)單元中的第 一 個(gè)第 一 類型的數(shù)據(jù) 塊復(fù)制到第 一緩沖器的計(jì)算機(jī)代碼;使用直接存儲器存取硬件將數(shù)據(jù)單元中的第 一個(gè)第二類型 的數(shù)據(jù)塊復(fù)制到第二緩沖器的計(jì)算機(jī)代碼;在對第一個(gè)第一類型的數(shù)據(jù)塊的復(fù)制完成時(shí),使用微處理器 單元將數(shù)據(jù)單元中的下一個(gè)第 一類型的數(shù)據(jù)塊復(fù)制到第 一緩沖器的 計(jì)算機(jī)代碼;在對第 一 個(gè)第二類型的數(shù)據(jù)塊的復(fù)制完成時(shí),使用直接存儲 器存取硬件將數(shù)據(jù)單元中的下 一 個(gè)第二類型的數(shù)據(jù)塊復(fù)制到第二緩 沖器的計(jì)算機(jī)代碼;以及繼續(xù)使用微處理器單元和直接存儲器存取硬件將數(shù)據(jù)單元中的隨后的第 一類型和第二類型的數(shù)據(jù)塊分別復(fù)制到第 一緩沖器和 第二緩沖器直到數(shù)據(jù)單元中的所有數(shù)據(jù)塊都被復(fù)制的計(jì)算機(jī)代碼。
19、 如權(quán)利要求18所述的電子設(shè)備,其中多個(gè)第一類型的數(shù)據(jù) 塊包括壓縮數(shù)據(jù)的塊。
20、 如權(quán)利要求19所述的電子設(shè)備,其中多個(gè)第二類型的數(shù)據(jù) 塊包括非壓縮數(shù)據(jù)的塊。
21、 如權(quán)利要求20所述的電子設(shè)備,其中所述計(jì)算機(jī)程序產(chǎn)品 進(jìn)一步包括在數(shù)據(jù)單元中的第二類型的所有數(shù)據(jù)塊已被復(fù)制到第二 緩沖器之后使用非壓縮數(shù)據(jù)向用戶顯示圖像的計(jì)算機(jī)代碼。
22、 如權(quán)利要求18所述的電子設(shè)備,其中將數(shù)據(jù)單元中的第一 類型的數(shù)據(jù)塊復(fù)制到第一緩沖器包括使用MPU來搜索標(biāo)記符,所述 標(biāo)記符指示下一個(gè)未復(fù)制的第一類型的數(shù)據(jù)塊的開始位置。
23、 如權(quán)利要求18所述的電子設(shè)備,其中多個(gè)第一類型的數(shù)據(jù) 塊和多個(gè)第二類型的數(shù)據(jù)塊從交織數(shù)據(jù)緩沖器中被復(fù)制。
24、 如權(quán)利要求23所述的電子設(shè)備,其中交織數(shù)據(jù)緩沖器包括 第一數(shù)據(jù)緩沖器,以及其中在第一類型的數(shù)據(jù)塊復(fù)制期間,各個(gè)第 二類型的數(shù)據(jù)塊在交織數(shù)據(jù)緩沖器上被改寫。
25、 一種集成電^^,包括 微處理器部分;存儲器部分,操作性連接到多處理器部分,所述存儲器部分包括第一緩沖器和第二緩沖器;以及直接存儲器存取硬件部分,操作性連接到存儲器部分;其中,所述存儲器部分包括用于處理交織數(shù)據(jù)單元的計(jì)算機(jī)程序產(chǎn)品,所述交織數(shù)據(jù)單元包括多個(gè)第 一類型的數(shù)據(jù)塊和多個(gè)第二類型的數(shù)據(jù)塊,該計(jì)算機(jī)程序產(chǎn)品包括使用微處理器部分將數(shù)據(jù)單元中的第 一 個(gè)第 一 類型的數(shù)據(jù)塊復(fù)制到第 一緩沖器的計(jì)算機(jī)代碼;使用直接存儲器存取硬件部分將數(shù)據(jù)單元中的第一個(gè)第二類型的數(shù)據(jù)塊復(fù)制到第二緩沖器的計(jì)算機(jī)代碼;在對第 一 個(gè)第 一 類型的數(shù)據(jù)塊的復(fù)制完成時(shí),使用微處理器 部分將數(shù)據(jù)單元中的下一個(gè)第一類型的數(shù)據(jù)塊復(fù)制到第 一緩沖器的 計(jì)算機(jī)代碼;在對第 一 個(gè)第二類型的數(shù)據(jù)塊的復(fù)制完成時(shí),使用直接存儲 器存取硬件部分將數(shù)據(jù)單元中的下一個(gè)第二類型的數(shù)據(jù)塊復(fù)制到第二緩沖器的計(jì)算機(jī)代碼;以及繼續(xù)使用微處理器部分和直接存儲器存取部分將數(shù)據(jù)單元 中的隨后的第 一類型和第二類型的數(shù)據(jù)塊分別復(fù)制到第 一緩沖器和 第二緩沖器直到數(shù)據(jù)單元中的所有數(shù)據(jù)塊都被復(fù)制的計(jì)算機(jī)代碼。
全文摘要
本發(fā)明涉及一種改進(jìn)的系統(tǒng)和方法,用于將包含兩個(gè)或多個(gè)不同數(shù)據(jù)類型的塊的數(shù)據(jù)單元解交織。在本發(fā)明的一個(gè)實(shí)施例中,設(shè)備MPU和DMA硬件二者均用于對包含壓縮數(shù)據(jù)和非壓縮數(shù)據(jù)二者的塊的數(shù)據(jù)單元解交織。設(shè)備MPU用于將壓縮數(shù)據(jù)從交織數(shù)據(jù)緩沖器傳送到壓縮數(shù)據(jù)緩沖器,DMA硬件用于將非壓縮數(shù)據(jù)從交織數(shù)據(jù)緩沖器傳送到壓縮數(shù)據(jù)緩沖器。通過使用MPU和DMA硬件二者,數(shù)據(jù)傳送處理的整體效率被提高。
文檔編號G06F13/28GK101432707SQ200780015319
公開日2009年5月13日 申請日期2007年3月14日 優(yōu)先權(quán)日2006年3月14日
發(fā)明者T·凱屈瑪阿 申請人:諾基亞公司