一种图像旋转处理方法、装置及多媒体处理器的制作方法

文档序号:2647770阅读:361来源:国知局
专利名称:一种图像旋转处理方法、装置及多媒体处理器的制作方法
技术领域
本发明属于图像处理领域,尤其涉及一种图像旋转处理方法和装置以及具有图像旋转功能的多媒体处理器。
背景技术
目前,便携式多媒体处理器主要分为原始数据获取存储逻辑和设备、数据处理模块和数据传输控制逻辑、显示设备和控制逻辑三个部分。其中原始数据获取存储逻辑和设备主要用于通过各种途径获得原始图像数据以及码流数据;通过数据传输控制逻辑,可以获得相应的原始图像信息、码流信息以及参考图像信息,而数据处理模块则把获得的原始数据转换成所需的数据形式(对于编码来说为符合定义的码流,对于解码则为YUV数据点阵或者RGB点阵);显示设备和控制逻辑则将相应的图像数据显示在显示设备上,从而使人通过视觉获得相应的信息。
为了满足便携式视频多媒体处理器的各种应用要求,图像显示设备对于需要显示的数据有着特殊的要求,即要求芯片提供的图像数据能够根据软件的配置做基本四个方向的旋转(0度、90度、180度和270度)。
现有的视频图像旋转方法主要有两种。一种旋转方法是直接在数据传输控制中进行处理,通过直接存储器存取(Direct Memory Access,DMA)传输中的控制,直接拼接成旋转后的重构图像,并把已经得到的重构图像的矩形点阵按照旋转后的顺序传输,同时更改DMA起始地址的计算,这样对于各种角度的旋转以及不旋转的情况来说,本地矩阵缓冲器的各个地址都要经过不同的计算,使电路变得比较复杂,出错风险大,而且从外部获取参考图像数据时也有同样的问题。例如在旋转90度或旋转270度的情况下,通过DMA传送图像数据或参考数据时,因为每一个数据都不连续,所以DMA的效率非常低,这与实时的图像处理以及保证DMA带宽的原则都相互矛盾,不适于目前对于实时性要求比较高的便携式视频多媒体处理器的需求。
另一种视频图像旋转方法是通过围绕用户定义参考点旋转图像的硬件实现。在此方法中,首先接收用户定义参考点,这个用户定义参考点可以在图像之外定义;然后计算图像的一个位置,此位置定义了围绕用户定义参考点旋转之后的重构图像的位置;之后计算从存储器提取的一个或多个图像像素的顺序,这个顺序定义了在围绕用户定义参考点旋转之后图像的旋转顺序;最后,根据计算的顺序从存储器提取图像像素。这种方法具有类似软件操作的特点,可以实现任意角度的旋转,虽然能够满足各种灵活性要求,但运算量大,消耗太多的CPU时间,并且相应的硬件逻辑非常复杂,大大降低了系统性能。由于成本的问题,硬件在设计过程中不可能加入大量的逻辑来实现这些功能,因此大幅度增加电路的复杂性,对于便携式的多媒体处理器来说不适于实际应用。

