l可配置硼转换删匣P妻搿o

文章编号:1002—8692(2008)06-0021--04Pa-?Is&appliea60m匿-!:刁……一———‘-罩——————————..=j—■‘—。

AVS自适应环路滤波器硬件设计与实现

杨少博8.李凤亭6

(清华大学a.微电子所;b.电子工程系,北京100084)

?实用设计?

【擒要】设计了一种适合于AVS的自适应环路滤波器。为解决计算复杂度高的问题,通过g-内缓存管理方式和流水线设计,解决了环路滤波的硬件实现时速度慢的问题,使得效率提高,达到了实时解码的要求。最后采用Verilog语言进行设计和仿真。

【关键词】AVS标准;自适应;现场可编程门阵列;去块效应滤波器

【中图分类号】TN919.81【文献标识码】A

HardwareDesignandImplementationofSerf-adaptiveLoopFilterBasedOilAvs

YANGShao-bo".UFeng-tingb

池lnstittaeofMicroelectronics;b.DepaztmentofElectronicEngineering,TsinghuaUniversity,Beijing100084,China)

【Abstract】Anself-adaptedloopfilterbasedonAVSisdesignedinthispaper.Byusingtheappropriatemanagementofbuffer-onchipandpipeliningdesign,theprocessingspeedandefficiencyaregreatlyimproved,andthussolvetheproblemofhishcal-culatingcomplexity,andmeettherequirementsofreal-timedecoding.Finally,thedesignissimulatedbyusingVeriloglanguage.【Keywords】AVSstandard;self-adaptive;FPGA;deblockingfilter

1引言

我国数字音视频编解码技术标准AVS第二部分Ill主要针对高清晰度数字电视广播和高密度存储媒体应用,采用了与H.264类似的技术框架,包括变换、量化、熵编码、帧内预测、帧间预测、环路滤波等技术模块,与H.264性能相同,但技术简洁。实现复杂度低。由于基于块的DCT的非覆盖特性和基于块的量化,在压缩率高的情况下块效应就会明显。为了减小块效应,AVS引入了环路滤波器。由于自适应环路滤波器在实现时存在许多条件运算(如滤波强度的计算、边界阈值和跳转等计算)及其对于数据的访问不规则,使得滤波器算法复杂度很高。利用软件实现自适应环路滤波,很难满足视频解码的实时性要求11-:q。笔者根据AVS中环路滤波器的特点,设计了一种基于并行流水技术的硬件结构完成自适应环路滤波处理,满足视频解码的实时性要求。

2环路滤波算法分析

2.1滤波流程

AVS环路滤波器放在帧间预测和运动补偿之前,用滤波后的帧为后续帧做预测参考。参考帧性能的提高能够提高预测效果,从而提高编码效率(即提高相同码率下的PsⅣR或降低相同胚撇下的码率);由于滤波去除了虚假的块边界,也使重建图像的主观质量明显提高。

AVS视频标准中,变换采用了8x8的整数DCT变换,运动估计的最小块尺寸也是8x8,因此块效应可能会出现在每个8x8块的边界上。标准中规定除图像边界及条带的边界之外,宏块的所有边界都应进行滤波。这里的

宏块边界定义为宏块内部各个8x8块之间的边界,以及

当前宏块与相邻宏块之间的上边界和左边界【蚓。

环路滤波以宏块为单位,按照光栅扫描顺序依次处

理。每个宏块对亮度和色度分别进行环路滤波,首先从左

到右对垂直边界滤波,然后从上到下对水平边界滤波。

2.2滤波需要的数据

这里假设片外RAM中的图像是按8x8块组织的,

每个存储单元对应块中的一行像素。相应地,片内SRAM

也是64位宽的,每个存储单元也对应于8x8块中的一行

像素数据。由于AVS视频标准中采用的一维滤波算法最

多用到块边界两侧各3个像素数据,为了节省片内

SRAM的面积,对于当前宏块上面的宏块,亮度和色度块

都只存储了下面的3行像素数据。而对于当前宏块左面

的宏块,为了使访存操作比较规整,在片内SRAM中存

储了与当前宏块相邻的4个块,如图l所示。

I“b¨64b玑64咄

|.——叶+—’*叫

Lu咖CbCr

围1滤波数据存储示意图

当前宏块的上边或者左边的样本值可能在对先前的

宏块进行环路滤波过程中已经被修改,则当前宏块环路

滤波输入这些可能被修改过的样本值,并且当前宏块的

丽两丽历面磊而丽池塑型21

鞘F

躺旷

鹎一

鞘旷

万方数据

