首页> 中国专利> 基于AVS的去块效应滤波器VLSI实现装置

基于AVS的去块效应滤波器VLSI实现装置

摘要

本发明涉及一种数字视频编解码领域的基于AVS的去块效应滤波器VLSI实现装置,其中:输入暂存模块将输入端口的参数及待滤波数据进行缓存;阈值计算模块从输入暂存模块中读出参数进行滤波强度和边界阈值的计算;滤波模块根据阈值计算模块输入的每个块边界滤波强度及块边界阈值对输入的象素数据进行相应的滤波;控制单元控制整个滤波过程中的数据选择和数据流向;储存模块包括暂存模块、转置模块、当前宏块存储模块、邻块数据存储模块;输出暂存模块中数据来源于转置模块,包括一个先进先出数据缓存器。本发明采用流水线结构进行计算和滤波,减少了对数据存储器的读写,提高了滤波处理的速度,保证滤波操作的实时性,控制了整个硬件结构的复杂性。

著录项

  • 公开/公告号CN1874516A

    专利类型发明专利

  • 公开/公告日2006-12-06

    原文格式PDF

  • 申请/专利权人 上海交通大学;

    申请/专利号CN200610027979.7

  • 发明设计人 叶姜莉;黄中华;刘佩林;

    申请日2006-06-22

  • 分类号H04N7/30(20060101);H04N7/32(20060101);H04N7/26(20060101);

  • 代理机构31201 上海交达专利事务所;

  • 代理人王锡麟;王桂忠

  • 地址 200240 上海市闵行区东川路800号

  • 入库时间 2023-12-17 17:59:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-08-11

    未缴年费专利权终止 IPC(主分类):H04N7/30 授权公告日:20081224 终止日期:20160622 申请日:20060622

    专利权的终止

  • 2008-12-24

    授权

    授权

  • 2007-01-31

    实质审查的生效

    实质审查的生效

  • 2006-12-06

    公开

    公开

说明书

技术领域

本发明涉及一种数字视频编解码领域的装置,具体是一种基于AVS的去块效应滤波器VLSI实现装置。

背景技术

数字音视频编解码技术标准工作组(AVS工作组)由国家信息产业部科学技术司于2002年6月批准成立。工作组的任务是:面向我国的信息产业需求,联合国内企业和科研机构,制(修)订数字音视频的压缩、解压缩、处理和表示等共性技术标准,为数字音视频设备与系统提供高效经济的编解码技术,服务于高分辨率数字广播、高密度激光数字存储媒体、无线宽带多媒体通讯、互联网宽带流媒体等重大信息产业应用。

由该工作组制定的AVS音视频编解码技术标准的视频部分于2006年2月22日被颁布为中华人民共和国国家标准,标准号GB/T 20090.2-2006,于2006年3月1日起实施。

去块效应滤波器又叫环路滤波(loopfilter)是AVS解码算法最重要的组成部分之一,在视频系统中的主要作用:一是平滑图像中由于运动补偿、变换及量化产生的虚假边界,降低图像块效应,提高主观视觉效果;二是滤波后的帧用于后续帧的运动补偿预测,从而避免了虚假边界的积累误差导致的图像质量进一步的降低。

由于去块效应滤波一方面需要对块数据的各个边界上的象素点进行滤波操作,另一方面需要对象素值进行不规则的访问,所以采取一般的硬件设计结构会极大地影响整个滤波地速度,进而可能会影响整个编解码的实时性。

根据对有关AVS去块效应滤波实现方面技术文献的检索,发现Sheng Bin等人在IEEE proceeding上发表的“A plat form based architecture ofloopfilter for AVS”(AVS环路滤波器的一种基于平台的架构)一文中,设计了一种适用于AVS的自适应环路滤波器,但是该方法的不足在于:该文中提到的滤波顺序在实现时会造成对于某一块的数据需要对存储器进行两次重复的读取,增加了存储器数据带宽的压力;并且在实现中针对垂直滤波和水平滤波分别用了一个转置寄存器,造成了冗余。

