首页> 中国专利> 图像旋转系统、图像旋转方法、解码芯片

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

摘要

本发明提供了一种图像旋转方法,该方法将旋转过程嵌入在解码的帧内预测、帧间预测或者环路滤波中,具体包括:读取存储于第一存储器中作为参考块的、旋转块矩阵数据Dn-1R,将Dn-1R旋转为正常位置块矩阵Dn-1并保存在第二存储器中;利用第二存储器中的正常位置块矩阵Dn-1进行相应的帧内预测、帧间预测或者环路滤波的处理,得到块矩阵数据Dn;将块矩阵Dn旋转,得到旋转块矩阵DnR,并保存在第一存储器中。本发明不需要增加独立的旋转模块,从而,节省了内存的开销,并且,减少了内存在搬移过程中的计算量,从而,减轻了系统的负担。

著录项

  • 公开/公告号CN101388947A

    专利类型发明专利

  • 公开/公告日2009-03-18

    原文格式PDF

  • 申请/专利权人 北京创毅视讯科技有限公司;

    申请/专利号CN200810223705.4

  • 申请日2008-10-08

  • 分类号H04N1/387(20060101);G06T3/60(20060101);

  • 代理机构11315 北京国昊天诚知识产权代理有限公司;

  • 代理人顾惠忠

  • 地址 100084 北京市海淀区中关村东路1号院8号楼清华科技园科技大厦A座803

  • 入库时间 2023-12-17 21:36:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-09-25

    未缴年费专利权终止 IPC(主分类):H04N1/387 授权公告日:20110406 终止日期:20171008 申请日:20081008

    专利权的终止

  • 2015-11-11

    专利权的转移 IPC(主分类):H04N1/387 登记生效日:20151020 变更前: 变更后: 申请日:20081008

    专利申请权、专利权的转移

  • 2011-04-06

    授权

    授权

  • 2009-05-13

    实质审查的生效

    实质审查的生效

  • 2009-03-18

    公开

    公开

说明书

技术领域

本发明涉及图像旋转处理领域,具体地说,涉及一种图像旋转系统、图像旋转方法、解码芯片。

背景技术

数字视频技术在通信和广播领域获得了日益广泛的应用,特别是20世纪90年代以来,随着Intemet和移动通信的迅猛发展,视频信息和多媒体信息在移动网络中的处理和传输技术成了当前我国信息化的热点。中国移动多媒体广播(CMMB,China Mobile Multimedia Broadcasting)应运而生。

CMMB是由国家广播电影电视总局建立的具有自主知识产权的数字多媒体广播系统,通过卫星和地面无线广播的方式,可供七寸以下小屏幕、小尺寸、移动便携的手持类终端随时随地接收广播电视节目和信息服务等业务,从而,使人们的娱乐和信息生活方式发生了巨大的变化,创造新的收视习惯和消费时尚。

由于如CMMB等移动多媒体广播技术的不断发展,具有静态图像旋转功能的多媒体移动终端越来越深入人心;而具有视频旋转功能的移动终端更是得到了众多消费者的喜爱。为了满足消费者的需求,业内的相关产品,包括手机、PDA、MP3/MP4播放器、数码相机以及笔记本电脑等接收设备中纷纷添加了静态图像旋转、视频旋转的图像旋转功能。

但是,就目前而言,移动终端的图像旋转技术的实现方式是:在视频解码器中增加一个独立的专用于图像旋转的旋转模块,该旋转模块用于将存储器中解码出来的宏块矩阵根据实际的需要进行旋转,然后输出到显示屏上去,这种方法的好处是简单易行,缺点是需要在内存中占用一个独立的旋转模块来进行,因而增加了内存的开销;并且,在旋转的过程中涉及到内存的搬移,而内存的搬移所涉及到的计算量比较大,且耗费时间,因此加重了系统的负担。

有鉴于此,需要本领域技术人员迫切解决的一个技术问题就是:提供一种图像旋转的方法,以解决现有技术中在实现图像旋转过程中存在的内存开销大,计算量大、系统负担重的问题。

发明内容

本发明所要解决的技术问题是提供一种图像旋转系统、图像旋转方法、解码芯片,以解决在实现图像旋转过程中,内存开销大以及内存搬移所产生的计算量大、耗费时间长等问题。

