用于解块滤波参数数据存储和交换的方法

文档序号:7967933阅读:274来源:国知局
专利名称:用于解块滤波参数数据存储和交换的方法
技术领域
本发明涉及一种用于解块滤波参数数据存储和交换的方法。
背景技术
在基于块的视频编解码系统中,编解码器反变换量化后图像会出 现方块效应。其产生的原因有两个,最重要的一个原因在于基于块的
帧内和帧间预测残差的DCT变换。其变换系数的量化过程相对粗糙, 因而反量化过程恢复的变换系数带有误差,会造成在图像块边界上的 视觉不连续。第二个原因来自于运动补偿预测。运动补偿块可能是从
不同帧的不同位置上的内插样点数据中复制而来的;因为运动补偿块
的匹配不可能是绝对准确的,所以就会在复制块的边界上产生数据不 连续。当然,参考帧中存在的边界不连续也被复制到需要补偿的图像 块内。为了克服这种块效应,通常采取在编解码环中引入解块滤波系 统,以提高图像的主客观评价质量水平。
解块滤波处理应用于每一个已解码完成的宏块。在编码环和解码
环中使用解块滤波系统主要有两个优点
1、 图像中由于运动补偿、变换及量化产生的虚假边界可以被平
滑,降低图像块效应,提高了主观视觉效果;
2、 滤波后的帧用于后续帧的运动补偿预测,从而避免了虚假边 界积累误差导致的图像质量进一步降低。
解块滤波以宏块为单位,按照光栅扫描顺序依次处理。图像中每 个宏块的滤波过程为对亮度和色度分别做解块滤波,以最小划分为
4X4子块的情况为例,如图1所示,首先从左到右对垂直边界滤波, 再从上到下对水平边界滤波。当前宏块垂直边界滤波过程中修改的样 本值作为水平边界滤波过程的输入。而且对当前宏块的上边界滤波, 除了需要当前宏块参数信息外还需要用到当前宏块上方宏块的参数 信息;对当前宏块的左边界滤波,除了需要当前宏块参数信息外还需 要用到当前宏块左侧宏块的参数信息。
编码环中不同的预测方式决定了重建后的图像块边缘有否虚假
边界和虚假边界的强弱。根据不同的情况选择不同强度的滤波器,才 能使得去块效应能达到最佳效果。因此需要确定边界强度BS,色度 块的边界强度用对应位置亮度块的边界强度代替,确定边界强度的判 决树如图2所示。因此,对每一条子块边界的滤波,都需要用到边界 两边所属子块的参数信息。这些参数信息有的是直接从码流中读取得 到,有的则是在前面的解码过程中通过预测、计算等方式得到。由于 环路解块滤波是在一帧图像的所有宏块解码完毕之后进行,因此整帧 图像全部宏块与解块滤波相关参数都需要保存下来。
对于解块滤波所需要的整帧宏块的参数数据,如果把他们全部放 在芯片内,由于数据量较大,将会耗费大量的芯片内存储空间,使得 芯片面积较大,成本较高;如果全部放在芯片外部的存储器中,在每 个宏块滤波时,通过DMA从外部读入相关宏块参数数据到芯片,则会 有一些宏块参数数据被重复读入,浪费了DMA的带宽资源;同时频繁 的DMA读写,降低了效率。

