亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種圖像旋轉(zhuǎn)處理方法、裝置及多媒體處理器的制作方法

文檔序號:2647770閱讀:377來源:國知局
專利名稱:一種圖像旋轉(zhuǎn)處理方法、裝置及多媒體處理器的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于圖像處理領(lǐng)域,尤其涉及一種圖像旋轉(zhuǎn)處理方法和裝置以及具有圖像旋轉(zhuǎn)功能的多媒體處理器。
背景技術(shù)
目前,便攜式多媒體處理器主要分為原始數(shù)據(jù)獲取存儲邏輯和設備、數(shù)據(jù)處理模塊和數(shù)據(jù)傳輸控制邏輯、顯示設備和控制邏輯三個部分。其中原始數(shù)據(jù)獲取存儲邏輯和設備主要用于通過各種途徑獲得原始圖像數(shù)據(jù)以及碼流數(shù)據(jù);通過數(shù)據(jù)傳輸控制邏輯,可以獲得相應的原始圖像信息、碼流信息以及參考圖像信息,而數(shù)據(jù)處理模塊則把獲得的原始數(shù)據(jù)轉(zhuǎn)換成所需的數(shù)據(jù)形式(對于編碼來說為符合定義的碼流,對于解碼則為YUV數(shù)據(jù)點陣或者RGB點陣);顯示設備和控制邏輯則將相應的圖像數(shù)據(jù)顯示在顯示設備上,從而使人通過視覺獲得相應的信息。
為了滿足便攜式視頻多媒體處理器的各種應用要求,圖像顯示設備對于需要顯示的數(shù)據(jù)有著特殊的要求,即要求芯片提供的圖像數(shù)據(jù)能夠根據(jù)軟件的配置做基本四個方向的旋轉(zhuǎn)(0度、90度、180度和270度)。
現(xiàn)有的視頻圖像旋轉(zhuǎn)方法主要有兩種。一種旋轉(zhuǎn)方法是直接在數(shù)據(jù)傳輸控制中進行處理,通過直接存儲器存取(Direct Memory Access,DMA)傳輸中的控制,直接拼接成旋轉(zhuǎn)后的重構(gòu)圖像,并把已經(jīng)得到的重構(gòu)圖像的矩形點陣按照旋轉(zhuǎn)后的順序傳輸,同時更改DMA起始地址的計算,這樣對于各種角度的旋轉(zhuǎn)以及不旋轉(zhuǎn)的情況來說,本地矩陣緩沖器的各個地址都要經(jīng)過不同的計算,使電路變得比較復雜,出錯風險大,而且從外部獲取參考圖像數(shù)據(jù)時也有同樣的問題。例如在旋轉(zhuǎn)90度或旋轉(zhuǎn)270度的情況下,通過DMA傳送圖像數(shù)據(jù)或參考數(shù)據(jù)時,因為每一個數(shù)據(jù)都不連續(xù),所以DMA的效率非常低,這與實時的圖像處理以及保證DMA帶寬的原則都相互矛盾,不適于目前對于實時性要求比較高的便攜式視頻多媒體處理器的需求。
另一種視頻圖像旋轉(zhuǎn)方法是通過圍繞用戶定義參考點旋轉(zhuǎn)圖像的硬件實現(xiàn)。在此方法中,首先接收用戶定義參考點,這個用戶定義參考點可以在圖像之外定義;然后計算圖像的一個位置,此位置定義了圍繞用戶定義參考點旋轉(zhuǎn)之后的重構(gòu)圖像的位置;之后計算從存儲器提取的一個或多個圖像像素的順序,這個順序定義了在圍繞用戶定義參考點旋轉(zhuǎn)之后圖像的旋轉(zhuǎn)順序;最后,根據(jù)計算的順序從存儲器提取圖像像素。這種方法具有類似軟件操作的特點,可以實現(xiàn)任意角度的旋轉(zhuǎn),雖然能夠滿足各種靈活性要求,但運算量大,消耗太多的CPU時間,并且相應的硬件邏輯非常復雜,大大降低了系統(tǒng)性能。由于成本的問題,硬件在設計過程中不可能加入大量的邏輯來實現(xiàn)這些功能,因此大幅度增加電路的復雜性,對于便攜式的多媒體處理器來說不適于實際應用。