为了解决上述问题,本发明公开了一种图像旋转系统,该图像旋转系统包括第一处理器、第二处理器、第一存储器、第二存储器,所述第一处理器包括地址计算单元和旋转指令生成单元,其中,地址计算单元包括第一地址计算子单元和第二地址计算子单元:第一地址计算子单元,用于计算作为参考块的、旋转块矩阵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

优选地,所述第一处理器还包括旋转指令接收单元,该旋转指令接收单元用于在时间点t0接收旋转启动指令。并且,所述地址计算单元还包括有:第三地址计算子单元:用于根据所述旋转启动指令,计算将正常位置块矩阵D1变换为旋转位置块矩阵D1R后,D1R存储至所述第一存储器中的地址。

优选地,所述旋转指令COMMAND1具体为:第二处理器读取存储于所述第一存储器中的所述块矩阵Dn-1R;将所述块矩阵Dn-1R搬移至第二存储器的所述ADRESS1中,得到Dn-1

优选地,所述旋转指令COMMAND2具体为:第二处理器读取存储于第二存储器中的所述块矩阵Dn;将所述块矩阵Dn搬移至第一存储器的所述ADRESS2中,得到DnR

优选地,图像旋转系统还包括一DMA控制器,所述DMA控制器用于将每一个旋转块矩阵Dn-1R通过DMA方式搬移至所述ADRESS1中;以及用于将每一个所述块矩阵Dn通过DMA方式搬移至所述ADRESS2中。

优选地,所述第一处理器为ARM处理器,所述第二处理器为DSP处理器或者具有DSP架构的独立处理单元。

本发明还公开了一种图像旋转方法,该方法将旋转过程嵌入在解码的帧内预测、帧间预测或者环路滤波中,具体包括如下步骤:读取存储于所述第一存储器中所述作为参考块的、旋转块矩阵数据Dn-1R,将所述Dn-1R旋转为正常位置块矩阵Dn-1并保存在第二存储器中;利用第二存储器中的所述正常位置块矩阵Dn-1进行相应的帧内预测、帧间预测或者环路滤波的处理,得到块矩阵数据Dn;将所述块矩阵数据Dn旋转,得到旋转块矩阵DnR,并保存在所述第一存储器中;其中,将所述块矩阵Dn-1R旋转为正常块矩阵Dn-1以及将所述块矩阵Dn旋转得到旋转块矩阵DnR是通过在读取和保存过程中的坐标变换而实现。

优选地,所述方法进一步包括:在启动旋转时,通过如下步骤获取所述D1R:在启动时间点t0,发出图像旋转启动指令;读取存储于第一存储器中的正常位置块矩阵D1,并将所述正常位置块矩阵D1保存在所述第二存储器中;根据坐标变换,计算所述正常位置块矩阵D1变换为旋转位置块矩阵D1R时存储于所述第一存储器中的地址;从所述第二存储器中读取正常位置块矩阵D1,并存储至所述第一存储器的所述地址中,得到旋转位置块矩阵D1R

优选地,将所述旋转块矩阵Dn-1R旋转为正常位置块矩阵Dn-1的旋转指令具体为:第一处理器计算:所述旋转块矩阵Dn-1R旋转为正常位置块矩阵Dn-1后,在第二存储器的存储地址ADRESS1;第二处理器读取所述旋转块矩阵Dn-1R中的每一个旋转块矩阵;将所述旋转块矩阵Dn-1R搬移至第二存储器的ADRESS1中,得到正常位置块矩阵Dn-1

优选地,将块矩阵Dn旋转,得到矩阵数据DnR的旋转指令具体为:第一处理器计算:所述正常位置块矩阵Dn旋转为旋转块矩阵DnR后,在第一存储器的存储地址ADRESS2;第二处理器读取所述第二存储器中的正常位置块矩阵Dn;将所述正常位置块矩阵Dn搬移至第一存储器的ADRESS2中,得到旋转块矩阵DnR

优选地,所述旋转块矩阵Dn-1R通过DMA方式,搬移至第二存储器的ADRESS1中,得到正常位置块矩阵Dn-1;以及,所述正常位置块矩阵Dn通过DMA方式,搬移至第一存储器的ADRESS2中,得到旋转块矩阵DnR

