图像旋转系统、图像旋转方法、解码芯片的制作方法

文档序号:6470878阅读:240来源:国知局
专利名称:图像旋转系统、图像旋转方法、解码芯片的制作方法
技术领域
本发明涉及图像旋转处理领域,具体地说,涉及一种图像旋转系统、图像 旋转方法、解码芯片。
背景技术
数字视频技术在通信和广播领域获得了日益广泛的应用,特别是20世纪 90年代以来,随着Internet和移动通信的迅猛发展,视频信息和多媒体信息在 移动网络中的处理和传输技术成了当前我国信息化的热点。中国移动多媒体广 # (CMMB, China Mobile Multimedia Broadcasting)应运而生。
CMMB是由国家广播电影电视总局建立的具有自主知识产权的数字多媒 体广播系统,通过卫星和地面无线广播的方式,可供七寸以下小屏幕、小尺寸、 移动便携的手持类终端随时随地接收广播电视节目和信息服务等业务,从而, 使人们的娱乐和信息生活方式发生了巨大的变化,创造新的收视习惯和消费时 尚。
由于如CMMB等移动多媒体广播技术的不断发展,具有静态图像旋转功 能的多媒体移动终端越来越深入人心;而具有视频旋转功能的移动终端更是得 到了众多消费者的喜爱。为了满足消费者的需求,业内的相关产品,包括手机、 PDA、 MP3/MP4播放器、数码相机以及笔记本电脑等接收设备中纷纷添加了 静态图像旋转、视频旋转的图像旋转功能。
但是,就目前而言,移动终端的图像旋转技术的实现方式是在视频解码 器中增加一个独立的专用于图像旋转的旋转模块,该旋转模块用于将存储器中 解码出来的宏块矩阵根据实际的需要进行旋转,然后输出到显示屏上去,这种 方法的好处是筒单易行,缺点是需要在内存中占用一个独立的旋转模块来进 行,因而增加了内存的开销;并且,在旋转的过程中涉及到内存的搬移,而内 存的搬移所涉及到的计算量比较大,且耗费时间,因此加重了系统的负担。
有鉴于此,需要本领域技术人员迫切解决的一个技术问题就是提供一种 图像旋转的方法,以解决现有技术中在实现图像旋转过程中存在的内存开销
大,计算量大、系统负担重的问题。

