欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

圖像旋轉(zhuǎn)系統(tǒng)、圖像旋轉(zhuǎn)方法、解碼芯片的制作方法

文檔序號(hào):6470878閱讀:266來源:國(guó)知局
專利名稱:圖像旋轉(zhuǎn)系統(tǒng)、圖像旋轉(zhuǎn)方法、解碼芯片的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及圖像旋轉(zhuǎn)處理領(lǐng)域,具體地說,涉及一種圖像旋轉(zhuǎn)系統(tǒng)、圖像 旋轉(zhuǎn)方法、解碼芯片。
背景技術(shù)
數(shù)字視頻技術(shù)在通信和廣播領(lǐng)域獲得了日益廣泛的應(yīng)用,特別是20世紀(jì) 90年代以來,隨著Internet和移動(dòng)通信的迅猛發(fā)展,視頻信息和多媒體信息在 移動(dòng)網(wǎng)絡(luò)中的處理和傳輸技術(shù)成了當(dāng)前我國(guó)信息化的熱點(diǎn)。中國(guó)移動(dòng)多媒體廣 # (CMMB, China Mobile Multimedia Broadcasting)應(yīng)運(yùn)而生。
CMMB是由國(guó)家廣播電影電視總局建立的具有自主知識(shí)產(chǎn)權(quán)的數(shù)字多媒 體廣播系統(tǒng),通過衛(wèi)星和地面無線廣播的方式,可供七寸以下小屏幕、小尺寸、 移動(dòng)便攜的手持類終端隨時(shí)隨地接收廣播電視節(jié)目和信息服務(wù)等業(yè)務(wù),從而, 使人們的娛樂和信息生活方式發(fā)生了巨大的變化,創(chuàng)造新的收視習(xí)慣和消費(fèi)時(shí) 尚。
由于如CMMB等移動(dòng)多媒體廣播技術(shù)的不斷發(fā)展,具有靜態(tài)圖像旋轉(zhuǎn)功 能的多媒體移動(dòng)終端越來越深入人心;而具有視頻旋轉(zhuǎn)功能的移動(dòng)終端更是得 到了眾多消費(fèi)者的喜愛。為了滿足消費(fèi)者的需求,業(yè)內(nèi)的相關(guān)產(chǎn)品,包括手機(jī)、 PDA、 MP3/MP4播放器、數(shù)碼相機(jī)以及筆記本電腦等接收設(shè)備中紛紛添加了 靜態(tài)圖像旋轉(zhuǎn)、視頻旋轉(zhuǎn)的圖像旋轉(zhuǎn)功能。
但是,就目前而言,移動(dòng)終端的圖像旋轉(zhuǎn)技術(shù)的實(shí)現(xiàn)方式是在視頻解碼 器中增加一個(gè)獨(dú)立的專用于圖像旋轉(zhuǎn)的旋轉(zhuǎn)模塊,該旋轉(zhuǎn)模塊用于將存儲(chǔ)器中 解碼出來的宏塊矩陣根據(jù)實(shí)際的需要進(jìn)行旋轉(zhuǎn),然后輸出到顯示屏上去,這種 方法的好處是筒單易行,缺點(diǎn)是需要在內(nèi)存中占用一個(gè)獨(dú)立的旋轉(zhuǎn)模塊來進(jìn) 行,因而增加了內(nèi)存的開銷;并且,在旋轉(zhuǎn)的過程中涉及到內(nèi)存的搬移,而內(nèi) 存的搬移所涉及到的計(jì)算量比較大,且耗費(fèi)時(shí)間,因此加重了系統(tǒng)的負(fù)擔(dān)。
有鑒于此,需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問題就是提供一種 圖像旋轉(zhuǎn)的方法,以解決現(xiàn)有技術(shù)中在實(shí)現(xiàn)圖像旋轉(zhuǎn)過程中存在的內(nèi)存開銷
大,計(jì)算量大、系統(tǒng)負(fù)擔(dān)重的問題。