优选地,利用所述正常位置块矩Dn-1作为参考块,进行帧内预测时,所述为Dn-1为8×8、16×8、8×16或者16×16的宏块,包括如下步骤:由第一处理器进行当前块的熵解码,并由所述第二处理器依次进行反扫描、反量化、反DCT并将产生的残差数据Bn存储于第二存储器中;由第二处理器将所述正常位置块矩阵Dn-1与残差数据Bn相加。

优选地,利用所述正常位置块矩Dn-1作为参考块,进行帧内预测时,所述为Dn-1为8×8、16×8、8×16或者16×16的宏块,包括如下步骤:由第一处理器进行当前帧的当前块的熵解码,并由第二处理器依次进行反扫描、反量化、反DCT并将当前块产生的残差数据Cn存储于所述第二存储器中;由所述第二处理器将所述正常位置块矩阵Dn-1与进行插值运算,得到;由第二处理器将所述块矩阵数据与残差数据Cn相加。

优选地,利用所述正常位置块矩阵Dn-1作为参考块,进行环路滤波时,所述Dn-1为8×6或者6×8的图像块,所述图像块是由帧内预测/帧间预测解码出来的图像划分得到的,包括如下步骤:对当前图像块的边缘进行环路滤波,得到环路滤波的差值Ln;将所述正常位置块矩阵Dn-1与环路滤波的差值Ln相加。

优选地,所述第一处理器为ARM处理器,所述第二处理器为DSP处理器或者具有DSP架构的独立处理单元。

本发明还公开了一种解码芯片,所述解码芯片包括一图像旋转系统,该图像旋转系统包括第一处理器、第二处理器、第一存储器、第二存储器,所述第一处理器包括地址计算单元和旋转指令生成单元,其中,地址计算单元包括第一地址计算子单元和第二地址计算子单元:第一地址计算子单元,用于计算作为参考块的、旋转块矩阵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

优选地,该解码芯片中的所述第一处理器还包括旋转指令接收单元,该旋转指令接收单元用于在时间点t0接收旋转启动指令。并且,所述地址计算单元还包括有:第三地址计算子单元:用于根据所述旋转启动指令,计算将正常位置块矩阵D1变换为旋转位置块矩阵D1R后,D1R存储至所述第一存储器中的地址。

优选地,该解码芯片中的所述旋转指令COMMAND1具体为:第二处理器读取存储于所述第一存储器中的所述块矩阵Dn-1R;将所述块矩阵Dn-1R搬移至第二存储器的所述ADRESS1中,得到Dn-1

优选地,该解码芯片中的所述旋转指令COMMAND2具体为:第二处理器读取存储于第二存储器中的所述块矩阵Dn;将所述块矩阵Dn搬移至第一存储器的所述ADRESS2中,得到DnR

优选地,该解码芯片中的图像旋转系统还包括一DMA控制器,所述DMA控制器用于将每一个旋转块矩阵Dn-1R通过DMA方式搬移至所述ADRESS1中;以及用于将每一个所述块矩阵Dn通过DMA方式搬移至所述ADRESS2中。

优选地,该解码芯片中的所述第一处理器为ARM处理器,所述第二处理器为DSP处理器或者具有DSP架构的独立处理单元。

与现有技术相比,本发明具有以下优点:

在旋转过程中,充分利用解码环节中,只有帧内预测、帧间预测或者环路滤波的解码环节需要访问作为参考数据的、已经解码的块矩阵的特点,将旋转过程嵌入在帧内预测、帧间预测或者环路滤波的执行过程中,采用由第一处理器直接发送旋转的指令给第二处理器以进行相关处理的方式实现了图像的旋转;同现有技术相比,不需要增加独立的旋转模块,从而,节省了内存的开销,并且,也减少了内存在搬移过程中的计算量,减轻了系统的负担。

附图说明

图1A是根据现有技术中的解码器中,块矩阵的存储方法示意图;

图1B是根据本发明的旋转方法,旋转块矩阵在第一存储器中的存储示意图;

图1C是根据本发明的旋转方法,正常位置块矩阵在第二存储器中的存储示意图;

图2是根据本发明图像旋转系统实施例的详细结构示意图;

图3是根据本发明图像旋转系统另一实施例的详细结构示意图。

图4是根据本发明图像旋转方法实施例的旋转流程图;