环路滤波可能进一步修改这些样本值;当前宏块垂直边

界滤波过程中被修改的样本值作为水平边界滤波过程的

输入。

2.3滤波运算过程(一维条件滤波)

块P和块q在水平或垂直边界两侧有6个样本点p2,P1,p0,qO,q1以及92。用尸o,用,Q0和Q1分别表示pO,P1,q0和ql滤波后的样本值。根据既和两个域值a,

p(a和卢可以根据两个块的量化因子QP以及图像头中

的olphac_o够a,beta_offset参数计算得到),滤波操作最

多可以影响到边界两边各2个样本值。如果Bs≠0,|pO—

q01<a,Ipl-pOI印目.Iql-q01印,则对边界两边的样本进行

如下滤波:

1)Bs=2时,定义ap=lp2-pOI,aq=lq2-qOI。对亮度块边界两边的样本pO,P1,90和ql的滤波过程如下:

if(ap<卢&&IpO-qOl<((a>>2)+2)){

PO=(pl+2xpO+qO+2)>>2

Pl=(2xpl+pO+qO+2)>>2

}else

PO=(2xpl+PO+口0+2)>>2

If(aq<fl&&lp0-q01<((a>>2)+2)){

QO=(q1+2xqO+pO+2)>>2

Ql=(2xql+qO+pO+2)>>2

lelse

QO=(2xql+qO+pO+2)>>2

色度块边界两边的P0和q0采用同样的方法滤波。

2)Bs=l时,对p0和qO滤波的计算过程如下:

首先,令delta=Clip3(-C,C,(((qO-pO)x3+(p1-q1)+4)>>3)),PO=Clipl(pO+deha),QO=Clip1(qO-delta);然

后,根据如下过程判断是否需要对P1和q1进行滤波:(1)如果为色度边界,不对Pl和q1滤波;

(2)如果为亮度边界,且qP印,则P1=Clipl(pl+Clip3(-C,C,(((尸0_P1)×3+(p2一Q0)+4)>>3)));

(3)如果为亮度边界,且凹中,则Q1=C却1(q1一Clip3(一C,C,(((q1-QO)x3+(/:9一q2)+4)>>3)))。

上述过程中,滤波裁减参数C由两个块的量化参数QP和图像头中的olphaco睇a参数确定。

3自适应滤波器的硬件设计

3.1滤波顺序的优化

根据AVS标准,在对一个宏块进行滤波的过程中。

对于4:2:0格式,最多需要对12条块边界进行一维滤波

处理,包括8条亮度块边界、2条Cb色度边界和2条Cr色度边界。对于色度分量,垂直和水平块边界各有l条.

而垂直边界上的滤波要先于水平边界上的滤波,所以滤

波顺序是固定的;而对于亮度分量,垂直和水平块边界各22堕塑墼堂正面磊i磊萄而孬蕊磊丽有4条,可以选择不同的处理顺序[5。-61。

从尽量简化硬件控制的角度出发,本文提出了基本滤波顺序和改进的滤波顺序。图2所示为基本滤波顺序,即按编号从1到12,依次处理各边。图3所示为对边界两边的样本进行改进的滤波。

嘏胡胡

图2基本滤波顺序示意图

商胡胡

图3改进的滤波顺序示意图

两种处理顺序的区别在于:在完成1号边界上的滤波后,第0块的数据可能被更新,按照基本滤波顺序,需要首先将其写回片内SRAM,在进行3号边界上的滤波时,还要将第0块数据从SRAM中再次取出;而按照改进的滤波顺序,只需要将其保存在可配置行列转换阵列中,在完成第0块和第l块之间的2号边界的滤波后,再将被第2次更新过的第0块数据写回片内SRAM。在按照改进的滤波顺序处理3号和4号边界时,也按照同样方式组织数据流。这样的组织方式能够提高数据利用率,减少了对存储器的访问次数,加快处理速度。

3.2可配置行列转换阵列的设计

在对水平边界进行垂直滤波时,每次滤波所用到的像素数据在片内SRAM中分别属于不同的存储字。因此,待滤波的像素数据在进入一维滤波器之前以及滤波后写回片内SRAM之前,都需要进行行列转换。另外,如果SRAMO和SRAMl都采用单端口SRAM,滤波过程中不能同时进行读写,那么在对垂直边界进行水平滤波时,也必须要对像素数据进行缓存。可配置行列转换阵列可以通过对方向开关的选择,分别提供行列转换或者缓存的功能,其结构如图4所示。

阵列中的每个单元都是8位的寄存器,其值可以向下或者向右传送。当方向开关选择垂直方向时,输入端口是In0和Inl,输出端口是OutO和Outl,数据从上向下流动;当方向开关选择水平方向时,输入端口是In2,输出端口是Out2,数据从左向右流动。

万方数据

图4转置矩阵示意图

4环路滤波器结构的设计

4.1基于基本滤波顺序

下面给出的滤波器体系结构基于基本滤波顺序,基本处理过程为:首先,把边界两侧的像素数据从片内SRAM读出,缓存在可配置行列转换阵列中;然后,把缓存的数据依次送入一维滤波器中进行滤波,滤波处理韵结果再送回片内SRAM。

下面分别给出了该结构对垂直和水平块边界进行滤波时的数据通路,其中2个片内SRAM都是单端口的。

对垂直边界进行水平滤波时,每个块边界需要16个时钟周期的处理时间,过程如图5所示。其中,前8个时钟周期用于缓存数据,即将边界两侧的各8行像素数据从SRAM0和SRAMl中读出,并从In0和Inl沿着向下的方向写入可配置行列转换阵列;后8个时钟周期用于滤波,同时将滤波结果写回SRAM0和SRAMl。

SRAM0lISRAMI

164bit4bit

In0Inl

l-n2

可配置行列转换阵列

。ut2l

0utOOutl

}64hit164bit