发明内容

为了解决上述问题,本发明的目的在于,提出一种基于AVS的去块效应滤波器VLSI实现装置。本发明装置实现时改进了标准中滤波的顺序、提出了一种对相邻块数据的组织存储形式并且针对这种存储方式提出了相应的数据输出方式。该装置采用流水线结构进行计算和滤波,减少了对数据存储器的读写,提高了滤波处理的速度,保证了图像编解码过程中滤波操作的实时性,并且控制了整个硬件结构的复杂性。

本发明是通过以下技术方案实现的:

一种基于AVS的去块效应滤波器VLSI实现装置,包括输入暂存模块,阈值计算模块,参数存储模块、滤波模块,控制模块,存储模块及输出暂存模块。

所述的输入暂存模块是一种先进先出的缓存,并且由于前面各级解码模块输出的到达时间不一样,而在阈值计算时要求所用的参数必须是同时到达的,这个就需要在输入暂存模块不仅仅是缓存作用,而且要控制输出到阈值计算模块;

所述的阈值计算模块包括滤波强度计算模块和块边界阈值计算模块。滤波强度计算模块、块边界阈值计算模块从输入暂存模块和参数存储模块中读出相应的参数进行计算,每次计算完一个宏块各边界的滤波强度及块边界阈值则需要参数存储模块中的参数进行更新;

所述的参数存储模块用于存储相邻块的参数;

所述的滤波模块用于根据滤波强度和块边界阈值将输入的待滤波数据进行滤波;

所述的控制模块用来控制整个滤波过程中的数据选择和数据流向;

所述的储存模块包括暂存模块、转置模块、当前宏块存储模块、邻块数据存储模块;所述的暂存模块用于暂时存储滤波结束的数据;所述的转置模块在控制的作用下可以用于暂存或者转置;所述的当前宏块存储模块用于垂直滤波结束后存储当前宏块数据;所述的邻块数据存储模块包括左邻块存储模块和上面邻块存储模块,所述的左邻块存储模块存储当前宏块的左边两个8×8的块,所述的上面邻块存储模块存储的时当前宏块行的上面1920×3个象素。

所述的输出暂存模块包括一个先进先出数据缓存器,缓存器的数据来自转置模块,当缓存器中有数据时,输出模块对外请求数据输出,等到接收到输出确认信号时将数据输出。

在整个装置中由控制模块控制流程,针对不同块边界在不同模块中的操作可以并行地进行,从而提高滤波速度。

本发明完成对宏块边界的滤波的工作过程如下:首先进行边界滤波强度和边界阈值的计算,在控制模块作用下将待滤波数据的参数从输入暂存模块输入到阈值计算模块中进行计算,计算完毕的边界滤波强度和边界阈值在控制模块作用下输出到滤波模块,并且计算完边界滤波强度和边界阈值以后需要将参数存储模块中的值更新;然后进行垂直边的滤波,由控制模块控制滤波输入数据来源于左邻块存储模块和输入暂存模块或者是暂存模块和输入暂存模块,并且由控制模块控制滤波后数据的输出流向,垂直边滤波结束后当前宏块的数据进入当前宏块存储模块暂存,左邻块的数据在控制模块控制下决定是直接输出还是转置后进入上面邻块存储模块进行存储;最后进行水平边的滤波,由控制模块控制滤波输入数据来源于当前宏块存储模块和上面邻块存储模块或者是当前宏块存储模块和暂存模块,并且由控制模块控制滤波后数据的输出流向,水平边滤波结束后将上面邻块的数据转置后直接输出,由控制模块决定当前块的数据是转置后直接输出、直接进上面邻块存储模块进行存储、还是进入左邻块存储模块进行存储。