發(fā)明內(nèi)容
本發(fā)明實施例的目的在于提供一種圖像旋轉(zhuǎn)處理方法,旨在解決現(xiàn)有技術(shù)在對圖像進行旋轉(zhuǎn)處理時,運算量大,硬件邏輯復雜的問題。
本發(fā)明實施例是這樣實現(xiàn)的,一種圖像旋轉(zhuǎn)處理方法,包括以下步驟對原始圖像經(jīng)離散余弦編碼后的每個基本矩形點陣的數(shù)據(jù)進行符號變換,輸出旋轉(zhuǎn)后每個基本矩形點陣的離散余弦結(jié)果;對離散余弦變換結(jié)果進行反離散余弦變換,輸出旋轉(zhuǎn)后的每個基本矩形點陣的數(shù)據(jù);根據(jù)旋轉(zhuǎn)后的每個基本矩形點陣的數(shù)據(jù)顯示重構(gòu)圖像。
本發(fā)明實施例的另一目的在于提供一種圖像旋轉(zhuǎn)處理裝置,包括碼流解析單元;反離散余弦變換前處理單元,用于根據(jù)碼流解析單元解析輸出的原始圖像經(jīng)離散余弦編碼后的每個基本矩形點陣的數(shù)據(jù)進行符號變換,輸出旋轉(zhuǎn)后每個基本矩形點陣的離散余弦結(jié)果;反離散余弦變換處理單元,用于對反離散余弦變換前處理單元輸出的旋轉(zhuǎn)后每個基本矩形點陣的離散余弦結(jié)果進行反離散余弦解碼變換,獲取旋轉(zhuǎn)后的每個基本矩形點陣的數(shù)據(jù)。
本發(fā)明實施例的又一目的在于提供一種多媒體處理器,包括圖像旋轉(zhuǎn)處理裝置,圖像處理裝置包括碼流解析單元,圖像旋轉(zhuǎn)處理裝置還包括反離散余弦變換前處理單元,用于根據(jù)碼流解析單元解析輸出的原始圖像經(jīng)離散余弦編碼后的每個基本矩形點陣的數(shù)據(jù)進行符號變換,輸出旋轉(zhuǎn)后每個基本矩形點陣的離散余弦結(jié)果;反離散余弦變換處理單元,用于對反離散余弦變換前處理單元輸出的旋轉(zhuǎn)后每個基本矩形點陣的離散余弦結(jié)果進行反離散余弦解碼變換,獲取旋轉(zhuǎn)后的每個基本矩形點陣的數(shù)據(jù);顯示裝置,用于根據(jù)反離散余弦變換處理單元輸出的旋轉(zhuǎn)后的每個基本矩形點陣的數(shù)據(jù),顯示重構(gòu)圖像。
本發(fā)明實施例通過對原始圖像經(jīng)離散余弦編碼后的基本矩形點陣的數(shù)據(jù)進行符號變換以及反離散余弦變換,獲得原始圖像旋轉(zhuǎn)后的數(shù)據(jù),運算量小,硬件邏輯簡單,易于實現(xiàn)。