图5是根据发明图像旋转方法实施例将块矩阵Dn-1R旋转为正常位置块矩阵Dn-1的流程图;

图6是根据本发明图像旋转方法实施例将正常位置块矩阵Dn旋转为旋转块矩阵DnR的流程图;

图7是根据本发明图像旋转方法实施例进行帧内预测时的旋转流程图;

图8是根据本发明图像旋转方法实施例进行帧间预测时的旋转流程图;

图9是根据本发明图像旋转方法实施例进行环路滤波时的旋转流程图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

本发明的核心思想是:在解码过程中,将图像旋转嵌入在帧内预测、帧间预测或者环路滤波的各个环节中。从而,无需在整个解码过程完成之后,增加一个独立的模块来存储旋转图像。

具体的,解码器在执行帧内预测、帧间预测或者环路滤波的处理时,需要两个存储器:第一存储器和第二存储器。其中,第一存储器称为外部存储器,用于存储已经解码的、处于正常位置的块矩阵数据,以作为解码当前块矩阵数据时的参考块;第二存储器为内部存储器,以供处理器对参考快以及当前块的差值进行运算,从而完成对当前块的解码,解码完成之后,再将结果存回第一存储器。

如图1A所示,可以看出,当不需要进行图像旋转时,在第一存储器与第二存储器之间的读取与保存过程中,不存在坐标的变换,是直接搬移,然后存储。例如,将当前块矩阵从第二存储器直接搬移到第一存储器时,块矩阵的A点、B点的存储地址是直接对应的。

参看图1B:

当需要在第一存储器中存储处于旋转状态的块矩阵数据时,从第二存储器中读取块矩阵101,计算块矩阵101处于所需的旋转状态下的新坐标,将其存储在第一存储器中旋转后的地址上。块矩阵的A点、B点的存储地址是的对应关系如图1B所示。

参看图1C:

当需要将第一存储器中处于旋转状态的块矩阵数据,读取至第二存储器进行帧内预测、帧间预测或者环路滤波的处理时,需要通过读取过程中的坐标变换将块矩阵数据旋转回正常位置。例如,读取第一存储器的块矩阵102,计算其处于正常位置下的新坐标,将其存储在第二存储器中的新坐标地址上。块矩阵的A点、B点的存储地址是的对应关系如图1C所示。

读取块矩阵和保存块矩阵过程中的坐标变换是这样进行的:定义正常状态,即非旋转状态、左旋转状态以及右旋转状态三种情况下的块矩阵关系,通过定义的矩阵关系可以进行读取或者存储地址的计算:

正常情况下,块矩阵的在存储器中的地址为:

start+giAVSYPitchLength×Y+X;

左旋转状态下,块矩阵的在存储器中的地址为:

start+giAVSYPitchLength×X+giAVSPicHeight-Y;

右旋转状态下,块矩阵的在存储器中的地址为:

start+giAVSYPitchLength×(giAVSPicWidthInDs-X)+Y;

其中,start表示当前帧在所述存储单元中开始的位置坐标,giAVSYPitchLength代表当前帧一行的宽度,giAVSPicHeight表示当前帧的高度,giAVSPicWidthInDs表示当前帧以块为单位的帧宽度。

并且,上述的各个块矩阵Dn-1R、Dn-1、Dn、DnR都为YUV数据结构的块矩阵。

以下结合旋转系统实施例和旋转方法实施例对本发明加以详细的说明:

旋转系统实施例:

下面结合图2至图3对本发明图像旋转系统作出详细说明。

参照图2、图2A、图2B、图2C,其中,旋转系统包括:第一处理器201、第二处理器202、第一存储器203以及第二存储器204,其中:

第一处理器201包括地址计算单元2A01和旋转指令生成单元2A02,其中,地址计算单元2A01包括:

第一地址计算子单元2B01:用于计算作为参考块的、旋转块矩阵Dn-1R旋转为正常位置块矩阵Dn-1后,在第二存储器的存储地址ADRESS1;

第二地址计算子单元2B02:用于计算正常位置块矩阵Dn变换为旋转块矩阵DnR后,在第一存储器的存储地址ADRESS2;

指令生成单元包括2A02:

第一旋转指令生成子单元2C01:用于生成将Dn-1R旋转为Dn-1、并携带有将Dn-1存储于第一存储器地址的旋转指令COMMAND1;