发明内容
本发明的目的在于提供一种用于视频编解码芯片中解块滤波参 数数据存储和交换的方法,从而既能够节约芯片内部的存储空间,又 能够优化与片外的数据交互。
本发明的目的可通过以下的技术措施来实现 一种用于视频编解 码芯片中解块滤波参数数据存储和交换方法,包括以下步骤
(1) 、在图像宏块解码初始化时,先在内存中根据图像大小动态 分配一帧图像宏块参数数据所需的存储空间,并将存储空间首地址传 递给芯片寄存器;
(2) 、在宏块解码过程中,将解块滤波需要的参数填写到划分为 存储区I和存储区II的芯片内部存储区结构中,同时把先填满数据 的一行根据步骤(1)寄存器的地址以直接存储器访问方式批量写到 芯片外部存储器中;
(3) 、当整帧图像的宏块解码完毕启动解块滤波后,通过直接 存储器访问方式从芯片外存储区读入图像最上方一行宏块参数数据 到芯片内部存储区I中;
(4) 、通过从芯片内部存储区I中获得图像最上方一行滤波时 需要的左侧宏块参数信息,进行该行宏块的解块滤波;
(5) 、通过直接存储器访问方式从芯片外存储区读入下一行宏 块参数数据到芯片内部存储区II中,获得左侧宏块的参数信息,再 从内部存储区I中获得上方宏块的参数信息,进行该行宏块的解块滤 波;
(6) 、再通过直接存储器访问方式从芯片外存储区读入再往下一行宏块参数数据到芯片内部存储区I中,获得左侧宏块的参数信 息,再从内部存储区II中获得上方宏块的参数信息,进行该行宏块
的解块滤波;
(7)、对余下行宏块,依次重复步骤(5)和(6),对各行宏 块读取对应的左侧宏块和上方宏块的参数信息后实行解块滤波,直至 整帧宏块解块滤波完成。
本发明所述步骤(2)的芯片内部存储区设置两行宏块参数的存 储结构,保存解块滤波需要的两行宏块参数数据。其空间大小为两行 宏块的参数数据所需的空间,其中所述行的长度为芯片所支持的最大 尺寸图像以宏块为单位的宽度。
本发明所述步骤(3)、 (5)和(6)的直接存储器访问方式进行 的数据交换是以一行宏块的参数数据为单位实行对芯片内外的读写 操作,该方式通过访问芯片内部寄存器获得芯片外部宏块参数存储地 址。
采用本发明所述的方法后,与现有技术相比具有以下优点
1、 解码过程中产生的对于解块滤波有用的宏块参数通过DMA存储 到芯片外部,整帧宏块解码完毕开始解块滤波时再通过DMA读入,有
效的减少了芯片内部的存储空间,节省了芯片面积,降低了芯片成本。
2、 在芯片内部设置可存放两行宏块参数的存储结构,使得在对 宏块解块滤波时可直接在芯片内部获得相关宏块参数数据,避免重复 读取参数数据造成的DMA带宽浪费。
3、 以一行宏块的参数数据为单位进行DMA操作,避免频繁的DMA
操作带来DMA效率的降低。