发明内容
本发明所要解决的技术问题是提供一种图像旋转系统、图像旋转方法、解 码芯片,以解决在实现图像旋转过程中,内存开销大以及内存搬移所产生的计 算量大、耗费时间长等问题。
为了解决上述问题,本发明公开了一种图像旋转系统,该图像旋转系统包 括第一处理器、第二处理器、第一存储器、第二存储器,所述第一处理器包括 地址计算单元和旋转指令生成单元,其中,地址计算单元包括第一地址计算子
单元和第二地址计算子单元第一地址计算子单元,用于计算作为参考块的、 旋转块矩阵D。/旋转为正常位置块矩阵D^后,在第二存储器的存储地址 ADRESS1;第二地址计算子单元,用于计算正常位置块矩阵Dn变换为旋转块 矩阵D/后,在第一存储器的存储地址ADRESS2;所述第一处理器还包括指 令生成单元,该指令生成单元包括第一旋转指令生成子单元、第二旋转指令生 成子单元和数据处理指令生成子单元,其中,第一旋转指令生成子单元用于生 成将所述Dn/旋转为Dn-,、并携带有将所述D^存储于第一存储器地址的旋 转指令COMMANDl;第二旋转指令生成子单元用于生成将所述D。旋转为所 述DnR、并携带有所述DnR存储于所述第二存储器地址的旋转指令 COMMAND2;数据处理指令生成子单元用于生成完成帧内预测、帧间预测或 者环路滤波数据处理过程的指令COMMAND3;所述第二处理器用于根据所述 ADRESS1执行旋转指令COMMANDl 、根据所述ADRESS2执行旋转指令 COMMAND2;以及,执行指令COMMAND3;所述第一存储器用于存储所述 块矩阵Dn/以及所述块矩阵DnR;所述第二存储器用于存储所述正常位置块 矩阵D^。
优选地,所述第一处理器还包括旋转指令接收单元,该旋转指令接收单元 用于在时间点to接收旋转启动指令。并且,所述地址计算单元还包括有第三 地址计算子单元用于根据所述旋转启动指令,计算将正常位置块矩阵D!变 换为旋转位置块矩阵D,后,D,存储至所述第一存储器中的地址。
优选地,所述旋转指令COMMANDl具体为第二处理器读取存储于所
述第一存储器中的所述块矩阵Dn/;将所述块矩阵Dn—,搬移至第二存储器的
所述ADRESS1中,得到Dn.,。
优选地,所述旋转指令COMMAND2具体为第二处理器读取存储于第 二存储器中的所述块矩阵Dn;将所述块矩阵D。搬移至第一存储器的所述 ADRESS2中,得到DnR。
优选地,图像旋转系统还包括一DMA控制器,所述DMA控制器用于将 每一个旋转块矩阵Dn/通过DMA方式搬移至所述ADRESS1中;以及用于将 每一个所述块矩阵Dn通过DMA方式!般移至所述ADRESS2中。
优选地,所述第一处理器为ARM处理器,所述第二处理器为DSP处理器 或者具有DSP架构的独立处理单元。
本发明还公开了 一种图像旋转方法,该方法将旋转过程嵌入在解码的帧内 预测、帧间预测或者环路滤波中,具体包括如下步骤读取存储于所述第一存 储器中所述作为参考块的、旋转块矩阵数据Dn/,将所述D。/旋转为正常位 置块矩阵并保存在第二存储器中;利用第二存储器中的所述正常位置块矩 阵D^进行相应的帧内预测、帧间预测或者环路滤波的处理,得到块矩阵数据 Dn;将所述块矩阵数据Dn旋转,得到旋转块矩阵D/,并保存在所述第一存 储器中;其中,将所述块矩阵Dn/旋转为正常块矩阵D^以及将所述块矩阵 Dn旋转得到旋转块矩阵DnR是通过在读取和保存过程中的坐标变换而实现。
优选地,所述方法进一步包括在启动旋转时,通过如下步骤获取所述 D,:在启动时间点to,发出图像旋转启动指令;读取存储于第一存储器中的 正常位置块矩阵DP并将所述正常位置块矩阵D,保存在所述第二存储器中; 才艮据坐标变换,计算所述正常位置块矩阵D,变换为旋转位置块矩阵时存 储于所述第一存储器中的地址;从所述第二存储器中读取正常位置块矩阵D,, 并存储至所述第一存储器的所述地址中,得到旋转位置块矩阵D,R。
优选地,将所述旋转块矩阵D。/旋转为正常位置块矩阵Dn_,的旋转指令 具体为第一处理器计算所述旋转块矩阵Dn/旋转为正常位置块矩阵 后,在第二存储器的存储地址ADRESS1;第二处理器读取所述旋转块矩阵Dn/ 中的每一个旋转块矩阵;将所述旋转块矩阵D。/搬移至第二存储器的ADRESS1中,得到正常位置块矩阵Dn.,。
优选地,将块矩阵D。旋转,得到矩阵数据D^的旋转指令具体为第一 处理器计算所述正常位置块矩阵Dn旋转为旋转块矩阵DnR后,在第一存储 器的存储地址ADRESS2;第二处理器读取所述第二存储器中的正常位置块矩 阵Dn;将所述正常位置块矩阵Dn^:移至第一存储器的ADRESS2中,得到旋 转块矩阵D/。
优选地,所述旋转块矩阵D。/通过DMA方式,搬移至第二存储器的 ADRESS1中,得到正常位置块矩阵D^;以及,所述正常位置块矩阵Dn通过 DMA方式,搬移至第一存储器的ADRESS2中,得到旋转块矩阵DnR。
优选地,利用所述正常位置块矩D^作为参考块,进行帧内预测时,所述 为D^为8x8、 16x8、 8x 16或者16x 16的宏块,包括如下步骤由第一处 理器进行当前块的熵解码,并由所述第二处理器依次进行反扫描、反量化、反 DCT并将产生的残差数据Bn存储于第二存储器中;由第二处理器将所述正常 位置块矩阵与残差数据Bj目加。
优选地,利用所述正常位置块矩D^作为参考块,进行帧内预测时,所述 为D^为8x8、 16x8、 8x 16或者16x 16的宏块,包括如下步骤由第一处 理器进行当前帧的当前块的熵解码,并由第二处理器依次进行反扫描、反量化、 反DCT并将当前块产生的残差数据Cn存储于所述第二存储器中;由所述第二 处理器将所述正常位置块矩阵D^与进行插值运算,得到Dn-,;由第二处理器 将所述块矩阵数据D'^与残差数据C。相加。优选地,利用所述正常位置块矩阵D^作为参考块,进行环路滤波时,所 述D^为8x6或者6x8的图像块,所述图像块是由帧内预测/帧间预测解码 出来的图像划分得到的,包括如下步骤对当前图像块的边缘进行环路滤波, 得到环路滤波的差值Ln;将所迷正常位置块矩阵Dn-!与环路滤波的差值Ln相 加。
优选地,所述第一处理器为ARM处理器,所述第二处理器为DSP处理器 或者具有DSP架构的独立处理单元。
本发明还公开了一种解码芯片,所述解码芯片包括一图像旋转系统,该图
像旋转系统包括第一处理器、第二处理器、第一存储器、第二存储器,所述第 一处理器包括地址计算单元和旋转指令生成单元,其中,地址计算单元包括第
一地址计算子单元和第二地址计算子单元第一地址计算子单元,用于计算作
为参考块的、旋转块矩阵Dn/旋转为正常位置块矩阵D^后,在第二存储器
的存储地址ADRESS1;第二地址计算子单元,用于计算正常位置块矩阵Dn 变换为旋转块矩阵D/后,在第一存储器的存储地址ADRESS2;所述第一处 理器还包括指令生成单元,该指令生成单元包括第一旋转指令生成子单元、第 二旋转指令生成子单元和数据处理指令生成子单元,其中,第一旋转指令生成 子单元用于生成将所述Dn/旋转为Dn.,、并携带有将所述D^存储于第一存 储器地址的旋转指令COMMANDl;第二旋转指令生成子单元用于生成将所述 Dn旋转为所述DnR、并携带有所述D/存储于所述第二存储器地址的旋转指令 COMMAND2;数据处理指令生成子单元用于生成完成帧内预测、帧间预测或 者环路滤波数据处理过程的指令COMMAND3;所述第二处理器用于根据所述 ADRESS1寺丸行旋转指令COMMANDl 、根据所述ADRESS2执行旋转指令 COMMAND2;以及,执行指令COMMAND3;所述第一存储器用于存储所述 块矩阵Dn/以及所述块矩阵DnR;所述第二存储器用于存储所述正常位置块 矩阵D^。
优选地,该解码芯片中的所述第一处理器还包括旋转指令接收单元,该旋 转指令接收单元用于在时间点to接收旋转启动指令。并且,所述地址计算单元 还包括有第三地址计算子单元用于根据所述旋转启动指令,计算将正常位 置块矩阵D,变换为旋转位置块矩阵D,后,D,存储至所述第一存储器中的地址。
优选地,该解码芯片中的所述旋转指令COMMANDl具体为第二处理 器读取存储于所述第一存储器中的所述块矩阵Dn/;将所述块矩阵D^,搬移 至第二存储器的所述ADRESS1中,得到Dn-,。
优选地,该解码芯片中的所述旋转指令COMMAND2具体为第二处理 器读取存储于第二存储器中的所述块矩阵Dn;将所述块矩阵Dn搬移至第一存 储器的所述ADRESS2中,得到DnR。
优选地,该解码芯片中的图像旋转系统还包括一 DMA控制器,所述DMA 控制器用于将每一个旋转块矩阵Dn/通过DMA方式搬移至所述ADRESS1 中;以及用于将每一个所述块矩阵Dn通过DMA方式〗般移至所述ADRESS2 中。
优选地,该解码芯片中的所述第一处理器为ARM处理器,所述第二处理 器为DSP处理器或者具有DSP架构的独立处理单元。 与现有技术相比,本发明具有以下优点
在旋转过程中,充分利用解码环节中,只有帧内预测、帧间预测或者环路 滤波的解码环节需要访问作为参考数据的、已经解码的块矩阵的特点,将旋转 过程嵌入在帧内预测、帧间预测或者环路滤波的执行过程中,采用由第一处理 器直接发送旋转的指令给第二处理器以进行相关处理的方式实现了图像的旋 转;同现有技术相比,不需要增加独立的旋转模块,从而,节省了内存的开销, 并且,也减少了内存在搬移过程中的计算量,减轻了系统的负担。