第二旋转指令生成子单元2C02:用于生成将Dn旋转为DnR、并携带有DnR存储于第二存储器地址的旋转指令COMMAND2;

数据处理指令生成子单元2C03,用于生成完成帧内预测、帧间预测或者环路滤波数据处理过程的指令COMMAND3;

第二处理器202用于执行旋转指令COMMAND1和COMMAND2;

第一存储器203用于存储作为参考块的已经旋转的块矩阵Dn-1R以及由第二处理器202解码的已经旋转的块矩阵DnR

第二存储器204用于存储将块矩阵Dn-1R旋转回正常位置的块矩阵数据Dn-1

其中,旋转指令COMMAND1具体为:指示第二处理器202读取存储于第一存储器203中的块矩阵Dn-1R;并将YUV旋转块Dn-1R搬移至第二存储器104中的ADRESS1中以得到Dn-1

旋转指令COMMAND2具体为:第二处理器202读取存储于第二存储器104中的块矩阵Dn;并将块矩阵Dn搬移至第一存储器203中的ADRESS2中得到DnR

进一步地,第一处理器还包括:旋转指令接收单元,用于在时间点t0接收旋转启动指令;并且,所述地址计算单元还包括有:第三地址计算子单元:用于根据所述旋转启动指令,计算将正常位置块矩阵D1变换为旋转位置块矩阵D1R后,D1R存储至所述第一存储器中的地址。

优选地,第一存储器选择SDRAM类型的存储器,第二存储器选择SRAM类型的存储器,并且,上述的各个块矩阵都为YUV数据结构的块矩阵。

参照图3,示出了根据本发明图像旋转系统实施例的结构示意图,如图2所示,旋转系统包括:第一处理器301、第二处理器302、第一存储器303、第二存储器304以及DMA控制器35,其中:

第一处理器301用于计算块矩阵Dn-1R反向旋转为正常块Dn-1后在第二存储器304中的存储地址ADRESS1、以及用于计算YUV块矩阵数据Dn旋转为块DnR后在第一存储器303的存储地址ADRESS2;并且,用于向向第二处理器302发送旋转指令COMMAND1和COMMAND2,这里的COMMAND1和COMMAND2与上一实施例相同,在此不再赘述。

第二处理器302用于执行上述旋转指令COMMAND1和COMMAND2;

第一存储器303用于存储作为参考块的已经旋转的块矩阵Dn-1R以及由第二处理器解码的已经旋转的块矩阵DnR

第二存储器304用于存储包括将块矩阵Dn-1R旋转回正常位置的块矩阵数据Dn-1

DMA控制器305用于将每一个存储于第一存储器303中的旋转块Dn-1R通过DMA方式搬移至第二存储器304的存储地址ADRESS1中;以及:用于将每一个存储于第二存储器304中的块Dn通过DMA方式搬移至第一存储器303中的存储地址ADRESS2中。

优选地,第一处理器可以为ARM处理器,第二处理器可以为具有很强数据处理能力的DSP处理器,当然,第二处理器的选择并不限于DSP处理器,也可以选择具有DSP架构的其他独立处理单元。

同样地,第一存储器可以选择SDRAM类型的存储器,第二存储器选择SRAM类型的存储器,并且,上述的各个块矩阵都为YUV数据结构的块矩阵。

旋转方法实施例:

下面结合图4至图9对本发明图像旋转方法作出详细说明。

参照图4,示出了本发明图像旋转方法实施例的旋转流程图,具体包括如下步骤:

步骤401:读取存储于第一存储器中已经旋转的块矩阵数据Dn-1R,同时,将Dn-1R旋转为正常块矩阵数据Dn-1并保存在第二存储器中;

步骤402:利用第二存储器中的矩阵数据Dn-1进行相应的帧内预测、帧间预测或者环路滤波等处理,得到块矩阵数据Dn

步骤403:将块矩阵数据Dn旋转,得到块矩阵数据DnR,并保存在第一存储器中。

其中,将Dn-1R旋转为正常块矩阵数据Dn-1以及将块矩阵数据Dn旋转,得到块矩阵数据DnR是通过在读取和保存过程中的坐标变换而实现。

具体来说,可以通过第一处理器向第二处理器发送旋转指令并由第二处理器执行旋转指令来完成的,而旋转指令中则给出了在读取和保存过程中的坐标变换的地址。