發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種圖像旋轉(zhuǎn)系統(tǒng)、圖像旋轉(zhuǎn)方法、解 碼芯片,以解決在實(shí)現(xiàn)圖像旋轉(zhuǎn)過程中,內(nèi)存開銷大以及內(nèi)存搬移所產(chǎn)生的計(jì) 算量大、耗費(fèi)時(shí)間長(zhǎng)等問題。
為了解決上述問題,本發(fā)明公開了一種圖像旋轉(zhuǎn)系統(tǒng),該圖像旋轉(zhuǎn)系統(tǒng)包 括第一處理器、第二處理器、第一存儲(chǔ)器、第二存儲(chǔ)器,所述第一處理器包括 地址計(jì)算單元和旋轉(zhuǎn)指令生成單元,其中,地址計(jì)算單元包括第一地址計(jì)算子
單元和第二地址計(jì)算子單元第一地址計(jì)算子單元,用于計(jì)算作為參考?jí)K的、 旋轉(zhuǎn)塊矩陣D。/旋轉(zhuǎn)為正常位置塊矩陣D^后,在第二存儲(chǔ)器的存儲(chǔ)地址 ADRESS1;第二地址計(jì)算子單元,用于計(jì)算正常位置塊矩陣Dn變換為旋轉(zhuǎn)塊 矩陣D/后,在第一存儲(chǔ)器的存儲(chǔ)地址ADRESS2;所述第一處理器還包括指 令生成單元,該指令生成單元包括第一旋轉(zhuǎn)指令生成子單元、第二旋轉(zhuǎn)指令生 成子單元和數(shù)據(jù)處理指令生成子單元,其中,第一旋轉(zhuǎn)指令生成子單元用于生 成將所述Dn/旋轉(zhuǎn)為Dn-,、并攜帶有將所述D^存儲(chǔ)于第一存儲(chǔ)器地址的旋 轉(zhuǎn)指令COMMANDl;第二旋轉(zhuǎn)指令生成子單元用于生成將所述D。旋轉(zhuǎn)為所 述DnR、并攜帶有所述DnR存儲(chǔ)于所述第二存儲(chǔ)器地址的旋轉(zhuǎn)指令 COMMAND2;數(shù)據(jù)處理指令生成子單元用于生成完成幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)或 者環(huán)路濾波數(shù)據(jù)處理過程的指令COMMAND3;所述第二處理器用于根據(jù)所述 ADRESS1執(zhí)行旋轉(zhuǎn)指令COMMANDl 、根據(jù)所述ADRESS2執(zhí)行旋轉(zhuǎn)指令 COMMAND2;以及,執(zhí)行指令COMMAND3;所述第一存儲(chǔ)器用于存儲(chǔ)所述 塊矩陣Dn/以及所述塊矩陣DnR;所述第二存儲(chǔ)器用于存儲(chǔ)所述正常位置塊 矩陣D^。
優(yōu)選地,所述第一處理器還包括旋轉(zhuǎn)指令接收單元,該旋轉(zhuǎn)指令接收單元 用于在時(shí)間點(diǎn)to接收旋轉(zhuǎn)啟動(dòng)指令。并且,所述地址計(jì)算單元還包括有第三 地址計(jì)算子單元用于根據(jù)所述旋轉(zhuǎn)啟動(dòng)指令,計(jì)算將正常位置塊矩陣D!變 換為旋轉(zhuǎn)位置塊矩陣D,后,D,存儲(chǔ)至所述第一存儲(chǔ)器中的地址。
優(yōu)選地,所述旋轉(zhuǎn)指令COMMANDl具體為第二處理器讀取存儲(chǔ)于所
述第一存儲(chǔ)器中的所述塊矩陣Dn/;將所述塊矩陣Dn—,搬移至第二存儲(chǔ)器的
所述ADRESS1中,得到Dn.,。
優(yōu)選地,所述旋轉(zhuǎn)指令COMMAND2具體為第二處理器讀取存儲(chǔ)于第 二存儲(chǔ)器中的所述塊矩陣Dn;將所述塊矩陣D。搬移至第一存儲(chǔ)器的所述 ADRESS2中,得到DnR。
優(yōu)選地,圖像旋轉(zhuǎn)系統(tǒng)還包括一DMA控制器,所述DMA控制器用于將 每一個(gè)旋轉(zhuǎn)塊矩陣Dn/通過DMA方式搬移至所述ADRESS1中;以及用于將 每一個(gè)所述塊矩陣Dn通過DMA方式!般移至所述ADRESS2中。
優(yōu)選地,所述第一處理器為ARM處理器,所述第二處理器為DSP處理器 或者具有DSP架構(gòu)的獨(dú)立處理單元。
本發(fā)明還公開了 一種圖像旋轉(zhuǎn)方法,該方法將旋轉(zhuǎn)過程嵌入在解碼的幀內(nèi) 預(yù)測(cè)、幀間預(yù)測(cè)或者環(huán)路濾波中,具體包括如下步驟讀取存儲(chǔ)于所述第一存 儲(chǔ)器中所述作為參考?jí)K的、旋轉(zhuǎn)塊矩陣數(shù)據(jù)Dn/,將所述D。/旋轉(zhuǎn)為正常位 置塊矩陣并保存在第二存儲(chǔ)器中;利用第二存儲(chǔ)器中的所述正常位置塊矩 陣D^進(jìn)行相應(yīng)的幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)或者環(huán)路濾波的處理,得到塊矩陣數(shù)據(jù) Dn;將所述塊矩陣數(shù)據(jù)Dn旋轉(zhuǎn),得到旋轉(zhuǎn)塊矩陣D/,并保存在所述第一存 儲(chǔ)器中;其中,將所述塊矩陣Dn/旋轉(zhuǎn)為正常塊矩陣D^以及將所述塊矩陣 Dn旋轉(zhuǎn)得到旋轉(zhuǎn)塊矩陣DnR是通過在讀取和保存過程中的坐標(biāo)變換而實(shí)現(xiàn)。
優(yōu)選地,所述方法進(jìn)一步包括在啟動(dòng)旋轉(zhuǎn)時(shí),通過如下步驟獲取所述 D,:在啟動(dòng)時(shí)間點(diǎn)to,發(fā)出圖像旋轉(zhuǎn)啟動(dòng)指令;讀取存儲(chǔ)于第一存儲(chǔ)器中的 正常位置塊矩陣DP并將所述正常位置塊矩陣D,保存在所述第二存儲(chǔ)器中; 才艮據(jù)坐標(biāo)變換,計(jì)算所述正常位置塊矩陣D,變換為旋轉(zhuǎn)位置塊矩陣時(shí)存 儲(chǔ)于所述第一存儲(chǔ)器中的地址;從所述第二存儲(chǔ)器中讀取正常位置塊矩陣D,, 并存儲(chǔ)至所述第一存儲(chǔ)器的所述地址中,得到旋轉(zhuǎn)位置塊矩陣D,R。
優(yōu)選地,將所述旋轉(zhuǎn)塊矩陣D。/旋轉(zhuǎn)為正常位置塊矩陣Dn_,的旋轉(zhuǎn)指令 具體為第一處理器計(jì)算所述旋轉(zhuǎn)塊矩陣Dn/旋轉(zhuǎn)為正常位置塊矩陣 后,在第二存儲(chǔ)器的存儲(chǔ)地址ADRESS1;第二處理器讀取所述旋轉(zhuǎn)塊矩陣Dn/ 中的每一個(gè)旋轉(zhuǎn)塊矩陣;將所述旋轉(zhuǎn)塊矩陣D。/搬移至第二存儲(chǔ)器的ADRESS1中,得到正常位置塊矩陣Dn.,。
優(yōu)選地,將塊矩陣D。旋轉(zhuǎn),得到矩陣數(shù)據(jù)D^的旋轉(zhuǎn)指令具體為第一 處理器計(jì)算所述正常位置塊矩陣Dn旋轉(zhuǎn)為旋轉(zhuǎn)塊矩陣DnR后,在第一存儲(chǔ) 器的存儲(chǔ)地址ADRESS2;第二處理器讀取所述第二存儲(chǔ)器中的正常位置塊矩 陣Dn;將所述正常位置塊矩陣Dn^:移至第一存儲(chǔ)器的ADRESS2中,得到旋 轉(zhuǎn)塊矩陣D/。
優(yōu)選地,所述旋轉(zhuǎn)塊矩陣D。/通過DMA方式,搬移至第二存儲(chǔ)器的 ADRESS1中,得到正常位置塊矩陣D^;以及,所述正常位置塊矩陣Dn通過 DMA方式,搬移至第一存儲(chǔ)器的ADRESS2中,得到旋轉(zhuǎn)塊矩陣DnR。
優(yōu)選地,利用所述正常位置塊矩D^作為參考?jí)K,進(jìn)行幀內(nèi)預(yù)測(cè)時(shí),所述 為D^為8x8、 16x8、 8x 16或者16x 16的宏塊,包括如下步驟由第一處 理器進(jìn)行當(dāng)前塊的熵解碼,并由所述第二處理器依次進(jìn)行反掃描、反量化、反 DCT并將產(chǎn)生的殘差數(shù)據(jù)Bn存儲(chǔ)于第二存儲(chǔ)器中;由第二處理器將所述正常 位置塊矩陣與殘差數(shù)據(jù)Bj目加。
優(yōu)選地,利用所述正常位置塊矩D^作為參考?jí)K,進(jìn)行幀內(nèi)預(yù)測(cè)時(shí),所述 為D^為8x8、 16x8、 8x 16或者16x 16的宏塊,包括如下步驟由第一處 理器進(jìn)行當(dāng)前幀的當(dāng)前塊的熵解碼,并由第二處理器依次進(jìn)行反掃描、反量化、 反DCT并將當(dāng)前塊產(chǎn)生的殘差數(shù)據(jù)Cn存儲(chǔ)于所述第二存儲(chǔ)器中;由所述第二 處理器將所述正常位置塊矩陣D^與進(jìn)行插值運(yùn)算,得到Dn-,;由第二處理器 將所述塊矩陣數(shù)據(jù)D'^與殘差數(shù)據(jù)C。相加。優(yōu)選地,利用所述正常位置塊矩陣D^作為參考?jí)K,進(jìn)行環(huán)路濾波時(shí),所 述D^為8x6或者6x8的圖像塊,所述圖像塊是由幀內(nèi)預(yù)測(cè)/幀間預(yù)測(cè)解碼 出來的圖像劃分得到的,包括如下步驟對(duì)當(dāng)前圖像塊的邊緣進(jìn)行環(huán)路濾波, 得到環(huán)路濾波的差值Ln;將所迷正常位置塊矩陣Dn-!與環(huán)路濾波的差值Ln相 加。
優(yōu)選地,所述第一處理器為ARM處理器,所述第二處理器為DSP處理器 或者具有DSP架構(gòu)的獨(dú)立處理單元。
本發(fā)明還公開了一種解碼芯片,所述解碼芯片包括一圖像旋轉(zhuǎn)系統(tǒng),該圖
像旋轉(zhuǎn)系統(tǒng)包括第一處理器、第二處理器、第一存儲(chǔ)器、第二存儲(chǔ)器,所述第 一處理器包括地址計(jì)算單元和旋轉(zhuǎn)指令生成單元,其中,地址計(jì)算單元包括第
一地址計(jì)算子單元和第二地址計(jì)算子單元第一地址計(jì)算子單元,用于計(jì)算作
為參考?jí)K的、旋轉(zhuǎn)塊矩陣Dn/旋轉(zhuǎn)為正常位置塊矩陣D^后,在第二存儲(chǔ)器
的存儲(chǔ)地址ADRESS1;第二地址計(jì)算子單元,用于計(jì)算正常位置塊矩陣Dn 變換為旋轉(zhuǎn)塊矩陣D/后,在第一存儲(chǔ)器的存儲(chǔ)地址ADRESS2;所述第一處 理器還包括指令生成單元,該指令生成單元包括第一旋轉(zhuǎn)指令生成子單元、第 二旋轉(zhuǎn)指令生成子單元和數(shù)據(jù)處理指令生成子單元,其中,第一旋轉(zhuǎn)指令生成 子單元用于生成將所述Dn/旋轉(zhuǎn)為Dn.,、并攜帶有將所述D^存儲(chǔ)于第一存 儲(chǔ)器地址的旋轉(zhuǎn)指令COMMANDl;第二旋轉(zhuǎn)指令生成子單元用于生成將所述 Dn旋轉(zhuǎn)為所述DnR、并攜帶有所述D/存儲(chǔ)于所述第二存儲(chǔ)器地址的旋轉(zhuǎn)指令 COMMAND2;數(shù)據(jù)處理指令生成子單元用于生成完成幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)或 者環(huán)路濾波數(shù)據(jù)處理過程的指令COMMAND3;所述第二處理器用于根據(jù)所述 ADRESS1寺丸行旋轉(zhuǎn)指令COMMANDl 、根據(jù)所述ADRESS2執(zhí)行旋轉(zhuǎn)指令 COMMAND2;以及,執(zhí)行指令COMMAND3;所述第一存儲(chǔ)器用于存儲(chǔ)所述 塊矩陣Dn/以及所述塊矩陣DnR;所述第二存儲(chǔ)器用于存儲(chǔ)所述正常位置塊 矩陣D^。
優(yōu)選地,該解碼芯片中的所述第一處理器還包括旋轉(zhuǎn)指令接收單元,該旋 轉(zhuǎn)指令接收單元用于在時(shí)間點(diǎn)to接收旋轉(zhuǎn)啟動(dòng)指令。并且,所述地址計(jì)算單元 還包括有第三地址計(jì)算子單元用于根據(jù)所述旋轉(zhuǎn)啟動(dòng)指令,計(jì)算將正常位 置塊矩陣D,變換為旋轉(zhuǎn)位置塊矩陣D,后,D,存儲(chǔ)至所述第一存儲(chǔ)器中的地址。
優(yōu)選地,該解碼芯片中的所述旋轉(zhuǎn)指令COMMANDl具體為第二處理 器讀取存儲(chǔ)于所述第一存儲(chǔ)器中的所述塊矩陣Dn/;將所述塊矩陣D^,搬移 至第二存儲(chǔ)器的所述ADRESS1中,得到Dn-,。
優(yōu)選地,該解碼芯片中的所述旋轉(zhuǎn)指令COMMAND2具體為第二處理 器讀取存儲(chǔ)于第二存儲(chǔ)器中的所述塊矩陣Dn;將所述塊矩陣Dn搬移至第一存 儲(chǔ)器的所述ADRESS2中,得到DnR。
優(yōu)選地,該解碼芯片中的圖像旋轉(zhuǎn)系統(tǒng)還包括一 DMA控制器,所述DMA 控制器用于將每一個(gè)旋轉(zhuǎn)塊矩陣Dn/通過DMA方式搬移至所述ADRESS1 中;以及用于將每一個(gè)所述塊矩陣Dn通過DMA方式〗般移至所述ADRESS2 中。
優(yōu)選地,該解碼芯片中的所述第一處理器為ARM處理器,所述第二處理 器為DSP處理器或者具有DSP架構(gòu)的獨(dú)立處理單元。 與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)
在旋轉(zhuǎn)過程中,充分利用解碼環(huán)節(jié)中,只有幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)或者環(huán)路 濾波的解碼環(huán)節(jié)需要訪問作為參考數(shù)據(jù)的、已經(jīng)解碼的塊矩陣的特點(diǎn),將旋轉(zhuǎn) 過程嵌入在幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)或者環(huán)路濾波的執(zhí)行過程中,采用由第一處理 器直接發(fā)送旋轉(zhuǎn)的指令給第二處理器以進(jìn)行相關(guān)處理的方式實(shí)現(xiàn)了圖像的旋 轉(zhuǎn);同現(xiàn)有技術(shù)相比,不需要增加獨(dú)立的旋轉(zhuǎn)模塊,從而,節(jié)省了內(nèi)存的開銷, 并且,也減少了內(nèi)存在搬移過程中的計(jì)算量,減輕了系統(tǒng)的負(fù)擔(dān)。