图1为宏块中需要滤波的边界示意图; 图2为边界滤波中边界强度判决树形示意图; 图3为本发明芯片内部参数数据存储结构示意图; 图4为本发明解块滤波过程流程框图。
具体实施例方式
本发明是基于视频编解码器芯片关键环节——解块滤波的设计 实现。由于参数数据量较大,保留在芯片中成本较高,因此本发明采 取把滤波相关参数数据存储在芯片片外部的方式,由滤波前的解码模 块通过直接存储器访问方式(DMA)批量写出,滤波时再通过直接存 储器访问方式(DMA)读入。如图3所示,按照滤波顺序,对A、 B这 两个宏块的滤波都在当前宏块滤波之前,因此这两个宏块的参数信息 己经读入过芯片。为避免重复读取数据,以提高直接存储器访问方式 (DMA)带宽利用率,本发明的实施方式如下
(1) 、定义芯片寄存器RMbDeblocklnfo,用来存放芯片外存储 器中存放参数数据的首地址,以供直接存储器访问方式(DMA)寻址 之用。
(2) 、定义芯片内部的存储区MbDeblocklnfoArray,其大小为 两行宏块的参数数据所需的空间(划分为存储区I和存储区II), 这里"行"的长度指芯片所支持的最大尺寸图像以宏块为单位的宽度。
如图4所示,具体的解块滤波参数数据存储和交换的方法为以下
步骤
1、 解码软件初始化时,在内存中根据图像大小动态分配一帧图 像宏块参数数据所需的存储空间,并将存储空间首地址传递给芯片寄
存器RmbDeblocklnfo。
2、 启动芯片解码后,在宏块解码过程中,将获得的相关参数填 写到MbDeblocklnfoArray结构中,在填写其中一行时,则将另一已 填满数据的行通过直接存储器访问方式(DMA)批量写到芯片外部存 储器中,以此方式交替将数据写出。同时在解码过程中,这些参数数 据也被帧内预测、帧间预测等解码过程所使用。由于滤波所需参数信 息包括了运动参数,因此帧间预测可以利用这种结构进行运动矢量的
3、 当整帧图像的宏块解码完毕,启动解块滤波后,首先通过直 接存储器访问方式(DMA)从芯片外存储区读入图像最上方一行宏块 参数数据到MbDeblocklnfoArray的I区域中(见图3)。
4、 按照宏块滤波顺序开始图像最上方一行宏块的解块滤波,由 于该行宏块为图像上边界,滤波时只需要左侧宏块A参数信息,由于 本行宏块的参数数据都己经存放到芯片中,因此可以很方便寻址获 得。
5、 接着,通过直接存储器访问方式(DMA)从芯片外存储区读入 下一行宏块参数数据到MbDeblocklnfoArray的II区域中,此时解块 滤波除了需要左侧宏块A的参数信息还需要上方宏块B的参数信息, 这里的上方宏块行参数信息由于已经存储在MbDeblocklnfoArray的
I区域中,所以可以在芯片内方便的寻址获得。
6、 再通过直接存储器访问方式从芯片外存储区读入再往下一行 宏块参数数据到MbDeblocklnfoArray的I中,获得左侧宏块的参数 信息,再从MbDeblocklnfoArray的II中获得上方宏块的参数信息, 进行该行宏块的解块滤波;
7、 余下行的解块滤波过程,对余下行宏块依次重复步骤5和6, 对各行宏块读取对应的左侧宏块和上方宏块的参数信息后实行解块 滤波,直至整帧宏块解块滤波完成。
权利要求
1、一种用于解块滤波参数数据存储和交换的方法,其特征在于包括以下步骤(1)、在图像宏块解码初始化时,先在内存中根据图像大小动态分配一帧图像宏块参数数据所需的存储空间,并将存储空间首地址传递给芯片寄存器;(2)、在宏块解码过程中,将解块滤波需要的参数填写到划分为存储区I和存储区II的芯片内部存储区结构中,同时把先填满数据的一行根据步骤(1)寄存器的地址以直接存储器访问方式批量写到芯片外部存储器中;(3)、当整帧图像的宏块解码完毕启动解块滤波后,通过直接存储器访问方式从芯片外存储区读入图像最上方一行宏块参数数据到芯片内部存储区I中;(4)、通过从芯片内部存储区I中获得图像最上方一行滤波时需要的左侧宏块参数信息,进行该行宏块的解块滤波;(5)、通过直接存储器访问方式从芯片外存储区读入下一行宏块参数数据到芯片内部存储区II中,获得左侧宏块的参数信息,再从内部存储区I中获得上方宏块的参数信息,进行该行宏块的解块滤波;(6)、再通过直接存储器访问方式从芯片外存储区读入再往下一行宏块参数数据到芯片内部存储区I中,获得左侧宏块的参数信息,再从内部存储区II中获得上方宏块的参数信息,进行该行宏块的解块滤波;(7)、对余下行宏块,依次重复步骤(5)和(6),对各行宏块读取对应的左侧宏块和上方宏块的参数信息后实行解块滤波,直至整帧宏块解块滤波完成。
2、 根据权利要求1所述的解块滤波参数数据存储和交换的方法, 其特征在于所述步骤(2)的芯片内部存储区设置两行宏块参数的 存储结构,保存解块滤波需要的两行宏块参数数据。
3、 根据权利要求1或2所述的解块滤波参数数据存储和交换的 方法,其特征在于所述的内部存储区的空间大小为两行宏块的参数 数据所需的空间,其中所述行的长度为芯片所支持的最大尺寸图像以 宏块为单位的宽度。
4、 根据权利要求1所述的解块滤波参数数据存储和交换的方法, 其特征在于所述步骤(3)、 (5)和(6)的直接存储器访问方式进 行的数据交换是以-一行宏块的参数数据为单位实行对芯片内外的读 写操作,该方式通过访问芯片内部寄存器获得芯片外部宏块参数存储 地址。
全文摘要
本发明公开一种用于解块滤波参数数据存储和交换方法,在解码过程中将解块滤波需要的参数填写到内部存储区中;解块滤波时,从芯片外存储区读入最上方一行宏块数据到内部存储区I中;从内部存储区I中获得最上方一行滤波所需左侧宏块信息进行滤波;从外存储区读入下一行宏块数据到内部存储区II中,获得左侧宏块信息,从存储区I中获得上方宏块信息进行滤波;再从外存储区读入下一行宏块数据到内部存储区I中,获得左侧宏块信息,从存储区II中获得上方宏块信息进行滤波;对余下行宏块依次重复以上两步对各行宏块实行解块滤波,直至整帧宏块解块滤波完成。采用本发明方法,既能节约芯片内部的存储空间,又能优化与片外的数据交互。
文档编号H04N7/50GK101193307SQ20061012365
公开日2008年6月4日 申请日期2006年11月21日 优先权日2006年11月21日
发明者浩 张 申请人:安凯(广州)软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1