并且,Dn-1R可以通过如下步骤获取:

在时间点t0,发出图像旋转指令;读取存储于第一存储器中的正常位置块矩阵Dn-1,并将所述正常位置块矩阵Dn-1保存在所述第二存储器中;根据坐标变换,计算所述正常位置块矩阵Dn-1变换为旋转位置块矩阵Dn-1R时,存储于所述第一存储器中的地址。

根据所述地址,从所述第二存储器中读取正常位置块矩阵Dn-1,并存储于所述第一存储器的所述地址中,得到旋转位置块矩阵Dn-1R

优选地,第一存储器选择SDRAM类型的存储器,第二存储器选择SRAM类型的存储器,并且,上述的各个块矩阵都为YUV数据结构的块矩阵。

本实施例通过将旋转过程嵌入在解码的帧内预测、帧间预测或者环路滤波中,从而省去了添加一个单独的用于实现旋转的模块,从而节省了内存的开销,同时,也减少了内存的搬移次数,减少了计算量。

参照图5,示出了发明图像旋转方法实施例将块矩阵Dn-1R旋转为正常位置块矩阵Dn-1的流程图,包括如下步骤:

步骤501:第一处理器计算旋转块矩阵Dn-1R变换为正常位置块矩阵Dn-1后在第二存储器的存储地址ADRESS1;

其中,根据前面已经定义的正常状态,即非旋转状态、左旋转状态以及右旋转状态三种情况下的块YUV矩阵关系可以由第一处理器进行读取或者存储地址的计算:例如,对于分辨率是320*240的图像,对于Y:giAVSYPitchLength=384,giAVSPicHeight=240,对于地址(X,Y)起始的块,如果Dn-1R处于左旋转状态,依据:

左旋转状态下,块矩阵的在存储器中的地址为:

start+giAVSYPitchLength×X+giAVSPicHeight-Y;

则:第一处理器计算地址:start+384×X+240-Y;第二处理器根据上述计算结果读取数据,从第一存储器读入一个块放入第二存储器的该地址中。

步骤502:第二处理器读取旋转块矩阵Dn-1R中的每一个旋转块;

步骤503:将每一个旋转块矩阵Dn-1R搬移至第二存储器的存储地址ADRESS1中得到正常位置块矩阵Dn-1

其中,每一个存储于第一存储器中的旋转块块矩阵Dn-1R可以通过DMA方式搬移至第二存储器的存储地址ADRESS1中;

参照图6,示出了根据本发明图像旋转方法实施例将正常位置块矩阵Dn旋转为旋转块矩阵DnR的流程图,包括如下步骤:

步骤601:第一处理器计算将正常位置块矩阵Dn旋转为旋转块矩阵DnR后在第一存储器的存储地址ADRESS2;

其中,根据前面已经定义的正常状态,即非旋转状态、左旋转状态以及右旋转状态三种情况下的块YUV矩阵关系可以由第一处理器进行读取或者存储地址的计算:例如,对于分辨率是320*240的图像,对于Y:giAVSYPitchLength=384,giAVSPicHeight=240,对于地址(X,Y)起始的块,如果DnR将要处于左旋转状态,依据:

左旋转状态下,块矩阵的在存储器中的地址为:

start+giAVSYPitchLength×X+giAVSPicHeight-Y;

则:第一处理器计算地址:start+384×X+240-Y;第二处理器根据上述计算结果读取数据,从第二存储器读入一个块放入第一存储器的该地址中。

步骤602:第二处理器读取第二存储器中的正常位置块矩阵Dn

步骤603:将第二存储器中的正常位置块矩阵Dn搬移至第一存储器存储地址ADRESS2中得到DnR

其中,每一个存储于第二存储器中的正常位置块矩阵Dn通过DMA方式搬移至第一存储器存储地址ADRESS2中。

优选地,第一存储器选择SDRAM类型的存储器,第二存储器选择SRAM类型的存储器。

参照图7,示出了根据本发明图像旋转方法实施例进行帧内预测时的旋转流程图,包括如下步骤:

步骤701:由第一处理器进行当前块的熵解码,并由所述第二处理器依次进行反扫描、反量化、反DCT并将产生的残差数据Bn存储于第二存储器中;