上述过程完成后,一个宏块中所有块边界的滤波操作都已完成。在进行边界滤波强度和边界阈值的计算中,由参数存储模块提出了一种参数存储方式;在进行垂直边的滤波和进行水平边的滤波中,本发明改进了标准定义的滤波顺序,减少了对数据存储模块的读写操作,并且优化了相邻宏块行的数据存储方式。其中,在进行垂直边的滤波和进行水平边的滤波中,对于各个块的边界滤波可以采用流水结构实现,这样可以精确的时序控制为保证,提高计算速度。

本发明主要面向高清晰度视频解码(如1920×1080的视频解码),但又不局限于解码高清晰度视频。根据图像的大小,通过改变左邻块存储模块和上面邻块存储模块存储单元的大小,可以使该实现方法适用于各种规格的AVS解码器,并同时保证硬件资源的合理分配。

附图说明

图1是AVS去块效应滤波器的总体结构图;图中虚线表示的是控制信号流向,实线表示的象素数据的流向,箭头表示的是参数数据。

图2-A是标准中定义的滤波顺序,小矩形块中的数据表示滤波的顺序,本发明中都以4:2:0格式大小为1920×1080的图像说明滤波的顺序和数据的存储。

图2-B是本发明修正后的滤波顺序;其中,数字标志的块0-3是当前宏块的亮度块,4、5是色度块,含有字母标志的块a,b是亮度块的左边相邻块,e、g是色度块的左边相邻块,c,d,是亮度块上面宏块行的相邻块,f、h是色度块上面宏块行的相邻块,并且块c,d,f,h包含的象素仅仅只有3行。

图2-C是滤波过程说明图。

图3是参数存储模块的地址分配;0-119存放的是上面一个宏块行各宏块的参数,120存放的是左边宏块的参数。

图4是垂直边滤波的流水图,其中花括号内标明了数据的来源,方框内表明各个模块对数据进行的操作及数据的流向。

图5是水平边滤波的流水图,其中花括号内标明了数据的来源,方框内表明各个模块对数据进行的操作及数据的流向。

图6是存储左邻块存储模块的地址分配,以及更新后的情况;存储器每个单元为64bit,存储每个块的8个象素数据。

图7是存储上面邻块存储模块(亮度邻块)的地址分配,此存储器的地址按照象素点的地址进行存储,共有1920个单元,存储器每个单元为24bit,存储的是上面一个宏块行待滤波的三个象素。

图8是存储上面邻块存储模块(色度邻块)的地址分配,此存储器的地址按照象素点的地址进行存储,共有1920个单元,地址0-959存储的是色度块Cb的象素,地址960-1919存储的是色度块Cr的象素数据,存储器每个单元为24bit,存储的是上面一个宏块行待滤波的三个象素。

具体实现方式

下面结合本发明的具体实施例子来说明一种基于AVS去块效应滤波器的VLSI实现装置,整体结构如图1所示。为方便叙述,本发明中以图像格式为4:2:0、图像大小为1920×1080的图像为例来说明实施的过程。

如图1所示,一种基于AVS的去块效应滤波器的实现装置包括以下的模块:输入暂存模块(Input Fifo),阈值计算模块(BS Thresholdcal),参数存储模块,滤波模块(Filter),控制单元(Control),转置模块(REG2),暂存模块(REGl),当前宏块数据暂存模块(SRAM),左边邻块存储模块(HBUF),上面邻块存储模块(VBUF),输出暂存模块(FIFO OUT)。

图1中MUX1选择数据是来源于输入暂存模块还是SRAM,分别对应垂直边滤波和水平边滤波;MUX2选择数据是来源于MUX1的结果、暂存模块还是MUX4结果中的两个;MUX3选择数据是来源于滤波后的数据或者是暂存的数据进入转置模块;MUX4选择HBUF或者VBUF里的数据进入MUX2的输入,即对应垂直边或者水平边滤波。

所述的输入暂存模块是一种先进先出的缓存,并且由于前面各级解码模块输出的到达时间不一样,而在阈值计算时要求所用的参数必须是同时到达的,这个就需要在输入暂存模块不仪仅是缓存作用,而且要控制输出到阈值计算模块。