图1A是根据现有技术中的解码器中,块矩阵的存储方法示意图1B是根据本发明的旋转方法,旋转块矩阵在第一存储器中的存储示意
图1C是根据本发明的旋转方法,正常位置块矩阵在第二存储器中的存储 示意图2是根据本发明图像旋转系统实施例的详细结构示意图; 图3是根据本发明图像旋转系统另一实施例的详细结构示意图。 图4是根据本发明图像旋转方法实施例的旋转流程图; 图5是根据发明图像旋转方法实施例将块矩阵Dn/旋转为正常位置块矩 阵D^的流程图6是根据本发明图像旋转方法实施例将正常位置块矩阵Dn旋转为旋转 块矩阵D/的流程图7是根据本发明图像旋转方法实施例进行帧内预测时的旋转流程图; 图8是根据本发明图像旋转方法实施例进行帧间预测时的旋转流程图9是根据本发明图像旋转方法实施例进行环路滤波时的旋转流程图。
具体实施例方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。
本发明的核心思想是在解码过程中,将图像旋转嵌入在帧内预测、帧间 预测或者环路滤波的各个环节中。从而,无需在整个解码过程完成之后,增加 一个独立的模块来存储旋转图像。
具体的,解码器在执行帧内预测、帧间预测或者环路滤波的处理时,需要 两个存储器第一存储器和第二存储器。其中,第一存储器称为外部存储器, 用于存储已经解码的、处于正常位置的块矩阵数据,以作为解码当前块矩阵数 据时的参考块;第二存储器为内部存储器,以供处理器对参考快以及当前块的 差值进行运算,从而完成对当前块的解码,解码完成之后,再将结果存回第一 存储器。
如图1A所示,可以看出,当不需要进行图像旋转时,在第一存储器与第 二存储器之间的读取与保存过程中,不存在坐标的变换,是直接搬移,然后存 储。例如,将当前块矩阵从第二存储器直接搬移到第一存储器时,块矩阵的A 点、B点的存储地址是直接对应的。
参看图1B:
当需要在第 一存储器中存储处于旋转状态的块矩阵数据时,从第二存储器 中读取块矩阵101,计算块矩阵101处于所需的旋转状态下的新坐标,将其存 储在第一存储器中旋转后的地址上。块矩阵的A点、B点的存储地址是的对 应关系如图IB所示。
参看图1C:
当需要将第 一存储器中处于旋转状态的块矩阵数据,读取至第二存储器进 行帧内预测、帧间预测或者环路滤波的处理时,需要通过读取过程中的坐标变 换将块矩阵数据旋转回正常位置。例如,读取第一存储器的块矩阵102,计算 其处于正常位置下的新坐标,将其存储在第二存储器中的新坐标地址上。块矩 阵的A点、B点的存储地址是的对应关系如图1C所示。
态,即非旋转状态、左旋转状态以及右旋转状态三种情况下的块矩阵关系,通 过定义的矩阵关系可以进行读取或者存储地址的计算
正常情况下,块矩阵的在存储器中的地址为
start + giAVSYPitchLengthx Y + X;
左旋转状态下,块矩阵的在存储器中的地址为
start + giAVSYPitchLength x X + giAVSPicHeight — Y;
右旋转状态下,块矩阵的在存储器中的地址为
start + giAVSYPitchLength x (giAVSPicWi她InDs - X) + Y;
其中,start表示当前帧在所述存储单元中开始的位置坐标, giAVSYPitchLength代表当前帧一行的宽度,giAVSPicHeight表示当前帧的高 度,giAVSPicWidthlnDs表示当前帧以块为单位的帧宽度。
并且,上述的各个块矩阵Dn/、 D^、 Dn、 D/都为YUV数据结构的块 矩阵。
以下结合旋转系统实施例和旋转方法实施例对本发明加以详细的说明 :旋转系统实施例
下面结合图2至图3对本发明图〗象旋转系统作出详细说明。
参照图2、图2A、图2B 、图2C,其中,旋转系统包括第一处理器201、 第二处理器202、第一存储器203以及第二存储器204,其中
第一处理器201包括地址计算单元2A01和旋转指令生成单元2A02,其 中,地址计算单元2A01包括
第一地址计算子单元2B01:用于计算作为参考块的、旋转块矩阵Dn/旋 转为正常位置块矩阵Dw后,在第二存储器的存储地址ADRESS1;
第二地址计算子单元2B02:用于计算正常位置块矩阵Dn变换为旋转块矩 阵D/后,在第一存储器的存储地址ADRESS2;
指令生成单元包括2A02:
第一旋转指令生成子单元2C01:用于生成将Dn^旋转为D^、并携带有 将Dn.,存储于第一存储器地址的旋转指令COMMAND1;
第二旋转指令生成子单元2C02:用于生成将D。旋转为DnR、并携带有DnR 存储于第二存储器地址的旋转指令COMMAND2;
数据处理指令生成子单元2C03,用于生成完成帧内预测、帧间预测或者 环路滤波数据处理过程的指令COMMAND3;
第二处理器202用于执行旋转指令COMMAND1和COMMAND2;
第一存储器203用于存储作为参考块的已经旋转的块矩阵Dn/以及由第 二处理器202解码的已经旋转的块矩阵DnR;
第二存储器204用于存储将块矩阵Dn/旋转回正常位置的块矩阵数据
Dn-。
其中,旋转指令COMMAND1具体为指示第二处理器202读取存储于 第一存储器203中的块矩阵D。/;并将YUV旋转块Dn/搬移至第二存储器 104中的ADRESS1中以得到Dn-,。
旋转指令COMMAND2具体为第二处理器202读取存储于第二存储器 104中的块矩阵Dn;并将块矩阵Dn搬移至第一存储器203中的ADRESS2中 得到DnR。
进一步地,第一处理器还包括旋转指令接收单元,用于在时间点to接收 旋转启动指令;并且,所述地址计算单元还包括有第三地址计算子单元用 于根据所述旋转启动指令,计算将正常位置块矩阵D,变换为旋转位置块矩阵 D,k后,D,存储至所述第一存储器中的地址。
优选地,第一存储器选择SDRAM类型的存储器,第二存储器选择SRAM 类型的存储器,并且,上述的各个块矩阵都为YUV数据结构的块矩阵。
参照图3,示出了根据本发明图像旋转系统实施例的结构示意图,如图2 所示,旋转系统包括第一处理器301、第二处理器302、第一存储器303、 第二存储器304以及DMA控制器35,其中
第一处理器301用于计算块矩阵Dn/反向旋转为正常块D^后在第二存 储器304中的存储地址ADRESS1 、以及用于计算YUV块矩阵数据D。旋转为 块D/后在第一存储器303的存储地址ADRESS2;并且,用于向向第二处理 器302发送》走转指令COMMAND 1和COMMAND2,这里的COMMAND 1
和COMMAND2与上一实施例相同,在此不再赘述。
第二处理器302用于执行上述旋转指令C0MMAND1和COMMAND2;
第一存储器303用于存储作为参考块的已经旋转的块矩阵Dn/以及由第 二处理器解码的已经旋转的块矩阵DnR;
第二存储器304用于存储包括将块矩阵Dn/旋转回正常位置的块矩阵数 据D"
DMA控制器305用于将每一个存储于第一存储器303中的旋转块Dn/ 通过DMA方式搬移至第二存储器304的存储地址ADRESS1中;以及用于 将每一个存储于第二存储器304中的块Dn通过DMA方式搬移至第一存储器 303中的存储地址ADRESS2中。
优选地,第一处理器可以为ARM处理器,第二处理器可以为具有很强数 据处理能力的DSP处理器,当然,第二处理器的选择并不限于DSP处理器, 也可以选择具有DSP架构的其他独立处理单元。
同样地,第一存储器可以选择SDRAM类型的存储器,第二存储器选择 SRAM类型的存储器,并且,上述的各个块矩阵都为YUV数据结构的块矩阵。
^走转方法实施例
下面结合图4至图9对本发明图像旋转方法作出详细说明。 参照图4,示出了本发明图像旋转方法实施例的旋转流程图,具体包括如 下步骤
步骤401:读取存储于第一存储器中已经旋转的块矩阵数据Dn/,同时, 将Dn/旋转为正常块矩阵数据并保存在第二存储器中;
步骤402:利用第二存储器中的矩阵数据D^进行相应的帧内预测、帧间 预测或者环路滤波等处理,得到块矩阵数据Dn;
步骤403:将块矩阵数据Dn旋转,得到块矩阵数据D/,并保存在第一存 储器中。
其中,将Dn/旋转为正常块矩阵数据D^以及将块矩阵数据Dn旋转,得 到块矩阵数据D/是通过在读取和保存过程中的坐标变换而实现。
具体来说,可以通过第 一处理器向第二处理器发送旋转指令并由第二处理
器执行旋转指令来完成的,而旋转指令中则给出了在读取和保存过程中的坐标 变换的地址。
并且,D。/可以通过如下步骤获取
在时间点to,发出图像旋转指令;读取存储于第一存储器中的正常位置块 矩阵,并将所述正常位置块矩阵Dn-,保存在所述第二存储器中; 根据坐标变换,计算所述正常位置块矩阵Dn.,变换为旋转位置块矩阵Dn/时, 存储于所述第 一存储器中的地址。
根据所述地址,从所述第二存储器中读取正常位置块矩阵D^,并存储于 所述第一存储器的所述地址中,得到旋转位置块矩阵Dn/。
优选地,第一存储器选择SDRAM类型的存储器,第二存储器选择SRAM 类型的存储器,并且,上述的各个块矩阵都为YUV数据结构的块矩阵。
本实施例通过将旋转过程嵌入在解码的帧内预测、帧间预测或者环路滤波 中,从而省去了添加一个单独的用于实现旋转的模块,从而节省了内存的开销, 同时,也减少了内存的搬移次数,减少了计算量。
参照图5,示出了发明图像旋转方法实施例将块矩阵D。/旋转为正常位 置块矩阵D^的流程图,包括如下步骤
步骤501:第一处理器计算旋转块矩阵Dn/变换为正常位置块矩阵Dn_! 后在第二存储器的存储地址ADRESS1;
其中,根据前面已经定义的正常状态,即非旋转状态、左旋转状态以及右 旋转状态三种情况下的块YUV矩阵关系可以由第一处理器进行读取或者存储 地址的计算例如,对于分辨率是320*240的图像,对于Y: giAVSYPitchLength =384, giAVSPicHeight = 240,对于地址(X,Y)起始的块,如果Dn/处于左旋 转状态,依据
左旋转状态下,块矩阵的在存储器中的地址为
start + giAVSYPitchLength x X + giAVSPicHeight - Y;
则:第一处理器计算地址start+ 384x X + 240-Y;第二处理器才艮据上述 计算结果读取数据,从第一存储器读入一个块放入第二存储器的该地址中。
步骤502:第二处理器读取旋转块矩阵Dn/中的每一个旋转块;
步骤503:将每一个旋转块矩阵Dn.,R搬移至第二存储器的存储地址 ADRESS1中得到正常位置块矩阵D^。
其中,每一个存储于第一存储器中的旋转块块矩阵Dn/可以通过DMA 方式搬移至第二存储器的存储地址ADRESS1中;
参照图6,示出了根据本发明图像旋转方法实施例将正常位置块矩阵Dn 旋转为旋转块矩阵DnR的流程图,包括如下步骤
步骤601:第一处理器计算将正常位置块矩阵Dn旋转为旋转块矩阵DnR 后在第一存储器的存储地址ADRESS2;
其中,根据前面已经定义的正常状态,即非旋转状态、左旋转状态以及右 旋转状态三种情况下的块YUV矩阵关系可以由第一处理器进行读取或者存储 地址的计算例如,对于分辨率是320*240的图像,对于Y: giAVSYPitchLength =384, giAVSPicHeight = 240,对于地址(X,Y)起始的块,如果D/将要处于左 旋转状态,依据
左旋转状态下,块矩阵的在存储器中的地址为
start + giAVSYPitchLength x X + giAVSPicHeight - Y;
则:第一处理器计算地址start+ 384x X + 240-Y;第二处理器才艮据上述 计算结果读取数据,从第二存储器读入一个块放入第一存储器的该地址中。
步骤602:第二处理器读取第二存储器中的正常位置块矩阵Dn;
步骤603:将第二存储器中的正常位置块矩阵Dn搬移至第一存储器存储 地址ADRESS2中得到DnR。
其中,每一个存储于第二存储器中的正常位置块矩阵Dn通过DMA方式 搬移至第一存储器存储地址ADRESS2中。
优选地,第一存储器选择SDRAM类型的存储器,第二存储器选择SRAM 类型的存储器。
参照图7,示出了根据本发明图像旋转方法实施例进行帧内预测时的旋转 流程图,包括如下步骤
步骤701:由第一处理器进行当前块的熵解码,并由所述第二处理器依次 进行反扫描、反量化、反DCT并将产生的残差数据Bn存储于第二存储器中;
步骤702:由第二处理器将所述正常位置块矩阵Dw与残差数据B。相加。 对于帧内预测来说,旋转的基本单元是8x8、 16x8、 8xl6或者16xl6的宏块。
参照图8,示出了根据本发明图像旋转方法实施例进行帧间预测时的旋转 流程图,包括如下步骤
步骤801:第一处理器进行熵解码;
步骤802:第二处理器依次进行反扫描、反量化、反DCT并将当前块产 生的残差凝:据Cn存储于第二存储器中;
步骤803:将存储于第一存储器中的作为参考块的旋转块矩阵Dn/旋转 为正常位置块矩阵并保存于第二存储器中;
步骤804:将正常位置块矩阵D^进行插值运算,得到D'n—,;
步骤805:将残差数据Cn与D'^相加,得到当前块的正常位置块矩阵Dn;
步骤806:将正常位置块矩阵Dn旋转输出到第一存储器的相应位置。
举例来说,在执行步骤803时,如果移动终端旋转之后处于左旋转的位置 状态,则,从第一存储器读取数据的过程中,首先将参考块的旋转块矩阵Dn/ 进行反向旋转,即向右旋转,并将旋转的结果D^保存在第二存储器中。
接下来,执行完步骤803、步骤804后,在执行步骤806时,从第二存储 器读取正常位置块矩阵Dn的过程中,首先将当前矩阵块Dn进行向左旋转,将 旋转的结果DnR保存在第 一存储器中。
并且,根据前面已经定义的正常状态,即非旋转状态、左旋转状态以及右 旋转状态三种情况下的块YUV矩阵关系可以由第一处理器进行读取或者存储 地址的计算例如,对于分辨率是320*240的图像,对于Y: giAVSYPitchLength =384, giAVSPicHeight = 240,对于地址(X,Y)起始的块,如果是向左旋转,依 据..
左旋转状态下,块YUV矩阵的在存储器中的地址为 start + giAVSYPitchLength x X + giAVSPicHeight — Y; 则:第一处理器计算地址start+ 384x X + 240-Y;第二处理器根据上述 计算结果读取数据,从第一存储器读入一个块放入第二存储器的该地址中。
优选地,第一存储器选择SDRAM类型的存储器,第二存储器选择SRAM 类型的存储器。
对于帧间预测来说,旋转的基本单元是8x8、 16x8、 8xl6或者16x16的宏块。
参照图9,示出了根据本发明图像旋转方法实施例进行环路滤波时的旋转 流程图,进行环路滤波时,所述D^为8x6或者6x8的图像块,所述图像块 是由帧内预测/帧间预测解码出来的图像划分得到的,包括如下步骤
步骤901:对当前图像块的边缘进行环路滤波,得到环路滤波的差值L。;
步骤902:将所述正常位置块矩阵与环路滤波的差值Lj目加。
在具体实现上述方法的过程中,可以选择ARM处理器作为第一处理器, 选择DSP为第二处理器,由ARM处理器与DSP处理器共同完成图像的旋转, 具体地说,ARM处理器为处于主处理器的地位,通过ARM处理器向DSP处 理器发送指令,由DSP处理器具体执行上述指令。当然,第二处理器的选择 并不限于DSP处理器,也可以选择具有DSP架构的其他独立处理单元。
根据本发明的实施例,还提供了一种解码芯片,在该解码芯片中,包括上 面所描述的图像旋转系统。由于图像旋转系统已经做了详细的描述,在此,包 括该图4象旋转系统的AVS解码芯片不再赘述。
进一步地,上述解码芯片可以是一种提供CMMB接收的AVS解码芯片, 在该AVS解码芯片中,包括上面所描述的图〗象旋转系统。
综上,在本发明中
将旋转过程嵌入在解码的帧内预测、帧间预测或者环路滤波中读取存储于 第一存储器中的作为参考块矩阵时,将旋转后的上述块矩阵旋转回来,保存在 第二存储器中,然后进行相应的处理以后,再保存回第一存储器中;同现有技 术相比,不需要增加独立的旋转模块,从而,减小了内存的开销,并且,也减 少了内存在搬移过程中的计算量,减轻了系统的负担。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的 都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即 可。对于解码芯片,由于其与方法实施例、系统实施例的原理基本相似,所以
描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种图像旋转方法、图像旋转系统、解码芯片进行
以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于 本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均 会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
权利要求
1、一种图像旋转系统,其特征在于,包括第一处理器、第二处理器、第一存储器、第二存储器,所述第一处理器包括地址计算单元和旋转指令生成单元,其中,地址计算单元包括第一地址计算子单元用于计算作为参考块的、旋转块矩阵Dn-1R旋转为正常位置块矩阵Dn-1后,在第二存储器的存储地址ADRESS1;第二地址计算子单元用于计算正常位置块矩阵Dn变换为旋转块矩阵DnR后,在第一存储器的存储地址ADRESS2;指令生成单元包括第一旋转指令生成子单元用于生成将所述Dn-1R旋转为Dn-1、并携带有将所述Dn-1存储于第一存储器地址的旋转指令COMMAND1;第二旋转指令生成子单元用于生成将所述Dn旋转为所述DnR、并携带有所述DnR存储于所述第二存储器地址的旋转指令COMMAND2;数据处理指令生成子单元,用于生成完成帧内预测、帧间预测或者环路滤波数据处理过程的指令COMMAND3;所述第二处理器用于根据所述ADRESS1执行旋转指令COMMAND1、根据所述ADRESS2执行旋转指令COMMAND2;以及,执行指令COMMAND3;所述第一存储器用于存储所述块矩阵Dn-1R以及所述块矩阵DnR;所述第二存储器用于存储所述正常位置块矩阵Dn-1。
2、 根据权利要求1所述的图像旋转系统,其特征在于,所述第一处理器 还包括旋转指令接收单元,用于在时间点t。接收旋转启动指令;并且,所述地址计算单元还包括有第三地址计算子单元用于根据所述旋转启动指令,计算将正常位置块矩阵D!变换为旋转位置块矩阵D,后,DtR存储至所述第 一存储器中的地址。
3、 根据权利要求2所述的图像旋转系统,其特征在于,所述旋转指令 COMMAND 1具体为第二处理器读取存储于所述第一存储器中的所述块矩阵Dn/; 将所述块矩阵Dn/搬移至第二存储器的所述ADRESSl中,得到D^。
4、 根据权利要求3所述的图像旋转系统,其特征在于,所述旋转指令 COMMAND2具体为第二处理器读取存储于第二存储器中的所述块矩阵Dn; 将所述块矩阵Dn搬移至第一存储器的所述ADRESS2中,得到DnR。
5、 根据权利要求4所述的图像旋转系统,其特征在于,还包括一 DMA 控制器,所述DMA控制器用于将每一个旋转块矩阵Dn/通过DMA方式搬移 至所述ADRESS1中;以及用于将每一个所述块矩阵Dn通过DMA方式搬移至所述ADRESS2中。
6、 才艮据权利要求5所述的图像旋转系统,其特征在于,所述第一处理器 为ARM处理器,所述笫二处理器为DSP处理器或者具有DSP架构的独立处 理单元。
7、 一种图像旋转方法,其特征在于,将旋转过程嵌入在解码的帧内预测、 帧间预测或者环路滤波中,具体包括如下步骤读耳又存储于所述第一存储器中所述作为参考块的、旋转块矩阵数据Dn/, 将所述D。/旋转为正常位置块矩阵DM并保存在第二存储器中;利用第二存储器中的所述正常位置块矩阵Dn_,进行相应的帧内预测、帧间 预测或者环路滤波的处理,得到块矩阵数据Dn;将所述块矩阵数据Dn旋转,得到旋转块矩阵D/,并保存在所述第一存 储器中;其中,将所述块矩阵Dn/旋转为正常块矩阵Dn_,以及将所述块矩阵Dn旋 转得到旋转块矩阵D/是通过在读取和保存过程中的坐标变换而实现。
8、 根据权利要求7所述的图像旋转方法,其特征在于,所述方法进一步 包括在启动旋转时,通过如下步骤获取所述D,:在启动时间点to,发出图像旋转启动指令;读取存储于第一存储器中的正常位置块矩阵D!,并将所述正常位置块矩 阵D,保存在所述第二存储器中;根据坐标变换,计算所述正常位置块矩阵Di变换为旋转位置块矩阵D, 时存储于所述第 一存储器中的地址; 从所述第二存储器中读取正常位置块矩阵Dl5并存储至所述第一存储器 的所述地址中,得到旋转位置块矩阵D^。
9、 根据权利要求8所述的图像旋转方法,其特征在于,将所述旋转块矩 阵Dn/旋转为正常位置块矩阵的旋转指令具体为第一处理器计算所述旋转块矩阵Dn/旋转为正常位置块矩阵D^后,在第二存储器的存储地址ADRESS1;第二处理器读取所述旋转块矩阵Dn/中的每一个旋转块矩阵; 将所述旋转块矩阵D。/搬移至第二存储器的ADRESS1中,得到正常位置块矩阵Dn.,。
10、 根据权利要求9所述的图像旋转方法,其特征在于,将块矩阵Dn旋 转,得到矩阵数据DnR的旋转指令具体为第一处理器计算所述正常位置块矩阵Dn旋转为旋转块矩阵D/后,在 第一存储器的存储地址ADRESS2;第二处理器读取所述第二存储器中的正常位置块矩阵Dn;将所述正常位置块矩阵D。搬移至第一存储器的ADRESS2中,得到旋转 块矩阵DnR。
11、 根据权利要求IO所述的图像旋转方法,其特征在于, 所述旋转块矩阵Dn/通过DMA方式,搬移至第二存储器的ADRESS1中,得到正常位置块矩阵D^;以及所述正常位置块矩阵Dn通过DMA方式,搬移至第一存储器的ADRESS2 中,得到旋转块矩阵D/。
12、 根据权利要求11所述的图像处理方法,其特征在于,利用所述正常 位置块矩D^作为参考块,进行帧内预测时,所述为D^为8x8、 16x8、 8x 16或者16x 16的宏块,包括如下步骤由第一处理器进行当前块的熵解码,并由所述第二处理器依次进行反扫 描、反量化、反DCT并将产生的残差数据Bn存储于第二存储器中; 由第二处理器将所述正常位置块矩阵与残差数据Bn相加。
13、 根据权利要求11所述的图像处理方法,其特征在于,利用所述正常位置块矩阵Dn-,作为参考块,进行帧间预测时,所述D^为8x8、 16x8、 8x 16或者16x 16的宏块,包括如下步骤由第 一处理器进行当前帧的当前块的熵解码,并由第二处理器依次进行反 扫描、反量化、反DCT并将当前块产生的残差数据Cn存储于所述第二存储器中;由所述第二处理器将所述正常位置块矩阵D^与进行插值运算,得到D'^; 由第二处理器将所述块矩阵数据Dn.,与残差数据Cn相加。
14、 才艮据权利要求11所述的图像处理方法,其特征在于,利用所述正常 位置块矩阵作为参考块,进行环路滤波时,所述Dn.,为8 x 6或者6 x 8的 图像块,所述图像块是由帧内预测/帧间预测解码出来的图像划分得到的,包 括如下步骤对当前图像块的边缘进行环路滤波,得到环路滤波的差值Ln; 将所述正常位置块矩阵与环路滤波的差值Ln相加。
15、 根据权利要求7所述的图像旋转方法,其特征在于,所述第一处理器 为ARM处理器,所述第二处理器为DSP处理器或者具有DSP架构的独立处 理单元。
16、 一种解码芯片,其特征在于,所述解码芯片包括一图像旋转系统,所 述图像旋转系统包括包括第一处理器、第二处理器、第一存储器、第二存储 器,所述第一处理器包括地址计算单元和旋转指令生成单元,其中,地址计算 单元包括第一地址计算子单元用于计算作为参考块的、旋转块矩阵Dn/旋转为 正常位置块矩阵D^后,在第二存储器的存储地址ADRESS1;第二地址计算子单元用于计算正常位置块矩阵Dn变换为旋转块矩阵DnR 后,在第一存储器的存储地址ADRESS2;指令生成单元包括第一旋转指令生成子单元用于生成将所述D。/旋转为D^、并携带有 将所述Dn.,存储于第一存储器地址的旋转指令COMMAND1;第二旋转指令生成子单元用于生成将所述Dn旋转为所述DnR、并携带 有所述D/存储于所述第二存储器地址的旋转指令COMMAND2;数据处理指令生成子单元,用于生成完成帧内预测、帧间预测或者环路滤 波数据处理过程的指令COMMAND3;所述第二处理器用于根据所述ADRESS1执行旋转指令COMMAND1 、根 据所述ADRESS2执行旋转指令COMMAND2;以及,执行指令COMMAND3;所述第一存储器用于存储所述块矩阵Dn.,R以及所述块矩阵DnR;所述第二存储器用于存储所述正常位置块矩阵Dn_,。
17、 才艮据权利要求16所述的解码芯片,其特征在于,所述第一处理器还 包括旋转指令接收单元,用于在时间点to接收旋转启动指令;并且,所述地址计算单元还包括有第一地址计算子单元用于根据所述旋转启动指令,计算将正常位置块矩阵Di变换为旋转位置块矩阵D:后,存储至所述第一存储器中的地址。
18、 根据权利要求17所述的解码芯片,其特征在于,所述旋转指令 COMMAND 1具体为第二处理器读取存储于所述第 一存储器中的所述块矩阵Dn/; 将所述块矩阵Dn/搬移至第二存储器的所述ADRESSl中,得到Dn小
19、 根据权利要求18所述的解码芯片,其特征在于,所述旋转指令 COMMAND2具体为第二处理器读取存储于第二存储器中的所述块矩阵Dn; 将所述块矩阵Dn搬移至第一存储器的所述ADRESS2中,得到DnR。
20、 根据权利要求19所述的解码芯片,其特征在于,还包括一DMA控 制器,所述DMA控制器用于将每一个旋转块矩阵Dn—,K通过DMA方式搬移至 所述ADRESS1中;以及用于将每一个所述块矩阵D。通过DMA方式搬移至所述ADRESS2中。
21、 根据权利要求16所述的解码芯片,其特征在于,所述第一处理器为 ARM处理器,所述第二处理器为DSP处理器或者具有DSP架构的独立处理 单元。
全文摘要
本发明提供了一种图像旋转方法,该方法将旋转过程嵌入在解码的帧内预测、帧间预测或者环路滤波中,具体包括读取存储于第一存储器中作为参考块的、旋转块矩阵数据D<sub>n-1</sub><sup>R</sup>,将D<sub>n-1</sub><sup>R</sup>旋转为正常位置块矩阵D<sub>n-1</sub>并保存在第二存储器中;利用第二存储器中的正常位置块矩阵D<sub>n-1</sub>进行相应的帧内预测、帧间预测或者环路滤波的处理,得到块矩阵数据D<sub>n</sub>;将块矩阵D<sub>n</sub>旋转,得到旋转块矩阵D<sub>n</sub><sup>R</sup>,并保存在第一存储器中。本发明不需要增加独立的旋转模块,从而,节省了内存的开销,并且,减少了内存在搬移过程中的计算量,从而,减轻了系统的负担。
文档编号G06T3/00GK101388947SQ20081022370
公开日2009年3月18日 申请日期2008年10月8日 优先权日2008年10月8日
发明者吕义柱, 辉 张, 王洪仁, 王西强, 邓云庆, 郭洛玮 申请人:北京创毅视讯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1