步骤702:由第二处理器将所述正常位置块矩阵Dn-1与残差数据Bn相加。

对于帧内预测来说,旋转的基本单元是8×8、16×8、8×16或者16×16的宏块。

参照图8,示出了根据本发明图像旋转方法实施例进行帧间预测时的旋转流程图,包括如下步骤:

步骤801:第一处理器进行熵解码;

步骤802:第二处理器依次进行反扫描、反量化、反DCT并将当前块产生的残差数据Cn存储于第二存储器中;

步骤803:将存储于第一存储器中的作为参考块的旋转块矩阵Dn-1R旋转为正常位置块矩阵Dn-1并保存于第二存储器中;

步骤804:将正常位置块矩阵Dn-1进行插值运算,得到;

步骤805:将残差数据Cn与相加,得到当前块的正常位置块矩阵Dn

步骤806:将正常位置块矩阵Dn旋转输出到第一存储器的相应位置。

举例来说,在执行步骤803时,如果移动终端旋转之后处于左旋转的位置状态,则,从第一存储器读取数据的过程中,首先将参考块的旋转块矩阵Dn-1R进行反向旋转,即向右旋转,并将旋转的结果Dn-1保存在第二存储器中。

接下来,执行完步骤803、步骤804后,在执行步骤806时,从第二存储器读取正常位置块矩阵Dn的过程中,首先将当前矩阵块Dn进行向左旋转,将旋转的结果DnR保存在第一存储器中。

并且,根据前面已经定义的正常状态,即非旋转状态、左旋转状态以及右旋转状态三种情况下的块YUV矩阵关系可以由第一处理器进行读取或者存储地址的计算:例如,对于分辨率是320*240的图像,对于Y:giAVSYPitchLength=384,giAVSPicHeight=240,对于地址(X,Y)起始的块,如果是向左旋转,依据:

左旋转状态下,块YUV矩阵的在存储器中的地址为:

start+giAVSYPitchLength×X+giAVSPicHeight-Y;

则:第一处理器计算地址:start+384×X+240-Y;第二处理器根据上述计算结果读取数据,从第一存储器读入一个块放入第二存储器的该地址中。

优选地,第一存储器选择SDRAM类型的存储器,第二存储器选择SRAM类型的存储器。

对于帧间预测来说,旋转的基本单元是8×8、16×8、8×16或者16×16的宏块。

参照图9,示出了根据本发明图像旋转方法实施例进行环路滤波时的旋转流程图,进行环路滤波时,所述Dn-1为8×6或者6×8的图像块,所述图像块是由帧内预测/帧间预测解码出来的图像划分得到的,包括如下步骤:

步骤901:对当前图像块的边缘进行环路滤波,得到环路滤波的差值Ln

步骤902:将所述正常位置块矩阵Dn-1与环路滤波的差值Ln相加。

在具体实现上述方法的过程中,可以选择ARM处理器作为第一处理器,选择DSP为第二处理器,由ARM处理器与DSP处理器共同完成图像的旋转,具体地说,ARM处理器为处于主处理器的地位,通过ARM处理器向DSP处理器发送指令,由DSP处理器具体执行上述指令。当然,第二处理器的选择并不限于DSP处理器,也可以选择具有DSP架构的其他独立处理单元。

根据本发明的实施例,还提供了一种解码芯片,在该解码芯片中,包括上面所描述的图像旋转系统。由于图像旋转系统已经做了详细的描述,在此,包括该图像旋转系统的AVS解码芯片不再赘述。

进一步地,上述解码芯片可以是一种提供CMMB接收的AVS解码芯片,在该AVS解码芯片中,包括上面所描述的图像旋转系统。

综上,在本发明中:

将旋转过程嵌入在解码的帧内预测、帧间预测或者环路滤波中读取存储于第一存储器中的作为参考块矩阵时,将旋转后的上述块矩阵旋转回来,保存在第二存储器中,然后进行相应的处理以后,再保存回第一存储器中;同现有技术相比,不需要增加独立的旋转模块,从而,减小了内存的开销,并且,也减少了内存在搬移过程中的计算量,减轻了系统的负担。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于解码芯片,由于其与方法实施例、系统实施例的原理基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上对本发明所提供的一种图像旋转方法、图像旋转系统、解码芯片进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号