圖1A是根據(jù)現(xiàn)有技術(shù)中的解碼器中,塊矩陣的存儲(chǔ)方法示意圖1B是根據(jù)本發(fā)明的旋轉(zhuǎn)方法,旋轉(zhuǎn)塊矩陣在第一存儲(chǔ)器中的存儲(chǔ)示意
圖1C是根據(jù)本發(fā)明的旋轉(zhuǎn)方法,正常位置塊矩陣在第二存儲(chǔ)器中的存儲(chǔ) 示意圖2是根據(jù)本發(fā)明圖像旋轉(zhuǎn)系統(tǒng)實(shí)施例的詳細(xì)結(jié)構(gòu)示意圖; 圖3是根據(jù)本發(fā)明圖像旋轉(zhuǎn)系統(tǒng)另一實(shí)施例的詳細(xì)結(jié)構(gòu)示意圖。 圖4是根據(jù)本發(fā)明圖像旋轉(zhuǎn)方法實(shí)施例的旋轉(zhuǎn)流程圖; 圖5是根據(jù)發(fā)明圖像旋轉(zhuǎn)方法實(shí)施例將塊矩陣Dn/旋轉(zhuǎn)為正常位置塊矩 陣D^的流程圖6是根據(jù)本發(fā)明圖像旋轉(zhuǎn)方法實(shí)施例將正常位置塊矩陣Dn旋轉(zhuǎn)為旋轉(zhuǎn) 塊矩陣D/的流程圖7是根據(jù)本發(fā)明圖像旋轉(zhuǎn)方法實(shí)施例進(jìn)行幀內(nèi)預(yù)測(cè)時(shí)的旋轉(zhuǎn)流程圖; 圖8是根據(jù)本發(fā)明圖像旋轉(zhuǎn)方法實(shí)施例進(jìn)行幀間預(yù)測(cè)時(shí)的旋轉(zhuǎn)流程圖9是根據(jù)本發(fā)明圖像旋轉(zhuǎn)方法實(shí)施例進(jìn)行環(huán)路濾波時(shí)的旋轉(zhuǎn)流程圖。
具體實(shí)施例方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。
本發(fā)明的核心思想是在解碼過程中,將圖像旋轉(zhuǎn)嵌入在幀內(nèi)預(yù)測(cè)、幀間 預(yù)測(cè)或者環(huán)路濾波的各個(gè)環(huán)節(jié)中。從而,無需在整個(gè)解碼過程完成之后,增加 一個(gè)獨(dú)立的模塊來存儲(chǔ)旋轉(zhuǎn)圖像。
具體的,解碼器在執(zhí)行幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)或者環(huán)路濾波的處理時(shí),需要 兩個(gè)存儲(chǔ)器第一存儲(chǔ)器和第二存儲(chǔ)器。其中,第一存儲(chǔ)器稱為外部存儲(chǔ)器, 用于存儲(chǔ)已經(jīng)解碼的、處于正常位置的塊矩陣數(shù)據(jù),以作為解碼當(dāng)前塊矩陣數(shù) 據(jù)時(shí)的參考?jí)K;第二存儲(chǔ)器為內(nèi)部存儲(chǔ)器,以供處理器對(duì)參考快以及當(dāng)前塊的 差值進(jìn)行運(yùn)算,從而完成對(duì)當(dāng)前塊的解碼,解碼完成之后,再將結(jié)果存回第一 存儲(chǔ)器。
如圖1A所示,可以看出,當(dāng)不需要進(jìn)行圖像旋轉(zhuǎn)時(shí),在第一存儲(chǔ)器與第 二存儲(chǔ)器之間的讀取與保存過程中,不存在坐標(biāo)的變換,是直接搬移,然后存 儲(chǔ)。例如,將當(dāng)前塊矩陣從第二存儲(chǔ)器直接搬移到第一存儲(chǔ)器時(shí),塊矩陣的A 點(diǎn)、B點(diǎn)的存儲(chǔ)地址是直接對(duì)應(yīng)的。
參看圖1B:
當(dāng)需要在第 一存儲(chǔ)器中存儲(chǔ)處于旋轉(zhuǎn)狀態(tài)的塊矩陣數(shù)據(jù)時(shí),從第二存儲(chǔ)器 中讀取塊矩陣101,計(jì)算塊矩陣101處于所需的旋轉(zhuǎn)狀態(tài)下的新坐標(biāo),將其存 儲(chǔ)在第一存儲(chǔ)器中旋轉(zhuǎn)后的地址上。塊矩陣的A點(diǎn)、B點(diǎn)的存儲(chǔ)地址是的對(duì) 應(yīng)關(guān)系如圖IB所示。
參看圖1C:
當(dāng)需要將第 一存儲(chǔ)器中處于旋轉(zhuǎn)狀態(tài)的塊矩陣數(shù)據(jù),讀取至第二存儲(chǔ)器進(jìn) 行幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)或者環(huán)路濾波的處理時(shí),需要通過讀取過程中的坐標(biāo)變 換將塊矩陣數(shù)據(jù)旋轉(zhuǎn)回正常位置。例如,讀取第一存儲(chǔ)器的塊矩陣102,計(jì)算 其處于正常位置下的新坐標(biāo),將其存儲(chǔ)在第二存儲(chǔ)器中的新坐標(biāo)地址上。塊矩 陣的A點(diǎn)、B點(diǎn)的存儲(chǔ)地址是的對(duì)應(yīng)關(guān)系如圖1C所示。
態(tài),即非旋轉(zhuǎn)狀態(tài)、左旋轉(zhuǎn)狀態(tài)以及右旋轉(zhuǎn)狀態(tài)三種情況下的塊矩陣關(guān)系,通 過定義的矩陣關(guān)系可以進(jìn)行讀取或者存儲(chǔ)地址的計(jì)算
正常情況下,塊矩陣的在存儲(chǔ)器中的地址為
start + giAVSYPitchLengthx Y + X;
左旋轉(zhuǎn)狀態(tài)下,塊矩陣的在存儲(chǔ)器中的地址為
start + giAVSYPitchLength x X + giAVSPicHeight — Y;
右旋轉(zhuǎn)狀態(tài)下,塊矩陣的在存儲(chǔ)器中的地址為
start + giAVSYPitchLength x (giAVSPicWi她InDs - X) + Y;
其中,start表示當(dāng)前幀在所述存儲(chǔ)單元中開始的位置坐標(biāo), giAVSYPitchLength代表當(dāng)前幀一行的寬度,giAVSPicHeight表示當(dāng)前幀的高 度,giAVSPicWidthlnDs表示當(dāng)前幀以塊為單位的幀寬度。
并且,上述的各個(gè)塊矩陣Dn/、 D^、 Dn、 D/都為YUV數(shù)據(jù)結(jié)構(gòu)的塊 矩陣。
以下結(jié)合旋轉(zhuǎn)系統(tǒng)實(shí)施例和旋轉(zhuǎn)方法實(shí)施例對(duì)本發(fā)明加以詳細(xì)的說明 :旋轉(zhuǎn)系統(tǒng)實(shí)施例
下面結(jié)合圖2至圖3對(duì)本發(fā)明圖〗象旋轉(zhuǎn)系統(tǒng)作出詳細(xì)說明。
參照?qǐng)D2、圖2A、圖2B 、圖2C,其中,旋轉(zhuǎn)系統(tǒng)包括第一處理器201、 第二處理器202、第一存儲(chǔ)器203以及第二存儲(chǔ)器204,其中
第一處理器201包括地址計(jì)算單元2A01和旋轉(zhuǎn)指令生成單元2A02,其 中,地址計(jì)算單元2A01包括
第一地址計(jì)算子單元2B01:用于計(jì)算作為參考?jí)K的、旋轉(zhuǎn)塊矩陣Dn/旋 轉(zhuǎn)為正常位置塊矩陣Dw后,在第二存儲(chǔ)器的存儲(chǔ)地址ADRESS1;
第二地址計(jì)算子單元2B02:用于計(jì)算正常位置塊矩陣Dn變換為旋轉(zhuǎn)塊矩 陣D/后,在第一存儲(chǔ)器的存儲(chǔ)地址ADRESS2;
指令生成單元包括2A02:
第一旋轉(zhuǎn)指令生成子單元2C01:用于生成將Dn^旋轉(zhuǎn)為D^、并攜帶有 將Dn.,存儲(chǔ)于第一存儲(chǔ)器地址的旋轉(zhuǎn)指令COMMAND1;
第二旋轉(zhuǎn)指令生成子單元2C02:用于生成將D。旋轉(zhuǎn)為DnR、并攜帶有DnR 存儲(chǔ)于第二存儲(chǔ)器地址的旋轉(zhuǎn)指令COMMAND2;
數(shù)據(jù)處理指令生成子單元2C03,用于生成完成幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)或者 環(huán)路濾波數(shù)據(jù)處理過程的指令COMMAND3;
第二處理器202用于執(zhí)行旋轉(zhuǎn)指令COMMAND1和COMMAND2;
第一存儲(chǔ)器203用于存儲(chǔ)作為參考?jí)K的已經(jīng)旋轉(zhuǎn)的塊矩陣Dn/以及由第 二處理器202解碼的已經(jīng)旋轉(zhuǎn)的塊矩陣DnR;
第二存儲(chǔ)器204用于存儲(chǔ)將塊矩陣Dn/旋轉(zhuǎn)回正常位置的塊矩陣數(shù)據(jù)
Dn-。
其中,旋轉(zhuǎn)指令COMMAND1具體為指示第二處理器202讀取存儲(chǔ)于 第一存儲(chǔ)器203中的塊矩陣D。/;并將YUV旋轉(zhuǎn)塊Dn/搬移至第二存儲(chǔ)器 104中的ADRESS1中以得到Dn-,。
旋轉(zhuǎn)指令COMMAND2具體為第二處理器202讀取存儲(chǔ)于第二存儲(chǔ)器 104中的塊矩陣Dn;并將塊矩陣Dn搬移至第一存儲(chǔ)器203中的ADRESS2中 得到DnR。
進(jìn)一步地,第一處理器還包括旋轉(zhuǎn)指令接收單元,用于在時(shí)間點(diǎn)to接收 旋轉(zhuǎn)啟動(dòng)指令;并且,所述地址計(jì)算單元還包括有第三地址計(jì)算子單元用 于根據(jù)所述旋轉(zhuǎn)啟動(dòng)指令,計(jì)算將正常位置塊矩陣D,變換為旋轉(zhuǎn)位置塊矩陣 D,k后,D,存儲(chǔ)至所述第一存儲(chǔ)器中的地址。
優(yōu)選地,第一存儲(chǔ)器選擇SDRAM類型的存儲(chǔ)器,第二存儲(chǔ)器選擇SRAM 類型的存儲(chǔ)器,并且,上述的各個(gè)塊矩陣都為YUV數(shù)據(jù)結(jié)構(gòu)的塊矩陣。
參照?qǐng)D3,示出了根據(jù)本發(fā)明圖像旋轉(zhuǎn)系統(tǒng)實(shí)施例的結(jié)構(gòu)示意圖,如圖2 所示,旋轉(zhuǎn)系統(tǒng)包括第一處理器301、第二處理器302、第一存儲(chǔ)器303、 第二存儲(chǔ)器304以及DMA控制器35,其中
第一處理器301用于計(jì)算塊矩陣Dn/反向旋轉(zhuǎn)為正常塊D^后在第二存 儲(chǔ)器304中的存儲(chǔ)地址ADRESS1 、以及用于計(jì)算YUV塊矩陣數(shù)據(jù)D。旋轉(zhuǎn)為 塊D/后在第一存儲(chǔ)器303的存儲(chǔ)地址ADRESS2;并且,用于向向第二處理 器302發(fā)送》走轉(zhuǎn)指令COMMAND 1和COMMAND2,這里的COMMAND 1
和COMMAND2與上一實(shí)施例相同,在此不再贅述。
第二處理器302用于執(zhí)行上述旋轉(zhuǎn)指令C0MMAND1和COMMAND2;
第一存儲(chǔ)器303用于存儲(chǔ)作為參考?jí)K的已經(jīng)旋轉(zhuǎn)的塊矩陣Dn/以及由第 二處理器解碼的已經(jīng)旋轉(zhuǎn)的塊矩陣DnR;
第二存儲(chǔ)器304用于存儲(chǔ)包括將塊矩陣Dn/旋轉(zhuǎn)回正常位置的塊矩陣數(shù) 據(jù)D"
DMA控制器305用于將每一個(gè)存儲(chǔ)于第一存儲(chǔ)器303中的旋轉(zhuǎn)塊Dn/ 通過DMA方式搬移至第二存儲(chǔ)器304的存儲(chǔ)地址ADRESS1中;以及用于 將每一個(gè)存儲(chǔ)于第二存儲(chǔ)器304中的塊Dn通過DMA方式搬移至第一存儲(chǔ)器 303中的存儲(chǔ)地址ADRESS2中。
優(yōu)選地,第一處理器可以為ARM處理器,第二處理器可以為具有很強(qiáng)數(shù) 據(jù)處理能力的DSP處理器,當(dāng)然,第二處理器的選擇并不限于DSP處理器, 也可以選擇具有DSP架構(gòu)的其他獨(dú)立處理單元。
同樣地,第一存儲(chǔ)器可以選擇SDRAM類型的存儲(chǔ)器,第二存儲(chǔ)器選擇 SRAM類型的存儲(chǔ)器,并且,上述的各個(gè)塊矩陣都為YUV數(shù)據(jù)結(jié)構(gòu)的塊矩陣。
^走轉(zhuǎn)方法實(shí)施例
下面結(jié)合圖4至圖9對(duì)本發(fā)明圖像旋轉(zhuǎn)方法作出詳細(xì)說明。 參照?qǐng)D4,示出了本發(fā)明圖像旋轉(zhuǎn)方法實(shí)施例的旋轉(zhuǎn)流程圖,具體包括如 下步驟
步驟401:讀取存儲(chǔ)于第一存儲(chǔ)器中已經(jīng)旋轉(zhuǎn)的塊矩陣數(shù)據(jù)Dn/,同時(shí), 將Dn/旋轉(zhuǎn)為正常塊矩陣數(shù)據(jù)并保存在第二存儲(chǔ)器中;
步驟402:利用第二存儲(chǔ)器中的矩陣數(shù)據(jù)D^進(jìn)行相應(yīng)的幀內(nèi)預(yù)測(cè)、幀間 預(yù)測(cè)或者環(huán)路濾波等處理,得到塊矩陣數(shù)據(jù)Dn;
步驟403:將塊矩陣數(shù)據(jù)Dn旋轉(zhuǎn),得到塊矩陣數(shù)據(jù)D/,并保存在第一存 儲(chǔ)器中。
其中,將Dn/旋轉(zhuǎn)為正常塊矩陣數(shù)據(jù)D^以及將塊矩陣數(shù)據(jù)Dn旋轉(zhuǎn),得 到塊矩陣數(shù)據(jù)D/是通過在讀取和保存過程中的坐標(biāo)變換而實(shí)現(xiàn)。
具體來說,可以通過第 一處理器向第二處理器發(fā)送旋轉(zhuǎn)指令并由第二處理
器執(zhí)行旋轉(zhuǎn)指令來完成的,而旋轉(zhuǎn)指令中則給出了在讀取和保存過程中的坐標(biāo) 變換的地址。
并且,D。/可以通過如下步驟獲取
在時(shí)間點(diǎn)to,發(fā)出圖像旋轉(zhuǎn)指令;讀取存儲(chǔ)于第一存儲(chǔ)器中的正常位置塊 矩陣,并將所述正常位置塊矩陣Dn-,保存在所述第二存儲(chǔ)器中; 根據(jù)坐標(biāo)變換,計(jì)算所述正常位置塊矩陣Dn.,變換為旋轉(zhuǎn)位置塊矩陣Dn/時(shí), 存儲(chǔ)于所述第 一存儲(chǔ)器中的地址。
根據(jù)所述地址,從所述第二存儲(chǔ)器中讀取正常位置塊矩陣D^,并存儲(chǔ)于 所述第一存儲(chǔ)器的所述地址中,得到旋轉(zhuǎn)位置塊矩陣Dn/。
優(yōu)選地,第一存儲(chǔ)器選擇SDRAM類型的存儲(chǔ)器,第二存儲(chǔ)器選擇SRAM 類型的存儲(chǔ)器,并且,上述的各個(gè)塊矩陣都為YUV數(shù)據(jù)結(jié)構(gòu)的塊矩陣。
本實(shí)施例通過將旋轉(zhuǎn)過程嵌入在解碼的幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)或者環(huán)路濾波 中,從而省去了添加一個(gè)單獨(dú)的用于實(shí)現(xiàn)旋轉(zhuǎn)的模塊,從而節(jié)省了內(nèi)存的開銷, 同時(shí),也減少了內(nèi)存的搬移次數(shù),減少了計(jì)算量。
參照?qǐng)D5,示出了發(fā)明圖像旋轉(zhuǎn)方法實(shí)施例將塊矩陣D。/旋轉(zhuǎn)為正常位 置塊矩陣D^的流程圖,包括如下步驟
步驟501:第一處理器計(jì)算旋轉(zhuǎn)塊矩陣Dn/變換為正常位置塊矩陣Dn_! 后在第二存儲(chǔ)器的存儲(chǔ)地址ADRESS1;
其中,根據(jù)前面已經(jīng)定義的正常狀態(tài),即非旋轉(zhuǎn)狀態(tài)、左旋轉(zhuǎn)狀態(tài)以及右 旋轉(zhuǎn)狀態(tài)三種情況下的塊YUV矩陣關(guān)系可以由第一處理器進(jìn)行讀取或者存儲(chǔ) 地址的計(jì)算例如,對(duì)于分辨率是320*240的圖像,對(duì)于Y: giAVSYPitchLength =384, giAVSPicHeight = 240,對(duì)于地址(X,Y)起始的塊,如果Dn/處于左旋 轉(zhuǎn)狀態(tài),依據(jù)
左旋轉(zhuǎn)狀態(tài)下,塊矩陣的在存儲(chǔ)器中的地址為
start + giAVSYPitchLength x X + giAVSPicHeight - Y;
則:第一處理器計(jì)算地址start+ 384x X + 240-Y;第二處理器才艮據(jù)上述 計(jì)算結(jié)果讀取數(shù)據(jù),從第一存儲(chǔ)器讀入一個(gè)塊放入第二存儲(chǔ)器的該地址中。
步驟502:第二處理器讀取旋轉(zhuǎn)塊矩陣Dn/中的每一個(gè)旋轉(zhuǎn)塊;
步驟503:將每一個(gè)旋轉(zhuǎn)塊矩陣Dn.,R搬移至第二存儲(chǔ)器的存儲(chǔ)地址 ADRESS1中得到正常位置塊矩陣D^。
其中,每一個(gè)存儲(chǔ)于第一存儲(chǔ)器中的旋轉(zhuǎn)塊塊矩陣Dn/可以通過DMA 方式搬移至第二存儲(chǔ)器的存儲(chǔ)地址ADRESS1中;
參照?qǐng)D6,示出了根據(jù)本發(fā)明圖像旋轉(zhuǎn)方法實(shí)施例將正常位置塊矩陣Dn 旋轉(zhuǎn)為旋轉(zhuǎn)塊矩陣DnR的流程圖,包括如下步驟
步驟601:第一處理器計(jì)算將正常位置塊矩陣Dn旋轉(zhuǎn)為旋轉(zhuǎn)塊矩陣DnR 后在第一存儲(chǔ)器的存儲(chǔ)地址ADRESS2;
其中,根據(jù)前面已經(jīng)定義的正常狀態(tài),即非旋轉(zhuǎn)狀態(tài)、左旋轉(zhuǎn)狀態(tài)以及右 旋轉(zhuǎn)狀態(tài)三種情況下的塊YUV矩陣關(guān)系可以由第一處理器進(jìn)行讀取或者存儲(chǔ) 地址的計(jì)算例如,對(duì)于分辨率是320*240的圖像,對(duì)于Y: giAVSYPitchLength =384, giAVSPicHeight = 240,對(duì)于地址(X,Y)起始的塊,如果D/將要處于左 旋轉(zhuǎn)狀態(tài),依據(jù)
左旋轉(zhuǎn)狀態(tài)下,塊矩陣的在存儲(chǔ)器中的地址為
start + giAVSYPitchLength x X + giAVSPicHeight - Y;
則:第一處理器計(jì)算地址start+ 384x X + 240-Y;第二處理器才艮據(jù)上述 計(jì)算結(jié)果讀取數(shù)據(jù),從第二存儲(chǔ)器讀入一個(gè)塊放入第一存儲(chǔ)器的該地址中。
步驟602:第二處理器讀取第二存儲(chǔ)器中的正常位置塊矩陣Dn;
步驟603:將第二存儲(chǔ)器中的正常位置塊矩陣Dn搬移至第一存儲(chǔ)器存儲(chǔ) 地址ADRESS2中得到DnR。
其中,每一個(gè)存儲(chǔ)于第二存儲(chǔ)器中的正常位置塊矩陣Dn通過DMA方式 搬移至第一存儲(chǔ)器存儲(chǔ)地址ADRESS2中。
優(yōu)選地,第一存儲(chǔ)器選擇SDRAM類型的存儲(chǔ)器,第二存儲(chǔ)器選擇SRAM 類型的存儲(chǔ)器。
參照?qǐng)D7,示出了根據(jù)本發(fā)明圖像旋轉(zhuǎn)方法實(shí)施例進(jìn)行幀內(nèi)預(yù)測(cè)時(shí)的旋轉(zhuǎn) 流程圖,包括如下步驟
步驟701:由第一處理器進(jìn)行當(dāng)前塊的熵解碼,并由所述第二處理器依次 進(jìn)行反掃描、反量化、反DCT并將產(chǎn)生的殘差數(shù)據(jù)Bn存儲(chǔ)于第二存儲(chǔ)器中;
步驟702:由第二處理器將所述正常位置塊矩陣Dw與殘差數(shù)據(jù)B。相加。 對(duì)于幀內(nèi)預(yù)測(cè)來說,旋轉(zhuǎn)的基本單元是8x8、 16x8、 8xl6或者16xl6的宏塊。
參照?qǐng)D8,示出了根據(jù)本發(fā)明圖像旋轉(zhuǎn)方法實(shí)施例進(jìn)行幀間預(yù)測(cè)時(shí)的旋轉(zhuǎn) 流程圖,包括如下步驟
步驟801:第一處理器進(jìn)行熵解碼;
步驟802:第二處理器依次進(jìn)行反掃描、反量化、反DCT并將當(dāng)前塊產(chǎn) 生的殘差凝:據(jù)Cn存儲(chǔ)于第二存儲(chǔ)器中;
步驟803:將存儲(chǔ)于第一存儲(chǔ)器中的作為參考?jí)K的旋轉(zhuǎn)塊矩陣Dn/旋轉(zhuǎn) 為正常位置塊矩陣并保存于第二存儲(chǔ)器中;
步驟804:將正常位置塊矩陣D^進(jìn)行插值運(yùn)算,得到D'n—,;
步驟805:將殘差數(shù)據(jù)Cn與D'^相加,得到當(dāng)前塊的正常位置塊矩陣Dn;
步驟806:將正常位置塊矩陣Dn旋轉(zhuǎn)輸出到第一存儲(chǔ)器的相應(yīng)位置。
舉例來說,在執(zhí)行步驟803時(shí),如果移動(dòng)終端旋轉(zhuǎn)之后處于左旋轉(zhuǎn)的位置 狀態(tài),則,從第一存儲(chǔ)器讀取數(shù)據(jù)的過程中,首先將參考?jí)K的旋轉(zhuǎn)塊矩陣Dn/ 進(jìn)行反向旋轉(zhuǎn),即向右旋轉(zhuǎn),并將旋轉(zhuǎn)的結(jié)果D^保存在第二存儲(chǔ)器中。
接下來,執(zhí)行完步驟803、步驟804后,在執(zhí)行步驟806時(shí),從第二存儲(chǔ) 器讀取正常位置塊矩陣Dn的過程中,首先將當(dāng)前矩陣塊Dn進(jìn)行向左旋轉(zhuǎn),將 旋轉(zhuǎn)的結(jié)果DnR保存在第 一存儲(chǔ)器中。
并且,根據(jù)前面已經(jīng)定義的正常狀態(tài),即非旋轉(zhuǎn)狀態(tài)、左旋轉(zhuǎn)狀態(tài)以及右 旋轉(zhuǎn)狀態(tài)三種情況下的塊YUV矩陣關(guān)系可以由第一處理器進(jìn)行讀取或者存儲(chǔ) 地址的計(jì)算例如,對(duì)于分辨率是320*240的圖像,對(duì)于Y: giAVSYPitchLength =384, giAVSPicHeight = 240,對(duì)于地址(X,Y)起始的塊,如果是向左旋轉(zhuǎn),依 據(jù)..
左旋轉(zhuǎn)狀態(tài)下,塊YUV矩陣的在存儲(chǔ)器中的地址為 start + giAVSYPitchLength x X + giAVSPicHeight — Y; 則:第一處理器計(jì)算地址start+ 384x X + 240-Y;第二處理器根據(jù)上述 計(jì)算結(jié)果讀取數(shù)據(jù),從第一存儲(chǔ)器讀入一個(gè)塊放入第二存儲(chǔ)器的該地址中。
優(yōu)選地,第一存儲(chǔ)器選擇SDRAM類型的存儲(chǔ)器,第二存儲(chǔ)器選擇SRAM 類型的存儲(chǔ)器。
對(duì)于幀間預(yù)測(cè)來說,旋轉(zhuǎn)的基本單元是8x8、 16x8、 8xl6或者16x16的宏塊。
參照?qǐng)D9,示出了根據(jù)本發(fā)明圖像旋轉(zhuǎn)方法實(shí)施例進(jìn)行環(huán)路濾波時(shí)的旋轉(zhuǎn) 流程圖,進(jìn)行環(huán)路濾波時(shí),所述D^為8x6或者6x8的圖像塊,所述圖像塊 是由幀內(nèi)預(yù)測(cè)/幀間預(yù)測(cè)解碼出來的圖像劃分得到的,包括如下步驟
步驟901:對(duì)當(dāng)前圖像塊的邊緣進(jìn)行環(huán)路濾波,得到環(huán)路濾波的差值L。;
步驟902:將所述正常位置塊矩陣與環(huán)路濾波的差值Lj目加。
在具體實(shí)現(xiàn)上述方法的過程中,可以選擇ARM處理器作為第一處理器, 選擇DSP為第二處理器,由ARM處理器與DSP處理器共同完成圖像的旋轉(zhuǎn), 具體地說,ARM處理器為處于主處理器的地位,通過ARM處理器向DSP處 理器發(fā)送指令,由DSP處理器具體執(zhí)行上述指令。當(dāng)然,第二處理器的選擇 并不限于DSP處理器,也可以選擇具有DSP架構(gòu)的其他獨(dú)立處理單元。
根據(jù)本發(fā)明的實(shí)施例,還提供了一種解碼芯片,在該解碼芯片中,包括上 面所描述的圖像旋轉(zhuǎn)系統(tǒng)。由于圖像旋轉(zhuǎn)系統(tǒng)已經(jīng)做了詳細(xì)的描述,在此,包 括該圖4象旋轉(zhuǎn)系統(tǒng)的AVS解碼芯片不再贅述。
進(jìn)一步地,上述解碼芯片可以是一種提供CMMB接收的AVS解碼芯片, 在該AVS解碼芯片中,包括上面所描述的圖〗象旋轉(zhuǎn)系統(tǒng)。
綜上,在本發(fā)明中
將旋轉(zhuǎn)過程嵌入在解碼的幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)或者環(huán)路濾波中讀取存儲(chǔ)于 第一存儲(chǔ)器中的作為參考?jí)K矩陣時(shí),將旋轉(zhuǎn)后的上述塊矩陣旋轉(zhuǎn)回來,保存在 第二存儲(chǔ)器中,然后進(jìn)行相應(yīng)的處理以后,再保存回第一存儲(chǔ)器中;同現(xiàn)有技 術(shù)相比,不需要增加獨(dú)立的旋轉(zhuǎn)模塊,從而,減小了內(nèi)存的開銷,并且,也減 少了內(nèi)存在搬移過程中的計(jì)算量,減輕了系統(tǒng)的負(fù)擔(dān)。
本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的 都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即 可。對(duì)于解碼芯片,由于其與方法實(shí)施例、系統(tǒng)實(shí)施例的原理基本相似,所以
描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
以上對(duì)本發(fā)明所提供的一種圖像旋轉(zhuǎn)方法、圖像旋轉(zhuǎn)系統(tǒng)、解碼芯片進(jìn)行
以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于 本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均 會(huì)有改變之處,綜上,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1、一種圖像旋轉(zhuǎn)系統(tǒng),其特征在于,包括第一處理器、第二處理器、第一存儲(chǔ)器、第二存儲(chǔ)器,所述第一處理器包括地址計(jì)算單元和旋轉(zhuǎn)指令生成單元,其中,地址計(jì)算單元包括第一地址計(jì)算子單元用于計(jì)算作為參考?jí)K的、旋轉(zhuǎn)塊矩陣Dn-1R旋轉(zhuǎn)為正常位置塊矩陣Dn-1后,在第二存儲(chǔ)器的存儲(chǔ)地址ADRESS1;第二地址計(jì)算子單元用于計(jì)算正常位置塊矩陣Dn變換為旋轉(zhuǎn)塊矩陣DnR后,在第一存儲(chǔ)器的存儲(chǔ)地址ADRESS2;指令生成單元包括第一旋轉(zhuǎn)指令生成子單元用于生成將所述Dn-1R旋轉(zhuǎn)為Dn-1、并攜帶有將所述Dn-1存儲(chǔ)于第一存儲(chǔ)器地址的旋轉(zhuǎn)指令COMMAND1;第二旋轉(zhuǎn)指令生成子單元用于生成將所述Dn旋轉(zhuǎn)為所述DnR、并攜帶有所述DnR存儲(chǔ)于所述第二存儲(chǔ)器地址的旋轉(zhuǎn)指令COMMAND2;數(shù)據(jù)處理指令生成子單元,用于生成完成幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)或者環(huán)路濾波數(shù)據(jù)處理過程的指令COMMAND3;所述第二處理器用于根據(jù)所述ADRESS1執(zhí)行旋轉(zhuǎn)指令COMMAND1、根據(jù)所述ADRESS2執(zhí)行旋轉(zhuǎn)指令COMMAND2;以及,執(zhí)行指令COMMAND3;所述第一存儲(chǔ)器用于存儲(chǔ)所述塊矩陣Dn-1R以及所述塊矩陣DnR;所述第二存儲(chǔ)器用于存儲(chǔ)所述正常位置塊矩陣Dn-1。
2、 根據(jù)權(quán)利要求1所述的圖像旋轉(zhuǎn)系統(tǒng),其特征在于,所述第一處理器 還包括旋轉(zhuǎn)指令接收單元,用于在時(shí)間點(diǎn)t。接收旋轉(zhuǎn)啟動(dòng)指令;并且,所述地址計(jì)算單元還包括有第三地址計(jì)算子單元用于根據(jù)所述旋轉(zhuǎn)啟動(dòng)指令,計(jì)算將正常位置塊矩陣D!變換為旋轉(zhuǎn)位置塊矩陣D,后,DtR存儲(chǔ)至所述第 一存儲(chǔ)器中的地址。
3、 根據(jù)權(quán)利要求2所述的圖像旋轉(zhuǎn)系統(tǒng),其特征在于,所述旋轉(zhuǎn)指令 COMMAND 1具體為第二處理器讀取存儲(chǔ)于所述第一存儲(chǔ)器中的所述塊矩陣Dn/; 將所述塊矩陣Dn/搬移至第二存儲(chǔ)器的所述ADRESSl中,得到D^。
4、 根據(jù)權(quán)利要求3所述的圖像旋轉(zhuǎn)系統(tǒng),其特征在于,所述旋轉(zhuǎn)指令 COMMAND2具體為第二處理器讀取存儲(chǔ)于第二存儲(chǔ)器中的所述塊矩陣Dn; 將所述塊矩陣Dn搬移至第一存儲(chǔ)器的所述ADRESS2中,得到DnR。
5、 根據(jù)權(quán)利要求4所述的圖像旋轉(zhuǎn)系統(tǒng),其特征在于,還包括一 DMA 控制器,所述DMA控制器用于將每一個(gè)旋轉(zhuǎn)塊矩陣Dn/通過DMA方式搬移 至所述ADRESS1中;以及用于將每一個(gè)所述塊矩陣Dn通過DMA方式搬移至所述ADRESS2中。
6、 才艮據(jù)權(quán)利要求5所述的圖像旋轉(zhuǎn)系統(tǒng),其特征在于,所述第一處理器 為ARM處理器,所述笫二處理器為DSP處理器或者具有DSP架構(gòu)的獨(dú)立處 理單元。
7、 一種圖像旋轉(zhuǎn)方法,其特征在于,將旋轉(zhuǎn)過程嵌入在解碼的幀內(nèi)預(yù)測(cè)、 幀間預(yù)測(cè)或者環(huán)路濾波中,具體包括如下步驟讀耳又存儲(chǔ)于所述第一存儲(chǔ)器中所述作為參考?jí)K的、旋轉(zhuǎn)塊矩陣數(shù)據(jù)Dn/, 將所述D。/旋轉(zhuǎn)為正常位置塊矩陣DM并保存在第二存儲(chǔ)器中;利用第二存儲(chǔ)器中的所述正常位置塊矩陣Dn_,進(jìn)行相應(yīng)的幀內(nèi)預(yù)測(cè)、幀間 預(yù)測(cè)或者環(huán)路濾波的處理,得到塊矩陣數(shù)據(jù)Dn;將所述塊矩陣數(shù)據(jù)Dn旋轉(zhuǎn),得到旋轉(zhuǎn)塊矩陣D/,并保存在所述第一存 儲(chǔ)器中;其中,將所述塊矩陣Dn/旋轉(zhuǎn)為正常塊矩陣Dn_,以及將所述塊矩陣Dn旋 轉(zhuǎn)得到旋轉(zhuǎn)塊矩陣D/是通過在讀取和保存過程中的坐標(biāo)變換而實(shí)現(xiàn)。
8、 根據(jù)權(quán)利要求7所述的圖像旋轉(zhuǎn)方法,其特征在于,所述方法進(jìn)一步 包括在啟動(dòng)旋轉(zhuǎn)時(shí),通過如下步驟獲取所述D,:在啟動(dòng)時(shí)間點(diǎn)to,發(fā)出圖像旋轉(zhuǎn)啟動(dòng)指令;讀取存儲(chǔ)于第一存儲(chǔ)器中的正常位置塊矩陣D!,并將所述正常位置塊矩 陣D,保存在所述第二存儲(chǔ)器中;根據(jù)坐標(biāo)變換,計(jì)算所述正常位置塊矩陣Di變換為旋轉(zhuǎn)位置塊矩陣D, 時(shí)存儲(chǔ)于所述第 一存儲(chǔ)器中的地址; 從所述第二存儲(chǔ)器中讀取正常位置塊矩陣Dl5并存儲(chǔ)至所述第一存儲(chǔ)器 的所述地址中,得到旋轉(zhuǎn)位置塊矩陣D^。
9、 根據(jù)權(quán)利要求8所述的圖像旋轉(zhuǎn)方法,其特征在于,將所述旋轉(zhuǎn)塊矩 陣Dn/旋轉(zhuǎn)為正常位置塊矩陣的旋轉(zhuǎn)指令具體為第一處理器計(jì)算所述旋轉(zhuǎn)塊矩陣Dn/旋轉(zhuǎn)為正常位置塊矩陣D^后,在第二存儲(chǔ)器的存儲(chǔ)地址ADRESS1;第二處理器讀取所述旋轉(zhuǎn)塊矩陣Dn/中的每一個(gè)旋轉(zhuǎn)塊矩陣; 將所述旋轉(zhuǎn)塊矩陣D。/搬移至第二存儲(chǔ)器的ADRESS1中,得到正常位置塊矩陣Dn.,。
10、 根據(jù)權(quán)利要求9所述的圖像旋轉(zhuǎn)方法,其特征在于,將塊矩陣Dn旋 轉(zhuǎn),得到矩陣數(shù)據(jù)DnR的旋轉(zhuǎn)指令具體為第一處理器計(jì)算所述正常位置塊矩陣Dn旋轉(zhuǎn)為旋轉(zhuǎn)塊矩陣D/后,在 第一存儲(chǔ)器的存儲(chǔ)地址ADRESS2;第二處理器讀取所述第二存儲(chǔ)器中的正常位置塊矩陣Dn;將所述正常位置塊矩陣D。搬移至第一存儲(chǔ)器的ADRESS2中,得到旋轉(zhuǎn) 塊矩陣DnR。
11、 根據(jù)權(quán)利要求IO所述的圖像旋轉(zhuǎn)方法,其特征在于, 所述旋轉(zhuǎn)塊矩陣Dn/通過DMA方式,搬移至第二存儲(chǔ)器的ADRESS1中,得到正常位置塊矩陣D^;以及所述正常位置塊矩陣Dn通過DMA方式,搬移至第一存儲(chǔ)器的ADRESS2 中,得到旋轉(zhuǎn)塊矩陣D/。
12、 根據(jù)權(quán)利要求11所述的圖像處理方法,其特征在于,利用所述正常 位置塊矩D^作為參考?jí)K,進(jìn)行幀內(nèi)預(yù)測(cè)時(shí),所述為D^為8x8、 16x8、 8x 16或者16x 16的宏塊,包括如下步驟由第一處理器進(jìn)行當(dāng)前塊的熵解碼,并由所述第二處理器依次進(jìn)行反掃 描、反量化、反DCT并將產(chǎn)生的殘差數(shù)據(jù)Bn存儲(chǔ)于第二存儲(chǔ)器中; 由第二處理器將所述正常位置塊矩陣與殘差數(shù)據(jù)Bn相加。
13、 根據(jù)權(quán)利要求11所述的圖像處理方法,其特征在于,利用所述正常位置塊矩陣Dn-,作為參考?jí)K,進(jìn)行幀間預(yù)測(cè)時(shí),所述D^為8x8、 16x8、 8x 16或者16x 16的宏塊,包括如下步驟由第 一處理器進(jìn)行當(dāng)前幀的當(dāng)前塊的熵解碼,并由第二處理器依次進(jìn)行反 掃描、反量化、反DCT并將當(dāng)前塊產(chǎn)生的殘差數(shù)據(jù)Cn存儲(chǔ)于所述第二存儲(chǔ)器中;由所述第二處理器將所述正常位置塊矩陣D^與進(jìn)行插值運(yùn)算,得到D'^; 由第二處理器將所述塊矩陣數(shù)據(jù)Dn.,與殘差數(shù)據(jù)Cn相加。
14、 才艮據(jù)權(quán)利要求11所述的圖像處理方法,其特征在于,利用所述正常 位置塊矩陣作為參考?jí)K,進(jìn)行環(huán)路濾波時(shí),所述Dn.,為8 x 6或者6 x 8的 圖像塊,所述圖像塊是由幀內(nèi)預(yù)測(cè)/幀間預(yù)測(cè)解碼出來的圖像劃分得到的,包 括如下步驟對(duì)當(dāng)前圖像塊的邊緣進(jìn)行環(huán)路濾波,得到環(huán)路濾波的差值Ln; 將所述正常位置塊矩陣與環(huán)路濾波的差值Ln相加。
15、 根據(jù)權(quán)利要求7所述的圖像旋轉(zhuǎn)方法,其特征在于,所述第一處理器 為ARM處理器,所述第二處理器為DSP處理器或者具有DSP架構(gòu)的獨(dú)立處 理單元。
16、 一種解碼芯片,其特征在于,所述解碼芯片包括一圖像旋轉(zhuǎn)系統(tǒng),所 述圖像旋轉(zhuǎn)系統(tǒng)包括包括第一處理器、第二處理器、第一存儲(chǔ)器、第二存儲(chǔ) 器,所述第一處理器包括地址計(jì)算單元和旋轉(zhuǎn)指令生成單元,其中,地址計(jì)算 單元包括第一地址計(jì)算子單元用于計(jì)算作為參考?jí)K的、旋轉(zhuǎn)塊矩陣Dn/旋轉(zhuǎn)為 正常位置塊矩陣D^后,在第二存儲(chǔ)器的存儲(chǔ)地址ADRESS1;第二地址計(jì)算子單元用于計(jì)算正常位置塊矩陣Dn變換為旋轉(zhuǎn)塊矩陣DnR 后,在第一存儲(chǔ)器的存儲(chǔ)地址ADRESS2;指令生成單元包括第一旋轉(zhuǎn)指令生成子單元用于生成將所述D。/旋轉(zhuǎn)為D^、并攜帶有 將所述Dn.,存儲(chǔ)于第一存儲(chǔ)器地址的旋轉(zhuǎn)指令COMMAND1;第二旋轉(zhuǎn)指令生成子單元用于生成將所述Dn旋轉(zhuǎn)為所述DnR、并攜帶 有所述D/存儲(chǔ)于所述第二存儲(chǔ)器地址的旋轉(zhuǎn)指令COMMAND2;數(shù)據(jù)處理指令生成子單元,用于生成完成幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)或者環(huán)路濾 波數(shù)據(jù)處理過程的指令COMMAND3;所述第二處理器用于根據(jù)所述ADRESS1執(zhí)行旋轉(zhuǎn)指令COMMAND1 、根 據(jù)所述ADRESS2執(zhí)行旋轉(zhuǎn)指令COMMAND2;以及,執(zhí)行指令COMMAND3;所述第一存儲(chǔ)器用于存儲(chǔ)所述塊矩陣Dn.,R以及所述塊矩陣DnR;所述第二存儲(chǔ)器用于存儲(chǔ)所述正常位置塊矩陣Dn_,。
17、 才艮據(jù)權(quán)利要求16所述的解碼芯片,其特征在于,所述第一處理器還 包括旋轉(zhuǎn)指令接收單元,用于在時(shí)間點(diǎn)to接收旋轉(zhuǎn)啟動(dòng)指令;并且,所述地址計(jì)算單元還包括有第一地址計(jì)算子單元用于根據(jù)所述旋轉(zhuǎn)啟動(dòng)指令,計(jì)算將正常位置塊矩陣Di變換為旋轉(zhuǎn)位置塊矩陣D:后,存儲(chǔ)至所述第一存儲(chǔ)器中的地址。
18、 根據(jù)權(quán)利要求17所述的解碼芯片,其特征在于,所述旋轉(zhuǎn)指令 COMMAND 1具體為第二處理器讀取存儲(chǔ)于所述第 一存儲(chǔ)器中的所述塊矩陣Dn/; 將所述塊矩陣Dn/搬移至第二存儲(chǔ)器的所述ADRESSl中,得到Dn小
19、 根據(jù)權(quán)利要求18所述的解碼芯片,其特征在于,所述旋轉(zhuǎn)指令 COMMAND2具體為第二處理器讀取存儲(chǔ)于第二存儲(chǔ)器中的所述塊矩陣Dn; 將所述塊矩陣Dn搬移至第一存儲(chǔ)器的所述ADRESS2中,得到DnR。
20、 根據(jù)權(quán)利要求19所述的解碼芯片,其特征在于,還包括一DMA控 制器,所述DMA控制器用于將每一個(gè)旋轉(zhuǎn)塊矩陣Dn—,K通過DMA方式搬移至 所述ADRESS1中;以及用于將每一個(gè)所述塊矩陣D。通過DMA方式搬移至所述ADRESS2中。
21、 根據(jù)權(quán)利要求16所述的解碼芯片,其特征在于,所述第一處理器為 ARM處理器,所述第二處理器為DSP處理器或者具有DSP架構(gòu)的獨(dú)立處理 單元。
全文摘要
本發(fā)明提供了一種圖像旋轉(zhuǎn)方法,該方法將旋轉(zhuǎn)過程嵌入在解碼的幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)或者環(huán)路濾波中,具體包括讀取存儲(chǔ)于第一存儲(chǔ)器中作為參考?jí)K的、旋轉(zhuǎn)塊矩陣數(shù)據(jù)D<sub>n-1</sub><sup>R</sup>,將D<sub>n-1</sub><sup>R</sup>旋轉(zhuǎn)為正常位置塊矩陣D<sub>n-1</sub>并保存在第二存儲(chǔ)器中;利用第二存儲(chǔ)器中的正常位置塊矩陣D<sub>n-1</sub>進(jìn)行相應(yīng)的幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)或者環(huán)路濾波的處理,得到塊矩陣數(shù)據(jù)D<sub>n</sub>;將塊矩陣D<sub>n</sub>旋轉(zhuǎn),得到旋轉(zhuǎn)塊矩陣D<sub>n</sub><sup>R</sup>,并保存在第一存儲(chǔ)器中。本發(fā)明不需要增加獨(dú)立的旋轉(zhuǎn)模塊,從而,節(jié)省了內(nèi)存的開銷,并且,減少了內(nèi)存在搬移過程中的計(jì)算量,從而,減輕了系統(tǒng)的負(fù)擔(dān)。
文檔編號(hào)G06T3/00GK101388947SQ20081022370
公開日2009年3月18日 申請(qǐng)日期2008年10月8日 優(yōu)先權(quán)日2008年10月8日
發(fā)明者呂義柱, 輝 張, 王洪仁, 王西強(qiáng), 鄧云慶, 郭洛瑋 申請(qǐng)人:北京創(chuàng)毅視訊科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
若羌县| 隆子县| 天门市| 岗巴县| 来安县| 明星| 北宁市| 镇宁| 平顶山市| 克山县| 五河县| 肃北| 沐川县| 和田市| 合肥市| 宝兴县| 卓尼县| 藁城市| 微博| 芷江| 固原市| 青冈县| 东乌珠穆沁旗| 荥阳市| 友谊县| 吴川市| 信丰县| 乌兰浩特市| 黄浦区| 安陆市| 东台市| 宝清县| 菏泽市| 苍梧县| 敦煌市| 贵德县| 平乐县| 五峰| 漳浦县| 河北省| 开远市|