●●

一维滤波器

164“itp“it

SRAM0SRAMl

图5基本滤波结构通路

对水平边界进行垂直滤波时,每个块边界需要30个时钟周期的处理时间。其中,前11个时钟周期用于输人像素数据,即将水平边界上下各3行像素数据从SRAM0或SRAMl中读出,并从In2沿着向右的方向写入可配置行列转换阵列的中部(使水平边界上面的3行像素能从Out0的最右侧输出,下面的3行像素能从Outl的最左边输出),数据通路如图6所示;接着的8个时钟周期用于滤波,同时将滤波结果从In0和Inl写回可配置行列

Pat?“&applieatjo朋舅!:Y

~……………一~…一£—:———————,—————....::;■■■_-<。一

转换阵列;最后的11个时钟周期用于输出像素数据,即

从Out2读出滤波过的像素数据,并写回SRAM0或

SRAMl。对于亮度块,前后两次滤波时所用的像素数据

不会被存储在同~个片内SRAM中。因此,在输出像素

数据的11个时钟周期里,可以同时从另一个片内SRAM

中读入下一次滤波所需要的像素数据,为下一次滤波节

省了11个时钟周期。这样,对于亮度块的4次水平边界

上的垂直滤波,共需要30+19x3=87个时钟周期。

InOInl

螂S删RA“矧ml可配置硼转换删匣P妻搿o

Out0:Outl

图6数据流向

4.2基于改进的滤波顺序

下面给出的滤波器体系结构是针对改进的滤波顺序

的,其中两个片内SRAM都采用了双端口的SRAM,可同

时对不同的存储单元进行读写。采用了双端口的SRAM

后,对垂直边界进行水平滤波时的数据通路如图7所示,

而对水平边界进行垂直滤波时的数据通路保持不变。

图7基于改进顺序的滤波器结构框图

这种结构提高了对垂直边界滤波时存储在可配置行

列转换阵列中数据的利用率。例如,改进的滤波顺序处理

完1号边界后,数据被写回SRAM0,第0块的数据则缓

存在可配置行列转换阵列中,同时可以从SRAM0中读

出第1块的数据到可配置行列转换阵列中,这样对2号

边界的滤波就可以节省从片内SRAM读取像素数据的

时间。改进之后,4个亮度块垂直边界上的水平滤波可以

减少16个时钟周期。另外,由于片内SRAM都采用了双

端口SRAM,对于色度块的垂直边界,水平滤波前不需要

将像素数据预先缓存在可配置行列转换阵列中,每条色

度块垂直边界上只需要8个时钟周期。因此,2个色度块

垂直边界上的水平滤波又可以减少16个时钟周期。这

样,处理一个宏块只需要428个时钟周期。

4.3并行处理策略

本设计以宏块作为基本流水单位。要完成一个宏块

丽两丽历面菇而塑鲤燮23

万方数据

巨翟.萋丝勉...…

的去块效应环路滤波,其基本执行过程可以分成:推导滤波参数单元、宏块级滤波单元和数据更新单元。

宏块级的并行设计是指在某一时刻,上述3个功能单元同时工作,第n个宏块的环路滤波、第//,一1个宏块的参考帧数据存储、第n+1个宏块的滤波参数推导同时进行,如图8所示。

图8滤波时,|手示意图

5仿真结果

