一种基于对象的多视点视频分形编码压缩与解压缩方法
技术领域:
本发明属于三维视频压缩编码领域,涉及多视点视频的压缩编码,为三维立体视频编码的实时性应用奠定了基础,进一步提高了基于分形的多视点立体视频压缩编码的性能。
背景技术:
分形理论最初应用于图像压缩,采用仿射变换进行压缩编码,大大提高了编码效率,并成为目前分形图像编码中的主流方法。近年来,一些学者和研究人员把分形图像压缩的方法应用到视频序列的压缩上。其中最为经典和影响较大的参见(C.S.Kim,R.C.Kim,S.U.Lee.Fractalcodingofvideosequenceusingcircularpredictionmappingandnoncontractiveinterframemapping[J].IEEETransactionsonImageProcessing,1998,7(4):601-605.)。该方法采用类似于标准视频编码方法所采用的运动估计/补偿技术,该方法利用了相邻帧之间的时间强相关性,对视频序列压缩取得了较好的效果。在CPM和NCIM中,子块域中的每个图像块都由来自相邻帧相同大小的父块域通过运动补偿得到。CPM和NCIM两者间最大的不同在于CPM在解码的过程中需要具备收敛性,而NCIM不需要。但是在循环预测编码(CPM)方法中,为了保证起始帧经过自身的循环解码能够近似收敛到原来的图像,压缩过程需要经过复杂变换、搜索和迭代等,压缩时间和图像质量难以达到要求。Chou-ChenWang等人提出利用空间方向或空间和时间方向上子块附近的四个父块作为最佳的搜索区域,搜素出最佳匹配块的方法,(参见Chou-ChenWang,Chaur-HehHsieh.Efficientfractalvideocodingalgorithmusingintercubecorrelationsearch[J].SocietyofPhoto-OpticalInstrumentationEngineers,2000,39(8):2058-2064.)减少了搜索时间,提高了编码效率。MeiqingWang等提出了综合基于数据立方体和基于帧的分形视频压缩方法(参见MeiqingWang,Choi-HongLai.Ahybridfractalvideocompressionmethod[J].Computers&MathematicswithApplications,2005,50(3-4):611-621.),(参见MeiqingWang,ZhehuangHuang,Choi-HongLai.Matchingsearchinfractalvideocompressionanditsparallelimplementationindistributedcomputingenvironments[J].AppliedMathematicalModeling,2006,30(8):677-687.),(参见MeiqingWang,RongLiu,Choi-HongLai.Adaptivepartitionandhybridmethodinfractalvideocompression[J].Computers&MathematicswithApplications,2006,51(11):1715-1726.),在一定程度上提高了压缩比和解压图像的质量,但压缩时间较长;KojiOhse与MasahiroNakagawa提出将视频序列变换到频率域,在应用分形视频压缩方法将不同分量的序列压缩编码(参见KojiOhse,MasahiroNakagawa.Fractalvideocodingwiththeorthogonaltransformation,ElectronicsandCommunicationsinJapan,2007,90(3):36-47),此方法提供了在确定压缩比的情况下,实现对视频较好的压缩。目前典型的分形图像和视频压缩方法的运算量大,编码速度较慢,并且解码的质量有待提高,使得分形图像和视频压缩方法还需要进一步的改进和提高。
基于对象(Object-Based,简称OB)编码的概念最早由MPEG-4标准提出,但未给出具体有效的分割方法。使用基于对象的视频压缩编码方法使得每一帧视频的前景对象和背景对象得以独立的进行编码,可以进一步提高压缩比,同时在解码端可以实现一些新的功能,比如针对每一个视频对象的独立的传输和解码、对象和背景的替换、基于对象的视频检索、特别是相对于标准的编码方法,在对象的边界上可以获得更好的图像质量,因为物体的边界通常和图像中的边缘相重合,它是编码困难的部分。MPEG-4提出了基于对象的视频编码技术标准,在视频分析中,以视频对象为基本单位,每一个视频事件和场景都可以视为由视频中所有语义对象的静态属性(如形状、色彩、纹理)及其动态属性(运动强度、方向、节奏)组合而成的。在以对象为基本分析单位的视频分析方法,符合人类的思维方式和视觉特点,排除了视频中不重要的部分对视频分析的干扰(参见LiangZhang.Object-basedMethodofimportantvideoclipsextraction[J].JournalofBeijingInformationScienceandTechnologyUniversity,2009,24(4):83-86),(参见BoHuang,YujianHuang.AScalableObject-basedWaveletCoder[J].RadioCommunicationsTechnology,2009,35(1):35-38),(参见KassimAshrafa,ZhaoLF.Rate-scalableobject-basedwaveletcodecwithimplicitshapecoding[J].IEEETransactionsonCircuitsandSystemsforVideoTechnology,2000,10(7):1068–1079)。基于对象的视频编码方法可以提高视频压缩编码的性能并使其具有更多的灵活性,但目前还没有一个具体的精确分割视频方法有效地提取出视频对象。
多视点视频(Multi-viewVideo)是一种新型的具有立体感和交互操作功能的视频,通过在场景中放置多台摄像机,记录下多个视点数据,提供给用户以视点选择和场景漫游的交互能力。多视点视频将在自由视点视频、立体电视、立体视频会议、多视点视频点播等数字娱乐领域有着非常广泛的应用前景。随着相机数视点视频的增加,多视点视频的数据量也成倍增加,巨大的数据量已成为制约其广泛应用的瓶颈(参见MatthiasZwicker,SehoonYea.Multi-viewVideoCompressionfor3DDisplays[J].IEEEComputerSociety,2010.)。拍摄场景不同角度的视频信息,利用其中的一个或多个视点信息可以合成任意视点的信息,达到自由视点显示和自由切换任意视点的视点视频的(参见ISO/IECJTC1/SC29/WG111CallforEvidenceonMulti-ViewVideoCoding.DOC.N6720,PalmadeMallorca,Spain,2004.),(参见ISOIECJTC1/SC29/WG111SurveyofAlgorithmsusedforMulti-viewVideoCoding(MVC).DOC1.N6909,HongKong,China,2005.),(参见ISO/IECJTC1/SC29/WG111RequirementsonMulti-viewVideoCoding4.DOC.N7282,Poznan,Poland,2005.)。
发明内容:
本发明提出了一种基于对象的多视点视频分形编码压缩与解压缩方法,采用自动分割技术提取出需要编码的对象,选取中间视点作为参考视点,使用基于中心偏置的五边形运动估计预测结合分形编码的视频压缩方法,其它视点压缩时加入了视差估计;采用预匹配条件,得到满足条件的块匹配,将不满足条件的块提高到半像素搜索块匹配,不仅提高视频压缩比与编码效率,也改善了视频解码质量;以五个视点视频为例,K、L、C、R和S依次代表一个视点视频,编码过程中,采用了本发明提出的K←L←C→R→S的预测结构,即视点R和L均用视点C来预测,视点S和K分别用视点R和L来预测,5个视点的起始帧都用I帧。解码视点顺序相同,采用环路滤波去除块效应,提高解码视频视觉质量。
1、一种基于对象的多视点视频分形编码压缩与解压缩方法,其特征在于实现步骤如下:
步骤一:输入视频,若当前帧是P帧,则判断视点,若为中间视点C的图像转到步骤二;若为左视点L或右视点R的图像,转到步骤七;若为左视点K的图像,转到步骤九;若为右视点S的图像,转到步骤十一。若当前帧为起始帧或需要帧内编码的I帧,对于每个在分割对象区域内的对内部块和边界块进行步骤二中的处理后,在各种可能的预测方式中选择具有最小代价的预测模式存储,完成所有块的预测后可以得到I帧的预测帧。通过原始帧和预测帧之差得到编码端残差帧,对残差图像的数据经过DCT、量化之后得到DCT变换系数;转入步骤六;
步骤二:对前一帧图像中划分得到的为父块,对P帧划分得到子块,利用分割得到的Alpha平面判别该子块的区域属性;根据该子块的类型,做出如下的选择,如果该子块不在Alpha平面对象区域内,即外部块,对该块不做处理,继续处理下一子块;如果该子块部分位于Alpha平面对象区域内,即边界块,只计算在对象区域内的像素值,而非对象区域内的像素不予以考虑;处理边界父块时,若与子块相对应的位置的父块中的某一像素也属于对象区域,则使用原像素值,否则,按照特定的计算值来代替原像素值,本文中使用的是父块中属于对象区域的像素均值来代替原像素值;转到步骤三;如果该子块全部位于Alpha平面内,转入步骤三;
步骤三:对步骤二中得到的子块与父块进行块匹配。首先对该子块在父块域中的矩形搜索窗内进行块匹配:在进行子块与父块的匹配过程中,匹配映射只在同类块之间进行,即子块和父块必须同时是边界块或者同时是内部块;父块的大小与子块的大小相同;子块的位置作为父块的起始搜索点,采用基于中心偏置的五边形运动估计方法和半像素块匹配,得到最小匹配误差RMS,搜索出最佳的匹配块。转到步骤四;
步骤四:判断步骤三中搜索出的最佳匹配块是否满足预匹配条件:0<a<u,u可以根据需要进行设置后,进行接下来的预匹配条件判断。若与父块对应匹配误差RMS满足预匹配条件,并且大于预先设定的阈值γ,则转到步骤五;否则直接保存当前的迭代函数系统系数即IFS系数,转入步骤六;
步骤五:依次按照树状划分结构的四种模式对该子块进行划分,利用基于中心偏置的五边形运动估计方法和半像素块匹配计算匹配误差RMS,如果RMS小于设定阈值γ,停止划分并记录该小块IFS系数,包括父块位置(x,y)和比例因子s、偏移因子o,转入步骤五;否则继续划分,直到将当前块划分为预先设定的最小块,记录IFS系数;转入步骤六;
步骤六:对DCT系数或IFS系数进行Huffman编码,降低数据的统计冗余。通过保存的IFS系数代入解码方程计算得到预测块的值,由原始块和预测块之差得到残差块,对其进行DCT变换和量化处理后,再经反量化、反DCT变换的得到残差块的值与预测块的值求和得到重建块(所有的重建块可得到重建帧,作为下一帧的参考帧)。如果当前帧所有的子块都已编码完毕,则转到步骤一;否则,转到步骤二编码下一子块;
步骤七:若P帧为左视点L或右视点S中的图像,将参考视点C中对应帧的解码图像、P帧图像与P帧前一帧图像分别进行宏块和小块划分,宏块是将当前帧划分为固定大小的互不重叠的图像块,小块是宏块经过树状划分得到的块,各宏块之间、小块之间互不交迭但又恰好接触。利用Alpha平面判别该图像块的区域属性;根据该宏块的类型,做不同的处理。计算各宏块与小块的像素和、像素平方和,同时计算半像素内插值对应块的像素和、像素平方和,以减少块匹配过程中的重复计算;转到步骤八;
步骤八:参考视点C中的对应帧重建图像中矩形搜索窗内对所有子块进行块匹配,充分利用分数像素块匹配和快速视差估计方法:将上一个视差估计矢量作为为当前帧的搜索中心,在水平方向沿初始点的右侧进行搜索,在搜索过程中进行跳跃式搜索;点匹配完之后,向右间隔三个点进行搜索,进行比较,直到找到最小的RMS;然后对分数像素位置进行相同的操作,比较得到更小的RMS1,结束DCP搜索过程;在当前P帧的前一帧矩形搜索窗内利用分数像素和基于五边形的运动估计对子块和父块进行匹配,得到最小匹配误差RMS2,将RMS2与RMS1比较,选择误差最小的作为预测结果,记录该块的IFS系数;转到步骤十三;
步骤九:若P帧为左视点K中的图像,将左视点L中对应帧的解码图像、当前P帧与前一帧图像分别进行宏块和小块划分,利用Alpha平面判别该图像块的区域属性;根据该宏块的类型,做不同的处理。计算各宏块与小块的像素和、像素平方和;转到步骤十;
步骤十:在左视点L中的对应帧重建图像中矩形搜索窗内首先对所有子块进行块匹配,即利用快速视差估计方法得到父块与子块的最小匹配误差:在进行子块与父块的匹配过程中,父块的大小与子块的大小相同,子块的位置作为父块的起始搜索点,得到最小匹配误差RMS3,搜索出最佳的匹配块。在左视点K中P帧的前一帧矩形搜索窗内利用分数像素和基于中心偏置的五边形运动估计方法对子块和父块进行匹配,得到最小匹配误差RMS4;将RMS3与RMS4比较,选择误差最小的作为预测结果,记录该块的IFS系数;转到步骤十三;
步骤十一:若P帧为右视点S中的图像,将右视点R中对应帧的解码图像、当前P帧与前一帧图像分别进行宏块和小块划分,利用Alpha平面判别该图像块的区域属性;根据该宏块的类型,做不同的处理。计算各宏块与小块的像素和、像素平方和;转到步骤十二;
步骤十二:在右视点R中的对应帧重建图像中矩形搜索窗内利用快速视差估计方法对所有子块进行块匹配,得到最小匹配误差RMS5;在右视点S中P帧的前一帧矩形搜索窗内利用分数像素和基于中心偏置的五边形运动估计方法对子块和父块进行匹配,得到最小匹配误差RMS6;将RMS5与RMS6比较,选择误差最小的作为预测结果,记录该块的IFS系数;转到步骤十三;
步骤十三:对得到的IFS系数进行编码,判断是否为最后一帧,若不是,返回到步骤一编码下一帧;否则结束编码。
一种基于对象的多视点视频分形编码压缩与解压缩方法,其特征在于:提出新的时间-空间相结合的预测结构:K←L←C→R→S,对视频序列中间视点C,以及和中间视点分别等距的左视点K、L和右视点R、S的五个视点视频,分别进行时间空间联合预测MCP+DCP处理,每个处理彼此独立,K、L视点视频内部或R、S视点视频内部之间没有对应联系。
一种基于对象的多视点视频分形编码压缩与解压缩方法,其特征在于:多视点视频分形编码中采用多参考I帧,即每个视点的起始帧都采用I帧压缩方法,可以在取得一定压缩比的同时,获得较好质量的重建图像,为后面其它帧的压缩构建高质量的参考帧。
根据权利要求1所述一种基于对象的多视点视频分形编码压缩与解压缩方法,其特征在于:所述步骤三中半像素块匹配包括:利用整数像素线性内插得到半像素区域;使用半像素块与当前块计算得到相对最小的误差RMS,得到最佳匹配块。
根据权利要求1所述一种基于对象的多视点视频分形编码压缩与解压缩方法,其特征在于:所述步骤三中基于中心偏置的五边形运动估计方法,充分利用时间相关性、视频的运动特征和分形编码的特点,主要表现为以下几点:
A、提前搜索终止技术:由于大量最低运动视频序列有很多接近(0,0)的运动矢量,这些不运动宏块的发现可以仅仅通过计算其在(0,0)点的RMS值来实现。搜索中,如果在中心点(0,0)所得到的RMS值小于某一阈值,则针对此宏块的搜索立即停止。
B、运动矢量的中心偏置性:在视频序列中背景和物体的运动大多是缓慢而平滑的,对于运动细微的视频场景,其运动矢量往往极好地符合了运动矢量的中心偏置分布模型。在这样的小运动序列中,大多数运动矢量都偏向于搜索中心而相互之间非常接近。此只需在搜索中心及其附近的小范围区域内进行搜索。本发明选择五边形的搜索模式,与其它模板(如十字形、六边形、菱形等)相比,具有较好的中心偏置性。
C、相邻运动矢量之间的相关性:对于运动剧烈的图像序列,同一运动物体所覆盖的几个块的运动往往具有很强的相关性,利用它们之间运动的相关性通过预测来进行搜索,可以大大提高搜索速度,并可有效地避免搜索进入局部最小点。本发明选择上一个宏块的最佳矢量作为新的起始点搜索,能较好的减少匹配时间。
具体步骤如下:
步骤Ⅰ:由相邻块预测当前块的分数像素运动矢量,获得FMVP,即(Pred_x,Pred_y)。直接以FMVP作为搜索起始点(0,0);
步骤Ⅱ:比较搜索起始点(0,0)周围的5个五边形搜索点(-2,0),(-1,-1),(1,-1),(2,0),(0,1)和(0,0)的匹配误差,;如果最小匹配误差小于某一阈值,最佳匹配矢量作为最终分数像素运动矢量;如果最小匹配误差RMS位于(0,0),转到步骤Ⅳ;否则进行第Ⅲ步搜索;
步骤Ⅲ:如果最佳匹配点为(0,1),则选择此最佳匹配点为步骤Ⅳ的搜索起始点,转到步骤Ⅳ;否则以上一步得到的最佳匹配点为中心,比较周围4个小菱形点的匹配误差,得到最佳匹配点为下一步的搜索中心点,转到步骤Ⅳ;
步骤Ⅳ:比较中心点周围4个偏置菱形搜索点(-2,0),(-1,-1),(1,-1),(2,0)的匹配误差,如果最小匹配误差小于某一阈值,RMS最小的点作为最终分数像素运动矢量;否则转到步骤Ⅴ。
步骤Ⅴ:按照四种划分模式划分宏块,按照上述步骤重新进行匹配,直到得到最小的RMS的匹配块,RMS最小的点作为最终分数像素运动矢量。
根据权利要求1所述一种基于对象的多视点视频分形编码压缩与解压缩方法,其特征在于:步骤四中为降低计算量加入了预匹配条件,即将匹配误差可以进行以下变形,
取 a∈(0,1)
其中对于每个需要编码子块来说,为常数,因此为了得到最小匹配误差RMS,b=(1-a)的取值要求越小越好,即a取值应尽量大,经过实验证明,预匹配限制条件为0<a<0.1时,提高编码效率和解码图像质量。
根据权利要求1所述一种基于对象的多视点视频分形编码压缩与解压缩方法,其特征在于:步骤四中误差阈值的确定规则如下:
设定子块的匹配误差阈值γ=tol×tol×no,其中tol根据不同的子块大小而改变,大的子块tol就越大,小的子块tol就小。在本发明中,我们取16×16宏块的tol为10.0,8×8子块的tol为8.0,4×4子块的tol为6.0,no为当前子块属于该视频对象区域的像素个数。
根据权利要求1所述一种基于对象的多视点视频分形编码压缩与解压缩方法,其特征在于:步骤五中对宏块采用树状划分,块匹配采用匹配误差准则,通过设定合适的比例因子s和偏移因子o,可以使得仿射变换后的yi值有来自xi值的最小平方距离,即当RMS关于s和o的偏微分为0时,得公式(4)(5),可以得到RMS的最小值。其中yi为子块的像素值,xi为父块的像素值,子块与父块的匹配误差RMS为
如果RMS小于预先设定的阈值γ,记录IFS系数,IFS系数包括匹配块的位移矢量(x,y)和公式(4),(5)中的s和o,处理下一宏块。
根据权利要求1所述一种基于对象的多视点视频分形编码压缩与解压缩方法,其特征在于:所述步骤八使用的视差估计方法为:
利用视差分布约束条件:外极线约束、方向性约束、空域相关性与时域相关性,将上一宏块视差估计矢量作为当前块的搜索中心,沿初始点水平方向进行搜索,方向根据视点位置确定,在搜索过程中进行跳跃式搜索;点匹配完之后,向水平方向隔三个点进行搜索,进行比较,直到找到最小的RMS;以此宏块视差估计矢量作为搜索中心,再对半像素位置进行相同的操作,比较得到更小的RMS。
一种基于对象的多视点视频分形编码压缩与解压缩方法,其特征在于:在五个视点的三维视频编码基础上提出一种自适应自动分割视频对象,并对感兴趣对象的进行压缩方法,进一步减少了三维视频的数据量。
一种基于对象的多视点视频分形编码压缩与解压缩方法,其特征在于解压缩方法包含以下步骤:
步骤Ⅰ:首先读入五个视点图像序列压缩信息和Alpha平面,包括压缩帧数,帧率,每帧图像的宽和高,I帧压缩质量和插入I帧的间隔;从压缩文件中读入码流直接对各视点的起始帧进行解码;
步骤Ⅱ:判断解码帧是否为I帧,若是I帧转入步骤Ⅲ,否则转入步骤Ⅳ;
步骤Ⅲ:解码帧为I帧,从压缩文件中读入码流对边界块和内部块直接进行解码,采用环路滤波去除块效应,帧数加一转入步骤Ⅸ;
步骤Ⅳ:对于非I帧,若为C视点需解码P帧,计算P帧的前一帧中按照设定步长划分的所有子块以及经树状划分得到的小块的像素和、像素平方和,转到步骤Ⅴ;若为左视点L或右视点R中图像,转到步骤Ⅵ;若为左视点K中图像,转到步骤Ⅶ;若为右视点S中图像,转到步骤Ⅷ;
步骤Ⅴ:从码流中读入P帧所有宏块的划分信息、Alpha平面、每一个小块的迭代函数系统系数和残差帧数据,其中由各迭代函数系统系数分别计算出解码端的预测块形成解码端的预测帧,残差帧数据经过反量化和反变换得到解码端残差帧。将解码端残差帧与预测帧求和,再采用去方块环路滤波提高解码视频视觉效果:首先对边界的类型进行判断,定义参数块边缘强度,针对不同强度的块边缘,选择的滤波器和所需要滤波的像素点数也不一样,如果为帧内编码且为宏块边界,则采用强滤波;若不是帧内编码且不是宏块边界,仿射块边界采用一级滤波,非仿射块边界不需要滤波;其它情况采用二级滤波;最后按照每一宏块进行解码;转到步骤Ⅸ;
步骤Ⅵ:从码流中读入左视点L或右视点R中P帧的编码信息和Alpha平面,确定参考帧的类型,若参考帧为前一帧,则计算P帧的前一帧中按照设定步长划分的所有子块以及经树状划分得到的小块的像素和、像素平方和;若参考帧为P帧在C视点中的对应帧,则计算C视点中对应帧的解码图像按照设定步长划分的所有宏块以及经树状划分得到的小块的像素和、像素平方和;再由各迭代函数系统系数分别计算出解码端的预测块形成解码端的预测帧,残差帧数据经过反量化和反变换得到解码端残差帧。解码端残差帧与预测帧之和经过滤波后得到解码后的图像;转到步骤Ⅸ;
步骤Ⅶ:从码流中读入左视点K的编码信息,若采用运动估计方法编码和Alpha平面,则计算P帧的前一帧中按照设定步长划分的所有子块以及经树状划分得到的小块的像素和、像素平方和;若参考帧为P帧在L视点中的对应帧,则计算L视点中对应帧的解码图像按照设定步长划分的所有宏块以及经树状划分得到的小块的像素和、像素平方和;再由各迭代函数系统系数与参考块分别计算出解码端的预测块形成解码端的预测帧,残差帧数据经过反量化和反变换得到解码端残差帧。解码端残差帧与预测帧之和经过滤波后得到解码后的图像;转到步骤Ⅸ;
步骤Ⅷ:从码流中读入右视点S的编码信息和Alpha平面,若采用快速视差估计方法编码,即参考帧为P帧在R视点中的对应帧,则计算R视点中对应帧的解码图像按照设定步长划分的所有宏块以及经树状划分得到的小块的像素和、像素平方和;否则计算P帧的前一帧中按照设定步长划分的所有子块以及经树状划分得到的小块的像素和、像素平方和;再由各迭代函数系统系数与参考块分别计算出解码端的预测块形成解码端的预测帧,残差帧数据经过反量化和反变换得到解码端残差帧。解码端残差帧与预测帧之和经过滤波后得到解码后的图像;转到步骤Ⅸ;
步骤Ⅸ:判断此时五个视点所有帧是否都已解码,若都解码完毕,结束解码过程,否则转入步骤Ⅱ。
根据权利要求11所述,一种基于对象的多视点视频分形编码压缩与解压缩方法其特征在于:对于每一个宏块进行解压缩时,首先判断该宏块在编码时的划分方式,若非C视点视频,则先确定父块域是在前一帧或是参考视点当前帧对应帧中;对于每一个子块,首先在父块域找到与该子块相对应的区域,然后利用下面的公式获得该子块的像素值,
ri=s·di+o(6)
其中ri为待解码子块的像素值,di为父块域中的像素值,s为比例因子,o为偏移因子。
13、根据权利要求11所述一种新的多视点视频分形编码压缩与解压缩方法,其特征在于:对五个视点视频解码是同时的,先解码各个视点的起始帧与C视点视频的第二帧,将L视点起始帧或C视点视频的第二帧作为L视点第二帧解码的参考帧,将R视点起始帧或C视点视频的第二帧作为R视点第二帧解码的参考帧,将K视点起始帧或L视点视频的第二帧作为K视点第二帧解码的参考帧,将S视点起始帧或R视点视频的第二帧作为S视点第二帧解码的参考帧,依此类推解码五个视点视频的所有帧。
根据权利要求11所述一种新的多视点视频分形编码压缩与解压缩方法,其特征在于:所述步骤Ⅴ中的块边缘强度用BS表示;其中,P0',Q0',P1',Q1'表示滤波后的像素值,P0,P1,Q0,Q1表示原始的像素值,不同的BS和对应的滤波器如下:
若为帧内编码且边界是宏块边界时,BS=3,需要进行强滤波,滤波器表示为:
P0'=(P1+P0+Q0)/3
Q0'=(P0+Q0+Q1)/3(7)
P1'=(2·P1+P0')/3
Q1'=(2·Q1+Q0')/3
若为帧内编码且边界不是宏块边界,或者是边界但不是帧内编码时,BS=2,对应二级滤波器表示为:
P0'=(P1+2·P0+Q0)/4(8)
Q0'=(P0+2·Q0+Q1)/4
若不是帧内编码和边界,是仿射块边界时,BS=1,对应的一级滤波器表示为:
P0'=(P1+3·P0+Q0)/5(9)
Q0'=(P0+3·Q0+Q1)/5
若不是帧内编码和边界,也不是仿射块边界时,当BS=0,不进行滤波。
根据权利要求11所述一种新的多视点视频分形编码压缩与解压缩方法,其特征在于:输入的视频序列为YUV格式,分别对3个分量Y、U、V每个都采用上述十三个步骤进行处理。
本发明所提出的多视点视频分形压缩方法的优点在于:
(1)本方法在编码上采用多参考I帧,对每一个视点的起始帧都采用DCT变换来处理,可以在取得一定压缩比的同时,获得较好质量的重建图像,为后面其它帧的压缩构建高质量的参考帧;
(2)运动估计是分形中搜索最关键的一个环节,也是造成编码时间过多的重要来源。本方法采用一种基于中心偏置的五边形运动估计方法,结合了视频实际的运动特性,采用提前搜索终止技术、运动矢量的中心偏置性、相邻运动矢量之间的相关性,提高了编码效率。
(3)本方法在编码过程中,提出了一种新的预测结构K←L←C→R→S,充分利用时间和空间相关性,有效地消除各视点间冗余数据,使得多视点视频编码达到实时性要求,并且使其面向的范围更广,实现更好的效果。
(4)本方法在进行块划分匹配之前,利用块匹配误差与上述提到参数b成正比,得到预匹配条件,提前获得一些子块的最佳匹配父块,未得到最佳匹配父块的子块则继续划分进行块匹配,提高了编码性能和速度。
(5)本方法在搜索块匹配时,通过双线性插值得到整像素之间的像素值,将匹配精度提高到半像素,可以获得更精确的运动向量和更高的压缩比。
(6)本方法采用了自动分割方法获得Alpha平面,可以实现对多视点视频中感兴趣区域进行单独编码,增加了压缩比和峰值信噪比,而且使得压缩具有更大的灵活性。
(7)本方法合理安排各视点数据存储结构,将多个视点编码后结果写入码流中,实现结果的有效存储和利用,在解码中用作输入,来实现图像的复原。
附图说明:
图1为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法的整体流程图;
图2(a)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法的中间C视点视频MCP压缩流程图;
图2(b)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法的L视点视频MCP+DCP压缩流程图;
图2(c)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法的K视点视频MCP+DCP压缩流程图;
图2(d)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法的R视点视频MCP+DCP压缩流程图;
图2(e)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法的S视点视频MCP+DCP压缩流程图;
图2(f)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法的中间C视点视频MCP解压缩流程图;
图2(g)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法的L视点视频MCP+DCP解压缩流程图;
图2(h)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法的K视点视频MCP+DCP解压缩流程图;
图2(i)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法的R视点视频MCP+DCP解压缩流程图;
图2(j)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法的S视点视频MCP+DCP解压缩流程图;
图2(k)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法的中心偏置的五边形运动估计方法流程图;
图2(l)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法中的视差补偿预测DCP快速方法流程图;
图3(a)为左视点K视频序列“Robert”的起始帧原始图像;
图3(b)为左视点L视频序列“Robert”的起始帧原始图像;
图3(c)为中间视点C视频序列“Robert”的起始帧原始图像;
图3(d)为右视点R视频序列“Robert”的起始帧原始图像;
图3(e)为右视点S视频序列“Robert”的起始帧原始图像;
图3(f)为左视点K视频序列“Robert”的起始帧的Alpha分割平面;
图3(g)为左视点L视频序列“Robert”的起始帧的Alpha分割平面;
图3(h)为中间视点C视频序列“Robert”的起始帧的Alpha分割平面;
图3(i)为右视点R视频序列“Robert”的起始帧的Alpha分割平面;
图3(j)为右视点S视频序列“Robert”的起始帧的Alpha分割平面;
图4为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法块类别判别示意图;
图5(a)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法中基于中心偏置的五边形的两种搜索模板;
图5(b)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法的半像素块匹配方法示意图;
图6为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法对宏块的四种划分模式图,以及对宏块的划分模式四进一步进行划分的四种划分模式图;
图7为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法的MCP和DCP结构示意图;
图8为双目立体平行摄像系统示意图;
图9(a)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法中的去方块环路滤波的垂直和水平边界临域的采样示意图;
图9(b)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法中环路滤波的块边缘强度判决树示意图;
图10(a)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法中对“Robert”5个视点视频序列基于对象和非基于对象进行压缩的压缩比的对比图;
图10(b)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法中对“Robert”5个视点视频序列基于对象和非基于对象进行压缩的PSNR的对比图;
图10(c)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法中对“Robert”5个视点视频序列基于对象和非基于对象进行压缩的总压缩时间的对比图;
图11(a)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法中对“Robert”左视点K视频序列进行非基于对象压缩的第2帧解码图像;
图11(b)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法中对“Robert”左视点L视频序列进行非基于对象压缩的第2帧解码图像;
图11(c)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法中对“Robert”中间视点C视频序列进行非基于对象压缩的第2帧解码图像;
图11(d)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法中对“Robert”右视点R视频序列进行非基于对象压缩的第2帧解码图像;
图11(e)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法中对“Robert”右视点S视频序列进行非基于对象压缩的第2帧解码图像;
图11(f)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法中对“Robert”左视点K视频序列进行基于对象压缩的第2帧解码图像;
图11(g)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法中对“Robert”左视点L视频序列进行基于对象压缩的第2帧解码图像;
图11(h)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法中对“Robert”中间视点C视频序列进行基于对象压缩的第2帧解码图像;
图11(i)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法中对“Robert”右视点R视频序列进行基于对象压缩的第2帧解码图像;
图11(j)为本发明一种基于对象的多视点视频分形编码压缩与解压缩方法中对“Robert”右视点S视频序列进行基于对象压缩的第2帧解码图像;
具体实施方式:
下面将结合附图对本发明方法作进一步的详细说明,仅以亮度分量Y为例,色差分量U和V的压缩步骤与亮度分量相同。
本发明提出了一种基于对象的多视点视频分形编码压缩与解压缩方法,如图1所示选取中间视点作为参考视点,使用基于中心偏置的五边形运动估计预测结合分形编码的视频压缩方法,其它视点压缩时加入了快速视差估计;采用预匹配条件,得到满足条件的块匹配,并且将块匹配的精度提高到半像,提高视频压缩比与编码效率;以五视点视频为例,K、L、C、R和S依次代表一个视点视频,提出K←L←C→R→S的预测结构,即视点R和L均用视点C来预测,视点S和K分别用视点R和L来预测,5个视点的起始帧都用I帧。解码视点顺序相同,采用环路滤波去除块效应,提高解码视频视觉质量。
如附图2(a)、图2(b)、图2(c)、图2(d)和图2(e)所示,一种基于对象的多视点视频分形压缩编码方法,包括以下步骤:
步骤一:以标准测试5个视点立体视频序列“Robert.yuv”的前5帧为例。附图3(a)是标准测试多视点视频序列“Robert.yuv”K视点视频第1帧图像,附图3(b)是标准测试多视点视频序列“Robert.yuv”L视点视频第1帧图像,附图3(c)是标准测试多视点视频序列“Robert.yuv”C视点视频第1帧图像,附图3(d)是标准测试多视点视频序列“Robert.yuv”R视点视频第1帧图像,附图3(e)是标准测试多视点视频序列“Robert.yuv”S视点视频第1帧图像;附图3(f)为K视点视频第1帧图像的Alpha平面,附图3(g)为L视点视频第1帧图像的Alpha平面,附图3(h)为C视点视频第1帧图像的Alpha平面,附图3(i)为R视点视频第1帧图像的Alpha平面,附图3(j)为S视点视频左起第1帧图像的Alpha平面。如附图3(a)所示,图像中有两个视频对象,那么Alpha平面就可以是一个二值图像,用白色代表前景,黑色代表背景。每个对象都可以独立地进行压缩,使得每个对象组成一个码流。所以在解压缩时,不需要得到整幅图像,而是可以单独恢复和控制每个对象。
所述把正在进行压缩的帧称为当前帧,所述把前一帧的解压缩图像称为参考帧。所述I帧为视频序列起始帧或者视频序列中只进行帧内编码的图像帧;所述块DCT变换中的块采用固定大小模式。对于L视点视频转到步骤十;对于R视点视频转到步骤十四;对于K视点视频转到步骤十,与L视点视频具有相似的编码过程;对于S视点视频转到步骤十四,与R视点视频具有相似的编码过程,参考帧根据预测结构而改变。
步骤二:对视频序列“Robert.yuv”C视点视频。首先判断是否为I帧,若是I帧,对每一个图像块分别采用基于块DCT变换的I帧帧内图像压缩:将起始帧划分为8×8的子块,各子块互不交迭但又恰好接触,对边界块和内部块进行相应的处理后,分别进行DCT变换。对变换系数进行量化和编码,转入步骤十五;否则,转到步骤三;
离散余弦变换中Xi,j代表8×8的图像像素值,变换成8×8的系数矩阵Yx,y。
8×8样本块的正向DCT(FDCT)变换如下:
反向DCT(IDCT)如下:
其中
步骤三:若C视点为非I帧,对图像进行宏块和小块划分,各宏块之间、小块之间互不交迭但又恰好接触。分别计算当前帧互不重叠的块大小分别为16×16,16×8,8×16,8×8,8×4,4×8,4×4的像素和与像素的平方和。然后分别计算参考帧中以1个像素为步长的块大小分别为16×16,16×8,8×16,8×8,8×4,4×8,4×4的像素和与像素平方和,同时计算参考帧中内插得到半像素对应块大小分别为16×16,16×8,8×16,8×8,8×4,4×8,4×4的像素和、像素平方和。所述将当前帧划分为固定大小的互不重叠的图像块称为宏块;所述将当前宏块进行树状划分得到的块称为小块;所述当前帧所有块的集合称为子块域;所述前一帧的所有块的集合称为父块域;
步骤四:如图4所示,当前压缩的是对象为Ob1时(压缩对象Ob2时,方法相同),不在当前编码的视频对象区域Ob1内的块称为外部块,全部都在当前编码的视频对象区域Ob1内的块称为内部块,部分像素不在当前编码的视频对象区域Ob1内的块为边界块。根据该宏块的类型,做出如下的选择:如果为外部块,对该块不做处理,继续处理下一宏块;如果该宏块为内部块,转入步骤六;如果该宏块为边界块,转入步骤五;
步骤五:处理边界子块时,只计算在Ob1区域内的像素值,而Ob2区域内的像素值不予以考虑;处理边界父块时,若与子块相对应位置的父块中的某一像素也属于Ob1区域,则使用原像素值,否则,使用父块中属于Ob1区域的像素均值来代替原像素值;
步骤六:首先对该宏块在父块域中的±7个像素的矩形搜索窗内进行块匹配:在进行子块与父块的匹配过程中,匹配映射只在同类块之间进行,即子块和父块必须同时是边界块或者同时是内部块;父块的大小与子块的大小相同;子块的位置作为父块的起始搜索点;利用半像素块匹配和基于中心偏置的五边形运动估计方法进行块匹配。基于中心偏置的五边形运动估计方法中搜索模板如图5(a)所示,流程图如图2(k)所示,得到最小匹配误差RMS,搜索出最佳的匹配块。
然后搜索半像素内插值对应小块处的RMS点,如图5(b)所示,步骤如下:
1)首先对参考帧中搜索区域内的像素进行内插得到半像素值,形成一个更高分辨率的区域;
2)在内插区域进行整数像素和半像素位置搜索找到最佳匹配块;
3)用匹配块的仿射变换来替代当前块。
图5(b)中,a代表原来的整数像素,b和c代表通过一对整数像素a线性插值后的像素值,d代表通过周围四个整数像素a线性插值后的像素值,箭头表示内插方向。假设A点为整数像素搜索最优点,P0'为最佳匹配块,在其周围进行半像素的运动搜索,如点1、2、3、4、5、6、7、8,直到找到最小的RMS点,P0″为半像素搜索的最佳块,转到步骤七。虽然计算量有所增加,但是半像素运动估计和运动补偿的性能明显好于整数像素的运动估计和运动补偿;
步骤七:判断步骤四中搜索出的最佳匹配块是否满足预匹配条件:0<a<u,u可以根据需要进行设置后,进行接下来的预匹配条件判断。若与父块对应值满足预匹配条件,则转到步骤八;否则直接保存当前的迭代函数系统系数即IFS系数,转入步骤十;
步骤八:判断满足步骤七的最佳匹配块的匹配误差RMS是否小于预先设定的阈值γ,若小于,直接保存当前的迭代函数系统系数即IFS系数,转入步骤十;否则,转入步骤九;
步骤九:依次按照树状结构的四种模式对该宏块进行划分,利用半像素块匹配和基于中心偏置的五边形运动估计方法,直到得到最小匹配误差满足RMS<γ,搜索出最佳的匹配块,记录该小块IFS系数;具体步骤如下:
首先设定子块的匹配误差阈值γ=tol×tol×no,其中tol根据不同的子块大小而改变,大的子块tol就越大,小的子块tol就小。在本例中,我们取16×16宏块的tol为10.0,8×8子块的tol为8.0,4×4子块的tol为6.0,no为当前子块属于该视频对象区域的像素个数。
首先设定16×16宏块的匹配误差阈值γ16=10.0×10.0×no,在参考帧的父块域中以当前子块的位置开始在15×15的搜索窗内对整个宏块进行块匹配,如果匹配误差RMS小于开始设定的阈值γ16,则保存当前的IFS系数包括比例因子s,偏移o,父块相对于当前子块的坐标偏移x,y,返回步骤四,继续下一宏块的匹配。
否则,按照树状结构对该宏块进行划分,对宏块的划分有四种模式,如附图6,模式一为一个16×16小块,模式二为两个8×16的小块,模式三为两个16×8的小块,模式四为四个8×8的小块。
1、首先按模式二的划分计算,利用半像素块匹配和基于中心偏置的五边形运动估计方法,若模式二中两个小块都满足RMS<γ16,则保存当前的IFS系数包括比例因子s,偏移o,以及父块相对于当前子块的坐标偏移x,y,并停止块的划分,转到5;
2、否则按模式三划分,利用半像素块匹配和基于中心偏置的五边形运动估计方法,若模式三中两个小块都满足RMS<γ16,则保存当前的IFS系数包括比例因子s,偏移o,以及父块相对于当前子块的坐标偏移x,y,并停止块的划分,转到5;
3、否则按照模式四对当前宏块进行划分,利用半像素块匹配和基于中心偏置的五边形运动估计方法,此时匹配误差阈值设置为γ8=8.0×8.0×no,如果模式四中的4个小块都满足RMS<γ8,则保存当前的IFS系数包括比例因子s,偏移o,以及父块相对于当前子块的坐标偏移x,y,并停止块的划分,转到5;
4、否则对模式四中的每一个小块按照附图6中的顺序继续进行划分,可依次划分为1个8×8的小块,2个4×8的小块,2个8×4的小块,4个4×4的小块。这里只对第一个8×8小块的匹配过程进行阐述,其它3个8×8小块的匹配过程与第一个相同,不再赘述。首先按照2个4×8的小块划分,进行块匹配,如果两个子块的匹配误差RMS全部小于γ8时,则保存当前的IFS系数包括比例因子s,偏移o,以及父块相对于当前子块的坐标偏移x,y,并停止块的划分。否则,按照2个8×4的划分方式进行块的划分,对这两个子块进行块匹配,如果两个子块的匹配误差RMS全部小于γ8时,则保存当前的IFS系数包括比例因子s,偏移o,以及父块相对于当前子块的坐标偏移x,y,并停止块的划分。否则,对该子块划分为4个4×4的小块,同时匹配误差阈值设为γ4=6.0×6.0×no,对四个小块分别进行块匹配,并分别记录每个子块的IFS系数包括比例因子s,偏移o,以及父块相对于当前子块的坐标偏移x,y,并停止块的划分,转到5;
5、返回步骤四,继续下一宏块的编码。
如果当前帧所有的宏块都已编码完毕,且是C视点,则转到步骤十五;若是其它视点视频,则转到步骤十一;
步骤十:对于L视点或R视点,若是I帧,对每一个处理后的内部块和边界块分别采用基于块DCT变换的I帧帧内图像压缩,转到步骤十五;否则首先对图像进行宏块和小块划分,各宏块之间、小块之间互不交迭但又恰好接触。分别计算当前帧互不重叠的块大小分别为16×16,16×8,8×16,8×8,8×4,4×8,4×4的像素和与像素的平方和。然后计算参考帧中以1个像素为步长的块大小分别为16×16,16×8,8×16,8×8,8×4,4×8,4×4的像素和与像素的平方和,同时计算由整数像素内插得到半像素对应块大小分别为16×16,16×8,8×16,8×8,8×4,4×8,4×4的像素和、像素平方和,以减少块匹配过程中的重复计算。
从第一个宏块开始处理,划分块的类型,依次对当前帧的所有16×16内部块或边界块进行处理后编码。附图7为多视点立体视频编码的MCP和DCP结构示意图,L视点和R视点中,每个宏块使用DCP从C视点中预测,使用MCP从L视点或R视点的前一帧预测。转入步骤四开始在L视点或R视点的前一帧中搜索,选择最匹配的D块;
步骤十一::计算参考视点中对应帧的解压缩图像中以1个像素为步长的大小分别为16×16,16×8,8×16,8×8,8×4,4×8,4×4的小块的像素和与像素的平方和,同时计算整数像素内插得到的半像素对应块大小分别为16×16,16×8,8×16,8×8,8×4,4×8,4×4的像素和、像素平方和,进行搜索选择最匹配的D块。
步骤十二:首先对与当前子块位置相同的父块进行块匹配,得到RMS,并保存迭代函数系统系数,该系数包括父块与子块的相对位移矢量(x,y),比例因子s和偏移因子o;依次对当前帧的所有内部块和边界块进行编码,在父块域中的搜索窗内首先对该宏块进行块匹配;在进行子块与父块的匹配过程中,子块的位置作为父块的起始搜索点,父块的大小与子块的大小相同并转入步骤十三,执行完步骤十三返回之后,如果所得的匹配误差RMS小于开始设定的阈值γ,则保存当前的迭代函数系统系数即IFS系数,转入步骤十二编码下一宏块;否则,依次按照树状结构对该块进行划分,并对各个划分得到的小块分别转入步骤十三,执行完步骤十三返回之后计算匹配误差RMS,如果RMS小于设定阈值γ,则停止划分并记录该小块IFS系数,转入步骤十编码下一宏块;否则继续划分,直到将当前块划分为预先设定的最小块,转入步骤十三计算RMS,执行完步骤十三返回之后记录IFS系数,转入步骤十二编码下一宏块;最后与步骤九所得结果比较,选择误差最小的作为预测结果;所述搜索窗为在参考帧中的矩形搜索区域;所述IFS系数包括父块位置(x,y)和比例因子s、偏移因子o;如果当前帧所有的宏块都已处理完毕,则转到步骤十五;
步骤十三:充分利用半像素块匹配和视差分布约束条件:将上一个视差估计矢量作为当前帧的搜索中心,沿初始点水平方向进行搜索,方向根据视点位置确定,在搜索过程中进行跳跃式搜索;点匹配完之后,向水平方向隔三个点进行搜索,进行比较,直到找到最小的RMS;以此宏块视差估计矢量作为搜索中心,再对半像素位置进行相同的操作,比较得到更小的RMS。图2(l)为视差补偿预测DCP快速方法流程图,具体实现如下:
视差分布约束条件包括:
1)外极线约束;对于左视点中的图像上的一点,通过相对定向参数找出右视点中的图像上与其对应的极线,其对应点在上述极线上搜索;对于平行系统的视差搜索,沿扫描线,进行x方向的搜索;最佳匹配点位于偏振线上即水平线上;在立体平行摄像系统中,沿水平方向进行DCP搜索;
如图8,两摄像机在同一时刻观看空间同一特征点P(xc,yc,zc),在左视点中的图像和右视点中的图像的坐标分别为pleft=(Xleft,Yleft),pright=(Xright,Yright);其中点P(xc,yc,zc)与两个光心所确定的平面称为偏振平面,偏振平面与左右图像的交线称为偏振线;由几何关系得到,其中:f表示摄像机的焦距,B为两摄像机的投影中心连线的距离,即基线距,zc为世界坐标系下特征点P的z坐标:
2)方向性约束;对于同一个景物,其透视投影左视点中的图像相对于右视点中的图像局部地向左移动;同一空间点在两图像平面中的投影位置差矢量即视差视差D表示相对深度,对于同一特征点,其透视投影左视点中的图像是右视点中的图像沿水平负向的局部平移;同一空间点在右视点中的图像上的图像坐标比在左视点中的图像上的图像坐标偏右,在搜索时沿一个方向进行;
3)空域相关性与时域相关性:连续变化视差场中的视差矢量有相关性,即同一帧内视差矢量之间存在相关性;对于相邻两帧图像,仅有少数像素发生了运动,多数像素的位置并没有变化;对于位置不变的像素来说,其视差基本不变;在进行视差估计时,用前一帧图像的对应视差矢量作为搜索起始点进行小范围内的搜索,从而快速找到实际视差矢量;
结束DCP搜索过程;
步骤十四:对于R视点或S视点图像,首先对图像进行宏块和小块划分,各宏块之间、小块之间互不交迭但又恰好接触。分别计算当前帧互不重叠的块大小分别为16×16,16×8,8×16,8×8,8×4,4×8,4×4的像素和与像素的平方和。然后计算参考帧也就是前一帧的解压缩图像中1个像素为步长的块大小分别为16×16,16×8,8×16,8×8,8×4,4×8,4×4的像素和与像素的平方和,同时计算由整数像素内插得到半像素对应块大小分别为16×16,16×8,8×16,8×8,8×4,4×8,4×4的像素和、像素平方和,以减少块匹配过程中的重复计算,转到步骤四;
步骤十五:对所有IFS系数进行Huffman编码,Huffman编码是根据出现的概率将每个符号映射到一个变长码字的集合(VLC)上,降低IFS系数数据的统计冗余。判断当前帧是否为最后一帧,如果是最后一帧结束编码,否则,返回步骤二继续处理下一帧图像。
如附图2(f)、图2(g)、图2(h)、图2(i)和图2(j)所示,一种基于对象的多视点视频分形解压缩方法,包括以下步骤:
步骤Ⅰ:首先读入C视点图像序列压缩信息:压缩帧数,每帧图像的宽和高,I帧压缩质量和插入I帧的间隔;
步骤Ⅱ:判断解码帧是否为I帧,若是I帧转入步骤Ⅲ,否则转入步骤Ⅳ;
步骤Ⅲ:解码帧为I帧,从压缩文件中读入码流直接进行解码,帧数加一转入步骤Ⅸ;
步骤Ⅳ:对于非I帧,计算C视点需解码帧的前一帧中按照设定步长划分的所有宏块以及经树状划分得到的小块的像素和、像素平方和;
步骤Ⅴ:读入L、R视点视频的压缩信息,包括压缩帧数,每帧图像的宽和高,I帧压缩质量和插入I帧的间隔;计算L、R视点中需解码帧的前一帧和C视点的对应帧中按照设定步长划分的所有宏块以及经树状划分得到的小块的像素和、像素平方和;
步骤Ⅵ:读入K、S视点视频压缩信息,包括压缩帧数,每帧图像的宽和高,I帧压缩质量和插入I帧的间隔;计算K、S视点中需解码帧的前一帧和对应参考视点L、R视点对应帧中按照设定步长划分的所有宏块以及经树状划分得到的小块的像素和、像素平方和;
步骤Ⅶ:从压缩文件中读入块的划分信息和Huffman码流,从而得到该帧所有宏块的划分方式和每一个小块的迭代函数系统系数,转入步骤Ⅷ;
步骤Ⅷ:先解码C视点视频当前帧,采用去方块环路滤波提高解码视频视觉效果:首先对边界的类型进行判断,定义参数块边缘强度,针对不同强度的块边缘,选择的滤波器和所需要滤波的像素点数也不一样,如图9(a)所示,垂直和水平边界临域的采样示意图,如果为帧内编码且为宏块边界,则采用强滤波;若不是帧内编码且不是宏块边界,仿射块边界采用一级滤波,非仿射块边界不需要滤波;其它情况采用二级滤波;最后按照每一宏块进行解码;具体选择如图9(b)所示,块边缘强度用BS表示;其中,P0',Q0',P1',Q1'表示滤波后的像素值,P0,P1,Q0,Q1表示原始的像素值,不同的BS和对应的滤波器如下;
若为帧内编码且边界是宏块边界时,BS=3,需要进行强滤波,滤波器表示为:
P0'=(P1+P0+Q0)/3
Q0'=(P0+Q0+Q1)/3(13)
P1'=(2·P1+P0')/3
Q1'=(2·Q1+Q0')/3
若为帧内编码且边界不是宏块边界,或者是边界但不是帧内编码时,BS=2,对应二级滤波器表示为:
P0'=(P1+2·P0+Q0)/4(14)
Q0'=(P0+2·Q0+Q1)/4
若不是帧内编码和边界,是仿射块边界时,BS=1,对应的一级滤波器表示为:
P0'=(P1+3·P0+Q0)/5(15)
Q0'=(P0+3·Q0+Q1)/5
若不是帧内编码和边界,也不是仿射块边界时,当BS=0,不进行滤波。
对于每一个宏块进行解压缩时,首先判断该宏块在编码时的划分方式,若非C视点视频,则先确定父块域是在前一帧或是参考视点当前帧对应帧中;对于每一个子块,首先在父块域找到与该子块相对应的区域,然后利用迭代系统系数和下面的公式获得该子块的像素值,
ri=s·di+o(16)
其中ri为待解码子块的像素值,di为父块域中的像素值,s为比例因子,o为偏移因子。
步骤Ⅸ:C视点视频的解码图像或L、R视点视频图像的前一帧解码图像作为需解码图像的参考图像,分别解码L、R视点的当前帧图像;同理解码K、S视点当前帧图像,参考帧随预测结构而变化;
步骤Ⅹ:判断此时五个视点所有帧是否都已解码,若都解码完毕,结束解码过程,否则转入步骤Ⅱ。
本方法选择VisualC++6.0作为所述方法的实现语言,CPU为CoreTM2DuoT8300,2.4GHz主频,内存大小为2G,对标准CIF视频序列“Robert.yuv”(分辨率:640×480像素)的2~5帧进行仿真实验。仿真实验的实验参数配置如下:运动估计宏块大小为16×16像素;搜索窗口大小为15×15像素,即±7像素;采用RMS匹配准则;采用本发明提出的结构:K←L←C→R→S,即视点R用视点C来预测,视点L用视点C来预测,视点S用视点R来预测,视点K用视点L来预测,5个视点的起始帧都用I帧。分别采用基于对象和非基于对象的方法进行对比,压缩比、PSNR和压缩时间的结果如图10所示。图11(a)~(e)给出了非基于对象的5目解码图像,(f)~(j)给出了基于对象的5目解码图像。
由图10可以看出,加入基于对象的思想后,压缩比平均提高了7.22左右,压缩时间减少了一半,并且PSNR仅仅降低了0.72dB,但是从图10的第2帧解码图像中,主观上看不出明显的区别。所以本方法在保证压缩质量在可接受范围的前提下,大大的降低了运算复杂度,减少了编码时间,提高了编码速度,节省了所需的存储空间。