所述的阈值计算模块包括边界滤波强度阈值计算模块和块边界阈值计算模块。其中,边界滤波强度计算模块和块边界阈值计算模块用来从输入暂存模块取出参数进行计算,每次计算完一个宏块中各个边界滤波强度和各个块边界阈值都需要将存储的相邻块的参数进行更新。

所述的参数存储模块在进行邻块参数存储的时候,左边邻块的参数存储在位置120,上面宏块行的参数按照宏块的水平坐标进行存储,以1920×1080的图像为例,每行有120个宏块,即存储上面宏块行参数的地址为0-119。

所述的滤波模块是根据计算出来的每个块边界滤波强度及块边界阈值对输入的象素数据进行相应的滤波。其中相应的块边界滤波强度、块边界阈值以及待滤波数据的选择是由控制单元控制的,滤波完的数据根据控制输出到中间数据暂存器或者是转置模块。

所述的暂存模块有两个作用,在控制模块的控制下,一是进行宏块边界滤波的时候暂存当前块的数据以用来进行下一步的滤波,二是在进行宏块内边界滤波的时候作为一个暂存以用来向转置模块输出当前块的数据。

所述的转置模块在流程控制模块的控制下对输入的数据进行转置输出,或者不进行转置直接输出。

所述的当前宏块数据暂存模块主要是利用的片上的存储器实现,用来对当前宏块进行完垂直边的滤波并且转置后暂时存储当前宏块的数据。

所述的左边邻块存储模块也是通过片上存储器来实现,用来存储当前宏块左边两个相邻块的数据(即存储图2,3中块a,b,e,g),数据存储方式及更新后的数据如图8。

所述的上面邻块存储模块同样也是通过片上存储器来实现,用来存储当前宏块行上面一整行的宏块数据,并且在当前宏块进行完所有边的滤波后将存储的邻块数据更新。亮度块和色度块的存储方式见图9,10。

所述的输出暂存模块包括一个先进先出数据缓存器,缓存器的数据来自转置模块,当缓存器中有数据时,输出模块对外请求数据输出,等到接收到输出确认信号时将数据输出。

本发明装置完成一个宏块所有边界的滤波操作的具体实施过程如下:

步骤一:当输入暂存模块检测到去块效应滤波器装置的端口有新的参数和数据输入时,将新的输入数据存进此暂存模块中。

步骤二:在控制模块的控制下从输入暂存模块中读出当前宏块的参数送入阈值计算模块,阈值计算模块根据参数中表征当前宏块位置的信息去存储相邻块参数的模块中读取相应邻块的参数,而后计算所有块边界的滤波强度及块边界阈值,计算完后将存储的参数信息进行更新。具体存储和更新的方式如下:当前宏块的左邻块(即图2-A中块a,b)的参数存储在存储器的最高地址即地址120处,当前宏块行上面一行宏块的参数按照宏块的水平坐标进行存储,每次滤波完结束后当前宏块右边的两个8×8块(即图2-A中块1,3)的参数需要将存储器最高地址里面的参数进行更新,并且当前宏块下面的两个8×8块(即图2-A中块2,3)的参数需要根据当前宏块的水平坐标将相应地址里的参数进行更新。