用VerilogHDL语言完成了自适应滤波器的RTL设计。经过对各块数据进行转置、暂存、滤波等操作,同时考虑控制单元对各操作的等待时间,本设计完成一个宏块各边界的滤波需要316个时钟(不计入前面各级解码模块未完成数据操作的等待时间和往外输出的总线请求时间)。根据外部存储吞吐量的要求,系统频率为108MHz。

(上接第20页)

图像时可以达到高帧率,满足运算速度的要求,而且在处理不同算法时有灵活的适应能力。

5小结

笔者提出了新的基于数据流处理的可重构流媒体处理器架构,并实现了其与ARM9平台的协同操作,验证了它在视频图像处理上的优越性,高速并保持对算法适应的灵活度。在保持较小规模的硬件资源条件下,比传统可重构处理器运算速度提升67%一100%,处理CIF格式的H.264解码速率可以达到151f/s,并可实时处理两种不同解码过程。同理,更多的新算法可以被映射到该可重构流媒体处理器架构中。但高速运算的代价是需要在软硬件任务划分与编译处理阶段进行大量的判断与计算,目前仍然有很大的难点。为了能够突出可重构计算的优点,下一步工作重点将是软硬件划分与编译处理,用计算机自动实现代替目前的人工方式。

参考文献

Il】1SINGH14.LEEMinghall,.LUGuangming,eta1.MorphoSys:蛐integratedreconfignrablesystemfordata—-parallelandcomputation-in??tensiveapplications[J].IEEETrans.Computers.2000,49(5):465-481.若要求实现高清实时解码,则系统对每个宏块的处理时钟数上限为441,本设计在时钟要求方面已能满足要求。

参考文献

…1GB/T20090.2-2006,信息技术先进音视频编码第二部分:视频【S】.2006.

【2】2ZHANGKe。YULu.Anarea-efficientVLSIarchitectureforAVSin?traframeencoder[EB/OLI.【2008-03-25].httpJ/spie.org/electronic—imag-ing.xml.

【3】ITU-TRec.H.26们S伽EC14A96-10AVC,DraftITU—TRecom-mendatiionandFinalDraftInternationalStandardofJointVideoSpeci.fieation[S].2003.、

【4】CHANGSC,PENGWH,WANGSH,eta1.Aplaffrombasedbus-illtedeavedarchitectureforde-blockingfilterinH.2641MPEG--4AVC[J].IEEETrans.CunsumerElectronics,2005,51(1):249-255.

【5】KAOYC,KUOHC,LINYT.eta1.Ahign—performanceVLSIarchitectureforintrapredictionandmodedecisioninH.264/AVCvideoeneoding[C]//Proc.AsiaPacificConferenceonCircuitsandSrs-tenm.is.1.]:IEEEPress.2006:562-565.

◇作者简介:

杨少博f1粥4-J。硕士生.主研视频压缩算法;

李凤事(1946一).副教授.主要研究图像处理、信号处理和ⅥLsI设计。

责任编辑:任健男收藕日期:2∞s-04-lO

【2】2ROSEJ,FRANCISRJ.LEWISD.eta1.Architectureoffieldprogrammablegatearrays:theeffectofloglcblockfunctionalityonareaefficiency[1].IEEEJournalofSolid—StateCircuits,1990,25(5):1217-1225.

【3】BONDALAPAl'IK,PRASANNAVK.Reconflgnrablecomputing:architectures。modelsandalgorithms[EB/OL].[2008-01一lo】.http://cite?Beer.ist.psu.edu/bondalapati00reconfigurable.html.

[4】BECKERJ,THOMASA,VORBACKM,eta1.Anindustrial/aca—demiceonfigurablesystem-on-chipproject(CSoC):coarse-grainXPP-/Leon-basedarchitectureintegration【q/Prec.DesignAutomationand

Testin

EuropeConference

andExhibition.【S.1.]:IEEEPress,2003:1120-1121.

【5】5VORBACHM,BECKERR.Reconfigurab|eprocessorarcbitecturesformobilephones[C]//Proc.ParallelandDistributedProcessingSympo-siam.is.】.]:IEEEPress,2003:22-26.

◇作者简介:

肖钰(1982-).硕士生。主研可t构处理器结构与可重构算法映射;

刘雷波(1975-}.副教授,主要研究方向为、rlLsI橐成电路设计方法学研究:

魏少军(1958-).教授。博士生导师.主要研究领域为深亚微米囊成电路设计方法学、面向设计再利用的SoC设计方法学和裔层次综合技术。

责任编辑:任■男收稿日期:2008-04_lO

万方数据

相关文档
最新文档