发明内容
本发明实施例的目的在于提供一种图像旋转处理方法,旨在解决现有技术在对图像进行旋转处理时,运算量大,硬件逻辑复杂的问题。
本发明实施例是这样实现的,一种图像旋转处理方法,包括以下步骤对原始图像经离散余弦编码后的每个基本矩形点阵的数据进行符号变换,输出旋转后每个基本矩形点阵的离散余弦结果;对离散余弦变换结果进行反离散余弦变换,输出旋转后的每个基本矩形点阵的数据;根据旋转后的每个基本矩形点阵的数据显示重构图像。
本发明实施例的另一目的在于提供一种图像旋转处理装置,包括码流解析单元;反离散余弦变换前处理单元,用于根据码流解析单元解析输出的原始图像经离散余弦编码后的每个基本矩形点阵的数据进行符号变换,输出旋转后每个基本矩形点阵的离散余弦结果;反离散余弦变换处理单元,用于对反离散余弦变换前处理单元输出的旋转后每个基本矩形点阵的离散余弦结果进行反离散余弦解码变换,获取旋转后的每个基本矩形点阵的数据。
本发明实施例的又一目的在于提供一种多媒体处理器,包括图像旋转处理装置,图像处理装置包括码流解析单元,图像旋转处理装置还包括反离散余弦变换前处理单元,用于根据码流解析单元解析输出的原始图像经离散余弦编码后的每个基本矩形点阵的数据进行符号变换,输出旋转后每个基本矩形点阵的离散余弦结果;反离散余弦变换处理单元,用于对反离散余弦变换前处理单元输出的旋转后每个基本矩形点阵的离散余弦结果进行反离散余弦解码变换,获取旋转后的每个基本矩形点阵的数据;显示装置,用于根据反离散余弦变换处理单元输出的旋转后的每个基本矩形点阵的数据,显示重构图像。
本发明实施例通过对原始图像经离散余弦编码后的基本矩形点阵的数据进行符号变换以及反离散余弦变换,获得原始图像旋转后的数据,运算量小,硬件逻辑简单,易于实现。


