郭 琪,周 莉,刘正华,杨 博
(山东大学 信息科学与工程学院,山东 济南250100)
自由视点视频FVV(Free Viewpoint Video)技术是自由视点3D视频处理领域中最有前景的一种技术[1-4]。自由视点视频处理技术的基本方法是基于深度图像来估计和重建多视点视频,从而显著减少数据带宽。所以深度图像的估计和处理方法是自由视点视频技术的关键和重点。
深度图像可以直接由基于运动-视差联合估计的方法计算,利用这种方法能够有效减少自由视点视频技术中深度图像处理过程所需的数据带宽,并且没有增加额外的硬件资源和计算时间成本。但是这种方法是在一个特定的搜索窗口内用特定的代价函数来进行块搜索,所以它存在一些问题:在物体的边缘存在着块效应;在连续的大背景区域、复杂背景区域存在预测噪声。基于色度分割的方法可以改进这些错误。
原始的YUV图像是由亮度分量和色度分量组成的。在一般的运动-视差联合估计的方法中,只有亮度信息被用到,以求得视差矢量和深度图像,包含有丰富的物体边界信息的色度分量没有被用到。对于连续物体表面或者背景区域,色度分量值几乎是相同的。所以如果色度图像按照特定的标准被分割,物体的表面或者背景区域就能被相应地检测出来。如果深度图像的像素值在同一个分割内各不相同,则在这个区域肯定存在深度预测错误。通过检测到错误像素的位置,采取相应的措施来纠正这些错误。
色度分割方法的三个步骤[5]:
第一步:将U/V分量归一化到[0,255]之间。
第二步:进行图像分割,如果当前像素值与其相邻的顶部或者左侧像素值绝对值小于DIV_TH,则它被划分到相同的分割,否则分离到下一个新的分割,如式(1)所示:
式中:divi代表第 i个像素的分割值,ci代表 U/V像素值,ci,top和 ci,left分别代表第 i个像素相邻的上方像素值和左边像素值,DIV_TH代表色度分量分割阈值。
第三步:同一个色度分割被认为是在同一个物体内。一般来说,同一个物体的像素深度值是一样的。第K个色度分割的平均深度值由式(2)计算得到:
式中:avc_depthk代表第K个色度分割的平均深度。
属于同一个色度分割(第K个)区域的深度图像的像素深度值可以由式(3)来决定:
式中:avc_depthk表示第K个色度分割的平均深度,p_numk表示第K个分割包含的像素个数,P_NUM_TH表示预设的像素序号阈值,用以保证属于同一个分割内的像素深度值取平均,属于不同分割的像素深度值保持不变。
2.1.1 深度处理模块的架构与组成设计
根据算法结构与组成,确定深度模块的实现架构与组成,包括总线结构、存储结构、时钟频率、模块组成等。
总线结构选用标准AXI总线。由于立体视频需要实时处理多路视频信号,所以需要的视频数据处理带宽极大,必须采用AXI总线设计才能满足实时处理要求。内部模块所产生的处理数据,如果不能暂存于片上存储单元中,则通过AXI总线写到片外缓存。同样,读数据也通过AXI总线读入处理模块。存储结构根据视频像素YUV分量的组成,分为Interleave存储方式和非Interleave存储方式。Interleave存储可以实现具有较长Burst传输的DMA设计,但是内部芯片设计较为复杂。而非Interleave存储则不利于实现高效的总线传输,但是DMA设计相对简单。根据所用的标准单元库,以及芯片实际电路设计来确定所需的时钟频率,根据经验应不低于200 MHz。
2.1.2 运动估计与视差估计存储单元设计
由于需要对当前块同时进行运动预测与视差预测,所以宏块中间预测结果需要尽可能存储于片上存储单元中,以减少总线的输入输出数据带宽。假设视差估计的搜索窗口为 PW×PH,图像分辨率为 FW×FH,运动预测采用固定搜索窗口范围48×48。视差预测模块与运动预测模块同时读入相应参考宏块存入片上缓存,片上存储单元需要将进行完预测、并且后续预测有可能会用到的宏块都存储下来以减少数据带宽,增加处理速度。这样,运动估计存储单元 MEM(ME Memory)至少需要有16×3+4个像素行的容量,即FW×52。相应视差存储单元DEM(DE Memory)至少需要有 FW×PH+4容量。
2.1.3 芯片软硬件验证平台设计
芯片设计离不开验证平台。大规模集成电路设计过程需要完善的验证平台进行仿真、测试来证明其功能和性能的正确性、完整性、实时性。立体视频编码芯片基于传统的Verilog和C语言来搭建软硬件验证平台,如图1所示。
图1中,stimulus&video input产生模块测试激励和输入编码前视频数据;Monitor、reset、clock用于产生通用的测试信号和输入;SDF文件用于芯片后仿真;Mem&controller为行为级存储器控制模块和片外存储单元。测试平台可以产生各种调试信号,如波形信号fsdb、vcd,运行记录文件log,并产生最终的硬件结果。硬件结果与C/C++描述的软件编码参考模型结果进行比对,来判断硬件结果的正确性。
2.1.4 深度处理模块的总体框图
对应于色度分割方法,整个系统分为三个部分:色度分量U/V锐化模块Sharp、色度分量分割模块 Frag、深度图像滤波模块Filter。深度图像优化系统的框图如图2所示。
主要模块功能定义如下:色度锐化模块Sharp对读取的U/V分量进行锐化处理;色度分割模块Frag对处理过的U/V分量按照一定的规则进行划分;深度滤波模块Filter对得到的深度图像进行滤波以保证深度图像的优化是在同一个划分内进行的。
色度锐化模块框图如图3所示。首先考虑存储器的大小,对于一帧分辨率为1 024×768的图像来说,如果采样格式为 4:2:0,其 U/V分量为 512×384。 所以这里定义内部原始像素存储器为8 bit位宽、地址从0~196 607的存储器,用来存放片外读取的U/V分量。类似地,定义内部锐化像素存储器为同样类型的存储器,用来存放经过锐化处理过的U/V分量,这两个存储器的输入、输出均由存储器控制器控制。定义两个Reg寄存器Max Value Reg和Min Value Reg用来保存两个比较器输出的中间结果。存储器控制器依次产生内部原始像素存储器的地址,内部原始像素存储器顺序输出给比较逻辑,等所有像素都输出一遍后,寄存器Max Value Reg和Min Value Reg里面就分别保存了整帧的U/V色度分量最大值和最小值。然后使能寄存器,让寄存器保持原来的值。控制器再依次产生内部原始像素存储器的地址,此时控制器根据后续的计算模块的时序,对每一个像素值进行锐化处理,得到的结果保存在内部锐化像素存储器里面。
色度分割模块框图如图4所示,从Sharp模块出来的数据直接进入Frag模块进行处理。图4中内部锐化像素存储器和其右侧的存储器控制器与图3中相对应。根据像素所处的位置来选择不同的处理方法:如果当前像素处于第一行,则只需要将当前像素与其左边相邻的像素进行比较即可;如果当前像素处于第一列,则只需要与其上方相邻的像素比较即可;如果是其他位置的像素,则需要同时和其左边的相邻像素及上方的相邻像素比较。比较准则见式(1),得到的分割数 Frag Number存在像素分割数存储器中。
深度图像模块框图如图5所示。其中,从片外存储中读出色度分量分割模块的结果,放入内部滤波存储器;然后在存储器控制器的控制下,与事先预设好的P_NUM_TH一起进入比较器进行比较以得到同一个分割内的平均深度值 ave_depth;再根据式(3)进一步修正深度图像depth的值,将结果存在结果存储器中。
Verilog代码经Synopsys综合工具Design Compiler的逻辑综合,深度图像处理模块在 SMIC 0.18 μm工艺下,能够达到总线时钟为200 MHz的工作频率,消耗89 100门逻辑资源。由此可知:基于色度分割的深度处理模块能够有效地减少数据带宽,并且没有额外增加硬件资源和计算时间成本,适用于实时自由视点3D视频处理。
图6是基于块搜索的运动-视差联合预测方法直接得到的深度图像,图7是经过基于色度分割方法的深度处理模块优化后得到的深度图像。从图6和图7的对比可以看出:对于连续的大背景区域而言,这种深度图像优化方法可以有效地过滤深度图像的预测噪声,并且对于减少物体边缘的块效应有很好的效果。另外,这种优化方法也使得图中的物体边缘变得更加清晰,如椅子、墙壁和桌子的边缘等。
采用本文方法可以显著减少连续大背景区域的深度图像的预测噪声,也能较好地改善物体边缘处的块效应。采用运动-视差联合估计的方法,结合这种基于色度分割的深度优化方法,可以有效地优化深度图像,显著减少计算量和数据带宽,非常适用于实时自由视点3D视频处理。
[1]SMOLIC A,MUELLER K,STEFANOSKI N,et al.Coding algorithms for 3DTV-A survey[J].IEEE Transactions on Circuits and Systems for Video Technology,2007,17(11):1606-1621.
[2]MARKUS F,ADITYA M,BERND G.Motion and disparity compensated coding for multiview video[J].IEEE Transtions on Circuits and Systems for Video Technology,2007,17(11):1474-1484.
[3]VETRO A,WIEGAND T,SULLIVAN G J.Overview of the Stereo and Multiview Video Coding Extensions of the H.264/MPEG-4 AVC Standard[J].IEEE Proceedings,2011(99):1-17.
[4]ITU-T Rec.H.264-ISO/IEC 14496-10 AVC:Advanced video coding for generic audiovisual services[Z].ITU-T and ISO/IEC Joint Video Team,2005.
[5]Li Zhou,Tao Sun,Zhong Lv,et al.Depth map optimization based on adaptive chrominance image segmentation[J].Communication Software and Networks,2011(5):660-664.