步骤三:进行滤波,此处进行了滤波顺序的改进,将标准中定义的先从左到右对垂直边界滤波,然后从上到下对水平边界滤波的顺序(滤波顺序即图2-A边界小框内数字表示)改进成为如图2-B中所示的先进行所有垂直边界的滤波后进行所有水平边界滤波的顺序,其中,在进行垂直边界滤波时,先进行左上垂直边界滤波后进行右上垂直边界滤波接着进行左下垂直边界滤波再进行右下垂直边界的滤波,最后进行两个色度块的垂直边界的滤波;在进行水平边界滤波时,先进行左上水平边界滤波后进行左下水平边界滤波接着进行右上水平边界滤波再进行右下水平边界的滤波,最后进行两个色度块的水平边界的滤波。待滤波的数据流向、相应的边的滤波强度和块边界阈值的选择都由控制模块控制,滤波强度和块边界阈值来源于阈值计算模块,待滤波的数据由控制模块决定来源于输入暂存模块、暂存模块、左边邻块存储模块、上面邻块存储模块或者是当前宏块数据暂存模块中的两个。滤波流水图、滤波数据来源的选择、以及各个模块对数据的处理见图4、5。第一步需要进行的滤波是边h1(对图2-C所示的各边界进行滤波),块a的数据来源于左边邻块存储模块,块0的数据来源于输入暂存模块,滤波操作结束后块a的数据输出到转置模块但不经转置直接输出到输出暂存模块,块0的数据输出到暂存模块暂存;第二步要进行滤波的边是h2,块0的数据来自暂存模块,块1的数据来自输入暂存模块,滤波结束后块0的数据经过转置模块转置以后存入当前宏块数据暂存模块,块1的数据先经过暂存模块然后经过转置模块存入当前宏块数据暂存模块;第三步要进行滤波的边是h3,块b的数据来源于左边邻块存储模块,块2的数据来源于输入暂存模块,滤波操作结束后块b的数据的上面5行经过转置模块不进行转置直接输出,下面3行经过转置模块转置后存储到上面邻块存储模块中,块2的数据输出到暂存模块暂存;第叫步要进行滤波的边是h4,块2的数据来自暂存模块,块3的数据来自输入暂存模块,滤波结束后块2的数据经过转置模块以后存入当前宏块数据暂存模块,块3的数据先经过暂存模块然后经过转置模块存入当前宏块数据暂存模块;第五步需要进行滤波的是h5,块e的数据来源于左边邻块存储模块,块4的数据来源于输入暂存模块,滤波结束后块e的数据的上面5行经过转置模块不经转置直接输出,下面3行经过转置模块转置后存储到上面邻块存储模块中,块4的数据先经过暂存模块然后经过转置模块转置后存入当前宏块数据暂存模块;第六步需要进行滤波的是边h6,块f的数据来源于左边邻块存储模块,块5的数据来源于输入暂存模块,滤波结束后块f数据的上面5行通过转置模块不经转置直接输出,下面3行经过转置模块转置后存储到上面邻块存储模块中,块5的数据先经过暂存模块然后经过转置模块转置后存入当前宏块数据暂存模块;第七步需要滤波的边是v1,块c的数据来源于上面邻块存储模块,块0的数据来源于当前宏块数据暂存模块,滤波结束后块c的数据经过转置模块转置输出,块0的数据进入暂存模块暂存;第八步需要滤波的是边v2,块0的数据来源于数据暂存模块,块2的数据来源于当前宏块数据暂存模块,滤波结束后块0的数据经过转置模块转置输出,块2的上面5行通过转置模块不经转置直接输出,下面3行经过转置模块转置后存储上面邻块存储模块中;第九步需要滤波的是边v3,块d的数据来源于上面邻块存储模块,块1的数据来源于当前宏块数据暂存模块,滤波结束后块d的数据经过转置模块转置输出,块1的数据进入暂存模块暂存;第十步需要滤波的是边v4,块1的数据来源于暂存模块,块3的数据来源于当前宏块数据暂存模块,滤波结束后块1和块3的数据经过转置后都要存入左边邻块存储模块;第十一步需要滤波的是v5,块f的数据来源于上面邻块存储模块,块4的数据来源于当前宏块数据暂存模块,滤波结束后块f的数据经过转置模块转置输出,块4的数据经转置存入左边邻块存储模块;第十二步需要滤波的是v6,块h的数据来源于上面邻块存储模块,块5的数据来源于当前宏块数据暂存模块,滤波结束后块h的数据经过转置模块转置输出,块5的数据经转置存入左边邻块存储模块。

至此,一个宏块所有的边界滤波已经完成。如上所述,在图6、7中可以看出对于各边界的操作可以并行地进行。

在本例中所有存储器的地址是按照处理1920×1080高清图像进行存储的,对于其他的图像大小类似地做修正即可。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号