图1是本发明实施例提供的图像旋转处理方法的流程图;图2是本发明实施例提供的多媒体处理器的示意图;图3是本发明实施例提供的二维离散余弦特性的示意图;图4是本发明实施例提供的矩形点阵单元旋转顺序示意图;图5是本发明实施例提供的外部缓冲区内矩形单元的顺序示意图;图6a和图6b分别是本发明实施例提供的原像素排列读顺序和旋转90后像素排列读顺序的示意图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例根据便携式视频多媒体处理器的视频编解码大都基于DCT(Discrete Cosine Transform,离散余弦变换)等正交变换的特性,通过调整反离散余弦变换(IDCT)的输入来使得IDCT输出期望的旋转后各个点阵,拼接旋转后的整幅图像。
如图1所示,本发明实施例的图像旋转处理方法包括下述步骤在步骤S111中,对外部存储器中的码流缓冲区输出的原始图像经DCT编码后的数据进行码流解析;在步骤S113中,对经过解析的原始图像经DCT编码后的每个基本矩形点阵的数据进行符号变换或者同时进行符号变换和转秩操作,输出旋转后每个基本矩形点阵的离散余弦结果,这里所说的原始基本矩形点阵单元针对图像的每个基本n×n矩形点阵单元而言(如图3中的8×8矩形点阵单元),计算方法下文将结合装置详细描述在步骤S115中,对旋转后每个基本矩形点阵的离散余弦结果进行IDCT变换,得到旋转后的每个基本矩形点阵单元的数据,并输入本地缓冲,其中IDCT变换下文将详细描述;在步骤S117中,计算原始图像每个矩形单元在重构图像中的左上角的DMA起始地址,具体的计算方法下文将详述;在步骤S119中,外部存储器中的显示缓冲通过DMA机制读取本地缓冲内旋转后的每个基本矩形点阵单元的数据,以及原始图像每个矩形单元在重构图像中的左上角的DMA起始地址,拼接图像;在步骤S121中,显示终端显示旋转后图像。
以下将详细说明采用本发明实施例图像旋转处理装置和多媒体处理器。本发明实施例的图像旋转处理装置和多媒体处理器是基于二维DCT视频解码电路,所处理的图像总是以一定大小的n×n矩形点阵单元(为方便说明,以下n×n矩形点阵单元将以8×8矩形点阵单元为例)为基本要素,通过这些基本要素组合成一个完整图像。
图2所示为本发明实施例提供的多媒体处理器10的示意图,图中标号100为本发明实施例的图像旋转处理装置,以下将首先描述本发明实施例的图像旋转处理装置100的工作原理。图像旋转处理装置100包括码流解析单元103、反离散余弦变换前处理单元105、反离散余弦变换处理单元107、内部缓冲器109和旋转地址产生逻辑单元111。
码流解析单元103用于对从外部接收的原始图像数据进行码流解析,输入码流解析单元103的原始图像数据是被二维DCT编码的,因此码流解析单元103单元输出的数据中包含原始图像每个矩形点阵单元的DCT数据。下面对二维DCT特性做简要说明。
图3所示为二维离散余弦特性的示意图,如图3中(a)所示,假定data表示一个8×8矩形点阵单元的数据,dctdata表示data经过二维DCT编码后的结果,dctdata90、dctdata180、dctdata270分别表示dctdata表示的矩阵在进行90度、180度和270度旋转后的结果,那么可获得下述等式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)为矩形点阵单元中各个点的位置数据,data(j,i)为data(i,j)的转秩。
从上述对DCT特性的分析可知,针对dctdata(i,j),对其进行符号变换和转秩操作可获得dctdata90(i,j)和dctdata270(i,j),如图3中的(b)和(d)所示,只对dctdata(i,j)之前的符号进行变换可获得dctdata180(i,j),如图3中的(c)所示。其中8×8矩形点阵单元中的数字表示每个点的数据通过逐行扫描(raster scan)时的顺序。
反离散余弦变换前处理单元105即进行这样的处理,针对码流解析单元103输出的原始图像的每个矩形点阵单元中每个点的DCT数据dctdata(i,j),进行符号变换或者同时进行符号变换和转秩操作,输出原始图像的每个矩阵单元旋转90度、180度和270度后的DCT数据dctdata90、dctdata180、dctdata270。
对于矩形点阵单元旋转90度时,反离散余弦变换前处理单元105对数据dctdata(i,j)前的符号进行(-1)^(j+1)操作,并对dctdata(i,j)进行转秩,获得(-1)^(j+1)dctdata(j,i),即矩形点阵单元旋转90度后的DCT数据dctdata90(i,j)。对于矩形点阵单元旋转180度时,反离散余弦变换前处理单元105对数据dctdata(i,j)前的符号进行(-1)^(i+j)操作,此时不再进行转秩,获得(-1)^(i+j)*dctdata(i,j),即矩形点阵单元旋转180度后的DCT数据dctdata180(i,j)。对于矩形点阵单元旋转270度时,反离散余弦变换前处理单元105对数据dctdata(i,j)前的符号进行(-1)^(i+1)操作,并对dctdata(i,j)进行转秩,获得(-1)^(i+1)dctdata(j,i),即矩形点阵单元旋转270度后的DCT数据dctdata270(i,j)。反离散余弦变换前处理单元105进行符号变换和/或转秩操作的方式可采用现有技术的逻辑处理等方式,实现手段多样但是简单,只要能实现本发明实施例的原理都可以应用。
反离散余弦变换前处理单元105的实现有两个基本条件,第一是图像处理对象的基本单元为n×n矩形点阵单元,如图3中的8×8矩形点阵单元,第二是本地缓冲区109所存放的对象已经是可以与图像显示终端15所接受的图像点阵有直接的对应关系。反离散余弦变换前处理单元105对数据dctdata(i,j)进行符号变换或者同时进行符号变换和转秩操作后,将获得的dctdata90(i,j)、dctdata180(i,j)、dctdata270(i,j)输出至反离散余弦变换处理单元107。
反离散余弦变换处理单元107对反离散余弦变换前处理单元105输出的数据进行IDCT变换,即反DCT变换,得出旋转后的矩形点阵单元的数据即data90、data180、data270,如图4中的(b)、(c)和(d)所示。反离散余弦变换处理单元107对反离散余弦变换前处理单元105输出的数据进行IDCT变换后的结果如下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变换,可以计算出矩形点阵单元中每个点旋转后的位置数据,并输出至内部缓冲器109。
经过上述处理后,原始图像的每个矩形点阵单元都变为旋转后单元。由于目前的视频编解码器普遍通过DMA传输机制向外部存储器中输出重构图像,因此要在显示终端实现原始图像的整体旋转,本发明实施例提供的图像旋转处理装置还需要计算在不同旋转模式(90度、180度和270度)下每个矩形单元(本实施例中,矩形单元为图3所示的8×8矩形点阵单元)旋转后的DMA起始地址,然后这个矩形单元的其余地址按照统一的DMA机制进行上传,实现整张图像的拼接。
旋转地址产生逻辑单元111即用于计算每个矩形单元在重构图像中左上角DMA的起始地址,计算方法下文将结合图5进行详细描述。图5中的(a)、(b)、(c)、(d)四个小图表示原始图像在不旋转、旋转90度、旋转180度、旋转270度时外部缓冲区内矩形点阵单元的顺序。如图5所示,图5(a)中的第一行第一个矩形单元(1)就是图3中的一个8×8矩形点阵单元,图5(a)中的第一行具有k个矩形单元,每个矩形单元彼此相邻,图像具有m行,每个矩形单元的左上角的圆形表示这个矩形单元左上角的地址。图5(a)中这些矩形点阵单元按照从左到右、从上到下的排列方式排列(逐行扫描)组成一幅图像,其中每个像素的宽度为pic_width,高度为pic_height。这些数据都是旋转地址产生逻辑单元111从码流解析单元103获取的。在原始图像不旋转的情况下,图5(a)中第一行第一个矩形点阵单元(1)其左上角(即图3中8×8矩形点阵单元中的点1)在外部缓冲区内的重构图像DMA起始地址为recon_add,那么可以得出图5(a)中的其它矩形单元左上角在不旋转时的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中一个矩形点阵单元点阵数,由于图3中的矩形点阵单元为8×8矩形点阵单元,那么n即为8,m表示未旋转时图像矩形单元的行数,k表示未旋转时图像矩形单元的列数。
当原始图像旋转90度时,同样需要计算每个矩形单元的左上角在外部缓冲区内的重构图像DMA起始地址,如图5(b)所示,以计算原始图像第一行第一个矩形单元(1)在重构图像中左上角的DMA起始地址为例,也就是需要计算出这个矩形单元包含的8×8矩形点阵单元中的点57在重构图像中的DMA地址(如图4(b)所示,计算的总是左上角的DMA地址),根据像素的宽度pic_width和高度pic_height可以计算出其在外部缓冲区内的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)都是针对图像在没有旋转时候的位置,与图5(a)中一致。
同理如图5(c)所示,原始图像旋转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)也是针对图像在没有旋转时候的位置,与图5(a)中一致。
如图5(d)所示,原始图像旋转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)也是针对图像在没有旋转时候的位置,与图5(a)中一致。
就目前所使用的DMA传输机制而言,要求首先上传的是每个矩形单元左上角在重构图像中的DMA的起始地址,只要计算出每个矩形单元左上角在重构图像中的DMA的地址,其余地址即可按照DMA传输机制的顺序操作,与不旋转时的DMA过程没有任何区别,这样既能够保证实现旋转后重构图像的拼接,又不影响DMA传输的速度。
但是,除了上述方法之外,也可采用其它方式计算每个矩形单元旋转后的DMA起始地址。
在某些应用中,内部缓冲器109可以每次从反离散余弦变换处理单元107读取2个像素点的数据。如图6a和图6b所示,分别为原像素排列读顺序和旋转90后像素排列读顺序的示意图,矩形单元即为图5中的矩形单元,矩形单元内的数字表示原始图像的扫描顺序,矩形单元内的两个圆形表示两个像素。由于内部缓冲器109从反离散余弦变换处理单元107读取的数据是矩形点阵单元已经旋转好了的,内部缓冲器107的存取操作与现有技术相比不用任何改变,因此图像不旋转时上传顺序和旋转90度时的上传顺序一样。但是,本发明实施例对内部缓冲器109每次读取像素点的数量没有限制。
本发明实施例提供的图像旋转处理装置可用于视频多媒体处理器中,如图2所示,本发明实施例提供的多媒体处理器10包括图像旋转处理装置100、外部存储器中的码流缓冲区单元11、外部存储器中的显示缓冲区13和显示终端15。
外部存储器中的码流缓冲区单元11用于向图像旋转处理装置100中提供原始图像的数据,图像旋转处理装置100对原始图像的数据进行处理,输出每个矩形单元左上角在重构图像中的DMA上传地址和每个矩形点阵单元旋转后的位置数据,外部存储器中的显示缓冲区13通过DMA机制获取图像旋转处理装置100的输出,实现对整张图像的拼接,并由显示终端15实现旋转后重构图像的显示。
本发明实施例多媒体处理器10中的图像旋转处理装置100上文已经详细描述过,此处不再赘述。
本发明实施例针对基于n×n矩形点阵单元的DCT视频解码电路,根据DCT视频解码中需要图像旋转时只需要IDCT进行简单的处理就可以在二维的IDCT的输出时得到需要的旋转角度,使得矩形点阵单元可以直接上传,DMA过程不需要经过太大的修改,不会影响到DMA的效率。相反如果原始图像的数据不经过反离散余弦变换前处理单元105和反离散余弦变换处理单元107的处理,对应于图6b内部缓冲器第一次上传的为矩形单元29和25中顶部圆圈表示的像素,第二次上传的为矩形单元21和17中顶部圆圈表示的像素,那么计算就比较复杂,需要地址译码。
本发明实施例还通过调整每一个矩形点阵单元左上角的DMA的起始地址对任意尺寸图像实现四个方向上的旋转,基本不修改现有的控制逻辑,对于现有电路影响小,降低了电路关联以降低硬件设计风险,易于验证,并且缩短了验证的时间,减少了电路的出错率,并且由于增加的逻辑面积很小,节约芯片面积成本。而且本发明相对于没有带图像旋转装置的设计,只需要添加少量的逻辑便可以实现旋转,设计独立性好,减少了因为添加过多模块而导致原来逻辑出错的可能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种图像旋转处理方法,其特征在于,所述方法包括以下步骤对原始图像经离散余弦编码后的每个基本矩形点阵的数据进行符号变换,输出旋转后每个基本矩形点阵的离散余弦结果;对所述离散余弦变换结果进行反离散余弦变换,输出旋转后的每个基本矩形点阵的数据;根据旋转后的每个基本矩形点阵的数据显示重构图像。
2.如权利要求1所述的图像旋转处理方法,其特征在于,当输出基本矩形点阵旋转180度后的离散余弦结果时,所述基本矩形点阵的离散余弦结果通过下述公式实现dctdata180(i,j)=(-1)^(i+j)*dctdata(i,j);其中,dctdata(i,j)表示原始图像经离散余弦编码后的每个基本矩形点阵的数据,dctdata180(i,j)表示每个基本矩形点阵旋转180度后的离散余弦结果,^表示乘方,i、j表示每个基本矩形点阵中各个点的位置符号。
3.如权利要求2所述的图像旋转处理方法,其特征在于,当输出基本矩形点阵旋转90度或270度后的离散余弦结果时,所述对原始图像经离散余弦编码后的每个基本矩形点阵的数据进行符号变换的步骤进一步包括对原始图像经离散余弦编码后的每个基本矩形点阵的数据进行符号变换和转秩操作,输出每个基本矩形点阵旋转90度或270度后的离散余弦结果;所述基本矩形点阵旋转90度或270度后的离散余弦结果分别通过下述公式实现dctdata90(i,j)=(-1)^(j+1)*dctdata(j,i);dctdata270(i,j)=(-1)^(i+1)*dctdata(j,i);其中,dctdata(i,j)表示原始图像经离散余弦编码后的每个基本矩形点阵的数据,dctdata90(i,j)、和dctdata270(i,j)分别表示每个基本矩形点阵旋转90度或旋转270度后的离散余弦结果,data(j,i)表示data(i,j)的转秩,^表示乘方,i、j表示每个基本矩形点阵中各个点的位置符号。
4.如权利要求3所述的图像旋转处理方法,其特征在于,所述根据旋转后的每个基本矩形点阵的数据显示重构图像的步骤包括获取每个基本矩形点阵在重构图像中的直接存储器存取起始地址;根据所述直接存储器存取起始地址和所述旋转后的每个基本矩形点阵的数据显示重构图像。
5.如权利要求4所述的图像旋转处理方法,其特征在于,所述基本矩形点阵为n×n矩形点阵单元,所述每个基本矩形点阵在重构图像中的直接存储器存取起始地址的获取方法具体为获取原始图像每个像素的长度、宽度、n,以及其中一个基本矩形点阵的直接存储器存取地址;根据所述原始图像每个像素的长度、宽度、n,以及其中一个基本矩形点阵的直接存储器存取地址计算出其余基本矩形点阵在重构图像中的直接存储器存取地址。
6.如权利要求5所述的图像旋转处理方法,其特征在于,当图像旋转0度、旋转90度、旋转180度和旋转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分别表示原始图像基本矩形点阵单元的行数和列数,pic_width和pic_height分别表示像素的宽度和高度。
7.一种图像旋转处理装置,包括一码流解析单元,其特征在于,所述装置包括反离散余弦变换前处理单元,用于根据所述码流解析单元解析输出的原始图像经离散余弦编码后的每个基本矩形点阵的数据进行符号变换,输出旋转后每个基本矩形点阵的离散余弦结果;反离散余弦变换处理单元,用于对所述反离散余弦变换前处理单元输出的旋转后每个基本矩形点阵的离散余弦结果进行反离散余弦解码变换,获取旋转后的每个基本矩形点阵的数据。
8.如权利要求7所述的图像旋转处理装置,其特征在于,当所述反离散余弦变换前处理单元输出基本矩形点阵旋转180度后的离散余弦结果时,所述基本矩形点阵的离散余弦结果通过下述公式实现dctdata180(i,j)=(-1)^(i+j)*dctdata(i,j);其中,dctdata(i,j)表示原始图像经离散余弦编码后的每个基本矩形点阵的数据,dctdata180(i,j)表示每个基本矩形点阵旋转180度后的离散余弦结果,^表示乘方,i、j表示每个基本矩形点阵中各个点的位置符号。
9.如权利要求8所述的图像旋转处理装置,其特征在于,当所述反离散余弦变换前处理单元输出基本矩形点阵旋转90度或270度后的离散余弦结果时,所述反离散余弦变换前处理单元进一步包括对原始图像经离散余弦编码后的每个基本矩形点阵的数据进行符号变换和转秩操作,输出每个基本矩形点阵旋转90度或270度后的离散余弦结果;所述基本矩形点阵旋转90度或270度后的离散余弦结果分别通过下述公式实现dctdata90(i,j)=(-1)^(j+1)*dctdata(j,i);dctdata270(i,j)=(-1)^(i+1)*dctdata(j,i);其中,dctdata(i,j)表示原始图像经离散余弦编码后的每个基本矩形点阵的数据,dctdata90(i,j)、和dctdata270(i,j)分别表示每个基本矩形点阵旋转90度或旋转270度后的离散余弦结果,data(j,i)表示data(i,j)的转秩,^表示乘方,i、j表示每个基本矩形点阵中各个点的位置符号。
10.如权利要求9所述的图像旋转处理装置,其特征在于,所述图像旋转处理装置进一步包括旋转地址产生单元,用于获取每个基本矩形点阵在重构图像中的直接存储器存取起始地址。
11.如权利要求10所述的图像旋转处理装置,其特征在于,所述基本矩形点阵为n×n矩形点阵单元,所述旋转地址产生单元根据原始图像每个像素的长度、宽度、n以及原始图像中一个基本矩形点阵的直接存储器存取地址获得其余基本矩形点阵在重构图像中的直接存储器存取地址。
12.如权利要求11所述的图像旋转处理装置,其特征在于,当图像旋转0度、旋转90度、旋转180度和旋转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分别表示原始图像基本矩形点阵单元的行数和列数,pic_width和pic_height分别表示像素的宽度和高度。
13.一种多媒体处理器,其特征在于,包括图像旋转处理装置,所述图像处理装置包括一码流解析单元,所述图像旋转处理装置还包括反离散余弦变换前处理单元,用于根据所述码流解析单元解析输出的原始图像经离散余弦编码后的每个基本矩形点阵的数据进行符号变换,输出旋转后每个基本矩形点阵的离散余弦结果;反离散余弦变换处理单元,用于对所述反离散余弦变换前处理单元输出的旋转后每个基本矩形点阵的离散余弦结果进行反离散余弦解码变换,获取旋转后的每个基本矩形点阵的数据;显示装置,用于根据所述反离散余弦变换处理单元输出的旋转后的每个基本矩形点阵的数据,显示重构图像。
14.如权利要求13所述的多媒体处理器,其特征在于,当所述反离散余弦变换前处理单元输出基本矩形点阵旋转180度后的离散余弦结果时,所述基本矩形点阵的离散余弦结果通过下述公式实现dctdata180(i,j)=(-1)^(i+j)*dctdata(i,j);其中,dctdata(i,j)表示原始图像经离散余弦编码后的每个基本矩形点阵的数据,dctdata180(i,j)表示每个基本矩形点阵旋转180度后的离散余弦结果,^表示乘方,i、j表示每个基本矩形点阵中各个点的位置符号。
15.如权利要求14所述的多媒体处理器,其特征在于,当所述反离散余弦变换前处理单元输出基本矩形点阵旋转90度或270度后的离散余弦结果时,所述反离散余弦变换前处理单元进一步包括对原始图像经离散余弦编码后的每个基本矩形点阵的数据进行符号变换和转秩操作,输出每个基本矩形点阵旋转90度或270度后的离散余弦结果;所述基本矩形点阵旋转90度或270度后的离散余弦结果分别通过下述公式实现dctdata90(i,j)=(-1)^(j+1)*dctdata(j,i);dctdata270(i,j)=(-1)^(i+1)*dctdata(j,i);其中,dctdata(i,j)表示原始图像经离散余弦编码后的每个基本矩形点阵的数据,dctdata90(i,j)、和dctdata270(i,j)分别表示每个基本矩形点阵旋转90度或旋转270度后的离散余弦结果,data(j,i)表示data(i,j)的转秩,^表示乘方,i、j表示每个基本矩形点阵中各个点的位置符号。
16.如权利要求15所述的多媒体处理器,其特征在于,所述图像处理装置进一步包括旋转地址产生单元,用于获取每个基本矩形点阵在重构图像中的直接存储器存取起始地址;所述显示装置根据所述旋转地址产生单元的每个基本矩形点阵在重构图像中的直接存储器存取起始地址以及所述反离散余弦变换处理单元获取的旋转后的每个基本矩形点阵的数据显示重构图像。
17.如权利要求16所述的多媒体处理器,其特征在于,所述基本矩形点阵为n×n矩形点阵单元,所述旋转地址产生单元根据原始图像每个像素的长度、宽度、n以及原始图像中一个基本矩形点阵的直接存储器存取地址计算出其余基本矩形点阵在重构图像中的直接存储器存取地址。
18.如权利要求17所述的多媒体处理器,其特征在于,当图像旋转0度、旋转90度、旋转180度和旋转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分别表示原始图像基本矩形点阵单元的行数和列数,pic_width和pic_height分别表示像素的宽度和高度。
全文摘要
本发明适用于图像处理领域,提供了一种图像旋转处理方法、装置及多媒体处理器,所述方法包括以下步骤对原始图像经离散余弦编码后的每个基本矩形点阵的数据进行符号变换,输出旋转后每个基本矩形点阵的离散余弦结果;对离散余弦变换结果进行反离散余弦变换,输出旋转后的每个基本矩形点阵的数据;根据旋转后的每个基本矩形点阵的数据显示重构图像。本发明提供的图像旋转处理方法、装置及多媒体处理器计算量小,逻辑简单,易于实现。
文档编号G09G5/00GK101059952SQ200710074029
公开日2007年10月24日 申请日期2007年4月12日 优先权日2007年4月12日
发明者孙丛豪, 徐怀懿, 蔡宁宁 申请人:深圳安凯微电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1