圖1是本發(fā)明實施例提供的圖像旋轉(zhuǎn)處理方法的流程圖;圖2是本發(fā)明實施例提供的多媒體處理器的示意圖;圖3是本發(fā)明實施例提供的二維離散余弦特性的示意圖;圖4是本發(fā)明實施例提供的矩形點陣單元旋轉(zhuǎn)順序示意圖;圖5是本發(fā)明實施例提供的外部緩沖區(qū)內(nèi)矩形單元的順序示意圖;圖6a和圖6b分別是本發(fā)明實施例提供的原像素排列讀順序和旋轉(zhuǎn)90后像素排列讀順序的示意圖。
具體實施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明實施例根據(jù)便攜式視頻多媒體處理器的視頻編解碼大都基于DCT(Discrete Cosine Transform,離散余弦變換)等正交變換的特性,通過調(diào)整反離散余弦變換(IDCT)的輸入來使得IDCT輸出期望的旋轉(zhuǎn)后各個點陣,拼接旋轉(zhuǎn)后的整幅圖像。
如圖1所示,本發(fā)明實施例的圖像旋轉(zhuǎn)處理方法包括下述步驟在步驟S111中,對外部存儲器中的碼流緩沖區(qū)輸出的原始圖像經(jīng)DCT編碼后的數(shù)據(jù)進行碼流解析;在步驟S113中,對經(jīng)過解析的原始圖像經(jīng)DCT編碼后的每個基本矩形點陣的數(shù)據(jù)進行符號變換或者同時進行符號變換和轉(zhuǎn)秩操作,輸出旋轉(zhuǎn)后每個基本矩形點陣的離散余弦結(jié)果,這里所說的原始基本矩形點陣單元針對圖像的每個基本n×n矩形點陣單元而言(如圖3中的8×8矩形點陣單元),計算方法下文將結(jié)合裝置詳細描述在步驟S115中,對旋轉(zhuǎn)后每個基本矩形點陣的離散余弦結(jié)果進行IDCT變換,得到旋轉(zhuǎn)后的每個基本矩形點陣單元的數(shù)據(jù),并輸入本地緩沖,其中IDCT變換下文將詳細描述;在步驟S117中,計算原始圖像每個矩形單元在重構(gòu)圖像中的左上角的DMA起始地址,具體的計算方法下文將詳述;在步驟S119中,外部存儲器中的顯示緩沖通過DMA機制讀取本地緩沖內(nèi)旋轉(zhuǎn)后的每個基本矩形點陣單元的數(shù)據(jù),以及原始圖像每個矩形單元在重構(gòu)圖像中的左上角的DMA起始地址,拼接圖像;在步驟S121中,顯示終端顯示旋轉(zhuǎn)后圖像。
以下將詳細說明采用本發(fā)明實施例圖像旋轉(zhuǎn)處理裝置和多媒體處理器。本發(fā)明實施例的圖像旋轉(zhuǎn)處理裝置和多媒體處理器是基于二維DCT視頻解碼電路,所處理的圖像總是以一定大小的n×n矩形點陣單元(為方便說明,以下n×n矩形點陣單元將以8×8矩形點陣單元為例)為基本要素,通過這些基本要素組合成一個完整圖像。
圖2所示為本發(fā)明實施例提供的多媒體處理器10的示意圖,圖中標號100為本發(fā)明實施例的圖像旋轉(zhuǎn)處理裝置,以下將首先描述本發(fā)明實施例的圖像旋轉(zhuǎn)處理裝置100的工作原理。圖像旋轉(zhuǎn)處理裝置100包括碼流解析單元103、反離散余弦變換前處理單元105、反離散余弦變換處理單元107、內(nèi)部緩沖器109和旋轉(zhuǎn)地址產(chǎn)生邏輯單元111。
碼流解析單元103用于對從外部接收的原始圖像數(shù)據(jù)進行碼流解析,輸入碼流解析單元103的原始圖像數(shù)據(jù)是被二維DCT編碼的,因此碼流解析單元103單元輸出的數(shù)據(jù)中包含原始圖像每個矩形點陣單元的DCT數(shù)據(jù)。下面對二維DCT特性做簡要說明。
圖3所示為二維離散余弦特性的示意圖,如圖3中(a)所示,假定data表示一個8×8矩形點陣單元的數(shù)據(jù),dctdata表示data經(jīng)過二維DCT編碼后的結(jié)果,dctdata90、dctdata180、dctdata270分別表示dctdata表示的矩陣在進行90度、180度和270度旋轉(zhuǎn)后的結(jié)果,那么可獲得下述等式dctdata=dct2d(data);dctdata90(i,j)=(-1)^(j+1)*dctdata(j,i);dctdata180(i,j)=(-1)^(i+j)*dctdata(i,j);dctdata270(i,j)=(-1)^(i+1)*dctdata(j,i);其中^表示乘方,i、j分別8×8矩形點陣單元中各個點的位置符號,dct2d為二維DCT操作,data(i,j)為矩形點陣單元中各個點的位置數(shù)據(jù),data(j,i)為data(i,j)的轉(zhuǎn)秩。
從上述對DCT特性的分析可知,針對dctdata(i,j),對其進行符號變換和轉(zhuǎn)秩操作可獲得dctdata90(i,j)和dctdata270(i,j),如圖3中的(b)和(d)所示,只對dctdata(i,j)之前的符號進行變換可獲得dctdata180(i,j),如圖3中的(c)所示。其中8×8矩形點陣單元中的數(shù)字表示每個點的數(shù)據(jù)通過逐行掃描(raster scan)時的順序。
反離散余弦變換前處理單元105即進行這樣的處理,針對碼流解析單元103輸出的原始圖像的每個矩形點陣單元中每個點的DCT數(shù)據(jù)dctdata(i,j),進行符號變換或者同時進行符號變換和轉(zhuǎn)秩操作,輸出原始圖像的每個矩陣單元旋轉(zhuǎn)90度、180度和270度后的DCT數(shù)據(jù)dctdata90、dctdata180、dctdata270。
對于矩形點陣單元旋轉(zhuǎn)90度時,反離散余弦變換前處理單元105對數(shù)據(jù)dctdata(i,j)前的符號進行(-1)^(j+1)操作,并對dctdata(i,j)進行轉(zhuǎn)秩,獲得(-1)^(j+1)dctdata(j,i),即矩形點陣單元旋轉(zhuǎn)90度后的DCT數(shù)據(jù)dctdata90(i,j)。對于矩形點陣單元旋轉(zhuǎn)180度時,反離散余弦變換前處理單元105對數(shù)據(jù)dctdata(i,j)前的符號進行(-1)^(i+j)操作,此時不再進行轉(zhuǎn)秩,獲得(-1)^(i+j)*dctdata(i,j),即矩形點陣單元旋轉(zhuǎn)180度后的DCT數(shù)據(jù)dctdata180(i,j)。對于矩形點陣單元旋轉(zhuǎn)270度時,反離散余弦變換前處理單元105對數(shù)據(jù)dctdata(i,j)前的符號進行(-1)^(i+1)操作,并對dctdata(i,j)進行轉(zhuǎn)秩,獲得(-1)^(i+1)dctdata(j,i),即矩形點陣單元旋轉(zhuǎn)270度后的DCT數(shù)據(jù)dctdata270(i,j)。反離散余弦變換前處理單元105進行符號變換和/或轉(zhuǎn)秩操作的方式可采用現(xiàn)有技術(shù)的邏輯處理等方式,實現(xiàn)手段多樣但是簡單,只要能實現(xiàn)本發(fā)明實施例的原理都可以應用。
反離散余弦變換前處理單元105的實現(xiàn)有兩個基本條件,第一是圖像處理對象的基本單元為n×n矩形點陣單元,如圖3中的8×8矩形點陣單元,第二是本地緩沖區(qū)109所存放的對象已經(jīng)是可以與圖像顯示終端15所接受的圖像點陣有直接的對應關(guān)系。反離散余弦變換前處理單元105對數(shù)據(jù)dctdata(i,j)進行符號變換或者同時進行符號變換和轉(zhuǎn)秩操作后,將獲得的dctdata90(i,j)、dctdata180(i,j)、dctdata270(i,j)輸出至反離散余弦變換處理單元107。
反離散余弦變換處理單元107對反離散余弦變換前處理單元105輸出的數(shù)據(jù)進行IDCT變換,即反DCT變換,得出旋轉(zhuǎn)后的矩形點陣單元的數(shù)據(jù)即data90、data180、data270,如圖4中的(b)、(c)和(d)所示。反離散余弦變換處理單元107對反離散余弦變換前處理單元105輸出的數(shù)據(jù)進行IDCT變換后的結(jié)果如下data=idct2d(dctdata);data90=idct2d(dctdata90),即data90(i,j)=idct2d((-1)^(j+1)*dctdata(j,i));data180=idct2d(dctdata180),即data180(i,j)=idct2d((-1)^(i+j)*dctdata(i,j));data270=idct2d(dctdata270),即data270(i,j)=idct2d((-1)^(i+1)*dctdata(j,i));換言之,通過上述的IDCT變換,可以計算出矩形點陣單元中每個點旋轉(zhuǎn)后的位置數(shù)據(jù),并輸出至內(nèi)部緩沖器109。
經(jīng)過上述處理后,原始圖像的每個矩形點陣單元都變?yōu)樾D(zhuǎn)后單元。由于目前的視頻編解碼器普遍通過DMA傳輸機制向外部存儲器中輸出重構(gòu)圖像,因此要在顯示終端實現(xiàn)原始圖像的整體旋轉(zhuǎn),本發(fā)明實施例提供的圖像旋轉(zhuǎn)處理裝置還需要計算在不同旋轉(zhuǎn)模式(90度、180度和270度)下每個矩形單元(本實施例中,矩形單元為圖3所示的8×8矩形點陣單元)旋轉(zhuǎn)后的DMA起始地址,然后這個矩形單元的其余地址按照統(tǒng)一的DMA機制進行上傳,實現(xiàn)整張圖像的拼接。
旋轉(zhuǎn)地址產(chǎn)生邏輯單元111即用于計算每個矩形單元在重構(gòu)圖像中左上角DMA的起始地址,計算方法下文將結(jié)合圖5進行詳細描述。圖5中的(a)、(b)、(c)、(d)四個小圖表示原始圖像在不旋轉(zhuǎn)、旋轉(zhuǎn)90度、旋轉(zhuǎn)180度、旋轉(zhuǎn)270度時外部緩沖區(qū)內(nèi)矩形點陣單元的順序。如圖5所示,圖5(a)中的第一行第一個矩形單元(1)就是圖3中的一個8×8矩形點陣單元,圖5(a)中的第一行具有k個矩形單元,每個矩形單元彼此相鄰,圖像具有m行,每個矩形單元的左上角的圓形表示這個矩形單元左上角的地址。圖5(a)中這些矩形點陣單元按照從左到右、從上到下的排列方式排列(逐行掃描)組成一幅圖像,其中每個像素的寬度為pic_width,高度為pic_height。這些數(shù)據(jù)都是旋轉(zhuǎn)地址產(chǎn)生邏輯單元111從碼流解析單元103獲取的。在原始圖像不旋轉(zhuǎn)的情況下,圖5(a)中第一行第一個矩形點陣單元(1)其左上角(即圖3中8×8矩形點陣單元中的點1)在外部緩沖區(qū)內(nèi)的重構(gòu)圖像DMA起始地址為recon_add,那么可以得出圖5(a)中的其它矩形單元左上角在不旋轉(zhuǎn)時的DMA起始地址第一行矩形單元(1)上傳地址為recon_addr;第一行矩形單元(2)上傳地址為recon_addr+n;第一行矩形單元(3)上傳地址為recon_addr+2n;......
第二行矩形單元(1)上傳地址為recon_addr+pic_width*n;第二行矩形單元(2)上傳地址為recon_addr+pic_width*n+n;第二行矩形單元(3)上傳地址為recon_addr+pic_width*n+2n;......
第m行矩形單元(k)上傳地址為recon_addr+pic_width*n*(m-1)+n*(k-1);其中,n表示圖3中一個矩形點陣單元點陣數(shù),由于圖3中的矩形點陣單元為8×8矩形點陣單元,那么n即為8,m表示未旋轉(zhuǎn)時圖像矩形單元的行數(shù),k表示未旋轉(zhuǎn)時圖像矩形單元的列數(shù)。
當原始圖像旋轉(zhuǎn)90度時,同樣需要計算每個矩形單元的左上角在外部緩沖區(qū)內(nèi)的重構(gòu)圖像DMA起始地址,如圖5(b)所示,以計算原始圖像第一行第一個矩形單元(1)在重構(gòu)圖像中左上角的DMA起始地址為例,也就是需要計算出這個矩形單元包含的8×8矩形點陣單元中的點57在重構(gòu)圖像中的DMA地址(如圖4(b)所示,計算的總是左上角的DMA地址),根據(jù)像素的寬度pic_width和高度pic_height可以計算出其在外部緩沖區(qū)內(nèi)的DMA起始地址為recon_add+pic_height-n,一并可以計算出其余矩形單元左上角的DMA起始地址第一行矩形單元(1)上傳地址為recon_addr+pic_height-n;第一行矩形單元(2)上傳地址為recon_addr+pic_height*n-n;第一行矩形單元(3)上傳地址為recon_addr+pic_height*2n-n......
第二行矩形單元(1)上傳地址為recon_addr+pic_height-2n;第二行矩形單元(2)上傳地址為recon_addr+pic_height*n-2n;第二行矩形單元(3)上傳地址為recon_addr+pic_height*2n-2n;
......
第m行矩形單元(k)上傳地址為recon_addr+pic_height*n*(k-1)+pic_height-m*n;需要特別注意的是此處第m行矩形單元(k)都是針對圖像在沒有旋轉(zhuǎn)時候的位置,與圖5(a)中一致。
同理如圖5(c)所示,原始圖像旋轉(zhuǎn)180度時每個矩形單元左上角的DMA的上傳地址為第一行矩形單元(1)上傳地址為recon_addr+pic_height*pic_width-pic_width*n+pic_width-n;第一行矩形單元(2)上傳地址為recon_addr+pic_height*pic_width-pic_width*n+pic_width-2n;第一行矩形單元(3)上傳地址為recon_addr+pic_height*pic_width-pic_width*n+pic_width-3n;......
第二行矩形單元(1)上傳地址為recon_addr+pic_height*pic_width-pic_width*2n+pic_width-n;第二行矩形單元(2)上傳地址為recon_addr+pic_height*pic_width-pic_width*2n-2n;第二行矩形單元(3)上傳地址為recon_addr+pic_height*pic_width-pic_width*2n-3n......
第m行矩形單元(k)上傳地址為recon_addr+pic_height*pic_width-pic_width*n*m+pic_width-k*n;此處第m行矩形單元(k)也是針對圖像在沒有旋轉(zhuǎn)時候的位置,與圖5(a)中一致。
如圖5(d)所示,原始圖像旋轉(zhuǎn)270度時每個矩形單元左上角的DMA上傳地址為第一行矩形單元(1)上傳地址為recon_addr+pic_height*pic_width-pic_width
*n;第一行矩形單元(2)上傳地址為recon_addr+pic_height*pic_width-pic_width*2n;第一行矩形單元(3)上傳地址為recon_addr+pic_height*pic_width-pic_width*3n;......
第二行矩形單元(1)上傳地址為recon_addr+pic_height*pic_width-pic_width*n+n;第二行矩形單元(2)上傳地址為recon_addr+pic_height*pic_width-pic_width*2n+n;第二行矩形單元(3)上傳地址為recon_addr+pic_height*pic_width-pic_width*3n+n;......
第m行矩形單元(k)上傳地址為recon_addr+pic_width*pic_width-pic_height*n*k+(m-1)*n;此處第m行矩形單元(k)也是針對圖像在沒有旋轉(zhuǎn)時候的位置,與圖5(a)中一致。
就目前所使用的DMA傳輸機制而言,要求首先上傳的是每個矩形單元左上角在重構(gòu)圖像中的DMA的起始地址,只要計算出每個矩形單元左上角在重構(gòu)圖像中的DMA的地址,其余地址即可按照DMA傳輸機制的順序操作,與不旋轉(zhuǎn)時的DMA過程沒有任何區(qū)別,這樣既能夠保證實現(xiàn)旋轉(zhuǎn)后重構(gòu)圖像的拼接,又不影響DMA傳輸?shù)乃俣取?br> 但是,除了上述方法之外,也可采用其它方式計算每個矩形單元旋轉(zhuǎn)后的DMA起始地址。
在某些應用中,內(nèi)部緩沖器109可以每次從反離散余弦變換處理單元107讀取2個像素點的數(shù)據(jù)。如圖6a和圖6b所示,分別為原像素排列讀順序和旋轉(zhuǎn)90后像素排列讀順序的示意圖,矩形單元即為圖5中的矩形單元,矩形單元內(nèi)的數(shù)字表示原始圖像的掃描順序,矩形單元內(nèi)的兩個圓形表示兩個像素。由于內(nèi)部緩沖器109從反離散余弦變換處理單元107讀取的數(shù)據(jù)是矩形點陣單元已經(jīng)旋轉(zhuǎn)好了的,內(nèi)部緩沖器107的存取操作與現(xiàn)有技術(shù)相比不用任何改變,因此圖像不旋轉(zhuǎn)時上傳順序和旋轉(zhuǎn)90度時的上傳順序一樣。但是,本發(fā)明實施例對內(nèi)部緩沖器109每次讀取像素點的數(shù)量沒有限制。
本發(fā)明實施例提供的圖像旋轉(zhuǎn)處理裝置可用于視頻多媒體處理器中,如圖2所示,本發(fā)明實施例提供的多媒體處理器10包括圖像旋轉(zhuǎn)處理裝置100、外部存儲器中的碼流緩沖區(qū)單元11、外部存儲器中的顯示緩沖區(qū)13和顯示終端15。
外部存儲器中的碼流緩沖區(qū)單元11用于向圖像旋轉(zhuǎn)處理裝置100中提供原始圖像的數(shù)據(jù),圖像旋轉(zhuǎn)處理裝置100對原始圖像的數(shù)據(jù)進行處理,輸出每個矩形單元左上角在重構(gòu)圖像中的DMA上傳地址和每個矩形點陣單元旋轉(zhuǎn)后的位置數(shù)據(jù),外部存儲器中的顯示緩沖區(qū)13通過DMA機制獲取圖像旋轉(zhuǎn)處理裝置100的輸出,實現(xiàn)對整張圖像的拼接,并由顯示終端15實現(xiàn)旋轉(zhuǎn)后重構(gòu)圖像的顯示。
本發(fā)明實施例多媒體處理器10中的圖像旋轉(zhuǎn)處理裝置100上文已經(jīng)詳細描述過,此處不再贅述。
本發(fā)明實施例針對基于n×n矩形點陣單元的DCT視頻解碼電路,根據(jù)DCT視頻解碼中需要圖像旋轉(zhuǎn)時只需要IDCT進行簡單的處理就可以在二維的IDCT的輸出時得到需要的旋轉(zhuǎn)角度,使得矩形點陣單元可以直接上傳,DMA過程不需要經(jīng)過太大的修改,不會影響到DMA的效率。相反如果原始圖像的數(shù)據(jù)不經(jīng)過反離散余弦變換前處理單元105和反離散余弦變換處理單元107的處理,對應于圖6b內(nèi)部緩沖器第一次上傳的為矩形單元29和25中頂部圓圈表示的像素,第二次上傳的為矩形單元21和17中頂部圓圈表示的像素,那么計算就比較復雜,需要地址譯碼。
本發(fā)明實施例還通過調(diào)整每一個矩形點陣單元左上角的DMA的起始地址對任意尺寸圖像實現(xiàn)四個方向上的旋轉(zhuǎn),基本不修改現(xiàn)有的控制邏輯,對于現(xiàn)有電路影響小,降低了電路關(guān)聯(lián)以降低硬件設計風險,易于驗證,并且縮短了驗證的時間,減少了電路的出錯率,并且由于增加的邏輯面積很小,節(jié)約芯片面積成本。而且本發(fā)明相對于沒有帶圖像旋轉(zhuǎn)裝置的設計,只需要添加少量的邏輯便可以實現(xiàn)旋轉(zhuǎn),設計獨立性好,減少了因為添加過多模塊而導致原來邏輯出錯的可能。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種圖像旋轉(zhuǎn)處理方法,其特征在于,所述方法包括以下步驟對原始圖像經(jīng)離散余弦編碼后的每個基本矩形點陣的數(shù)據(jù)進行符號變換,輸出旋轉(zhuǎn)后每個基本矩形點陣的離散余弦結(jié)果;對所述離散余弦變換結(jié)果進行反離散余弦變換,輸出旋轉(zhuǎn)后的每個基本矩形點陣的數(shù)據(jù);根據(jù)旋轉(zhuǎn)后的每個基本矩形點陣的數(shù)據(jù)顯示重構(gòu)圖像。
2.如權(quán)利要求1所述的圖像旋轉(zhuǎn)處理方法,其特征在于,當輸出基本矩形點陣旋轉(zhuǎn)180度后的離散余弦結(jié)果時,所述基本矩形點陣的離散余弦結(jié)果通過下述公式實現(xiàn)dctdata180(i,j)=(-1)^(i+j)*dctdata(i,j);其中,dctdata(i,j)表示原始圖像經(jīng)離散余弦編碼后的每個基本矩形點陣的數(shù)據(jù),dctdata180(i,j)表示每個基本矩形點陣旋轉(zhuǎn)180度后的離散余弦結(jié)果,^表示乘方,i、j表示每個基本矩形點陣中各個點的位置符號。
3.如權(quán)利要求2所述的圖像旋轉(zhuǎn)處理方法,其特征在于,當輸出基本矩形點陣旋轉(zhuǎn)90度或270度后的離散余弦結(jié)果時,所述對原始圖像經(jīng)離散余弦編碼后的每個基本矩形點陣的數(shù)據(jù)進行符號變換的步驟進一步包括對原始圖像經(jīng)離散余弦編碼后的每個基本矩形點陣的數(shù)據(jù)進行符號變換和轉(zhuǎn)秩操作,輸出每個基本矩形點陣旋轉(zhuǎn)90度或270度后的離散余弦結(jié)果;所述基本矩形點陣旋轉(zhuǎn)90度或270度后的離散余弦結(jié)果分別通過下述公式實現(xiàn)dctdata90(i,j)=(-1)^(j+1)*dctdata(j,i);dctdata270(i,j)=(-1)^(i+1)*dctdata(j,i);其中,dctdata(i,j)表示原始圖像經(jīng)離散余弦編碼后的每個基本矩形點陣的數(shù)據(jù),dctdata90(i,j)、和dctdata270(i,j)分別表示每個基本矩形點陣旋轉(zhuǎn)90度或旋轉(zhuǎn)270度后的離散余弦結(jié)果,data(j,i)表示data(i,j)的轉(zhuǎn)秩,^表示乘方,i、j表示每個基本矩形點陣中各個點的位置符號。
4.如權(quán)利要求3所述的圖像旋轉(zhuǎn)處理方法,其特征在于,所述根據(jù)旋轉(zhuǎn)后的每個基本矩形點陣的數(shù)據(jù)顯示重構(gòu)圖像的步驟包括獲取每個基本矩形點陣在重構(gòu)圖像中的直接存儲器存取起始地址;根據(jù)所述直接存儲器存取起始地址和所述旋轉(zhuǎn)后的每個基本矩形點陣的數(shù)據(jù)顯示重構(gòu)圖像。
5.如權(quán)利要求4所述的圖像旋轉(zhuǎn)處理方法,其特征在于,所述基本矩形點陣為n×n矩形點陣單元,所述每個基本矩形點陣在重構(gòu)圖像中的直接存儲器存取起始地址的獲取方法具體為獲取原始圖像每個像素的長度、寬度、n,以及其中一個基本矩形點陣的直接存儲器存取地址;根據(jù)所述原始圖像每個像素的長度、寬度、n,以及其中一個基本矩形點陣的直接存儲器存取地址計算出其余基本矩形點陣在重構(gòu)圖像中的直接存儲器存取地址。
6.如權(quán)利要求5所述的圖像旋轉(zhuǎn)處理方法,其特征在于,當圖像旋轉(zhuǎn)0度、旋轉(zhuǎn)90度、旋轉(zhuǎn)180度和旋轉(zhuǎn)270度時,所述直接存儲器存取起始地址分別通過下式獲取recon_addr+pic_width*n*(m-1)+n*(k-1);recon_addr+pic_height*n*(k-1)+pic_height-m*n;recon_addr+pic_height*pic_width-pic_width*n*m+pic_width-k*n;recon_addr+pic_width*pic_width-pic_height*n*k+(m-1)*n;其中,recon_addr表示原始圖像第一行第一列基本矩形單元左上角的直接存儲器存取地址,m和k分別表示原始圖像基本矩形點陣單元的行數(shù)和列數(shù),pic_width和pic_height分別表示像素的寬度和高度。
7.一種圖像旋轉(zhuǎn)處理裝置,包括一碼流解析單元,其特征在于,所述裝置包括反離散余弦變換前處理單元,用于根據(jù)所述碼流解析單元解析輸出的原始圖像經(jīng)離散余弦編碼后的每個基本矩形點陣的數(shù)據(jù)進行符號變換,輸出旋轉(zhuǎn)后每個基本矩形點陣的離散余弦結(jié)果;反離散余弦變換處理單元,用于對所述反離散余弦變換前處理單元輸出的旋轉(zhuǎn)后每個基本矩形點陣的離散余弦結(jié)果進行反離散余弦解碼變換,獲取旋轉(zhuǎn)后的每個基本矩形點陣的數(shù)據(jù)。
8.如權(quán)利要求7所述的圖像旋轉(zhuǎn)處理裝置,其特征在于,當所述反離散余弦變換前處理單元輸出基本矩形點陣旋轉(zhuǎn)180度后的離散余弦結(jié)果時,所述基本矩形點陣的離散余弦結(jié)果通過下述公式實現(xiàn)dctdata180(i,j)=(-1)^(i+j)*dctdata(i,j);其中,dctdata(i,j)表示原始圖像經(jīng)離散余弦編碼后的每個基本矩形點陣的數(shù)據(jù),dctdata180(i,j)表示每個基本矩形點陣旋轉(zhuǎn)180度后的離散余弦結(jié)果,^表示乘方,i、j表示每個基本矩形點陣中各個點的位置符號。
9.如權(quán)利要求8所述的圖像旋轉(zhuǎn)處理裝置,其特征在于,當所述反離散余弦變換前處理單元輸出基本矩形點陣旋轉(zhuǎn)90度或270度后的離散余弦結(jié)果時,所述反離散余弦變換前處理單元進一步包括對原始圖像經(jīng)離散余弦編碼后的每個基本矩形點陣的數(shù)據(jù)進行符號變換和轉(zhuǎn)秩操作,輸出每個基本矩形點陣旋轉(zhuǎn)90度或270度后的離散余弦結(jié)果;所述基本矩形點陣旋轉(zhuǎn)90度或270度后的離散余弦結(jié)果分別通過下述公式實現(xiàn)dctdata90(i,j)=(-1)^(j+1)*dctdata(j,i);dctdata270(i,j)=(-1)^(i+1)*dctdata(j,i);其中,dctdata(i,j)表示原始圖像經(jīng)離散余弦編碼后的每個基本矩形點陣的數(shù)據(jù),dctdata90(i,j)、和dctdata270(i,j)分別表示每個基本矩形點陣旋轉(zhuǎn)90度或旋轉(zhuǎn)270度后的離散余弦結(jié)果,data(j,i)表示data(i,j)的轉(zhuǎn)秩,^表示乘方,i、j表示每個基本矩形點陣中各個點的位置符號。
10.如權(quán)利要求9所述的圖像旋轉(zhuǎn)處理裝置,其特征在于,所述圖像旋轉(zhuǎn)處理裝置進一步包括旋轉(zhuǎn)地址產(chǎn)生單元,用于獲取每個基本矩形點陣在重構(gòu)圖像中的直接存儲器存取起始地址。
11.如權(quán)利要求10所述的圖像旋轉(zhuǎn)處理裝置,其特征在于,所述基本矩形點陣為n×n矩形點陣單元,所述旋轉(zhuǎn)地址產(chǎn)生單元根據(jù)原始圖像每個像素的長度、寬度、n以及原始圖像中一個基本矩形點陣的直接存儲器存取地址獲得其余基本矩形點陣在重構(gòu)圖像中的直接存儲器存取地址。
12.如權(quán)利要求11所述的圖像旋轉(zhuǎn)處理裝置,其特征在于,當圖像旋轉(zhuǎn)0度、旋轉(zhuǎn)90度、旋轉(zhuǎn)180度和旋轉(zhuǎn)270度時,所述旋轉(zhuǎn)地址產(chǎn)生單元分別通過下式獲取所述直接存儲器存取起始地址recon_addr+pic_width*n*(m-1)+n*(k-1);recon_addr+pic_height*n*(k-1)+pic_height-m*n;recon_addr+pic_height*pic_width-pic_width*n*m+pic_width-k*n;recon_addr+pic_width*pic_width-pic_height*n*k+(m-1)*n;其中,recon_addr表示原始圖像第一行第一列基本矩形單元左上角的直接存儲器存取地址,m和k分別表示原始圖像基本矩形點陣單元的行數(shù)和列數(shù),pic_width和pic_height分別表示像素的寬度和高度。
13.一種多媒體處理器,其特征在于,包括圖像旋轉(zhuǎn)處理裝置,所述圖像處理裝置包括一碼流解析單元,所述圖像旋轉(zhuǎn)處理裝置還包括反離散余弦變換前處理單元,用于根據(jù)所述碼流解析單元解析輸出的原始圖像經(jīng)離散余弦編碼后的每個基本矩形點陣的數(shù)據(jù)進行符號變換,輸出旋轉(zhuǎn)后每個基本矩形點陣的離散余弦結(jié)果;反離散余弦變換處理單元,用于對所述反離散余弦變換前處理單元輸出的旋轉(zhuǎn)后每個基本矩形點陣的離散余弦結(jié)果進行反離散余弦解碼變換,獲取旋轉(zhuǎn)后的每個基本矩形點陣的數(shù)據(jù);顯示裝置,用于根據(jù)所述反離散余弦變換處理單元輸出的旋轉(zhuǎn)后的每個基本矩形點陣的數(shù)據(jù),顯示重構(gòu)圖像。
14.如權(quán)利要求13所述的多媒體處理器,其特征在于,當所述反離散余弦變換前處理單元輸出基本矩形點陣旋轉(zhuǎn)180度后的離散余弦結(jié)果時,所述基本矩形點陣的離散余弦結(jié)果通過下述公式實現(xiàn)dctdata180(i,j)=(-1)^(i+j)*dctdata(i,j);其中,dctdata(i,j)表示原始圖像經(jīng)離散余弦編碼后的每個基本矩形點陣的數(shù)據(jù),dctdata180(i,j)表示每個基本矩形點陣旋轉(zhuǎn)180度后的離散余弦結(jié)果,^表示乘方,i、j表示每個基本矩形點陣中各個點的位置符號。
15.如權(quán)利要求14所述的多媒體處理器,其特征在于,當所述反離散余弦變換前處理單元輸出基本矩形點陣旋轉(zhuǎn)90度或270度后的離散余弦結(jié)果時,所述反離散余弦變換前處理單元進一步包括對原始圖像經(jīng)離散余弦編碼后的每個基本矩形點陣的數(shù)據(jù)進行符號變換和轉(zhuǎn)秩操作,輸出每個基本矩形點陣旋轉(zhuǎn)90度或270度后的離散余弦結(jié)果;所述基本矩形點陣旋轉(zhuǎn)90度或270度后的離散余弦結(jié)果分別通過下述公式實現(xiàn)dctdata90(i,j)=(-1)^(j+1)*dctdata(j,i);dctdata270(i,j)=(-1)^(i+1)*dctdata(j,i);其中,dctdata(i,j)表示原始圖像經(jīng)離散余弦編碼后的每個基本矩形點陣的數(shù)據(jù),dctdata90(i,j)、和dctdata270(i,j)分別表示每個基本矩形點陣旋轉(zhuǎn)90度或旋轉(zhuǎn)270度后的離散余弦結(jié)果,data(j,i)表示data(i,j)的轉(zhuǎn)秩,^表示乘方,i、j表示每個基本矩形點陣中各個點的位置符號。
16.如權(quán)利要求15所述的多媒體處理器,其特征在于,所述圖像處理裝置進一步包括旋轉(zhuǎn)地址產(chǎn)生單元,用于獲取每個基本矩形點陣在重構(gòu)圖像中的直接存儲器存取起始地址;所述顯示裝置根據(jù)所述旋轉(zhuǎn)地址產(chǎn)生單元的每個基本矩形點陣在重構(gòu)圖像中的直接存儲器存取起始地址以及所述反離散余弦變換處理單元獲取的旋轉(zhuǎn)后的每個基本矩形點陣的數(shù)據(jù)顯示重構(gòu)圖像。
17.如權(quán)利要求16所述的多媒體處理器,其特征在于,所述基本矩形點陣為n×n矩形點陣單元,所述旋轉(zhuǎn)地址產(chǎn)生單元根據(jù)原始圖像每個像素的長度、寬度、n以及原始圖像中一個基本矩形點陣的直接存儲器存取地址計算出其余基本矩形點陣在重構(gòu)圖像中的直接存儲器存取地址。
18.如權(quán)利要求17所述的多媒體處理器,其特征在于,當圖像旋轉(zhuǎn)0度、旋轉(zhuǎn)90度、旋轉(zhuǎn)180度和旋轉(zhuǎn)270度時,所述旋轉(zhuǎn)地址產(chǎn)生單元分別通過下式獲取所述直接存儲器存取起始地址recon_addr+pic_width*n*(m-1)+n*(k-1);recon_addr+pic_height*n*(k-1)+pic_height-m*n;recon_addr+pic_height*pic_width-pic_width*n*m+pic_width-k*n;recon_addr+pic_width*pic_width-pic_height*n*k+(m-1)*n;其中,recon_addr表示原始圖像第一行第一列基本矩形單元左上角的直接存儲器存取地址,m和k分別表示原始圖像基本矩形點陣單元的行數(shù)和列數(shù),pic_width和pic_height分別表示像素的寬度和高度。
全文摘要
本發(fā)明適用于圖像處理領(lǐng)域,提供了一種圖像旋轉(zhuǎn)處理方法、裝置及多媒體處理器,所述方法包括以下步驟對原始圖像經(jīng)離散余弦編碼后的每個基本矩形點陣的數(shù)據(jù)進行符號變換,輸出旋轉(zhuǎn)后每個基本矩形點陣的離散余弦結(jié)果;對離散余弦變換結(jié)果進行反離散余弦變換,輸出旋轉(zhuǎn)后的每個基本矩形點陣的數(shù)據(jù);根據(jù)旋轉(zhuǎn)后的每個基本矩形點陣的數(shù)據(jù)顯示重構(gòu)圖像。本發(fā)明提供的圖像旋轉(zhuǎn)處理方法、裝置及多媒體處理器計算量小,邏輯簡單,易于實現(xiàn)。
文檔編號G09G5/00GK101059952SQ200710074029
公開日2007年10月24日 申請日期2007年4月12日 優(yōu)先權(quán)日2007年4月12日
發(fā)明者孫叢豪, 徐懷懿, 蔡寧寧 申請人:深圳安凱微電子技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1