CN103051894B - 一种基于分形和h.264的双目立体视频压缩与解压缩方法 - Google Patents

一种基于分形和h.264的双目立体视频压缩与解压缩方法 Download PDF

Info

Publication number
CN103051894B
CN103051894B CN201210402451.9A CN201210402451A CN103051894B CN 103051894 B CN103051894 B CN 103051894B CN 201210402451 A CN201210402451 A CN 201210402451A CN 103051894 B CN103051894 B CN 103051894B
Authority
CN
China
Prior art keywords
frame
block
pixel
fractal
coding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210402451.9A
Other languages
English (en)
Other versions
CN103051894A (zh
Inventor
祝世平
张玲
李丽芸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CHENGDU VISION-ZENITH TECHNOLOGY DEVELOPMENT CO., LTD.
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201210402451.9A priority Critical patent/CN103051894B/zh
Publication of CN103051894A publication Critical patent/CN103051894A/zh
Application granted granted Critical
Publication of CN103051894B publication Critical patent/CN103051894B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明提出了一种基于分形和H.264的双目立体视频压缩与解压缩方法。首先对左目的起始帧(I帧)采用基于H.264的帧内预测编码,滤波后得到重建帧(可作为参考帧),然后对左目的P帧进行块运动补偿预测(MCP)编码,记录块每次最匹配过程的分形参数,将分形参数分别代入压缩迭代函数系统中得到P帧的预测帧,滤波后得到重建帧。右通道的起始帧采用视差补偿预测(DCP)的方式从基本层的I帧进行预测;而P帧采用MCP和DCP两种方式,选择误差最小的作为预测结果进行编码。利用熵编码CALCV压缩I帧和P帧的残差帧和利用有符号指数哥伦布编码压缩分形参数。

Description

一种基于分形和H.264的双目立体视频压缩与解压缩方法
技术领域:
本发明属于视频压缩编码领域,涉及双目立体视频的压缩编码,在保证峰值信噪比PSNR基本保持不变的前提下,极大地降低了运算复杂度和提高压缩比,为双目立体视频编码的实时性应用奠定了基础,进一步提高了分形视频压缩编码的性能。
背景技术:
与以往的视频编码标准相比,H.264具有更好的压缩性能以及面向网络传输的“友好性”。H.264优秀的压缩性能是多种新技术产生效果的积累所致(参见Wiegand T Sullivan,G J Bjontegard G,et al.Overview of the H.264/AVC video coding standard[J].IEEETransaction on Circuits and Systems Video Technology,2003,13(7):560-576.),(参见Richardson E G.H.264 and MPEG-4 video compression video coding for next generationmultimedia[M].John Wiley&Sons,2003.),包括4×4的整数变换、多种宏块分割模式、多参考帧和1/4像素精度的运动补偿等。新技术的应用使其具有更高的编码性能,但随之而来的是运算复杂度的大幅度增加。近年来陆续提出了许多对其进行简化和优化的方法。在以往的研究中多是从帧间宏块分割模式选择(参见闫俊海,杨鼎才,王喜民.H.264帧间模式快速预测方法研究[J].微处理机,2010,31(1):67-70.),(参见L.Yang,Y.Keman,J.Li,S.Li.An effective variable block-size early termination algorithm for H.264video coding[J].IEEE Transactions on Circuits and Systems for Video Technology,2005,15(6):784-788.)和运动估计(参见E.A.Al Qaralleh,T.-S.Chang.Fast variable block sizemotion estimation by adaptive early termination[J].IEEE Transactions on Circuits andSystems for Video Technology,2006,16(8):1021-1026.),(参见李桂菊,刘刚,梁静秋.H.264快速运动估计方法的改进[J].光学精密工程,2010,18(11):2489-2496.),预测模式选择(参见Y.H.Moon,G.Y.Kim,J.H.Kim.An improved early detection algorithm forall-zero blocks in H.264 video encoding[J].IEEE Transactions on Circuits and Systems forVideo Technology,2005,15(8):1053-1057.),(参见J.You,W.Kim,J.Jeong.16×16macroblock partition size prediction for H.264 P slices[J].IEEE Transactions on ConsumerElectronics,2006,52(4):1377-1383.)等方面对H.264中消耗时间最多的帧间预测环节进行分析和改进,可以达到降低编码复杂度的效果,但是有进一步提高的可能性。
分形理论最初由Mandelbrot于上世纪70年代提出(参见B.Mandelbrot.TheFractal Geometry of Nature[M].New York:W.H.Freeman and Company,1982.)。分形编码的数学基础是迭代函数系统(IFS)理论。Barnsley首先将分形编码用于交互式图像压缩(参见Michael F.Barnsley,Alan D.Sloan.A better way to compress image[J].ByteMagazine,1988,13(1):215-233.)。Jacqain提出了全自动的分形图像压缩方法(参见ArnaudE.Jacquin.A novel fractal blocking-coding technique for digital image[A].IEEEInternational Conference on Acoustics,Speech and Signal Processing[C],1990,4:2225-2228.),(参见Arnaud E.Jacquin.Fractal image coding:a review[J].Proceeding of theIEEE,1993,81(10):1451-1465.),该方法采用基于图像分块的方式以局部的仿射变换代替全局的仿射变换。之后,Fisher利用四叉树改进了这一方法(参见Y.Fisher.Fractal ImageCompression[J].Fractals,1994,2(3):347-361.),(参见Y.Fisher,E.W.Jacobs.Imagecompression:A study the iterated transform method[J].Signal Processing,1992,29(3),251-263.),(参见Y.Fisher.Fractal Image Compression:Theory and application to digitalimages[M].New York:Spring-Verlag,1995,55-77.),大大提高了编码效率,并成为目前分形图像编码中的主流方法。
在此基础之上,一些学者和研究人员把分形图像压缩的方法应用到视频序列的压缩上。Meiqing Wang等提出了综合基于数据立方体和基于帧的分形视频压缩方法(参见Meiqing Wang,Choi-Hong Lai.A hybrid fractal video compression method[J].Computers&Mathematics with Applications,2005,50(3-4):611-621.),(参见Meiqing Wang,ZhehuangHuang,Choi-Hong Lai.Matching search in fractal video compression and its parallelimplementation in distributed computing environments[J].Applied Mathematical Modeling,2006,30(8):677-687.),(参见Meiqing Wang,Rong Liu,Choi-Hong Lai.Adaptive partitionand hybrid method in fractal video compression[J].Computers&Mathematics withApplications,2006,51(11):1715-1726.)。其中最为经典和影响较大的参见(C.S.Kim,R.C.Kim,S.U.Lee.Fractal coding of video sequence using circular prediction mapping andnoncontractive interframe mapping[J].IEEE Transactions on Image Processing,1998,7(4):601-605.)。该方法采用类似于标准视频编码方法所采用的运动估计/补偿技术,该方法利用了相邻帧之间的时间强相关性,对视频序列压缩取得了较好的效果。在CPM和NCIM中,子块域中的每个图像块都由来自相邻帧相同大小的父块域通过运动补偿得到。CPM和NCIM两者间最大的不同在于CPM在解码的过程中需要具备收敛性,而NCIM不需要。但是在循环预测编码(CPM)方法中,为了保证起始帧经过自身的循环解码能够近似收敛到原来的图像,压缩过程需要经过复杂变换、搜索和迭代等,压缩时间和图像质量难以达到要求。目前典型的分形图像和视频压缩方法的运算量很大,编码速度较慢,并且解码的质量有待提高,使得分形图像和视频压缩方法还需要进一步的改进和提高。
随着多媒体技术的不断发展,多视点视频因其具有单目视频无法比拟的优越性渐渐成为研究的热点。而双目立体视频是多视点视频中应用最为广泛的一种形式,它增加了场景的深度信息,使欣赏到的图像有强烈的现实感和逼真感,可以应用于立体电视,远程教育,远程工业控制,远程医学诊断和虚拟现实等众多领域(参见A Schertz.Sourcecoding of stereoscopic television pictures[A].Proceedings of the IEEE InternationalConference on Image Processing and its Applications[C].Maastricht,The Netherlands,1992,462-464)。双目立体视频是利用人眼睛的双目视差原理,双目各自独立地接收来自同一场景的特定摄像点的左右图像,左眼看偏左的图像,右眼看偏右的图像,形成双目视差,大脑能得到图像的深度信息,使欣赏到的图像有强烈深度感、逼真感,观众能欣赏到超强的立体视觉效果。但是相对于单目视频,双目立体视频系统必须传输和存储翻番的数据量,所以必须对其进行有效地压缩。(参见Shigang Wang,Xuejun Wang,Hexin Chen.Stereoscopic video compression coding based on H.264[J].Chinese Journal of Stereology andImage Analysis,2008,13(1):11-16)
在双目立体视频编码过程中,不但要考虑各通道内前后帧图像之间的时域相关性和帧内图像的空域相关性,还要充分利用通道之间的空域相关性进行编码。前者可以利用运动补偿预测(MCP)去除冗余,后者可以采用视差补偿预测(DCP)去除通道间冗余。DCP与MCP相比要复杂的多,其中的关键技术是视差匹配。Michael E.Lukaces是双目立体视频编码的早期研究者,他探索了将视差补偿(DC-based)(指使用双目视差关系在两幅图像之间建立对应)用于从双目立体视频序列中的一个视频序列预测另一个视频序列,并提出了多种基于视差补偿的方法(参见Lukacs M E.Predictive coding of multi-viewpointimage sets[A].IEEE International Conference on Acoustics,Speech and Signal Processing[C],1986,521-524)。Perkins将基于视差补偿的方法归纳为一种条件编码方法,对于无损编码来说是最优的,对于有损编码则是次优的(参见Perkins M G.Data compression of stereopairs[J].IEEE Transactions on Communications,1992,40(4):684-696)。Tzovaras等人提出了视差估计的分层块匹配以及运动视差双向补偿方法,称之为聚合估计(参见Tzovaras D,Grammalidis N,Strintzis M G.Object-based coding of stereoscopic image sequences usingjoint 3D motion/disparity segmentation[A].Proceedings of SPIE:Visual Communication andImage Processing[C],1995,1678-1689)。另外Franich还提出了基于通用块匹配方法的视差估计方法,并引入一种平滑检测手段来评价视差匹配好坏(参见Franich R E H,Lagendijk R L,Biemond J.Stereo-enhanced displacement estimation by genetic blockmatching[A].Proceedings of SPIE:Volume 2094-Visual Communications and ImageProcessing[C].Cambridge,MA,USA,1993,362-371)。Siram Sethuramn以及M.Siegel等人提出了基于视差和运动的可变块四叉树多分辨率分割方法,针对基于MPEG视频编码标准的双目立体视频流的编码,按在解码端是否有合成中间视图的需要,提出了两个双目立体视频流的混合分辨率编码方法(参见Sethuraman S,Siegel M W,Jordan A G.Segmentation based coding of stereoscopic image sequences[A].Proceedings of SPIE:Volume 2668-Digital Video Compression:Algorithms and Technologies[C].San Jose,CA,USA,1996,420-429)。常用的双目立体视频编码方案有:独立MCP(Motion CompensatedPrediction)编码,层间DCP(Disparity Compensated Prediction)编码和MCP与DCP相结合编码。其中在MCP与DCP相结合编码中,基本层采用独立MCP编码,增强层采用MCP与DCP两种方式进行预测,从中选择误差较小的一种作为预测结果。
发明内容:
本发明提出了一种基于分形和H.264双目立体视频压缩与解压缩方法。其中以左通道为基本层和右通道为增强层分别进行编码。首先对左目的起始帧(I帧)采用基于H.264的帧内预测编码,滤波后得到重建帧(作为基本层和增强层的相关帧的参考帧),然后对左目的P帧进行块运动补偿预测(MCP)编码,计算与子块域和父块域相关子块的像素和与像素平方和,同时计算分数像素内插值对应块的像素和、像素平方和,在前一帧重建帧搜索窗中寻找最相似的匹配块,记录块每次最匹配过程的分形参数,将分形参数分别代入压缩迭代函数系统中得到P帧的预测帧,滤波后得到重建帧。右通道作为增强层,起始帧采用视差补偿预测(DCP)的方式从基本层的I帧进行预测;而P帧采用MCP和DCP两种方式,选择误差最小的作为预测结果进行编码。利用熵编码CALCV压缩I帧和P帧的残差帧和利用有符号指数哥伦布编码压缩分形参数。
一种基于分形和H.264的双目立体视频压缩编码方法,包括以下步骤:
步骤一:如果是右目,转到步骤六。如果是左目,若是P帧,转到步骤二;若是I帧(第一帧必须为I帧,其它帧可以设置是否为I帧),采用基于H.264的帧内预测编码方式,对于每个当前块在各种可能的预测方式中选择具有最小代价的预测模式存储,完成所有块的预测后可以得到I帧的预测帧。通过原始帧和预测帧之差得到编码端残差帧。残差图像的数据经过DCT、量化之后的系数进行Zig-Zag扫描,然后用熵编码CALVC进行编码写入码流。预测帧和解码端残差帧之和滤波后得到重建图像(可作为参考帧)。判断当前帧是否为最后一帧,如果是最后一帧则结束编码,如果不是最后一帧则返回步骤一开始下一帧的编码。所述I帧为视频序列起始帧或者视频序列中只进行帧内编码的图像帧。
步骤二:若是左目的P帧,用常规分形的运动补偿预测(MCP)编码,在进行块匹配之前,首先对该帧进行互不重叠的宏块划分,然后计算这些宏块以及经树状划分得到的小块的像素和、像素平方和,以及左目前一帧重建图像即参考帧中,按照设定步长划分的所有宏块以及经树状划分得到的小块的像素和、像素平方和,同时计算分数像素内插值对应块的像素和、像素平方和,转到步骤三。所述P帧为视频序列中通过其它已编码帧进行预测的图像帧;所述将当前帧划分为固定大小的互不重叠的图像块称为宏块;所述将当前宏块进行树状划分得到的块称为小块;所述当前帧为正在进行压缩的帧,所述参考帧为当前帧的已经编码并重建的前一帧;所述当前帧所有块的集合称为子块域;所述前一帧的所有块的集合称为父块域;所述块DCT变换中的块采用固定大小模式。
步骤三:依次对当前帧的所有宏块进行编码,在参考帧的搜索窗内首先对该宏块进行块匹配;在进行子块与父块的匹配过程中,子块的位置作为父块的起始搜索点,父块的大小与子块的大小相同。利用基于运动矢量场的自适应六边形搜索方法,然后利用分数像素块匹配,搜索分数像素内插值对应小块处的RMS点,搜索出最佳的匹配误差RMS。如果匹配误差RMS小于开始设定的阈值γ,保存当前的迭代函数系统系数即IFS系数,转入步骤五得到本块的重建块;否则,依次按照树状结构对该块进行划分,并对各个划分得到的小块利用分数像素块匹配和基于运动矢量场的自适应六边形搜索方法,分别计算匹配误差RMS,如果RMS小于设定阈值γ,则停止划分并记录该小块IFS系数,转入步骤五得到本块的重建块;否则继续划分,直到将当前块划分为预先设定的最小块,记录IFS系数;转入步骤五得到本块的重建块;所述搜索窗为在参考帧中的矩形搜索区域;所述IFS系数包括父块位置(x,y)和比例因子s、偏移因子o;如果当前帧所有的宏块都已编码完毕,所有的重建块组成重建图像(即下一帧的参考帧)。如果且是左目,则转到步骤四;若是右目,则执行步骤七。
步骤四:残差图像的数据经过DCT、量化之后的系数进行Zig-Zag扫描,然后用熵编码CALVC进行编码写入码流。如果是P帧则还要对所有IFS系数进行有符号指数哥伦布编码。判断当前帧是否为最后一帧,如果是最后一帧结束编码;否则,返回步骤一继续处理下一帧图像。
步骤五:通过保存的IFS系数代入解码方程计算得到预测值,由原始块和预测块之差得到编码端残差块,再将预测块和解码端残差块之和得到重建块。注:解码端残差块是由编码端残差块经过DCT变换、量化、反量化和反DCT变换得到的。转回步骤三编码下一宏块。
步骤六:对右目图像,首先进行互不重叠的宏块划分,然后计算这些宏块以及经树状划分得到的小块的像素和、像素平方和,以及右目前一帧重建图像参考帧,按照设定步长划分的所有宏块以及经树状划分得到的小块的像素和、像素平方和,同时计算分数像素内插值对应块的像素和、像素平方和,以减少块匹配过程中的重复计算,转到步骤三。
步骤七:计算左目中对应帧图像的参考帧,按照设定步长划分的所有宏块以及经树状划分得到的小块的像素和、像素平方和,同时计算分数像素内插值对应块的像素和、像素平方和,以减少块匹配过程中的重复计算。转到步骤八。
步骤八:首先对与当前子块位置相同的父块进行块匹配,得到RMS,并保存迭代函数系统系数,该系数包括父块与子块的相对位移矢量(x,y),比例因子s和偏移因子o;依次对当前帧的所有宏块进行编码,在父块域中的搜索窗内首先对该宏块进行块匹配;在进行子块与父块的匹配过程中,子块的位置作为父块的起始搜索点,父块的大小与子块的大小相同并转入步骤九,执行完步骤九返回之后,如果所得的匹配误差RMS小于开始设定的阈值γ,则保存当前的迭代函数系统系数即IFS系数,转入步骤八编码下一宏块;否则,依次按照树状结构对该块进行划分,并对各个划分得到的小块分别转入步骤九,执行完步骤九返回之后计算匹配误差RMS,如果RMS小于设定阈值γ,则停止划分并记录该小块IFS系数,转入步骤八编码下一宏块;否则继续划分,直到将当前块划分为预先设定的最小块,转入步骤九计算RMS,执行完步骤九返回之后记录IFS系数,转入步骤八编码下一宏块;最后与步骤六所得结果比较,选择误差最小的作为预测结果;所述搜索窗为在参考帧中的矩形搜索区域;所述IFS系数包括父块位置(x,y)和比例因子s、偏移因子o;如果当前帧所有的宏块都已编码完毕,则转到步骤十;
步骤九:充分利用分数像素块匹配和视差分布约束条件:将上一个视差估计矢量作为为当前帧的搜索中心,在水平方向沿初始点的右侧进行搜索,在搜索过程中进行跳跃式搜索;点匹配完之后,向右间隔三个点进行搜索,进行比较,直到找到最小的RMS;然后对分数像素位置进行相同的操作,比较得到更小的RMS,结束DCP搜索过程;
步骤十:残差图像的数据经过DCT、量化之后的系数进行Zig-Zag扫描,然后用熵编码CALVC进行编码写入码流。如果是P帧则还要对所有IFS系数进行有符号指数哥伦布编码;判断当前帧是否为最后一帧,如果是最后一帧结束编码;否则,返回步骤一继续处理下一帧图像。
所述一种基于分形和H.264的双目立体视频压缩编码方法,处理的视频序列为YUV格式,分别对3个分量中的每个采用上述十个步骤进行处理。
所述步骤三中对宏块采用树状划分,块匹配采用匹配误差准则,子块与父块的匹配误差RMS为:
RMS = 1 N [ Σ i = 1 N r i 2 + s ( s Σ i = 1 N d i 2 - 2 Σ i = 1 N r i d i + 2 o Σ i = 1 N d i 2 ) + o ( N · o - 2 Σ i = 1 N r i ) ] - - - ( 1 )
其中参数s和o分别为:
s = [ N Σ i = 1 N r i d i - Σ i = 1 N r i Σ i = 1 N d i ] [ N Σ i = 1 N d i 2 - ( Σ i = 1 N d i ) 2 ] - - - ( 2 )
o = 1 N [ Σ i = 1 N r i - s Σ i = 1 N d i ] - - - ( 3 )
其中,N为子块和父块像素的个数,ri为子块的像素值,di为父块的像素值;
计算当前宏块在参考帧中的块匹配误差RMS,其中ri是子块的像素值,di是父块的像素值;如果RMS小于预先设定的阈值γ,记录IFS系数,IFS系数包括匹配块的位移矢量(x,y)和公式7,8中的s和o,处理下一宏块;否则,对当前宏块进行树状划分,计算划分后小块的RMS,如果小于阈值γ,则停止划分,否则继续划分,直到子块达到预先设定的最小块为止。
所述步骤三中基于运动矢量场的自适应六边形搜索方法,充分根据分形编码的特点,具体如下:
1)在小十字模式中的五个搜索点中搜索最小匹配误差所在点;应用块匹配准则搜索,如果最小匹配误差点在小十字模式的中心,此时即得到最终要求的最佳匹配误差;否则,转入步骤2);
2)以步骤1)搜索到的最小匹配误差点为中心构造新的小十字模式,应用块匹配准则,搜寻3个新的搜索点;再搜索最小匹配误差点,如果搜索到的最小匹配误差点在小十字模式的中心,即得到最终要求的最佳匹配误差;否则,进入步骤3);
3)搜索大十字模式3个还没有搜索到的点,应用块匹配准则,搜索新的最小匹配误差点,以作为下一步搜索的中心;
4)以上一步的最小匹配误差点为中心,构造六边形搜索模式,应用块匹配准则搜索,找出新的最小匹配误差点,如果该点在六边形的中心,进入步骤5);否则,继续步骤4),直到最小匹配误差点在六边形的中心;
5)以步骤4)所搜索到的位于六边形的中心的最小匹配误差点为中心,构造小十字搜索模式,应用块匹配准则搜索,找出最小匹配误差点,即得到最终要求的最佳匹配误差。
所述步骤四中P帧中分形系数的编码包括以下三个步骤:
1)如果当前块是处于I帧后的第一个P帧内,且是P帧的第一块,则按照有符号的指数哥伦布编码方式编码预测P帧所产生的所有分形系数;
2)如果当前块是处于I帧后的第一个P帧内,但是不是P帧的第一块,则编码当前块与前一块的分形系数之差。如果当前块与前一块的预测方式不同,则按照4×4块的划分方式编码;
3)如果当前块不是处于I帧后的第一个P帧内,则编码当前块与前一帧相同位置块的分形系数之差。如果两者的预测方式不同,则按照4×4块的划分方式编码。
所述步骤九中视差分布约束条件如下:
外极线约束;对于左目中的图像上的一点,通过相对定向参数找出右目中的图像上与其对应的极线,其对应点在上述极线上搜索;对于平行系统的视差搜索,只需沿扫描线,进行x方向的搜索即可;最佳匹配点位于偏振线上即水平线上;在立体平行摄像系统中,沿水平方向进行DCP搜索;
两摄像机在同一时刻观看空间同一特征点P(xc,yc,zc),在左目中的图像和右目中的图像的坐标分别为pleft=(Xleft,Yleft),pright=(Xright,Yright);其中点P(xc,yc,zc)与两个光心所确定的平面称为偏振平面,偏振平面与左右图像的交线称为偏振线;由几何关系得到,其中:f表示摄像机的焦距,B为两摄像机的投影中心连线的距离,即基线距,zc为世界坐标系下特征点P的Z坐标:
X lef t = f x c z c X right = f ( x c - B ) z c Y = f y c z c - - - ( 4 )
2)方向性约束;对于同一个景物,其透视投影左目中的图像相对于右目中的图像局部地向左移动。同一空间点在两图像平面中的投影位置差矢量即视差由此可知视差D是深度z的函数,表示相对深度,对于同一特征点,其透视投影左目中的图像是右目中的图像沿水平负向的局部平移;同一空间点在右目中的图像上的图像坐标比在左目中的图像上的图像坐标偏右,在搜索时沿一个方向进行。
3)空域相关性与时域相关性:而连续变化视差场中的视差矢量有很强的相关性,即同一帧内视差矢量之间存在相关性;对于相邻两帧图像,仅有少数像素发生了运动,多数像素的位置并没有变化;对于位置不变的像素来说,其视差基本不变,在进行视差估计时,用前一帧图像的对应视差矢量作为搜索起始点进行小范围内的搜索,从而快速找到实际视差矢量。
一种基于分形和H.264的双目立体视频解压缩方法,其特征在于包含以下步骤:
步骤Ⅰ:首先读入左目压缩信息,包括压缩帧数,每帧图像的宽和高,I帧压缩质量和插入I帧的间隔;
步骤Ⅱ:判断解码帧是否为I帧,若是I帧转入步骤Ⅲ,否则转入步骤Ⅳ;
步骤Ⅲ:对于I帧,读入码流得到I帧的残差帧数据,经过反量化和反变换得到解码端残差帧,再与解码端预测帧进行相加之后得到重建帧,帧数加一转入步骤Ⅷ;
步骤Ⅳ:对于P帧,计算左目前一帧中按照设定步长划分的所有宏块以及经树状划分得到的小块的像素和、像素平方和,然后从码流中读入该帧所有宏块的划分方式、每一个小块的迭代函数系统系数和残差帧数据,其中由各迭代函数系统系数分别计算出解码端的预测块形成解码端的预测帧,残差帧数据经过反量化和反变换得到解码端残差帧。解码端残差帧与预测帧之和得到重建帧;
步骤Ⅴ:从码流中读入右目信息,包括每块的划分方式,每一个小块的迭代函数系统系数和残差帧数据、参考帧号;计算右目前一帧和左目对应帧中按照设定步长划分的所有宏块以及经树状划分得到的小块的像素和、像素平方和,由各迭代函数系统系数分别计算出解码端的预测块形成解码端的预测帧,残差帧数据经过反量化和反变换得到解码端残差帧。解码端残差帧与预测帧之和得到重建帧。转入步骤Ⅵ;
步骤Ⅵ:判断此时所有帧是否都已解码,若都解码完毕,结束解码过程,否则转入步骤Ⅱ。
对于每一个宏块进行解压缩时,首先判断该宏块在编码时的划分方式,对于每一个子块,首先在父块域找到与该子块相对应的区域,然后利用下面的公式获得该子块的像素值:
ri=s·di+o    (5)
其中ri为待解码子块的像素值,di为父块域中的像素值,s为比例因子,o为偏移因子。
在基于分形和H.264的双目立体视频解码过程中,左目用常规单目的运动补偿预测(MCP)编码,右目的每个图像块通过运动补偿预测(MCP)和视差补偿预测(DCP)两种方式进行预测,从中选择误差较小的一种作为预测结果。
处理的双目立体视频序列为YUV格式,分别对3个分量中的每个采用上述六个步骤进行处理。
本发明所提出的基于分形和H.264双目立体视频压缩方法的优点在于:
(1)本方法在每个子块的匹配过程中,充分利用分形编码特点,采用了预搜索限制条件,提前去除不太匹配的父块,提高了编码性能和速度。
(2)本方法在分形编码方法中引入了分数像素块匹配技术,对于很多块,在一个内插到半像素精度的区域进行搜索可能会找到更好的匹配,为了获得更精确的运动向量和更高的压缩比。
(3)本方法在每个子块的匹配过程中利用基于运动矢量场的自适应六边形搜索方法,充分将图像特征和分形压缩相结合,大大提高了编码速度。
(4)本方法在进行子块的块匹配之前,计算当前帧互不重叠的宏块及其经树状划分之后得到的小块的像素和与像素平方和。在参考帧中,按照匹配步长分别计算各宏块以及经树状划分以后得到的小块的像素和与像素平方和,同时计算分数像素内插值对应小块的像素和、像素平方和。这样就避免了在块匹配过程中出现重复计算的弊端,大大节约了子块的匹配时间。
(5)本方法中,在进行DCP编码方式时,充分利用视差分布约束条件,包括外极线约束、方向性约束和空域相关性与时域相关性三个方面,对DCP搜索方式进行了简化运算,提出了一种新型基于分形和H.264搜索方法。
(6)本方法在解码时,利用去方块环路滤波方法,来提高解码后图像质量,为后续的子块编码提供更佳的参考帧。
附图说明:
图1(a)为本发明一种基于分形和H.264的双目立体视频压缩与解压缩方法的压缩流程图;
图1(b)为本发明一种基于分形和H.264的双目立体视频压缩与解压缩方法的P帧预测编码压缩流程图;
图1(c)为本发明一种基于分形和H.264的双目立体视频压缩与解压缩方法的解压缩流程图;
图1(d)为本发明一种基于分形和H.264的双目立体视频压缩与解压缩方法的基于运动矢量场的自适应六边形搜索方法流程图;
图2为4×4亮度块的9种预测方式;
图3为16×16亮度块和8×8色度块的4种预测模式;
图4(a)为本发明一种基于分形和H.264的双目立体视频压缩与解压缩方法对宏块的四种划分模式图;
图4(b)为本发明一种基于分形和H.264的双目立体视频压缩与解压缩方法对宏块的划分模式四进一步进行划分的四种划分模式图;
图5为本发明一种基于分形和H.264的双目立体视频压缩与解压缩方法的MCP和DCP结构示意图;
图6(a)为双目立体视频序列“ballroom”的第10帧左目原始图像;
图6(b)为双目立体视频序列“ballroom”的第10帧右目原始图像;
图6(c)为本发明一种基于分形和H.264的双目立体视频压缩与解压缩方法编解码双目立体视频序列“ballroom”的第10帧左目解压缩图像;
图6(d)为本发明一种基于分形和H.264的双目立体视频压缩与解压缩方法编解码双目立体视频序列“ballroom”的第10帧右目解压缩图像;
图7为Zig-Zag的扫描方式示意图。
具体实施方式:
下面将结合附图对本发明方法作进一步的详细说明,仅以亮度分量Y为例,色差分量U和V的压缩步骤与亮度分量相同。
本发明提出了一种基于分形和H.264双目立体视频压缩与解压缩方法。其中以左通道为基本层和右通道为增强层分别进行编码。首先对左目的起始帧(I帧)采用基于H.264的帧内预测编码,滤波后得到重建帧(作为基本层和增强层的参考帧),然后对左目的P帧进行块运动补偿预测(MCP)编码,计算与子块域和父块域相关子块的像素和与像素平方和,同时计算分数像素内插值对应块的像素和、像素平方和,在前一帧重建帧搜索窗中寻找最相似的匹配块,记录块每次最匹配过程的分形参数,将分形参数分别代入压缩迭代函数系统中得到P帧的预测帧,滤波后得到重建帧。右通道作为增强层,起始帧采用视差补偿预测(DCP)的方式从基本层的I帧进行预测;而P帧采用MCP和DCP两种方式,选择误差最小的作为预测结果进行编码。利用熵编码CALCV压缩I帧和P帧的残差帧和利用有符号指数哥伦布编码压缩分形参数。如附图1(a)所示,一种基于分形和H.264的双目立体视频压缩编码方法,所述I帧为视频序列起始帧或者视频序列中只进行帧内编码的图像帧;所述宏块为将当前帧划分为固定大小的互不重叠的图像块;所述小块为将当前宏块进行树状划分得到的块;所述当前帧为正在进行压缩的帧,所述参考帧为已经编码并重建的帧,可以为当前帧的前一帧或者相邻目的同一帧;所述当前帧所有块的集合称为子块域;所述前一帧的所有块的集合称为父块域。以双目立体视频序列“ballroom.yuv”的前10帧为例。包括以下步骤:
步骤一:对于右目,转到步骤六。对于左目,首先判断是否为I帧,如果不是,转到步骤二;如果是I帧,采用H.264视频编码标准中的I帧帧内图像压缩方法。其中4×4亮度块有9种预测方式如附图2,16×16亮度块和8×8色度块有四种预测模式如附图3。每个宏块的预测要对各种可能的宏块预测模式进行搜索,采用基于率失真优化(RDO)的模式判决方法,编码器对每个宏块所有可能的模式分别计算率失真代价,然后对它们进行比较。选择率失真代价最小的模式为最佳模式。率失真代价函数J定义如下:
J(s,c,MODE|QP,λMODE)=SSD(s,c,MODE|QP)+λMODE*R(s,c,MODE|QP)(6)
得到预测帧后转到步骤四处理残差帧的编码问题和步骤五得到重建帧之后,再转到步骤一的开始进行下一帧的处理;
步骤二:若为P帧,如附图1(b)进行预测编码。对当前P帧图像进行互不重叠的16×16宏块划分,分别计算当前帧互不重叠的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×16宏块进行编码,在父块域中的搜索窗内对整个宏块进行块运动估计/补偿;在进行子块与父块的匹配过程中,子块的位置作为父块的起始搜索点,父块的大小与子块的大小相同。
如附图1(d),利用基于运动矢量场的自适应六边形搜索方法,然后利用分数像素块匹配,搜索分数像素内插值对应小块处的RMS点,搜索出最佳的匹配误差RMS。如果匹配误差RMS小于开始设定的阈值γ,保存当前的迭代函数系统系数即IFS系数,转入步骤五得到本块的重建块;否则,依次按照树状结构对该块进行划分。
匹配的依据是分形迭代函数系统原理,简要介绍一下分形图像压缩的数学基础—迭代函数系统(IFS:Iterative Function System)理论。设D是Rn欧氏空间的子集,ω为D→D的映射,如果存在一个实数C,0≤C<1,使得对于Rn上的度量d,满足对任意x,y∈D,有d(ω(x),ω(y))≤C(d(x,y)),则称ω为压缩映射,实数C称为ω的压缩因子。完备的度量空间(X,d)以及n个压缩映射ωi:X→X(其压缩因子分别为C1,C2,…Cn)一起,就组成一个迭代函数系统(Iterated Function System),简称IFS,记作{X:ω12,…,ωn}。C=max(C1,C2,…,Cn)称为IFS的压缩因子。因此{R2123}就是一个IFS。
分形图像压缩中,一般的匹配准则是RMS,即:
RMS = 1 N [ &Sigma; i = 1 N r i 2 + s ( s &Sigma; i = 1 N d i 2 - 2 &Sigma; i = 1 N r i d i + 2 o &Sigma; i = 1 N d i 2 ) + o ( N &CenterDot; o - 2 &Sigma; i = 1 N r i ) ] - - - ( 7 )
其中s,o分别为:
s = [ N &Sigma; i = 1 N r i d i - &Sigma; i = 1 N r i &Sigma; i = 1 N d i ] [ N &Sigma; i = 1 N d i 2 - ( &Sigma; i = 1 N d i ) 2 ] - - - ( 8 )
o = 1 N [ &Sigma; i = 1 N r i - s &Sigma; i = 1 N d i ] - - - ( 9 )
其中,N为子块和父块像素的个数,ri为子块的像素值,di为父块的像素值。
首先设定子块的匹配误差阈值γ=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,返回步骤三的开始,继续下一宏块的匹配。否则,按照树状结构对该宏块进行划分,对宏块的划分有四种模式,如附图4(a),模式一为一个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、否则对模式四中的每一个小块按照附图4(b)中的模式划分顺序进行划分,可依次划分为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、返回步骤三,继续下一宏块的编码。
如果是左目,则转到步骤四;若是右目,则执行步骤七。
步骤四:残差图像的数据经过DCT、量化之后的系数进行Zig-Zag扫描,然后用熵编码CALVC进行编码写入码流。如果是P帧则还要对所有IFS系数进行有符号指数哥伦布编码;判断当前帧是否为最后一帧,如果是最后一帧结束编码;否则,返回步骤一继续处理下一帧图像。
其中DCT变换是以4×4的亚宏块为单位进行的,具体过程如下:
Y = ( C f X C f T ) &CircleTimes; E f = ( 1 1 1 1 2 1 - 1 - 2 1 - 1 - 1 1 1 - 2 2 - 1 X 1 2 1 1 1 1 - 1 - 2 1 - 1 - 1 2 1 - 2 1 - 1 &CircleTimes; a 2 ab 2 a 2 ab 2 ab 2 b 2 4 ab 2 b 2 4 a 2 ab 2 a 2 ab 2 ab 2 b 2 4 ab 2 b 2 4 ) - - - ( 10 )
其中,X是4×4残差块, Y是经过DCT变换后的块。再对Y进行量化参数QP=28时的量化,量化步长Qstep=16,量化公式为:Yij是矩阵Y中的转换系数,Zij是输出的量化系数。round()为取整函数(其输出为与输入数值最近的整数)。然后按照Zig-Zag的扫描(如附图7)重排序后经过熵编码CALVC后生成压缩比特流。残差量化系数经过反量化和反DCT变换得到解码端残差帧。解码端残差帧和预测帧之和得到重建帧,可以作为下一帧的参考帧。
步骤五:通过保存的IFS系数代入解码方程计算得到预测值,由原始块和预测块之差得到编码端残差块,再将预测块和解码端残差块之和得到重建块。注:解码端残差块是由编码端残差块经过DCT变换、量化、反量化和反DCT变换得到的。转回步骤三编码下一宏块。
步骤六:对于右目,首先进行互不重叠的16×16宏块划分,分别计算当前帧互不重叠的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的小块的像素和、像素平方和,以减少块匹配过程中的重复计算。附图5为双目立体视频编码的MCP和DCP结构示意图,右目中,每个宏块使用DCP从左目中预测,使用MCP从右目的前一帧预测。编码器首先在右目的前一帧中搜索,选择最匹配的D块;从第一个宏块开始处理,依次对当前帧的所有16×16宏块进行编码,转入步骤三;
步骤七:然后编码器在左目对应帧的解压缩图像中以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块。从第一个宏块开始处理,依次对当前帧的所有16×16宏块进行编码,转入步骤八;附图6(a)和(b)为双目立体视频序列“ballroom”第10帧左目和右目原始图像,附图6(c)和(d)为双目立体视频序列“ballroom”第10帧左目和右目解压缩图像。
附图6(c)中,对应平均PSNR=37.27dB,平均码流Bit=90032bit,平均压缩时间Time=3780ms;附图6(d)中,对应平均PSNR=37.49dB,平均码流Bit=83022bit,平均压缩时间Time=3772ms。可以看出:基于分形和H.264的双目视频压缩方法的解码图像质量很好。相比于传统单独的分形视频编码方法有很大的提高。转到步骤八。
步骤八:首先对与当前子块位置相同的父块进行块匹配,得到RMS,并保存迭代函数系统系数,该系数包括父块与子块的相对位移矢量(x,y),比例因子s和偏移因子o;依次对当前帧的所有宏块进行编码,在父块域中的搜索窗内首先对该宏块进行块匹配;在进行子块与父块的匹配过程中,子块的位置作为父块的起始搜索点,父块的大小与子块的大小相同并转入步骤十,执行完步骤十返回之后,如果所得的匹配误差RMS小于开始设定的阈值γ,则保存当前的迭代函数系统系数即IFS系数,转入步骤九编码下一宏块;否则,依次按照树状结构对该块进行划分,并对各个划分得到的小块分别转入步骤十,执行完步骤十返回之后计算匹配误差RMS,如果RMS小于设定阈值γ,则停止划分并记录该小块IFS系数,转入步骤九编码下一宏块;否则继续划分,直到将当前块划分为预先设定的最小块,转入步骤十计算RMS,执行完步骤十返回之后记录IFS系数,转入步骤九编码下一宏块;最后与步骤六所得结果比较,选择误差最小的作为预测结果;所述搜索窗为在参考帧中的矩形搜索区域;所述IFS系数包括父块位置(x,y)和比例因子s、偏移因子o;如果当前帧所有的宏块都已编码完毕,则转到步骤十;
步骤九:充分利用分数像素块匹配和视差分布约束条件:将上一个视差估计矢量作为当前帧的搜索中心,在水平方向沿初始点的右侧进行搜索,在搜索过程中进行跳跃式搜索;点匹配完之后,向右间隔三个点进行搜索,进行比较,直到找到最小的RMS;同时对分数像素位置进行相同的操作,比较得到更小的RMS。
视差分布约束条件包括:
外极线约束:对于左目中的图像上的一点,通过相对定向参数找出右目中的图像上与其对应的极线,其对应点在上述极线上搜索;对于平行系统的视差搜索,只需沿扫描线,进行x方向的搜索即可;最佳匹配点位于偏振线上即水平线上;在立体平行摄像系统中,沿水平方向进行DCP搜索;
两摄像机在同一时刻观看空间同一特征点P(xc,yc,zc),在左目中的图像和右目中的图像的坐标分别为pleft=(Xleft,Yleft),pright=(Xright,Yright);其中点P(xc,yc,zc)与两个光心所确定的平面称为偏振平面,偏振平面与左右图像的交线称为偏振线;由几何关系得到,其中:f表示摄像机的焦距,B为两摄像机的投影中心连线的距离,即基线距,zc为世界坐标系下特征点P的Z坐标:
X lef t = f x c z c X right = f ( x c - B ) z c Y = f y c z c - - - ( 11 )
2)方向性约束;对于同一个景物,其透视投影左目中的图像相对于右目中的图像局部地向左移动。同一空间点在两图像平面中的投影位置差矢量即视差由此可知视差D是深度z的函数,表示相对深度,对于同一特征点,其透视投影左目中的图像是右目中的图像沿水平负向的局部平移;同一空间点在右目中的图像上的图像坐标比在左目中的图像上的图像坐标偏右,在搜索时沿一个方向进行。
3)空域相关性与时域相关性:而连续变化视差场中的视差矢量有很强的相关性,即同一帧内视差矢量之间存在相关性;对于相邻两帧图像,仅有少数像素发生了运动,多数像素的位置并没有变化;对于位置不变的像素来说,其视差基本不变;在进行视差估计时,用前一帧图像的对应视差矢量作为搜索起始点进行小范围内的搜索,从而基于分形和H.264找到实际视差矢量;
结束DCP搜索过程;
步骤十:残差图像的数据经过DCT、量化之后的系数进行Zig-Zag扫描,然后用熵编码CALVC进行编码写入码流。如果是P帧则还要对所有IFS系数进行有符号指数哥伦布编码;判断当前帧是否为最后一帧,如果是最后一帧结束编码,否则,返回步骤一继续处理下一帧图像。
处理的双目立体视频序列为YUV格式,分别对3个分量中的每个采用上述十个步骤进行处理。
如附图1(c)所示,一种基于分形和H.264的双目立体视频解压缩方法,包括以下步骤:
步骤Ⅰ:首先读入左目压缩信息,包括压缩帧数,每帧图像的宽和高,I帧压缩质量和插入I帧的间隔;
步骤Ⅱ:判断解码帧是否为I帧,若是I帧转入步骤Ⅲ,否则转入步骤Ⅳ;
步骤Ⅲ:对于I帧,读入码流得到I帧的残差帧数据,经过反量化和反变换得到解码端残差帧,再与解码端预测帧进行相加之后得到重建帧,帧数加一转入步骤Ⅷ;
步骤Ⅳ:对于P帧,计算左目前一帧中按照设定步长划分的所有宏块以及经树状划分得到的小块的像素和、像素平方和,然后从码流中读入该帧所有宏块的划分方式、每一个小块的迭代函数系统系数和残差帧数据,其中由各迭代函数系统系数分别计算出解码端的预测块形成解码端的预测帧,残差帧数据经过反量化和反变换得到解码端残差帧。解码端残差帧与预测帧之和得到重建帧;
步骤Ⅴ:从码流中读入右目信息,包括每块的划分方式,每一个小块的迭代函数系统系数和残差帧数据、参考帧号;计算右目前一帧和左目对应帧中按照设定步长划分的所有宏块以及经树状划分得到的小块的像素和、像素平方和,由各迭代函数系统系数分别计算出解码端的预测块形成解码端的预测帧,残差帧数据经过反量化和反变换得到解码端残差帧。解码端残差帧与预测帧之和得到重建帧。转入步骤Ⅵ;
步骤Ⅵ:判断此时所有帧是否都已解码,若都解码完毕,结束解码过程,否则转入步骤Ⅱ。
按照每一宏块进行解码,对于每一个宏块进行解压缩时,首先判断该宏块在编码时的划分方式,对于每一个子块,首先在父块域找到与该子块相对应的区域,然后利用下面的公式获得该子块的像素值:
ri=s·di+o    (12)
其中ri为待解码子块的像素值,di为父块域中的像素值,s为比例因子,o为偏移因子。
在基于分形和H.264的双目立体视频解码过程中,左目用常规单目的运动补偿预测(MCP)编码,右目的每个图像块通过运动补偿预测(MCP)和视差补偿预测(DCP)两种方式进行预测,从中选择误差较小的一种作为预测结果。
处理的双目立体视频序列为YUV格式,分别对3个分量中的每个采用上述六个步骤进行处理。
本方法选择Visual C++6.0作为所述方法的实现语言,CPU为IntelCoreTM 2QuadQ9300,2.50GHz主频,内存大小为3.46G,对标准测试立体视频序列“ballroom.yuv”进行了基于分形和H.264的双目立体视频编码实验。
表1为双目立体视频的平均性能参数结果,其中压缩时间是处理完二目的总时间平均值。对“ballroom.yuv”双目立体视频序列2~10帧采用全搜索方法和本文所提出的基于分形和H.264搜索方法进行编码结果的平均值如表1所示。从表1可以看到,对“ballroom.yuv”双目立体视频序列,采用基于分形和H.264的双目立体视频压缩方法的搜索时间仅为JMVM 8.0的35%,码率降为原来的48%,PSNR值减少了0.54dB。
表1立体视频序列压缩性能均值对比
对“ballroom.yuv”双目立体视频序列左、右两个通道1~10帧进行了实验,大小为640×480像素,YUV 4:2:0制式的双目立体视频序列主要从视频图像重建质量、码率和压缩时间三方面对二者进行对比。其中重建帧质量用峰值信噪比(PSNR)表示。本发明中MCP方法的水平和垂直搜索范围都是[-7,7],本发明所提快速DCP水平搜索范围[0,6]。
根据H.264和分形视频编码方法的优点,将其应用到双目立体视频编码领域,并根据视差分布约束条件和视频运动特点,提出了一种新的视差估计和运动估计方法,同时运用了分数像素块匹配。通过仿真实验可以得到,该方法在保证PSNR变化很小的前提下,极大地降低了运算复杂度,同时大大降低了码率,为双目立体视频编码的实时性应用奠定了基础。
本文根据现代视频编解码系统H.264解码图像质量高、时间短、码率低的要求,提出了基于分形预测编码的对H.264中P帧预测进行改进的视频编码系统。并充分利用分形图像特征、运动和视差分布约束条件、分数像素块匹配,在搜索方法上提出了新的改进,使得搜索时间大大减少,从而运算的复杂度和时间都降低了;同时压缩比大大提高,使得空间的利用率越来越高。在分形编码中,解码质量和编码时间一直都是最为关注的问题,也是比较难解决的方面。本方法针对这方面,进行了深入的挖掘和思考,同时也取得了很好的效果,为以后的研究打下了良好的基础,也指明了一定的方向。

Claims (10)

1.一种基于分形和H.264的双目立体视频压缩编码方法,其特征在于:左目I帧采用基于H.264的帧内预测进行编码,P帧采用分形的MCP方法编码;右目首帧采用视差补偿预测(DCP)的方式从基本层的I帧进行预测;其它帧采用右目前一帧为参考帧的分形MCP方法和左目相同帧号的帧为参考帧进行分形的DCP方法选择最优进行预测编码;残差帧经过DCT变换、量化之后使用熵编码CALVC写入码流;P帧形成的分形参数使用有符号指数哥伦布编码写入码流;具体步骤如下:
步骤一:如果是右目,转到步骤六;如果是左目,若是P帧,转到步骤二;若是I帧,采用基于H.264的帧内预测编码方式,对于每个当前块在各种可能的预测方式中选择具有最小代价的的预测模式存储,完成所有块的预测后可以得到I帧的预测帧;通过原始帧和预测帧之差得到编码端残差帧;残差图像的数据经过DCT、量化之后的系数进行Zig-Zag扫描,然后用熵编码CALVC进行编码写入码流;预测帧和解码端残差帧之和滤波后得到重建图像;判断当前帧是否为最后一帧,如果是最后一帧则结束编码,如果不是最后一帧则返回步骤一开始下一帧的编码;所述I帧为视频序列起始帧或者视频序列中只进行帧内编码的图像帧;
步骤二:若是左目的P帧,用常规分形的运动补偿预测(MCP)编码,在进行块匹配之前,首先对该帧进行互不重叠的宏块划分,然后计算这些宏块以及经树状划分得到的小块的像素和、像素平方和,以及左目前一帧重建图像即参考帧中,按照设定步长划分的所有宏块以及经树状划分得到的小块的像素和、像素平方和,同时计算分数像素内插值对应块的像素和、像素平方和,转到步骤三;所述P帧为视频序列中通过其它已编码帧进行预测的图像帧;所述宏块为将当前帧划分为固定大小的互不重叠的图像块;所述小块为将当前宏块进行树状划分得到的块;所述当前帧为正在进行压缩的帧,所述参考帧为本目或相邻目中已经编码并重建的一帧;所述当前帧所有块的集合称为子块域;所述前一帧的所有块的集合称为父块域;所述块DCT变换中的块采用固定大小模式;
步骤三:依次对当前帧的所有宏块进行编码,在参考帧的搜索窗内首先对该宏块进行块匹配;在进行子块与父块的匹配过程中,子块的位置作为父块的起始搜索点,父块的大小与子块的大小相同;利用基于运动矢量场的自适应六边形搜索算法,然后利用分数像素块匹配,搜索分数像素内插值对应小块处的RMS点,搜索出最佳的匹配误差RMS;如果匹配误差RMS小于开始设定的阈值γ,保存当前的迭代函数系统系数即IFS系数,转入步骤五得到本块的重建块;否则,依次按照树状结构对该块进行划分,并对各个划分得到的小块利用分数像素块匹配和基于运动矢量场的自适应六边形搜索算法,分别计算匹配误差RMS,如果RMS小于设定阈值γ,则停止划分并记录该小块IFS系数,转入步骤五得到本块的重建块;否则继续划分,直到将当前块划分为预先设定的最小块,记录IFS系数;转入步骤五得到本块的重建块;所述搜索窗为在参考帧中的矩形搜索区域;所述IFS系数包括父块位置(x,y)和比例因子s、偏移因子o;如果当前帧所有的宏块都已编码完毕,所有的重建块组成重建图像;如果且是左目,则转到步骤四;若是右目,则执行步骤七;
步骤四:残差图像的数据经过DCT、量化之后的系数进行Zig-Zag扫描,然后用熵编码CALVC进行编码写入码流;如果是P帧则还要对所有IFS系数进行有符号指数哥伦布编码;判断当前帧是否为最后一帧,如果是最后一帧结束编码;否则,返回步骤一继续处理下一帧图像;
步骤五:通过保存的IFS系数代入解码方程计算得到预测值,由原始块和预测块之差得到编码端残差块,再将预测块和解码端残差块之和得到重建块;注:解码端残差块是由编码端残差块经过DCT变换、量化、反量化和反DCT变换得到的;转回步骤三编码下一宏块;
步骤六:对右目图像,首先进行互不重叠的宏块划分,然后计算这些宏块以及经树状划分得到的小块的像素和、像素平方和,以及右目前一帧重建图像参考帧,按照设定步长划分的所有宏块以及经树状划分得到的小块的像素和、像素平方和,同时计算分数像素内插值对应块的像素和、像素平方和,以减少块匹配过程中的重复计算,转到步骤三;
步骤七:计算左目中对应帧图像的参考帧,按照设定步长划分的所有宏块以及经树状划分得到的小块的像素和、像素平方和,同时计算分数像素内插值对应块的像素和、像素平方和,以减少块匹配过程中的重复计算;转到步骤八;
步骤八:首先对与当前子块位置相同的父块进行块匹配,得到RMS,并保存迭代函数系统系数,该系数包括父块与子块的相对位移矢量(x,y),比例因子s和偏移因子o;依次对当前帧的所有宏块进行编码,在父块域中的搜索窗内首先对该宏块进行块匹配;在进行子块与父块的匹配过程中,子块的位置作为父块的起始搜索点,父块的大小与子块的大小相同并转入步骤九,执行完步骤九返回之后,如果所得的匹配误差RMS小于开始设定的阈值γ,则保存当前的迭代函数系统系数即IFS系数,转入步骤八编码下一宏块;否则,依次按照树状结构对该块进行划分,并对各个划分得到的小块分别转入步骤九,执行完步骤九返回之后计算匹配误差RMS,如果RMS小于设定阈值γ,则停止划分并记录该小块IFS系数,转入步骤八编码下一宏块;否则继续划分,直到将当前块划分为预先设定的最小块,转入步骤九计算RMS,执行完步骤九返回之后记录IFS系数,转入步骤八编码下一宏块;最后与步骤六所得结果比较,选择误差最小的作为预测结果;所述搜索窗为在参考帧中的矩形搜索区域;所述IFS系数包括父块位置(x,y)和比例因子s、偏移因子o;如果当前帧所有的宏块都已编码完毕,则转到步骤十;
步骤九:充分利用分数像素块匹配和视差分布约束条件:将上一个视差估计矢量作为为当前帧的搜索中心,在水平方向沿初始点的右侧进行搜索,在搜索过程中进行跳跃式搜索;点匹配完之后,向右间隔三个点进行搜索,进行比较,直到找到最小的RMS;然后对分数像素位置进行相同的操作,比较得到更小的RMS,结束DCP搜索过程;
步骤十:残差图像的数据经过DCT、量化之后的系数进行Zig-Zag扫描,然后用熵编码CALVC进行编码写入码流;如果是P帧则还要对所有IFS系数进行有符号指数哥伦布编码;判断当前帧是否为最后一帧,如果是最后一帧结束编码;否则,返回步骤一继续处理下一帧图像。
2.根据权利要求1所述一种基于分形和H.264的双目立体视频压缩编码方法,其特征在于:处理的视频序列为YUV格式,分别对3个分量中的每个采用上述十个步骤进行处理。
3.根据权利要求1所述一种基于分形和H.264的双目立体视频压缩编码方法,其特征在于:所述步骤三中基于运动矢量场的自适应六边形搜索算法,充分根据分形编码的特点,具体如下:
1)在小十字模式中的五个搜索点中搜索最小匹配误差所在点;应用块匹配准则搜索,如果最小匹配误差点在小十字模式的中心,此时即得到最终要求的最佳匹配误差;否则,转入步骤2);
2)以步骤1)搜索到的最小匹配误差点为中心构造新的小十字模式,应用块匹配准则,搜寻3个新的搜索点;再搜索最小匹配误差点,如果搜索到的最小匹配误差点在小十字模式的中心,即得到最终要求的最佳匹配误差;否则,进入步骤3);
3)搜索大十字模式3个还没有搜索到的点,应用块匹配准则,搜索新的最小匹配误差点,以作为下一步搜索的中心;
4)以上一步的最小匹配误差点为中心,构造六边形搜索模式,应用块匹配准则搜索,找出新的最小匹配误差点,如果该点在六边形的中心,进入步骤5);否则,继续步骤4),直到最小匹配误差点在六边形的中心;
5)以步骤4)所搜索到的位于六边形的中心的最小匹配误差点为中心,构造小十字搜索模式,应用块匹配准则搜索,找出最小匹配误差点,即得到最终要求的最佳匹配误差。
4.根据权利要求1所述一种基于分形和H.264的双目立体视频压缩编码方法,其特征在于:所述步骤四中P帧中分形系数的编码包括以下三个步骤:
1)如果当前块是处于左目I帧后的第一个P帧内,且是P帧的第一块,则按照有符号的指数哥伦布编码方式编码预测P帧所产生的所有分形系数;
2)如果当前块是处于左目I帧后的第一个P帧内,但是不是P帧的第一块,则编码当前块与前一块的分形系数之差;如果当前块与前一块的预测方式不同,则按照4×4块的划分方式编码;
3)如果当前块不是处于左目I帧后的第一个P帧内,则编码当前块与前一帧相同位置块的分形系数之差;如果两者的预测方式不同,则按照4×4块的划分方式编码;
4)如果当前块是处于右目的帧内,则编码当前块与中间目相同位置块的分形系数之差;如果两者的预测方式不同,则按照4×4块的划分方式编码。
5.根据权利要求1所述一种基于分形和H.264的双目立体视频压缩编码方法,其特征在于:所述步骤六中对宏块采用树状划分,块匹配采用匹配误差准则,子块与父块的匹配误差RMS为:
RMS = 1 N [ &Sigma; i = 1 N r i 2 + s ( s &Sigma; i = 1 N d i 2 - 2 &Sigma; i = 1 N r i d i + 2 o &Sigma; i = 1 N d i 2 ) + o ( N &CenterDot; o - 2 &Sigma; i = 1 N r i ) ] - - - ( 1 )
其中参数s和o分别为:
s = [ N &Sigma; i = 1 N r i d i - &Sigma; i = 1 N r i &Sigma; i = 1 N d i ] [ N &Sigma; i = 1 N d i 2 - ( &Sigma; i = 1 N d i ) 2 ] - - - ( 2 )
o = 1 N [ &Sigma; i = 1 N r i - s &Sigma; i = 1 N d i ] - - - ( 3 )
其中,N为子块和父块像素的个数,ri为子块的像素值,di为父块的像素值;
计算当前宏块在参考帧中的块匹配误差RMS,其中ri是子块的像素值,di是父块的像素值;如果RMS小于预先设定的阈值γ,记录IFS系数,IFS系数包括匹配块的位移矢量(x,y)和公式(2),(3)中的s和o,处理下一宏块;否则,对当前宏块进行树状划分,计算划分后小块的RMS,如果小于阈值γ,则停止划分,否则继续划分,直到子块达到预先设定的最小块为止。
6.根据权利要求1所述一种基于分形和H.264的双目立体视频压缩编码方法,其特征在于:所述步骤十中视差分布约束条件如下:
1)外极线约束;对于左目中的图像上的一点,通过相对定向参数找出右目中的图像上与其对应的极线,其对应点在上述极线上搜索;对于平行系统的视差搜索,只需沿扫描线,进行x方向的搜索即可;最佳匹配点位于偏振线上即水平线上;在立体平行摄像系统中,沿水平方向进行DCP搜索;
两摄像机在同一时刻观看空间同一特征点P(xc,yc,zc),在左目中的图像和右目中的图像的坐标分别为pleft=(Xleft,Yleft),pright=(Xright,Yright);其中点P(xc,yc,zc)与两个光心所确定的平面称为偏振平面,偏振平面与左右图像的交线称为偏振线;由几何关系得到,其中:f表示摄像机的焦距,B为两摄像机的投影中心连线的距离,即基线距,zc为世界坐标系下特征点P的Z坐标:
X left = f x c z c X right = f ( x c - B ) z c Y = f y c z c - - - ( 4 )
2)方向性约束;对于同一个景物,其透视投影左目中的图像相对于右目中的图像局部地向左移动;同一空间点在两图像平面中的投影位置差矢量即视差由此可知视差D是深度z的函数,表示相对深度,对于同一特征点,其透视投影左目中的图像是右目中的图像沿水平负向的局部平移;同一空间点在右目中的图像上的图像坐标比在左目中的图像上的图像坐标偏右,在搜索时沿一个方向进行;
3)空域相关性与时域相关性:而连续变化视差场中的视差矢量有很强的相关性,即同一帧内视差矢量之间存在相关性;对于相邻两帧图像,仅有少数像素发生了运动,多数像素的位置并没有变化;对于位置不变的像素来说,其视差基本不变,在进行视差估计时,用前一帧图像的对应视差矢量作为搜索起始点进行小范围内的搜索,从而基于分形和H.264基于分形和H.264找到实际视差矢量。
7.一种基于分形和H.264的双目立体视频解压缩方法,包含以下步骤:
步骤Ⅰ:首先从码流信息中读入系统信息,包括压缩帧数,每帧图像的宽和高,I帧压缩质量和插入I帧的间隔;
步骤Ⅱ:判断是否为左目,如果不是转入步骤Ⅴ,如果是则判断解码帧是否为I帧,若是I帧转入步骤Ⅲ,否则转入步骤Ⅳ;
步骤Ⅲ:对于I帧,读入码流得到I帧的残差帧数据,经过反量化和反变换得到解码端残差帧,再与解码端预测帧进行相加滤波之后得到重建帧,帧数加一转入步骤Ⅷ;
步骤Ⅳ:对于P帧,计算左目前一帧中按照设定步长划分的所有宏块以及经树状划分得到的小块的像素和、像素平方和,然后从码流中读入该帧所有宏块的划分方式、每一个小块的迭代函数系统系数和残差帧数据,其中由各迭代函数系统系数分别计算出解码端的预测块形成解码端的预测帧,残差帧数据经过反量化和反变换得到解码端残差帧;解码端残差帧与预测帧之和经过滤波后得到重建帧;
步骤Ⅴ:从码流中读入右目信息,包括每块的划分方式,每一个小块的迭代函数系统系数和残差帧数据、参考帧号;计算右目前一帧和左目对应帧中按照设定步长划分的所有宏块以及经树状划分得到的小块的像素和、像素平方和,由各迭代函数系统系数分别计算出解码端的预测块形成解码端的预测帧,残差帧数据经过反量化和反变换得到解码端残差帧;解码端残差帧与预测帧之和经过滤波得到重建帧;转入步骤Ⅵ;
步骤Ⅵ:判断此时所有帧是否都已解码,若都解码完毕,结束解码过程,否则转入步骤Ⅱ。
8.根据权利要求7所述一种基于分形和H.264的双目立体视频解压缩方法,其特征在于:对于每一个宏块进行解压缩时,首先判断该宏块在编码时的划分方式,对于每一个子块,首先在父块域找到与该子块相对应的区域,然后利用下面的公式获得该子块的像素值,
ri=s·di+o    (5)
其中ri为待解码子块的像素值,di为父块域中的像素值,s为比例因子,o为偏移因子。
9.根据权利要求7所述一种基于分形和H.264的双目立体视频解压缩方法,其特征在于:在基于分形和H.264的双目分形视频解压缩方法过程中,左目用常规单目的运动补偿预测(MCP)编码,右目的每个图像块通过运动补偿预测(MCP)和视差补偿预测(DCP)两种方式进行预测,从中选择误差较小的一种作为预测结果。
10.根据权利要求7所述一种基于分形和H.264的双目立体视频解压缩方法,其特征在于:处理的视频序列为YUV格式,分别对3个分量中的每个采用上述六个步骤进行处理。
CN201210402451.9A 2012-10-22 2012-10-22 一种基于分形和h.264的双目立体视频压缩与解压缩方法 Active CN103051894B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210402451.9A CN103051894B (zh) 2012-10-22 2012-10-22 一种基于分形和h.264的双目立体视频压缩与解压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210402451.9A CN103051894B (zh) 2012-10-22 2012-10-22 一种基于分形和h.264的双目立体视频压缩与解压缩方法

Publications (2)

Publication Number Publication Date
CN103051894A CN103051894A (zh) 2013-04-17
CN103051894B true CN103051894B (zh) 2015-09-09

Family

ID=48064379

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210402451.9A Active CN103051894B (zh) 2012-10-22 2012-10-22 一种基于分形和h.264的双目立体视频压缩与解压缩方法

Country Status (1)

Country Link
CN (1) CN103051894B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108271023B (zh) 2017-01-04 2021-11-19 华为技术有限公司 图像预测方法和相关设备
CN107071385B (zh) * 2017-04-18 2019-01-25 杭州派尼澳电子科技有限公司 一种基于h265引入视差补偿的立体视频编码方法
CN108898842A (zh) * 2018-07-02 2018-11-27 武汉大学深圳研究院 一种多源监控视频的高效编码方法及其系统
CN110351560A (zh) * 2019-07-17 2019-10-18 深圳市网心科技有限公司 一种编码方法、系统及电子设备和存储介质
CN111882486B (zh) * 2020-06-21 2023-03-10 南开大学 一种基于低秩先验信息的混合分辨率多视点视频超分辨方法
CN113014905B (zh) * 2021-02-24 2023-04-14 北京金山云网络技术有限公司 图像帧的生成方法及装置、存储介质、电子设备
CN117560494B (zh) * 2024-01-11 2024-03-19 中国矿业大学 一种用于矿下低质视频快速增强的编码方法
CN118474377B (zh) * 2024-07-11 2024-09-24 中国矿业大学 一种支持多种计算复杂度的深度视频编解码方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625215B1 (en) * 1999-06-07 2003-09-23 Lucent Technologies Inc. Methods and apparatus for context-based inter/intra coding mode selection
CN101980537A (zh) * 2010-10-21 2011-02-23 北京航空航天大学 一种基于对象和分形的双目立体视频压缩编解码方法
CN101980538A (zh) * 2010-10-21 2011-02-23 北京航空航天大学 一种基于分形的双目立体视频压缩编解码方法
CN102263953A (zh) * 2011-07-06 2011-11-30 北京航空航天大学 一种基于对象的快速多目立体视频分形压缩与解压缩方法
CN102316323A (zh) * 2011-07-06 2012-01-11 北京航空航天大学 一种快速的双目立体视频分形压缩与解压缩方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625215B1 (en) * 1999-06-07 2003-09-23 Lucent Technologies Inc. Methods and apparatus for context-based inter/intra coding mode selection
CN101980537A (zh) * 2010-10-21 2011-02-23 北京航空航天大学 一种基于对象和分形的双目立体视频压缩编解码方法
CN101980538A (zh) * 2010-10-21 2011-02-23 北京航空航天大学 一种基于分形的双目立体视频压缩编解码方法
CN102263953A (zh) * 2011-07-06 2011-11-30 北京航空航天大学 一种基于对象的快速多目立体视频分形压缩与解压缩方法
CN102316323A (zh) * 2011-07-06 2012-01-11 北京航空航天大学 一种快速的双目立体视频分形压缩与解压缩方法

Also Published As

Publication number Publication date
CN103051894A (zh) 2013-04-17

Similar Documents

Publication Publication Date Title
CN103051894B (zh) 一种基于分形和h.264的双目立体视频压缩与解压缩方法
CN103037218B (zh) 一种基于分形和h.264的多目立体视频压缩与解压缩方法
CN101980537B (zh) 一种基于对象和分形的双目立体视频压缩编解码方法
CN101980538B (zh) 一种基于分形的双目立体视频压缩编解码方法
CN102905150B (zh) 一种新的多视点视频分形编码压缩与解压缩方法
CN102970529B (zh) 一种基于对象的多视点视频分形编码压缩与解压缩方法
CN102291579B (zh) 一种快速的多目立体视频分形压缩与解压缩方法
JP5234586B2 (ja) 映像符号化方法及び復号方法、それらの装置、及びそれらのプログラム並びにプログラムを記録した記憶媒体
CN101600108B (zh) 一种多视点视频编码中的运动和视差联合估计方法
CN103037219B (zh) 一种基于分形和h.264的视频压缩与解压缩方法
CN103581647A (zh) 一种基于彩色视频运动矢量的深度图序列分形编码方法
CN102263951B (zh) 一种快速的分形视频压缩与解压缩方法
CN101990103B (zh) 用于多视点视频编码的方法和装置
CN102316323B (zh) 一种快速的双目立体视频分形压缩与解压缩方法
CN103546758A (zh) 一种快速深度图序列帧间模式选择分形编码方法
CN102685532A (zh) 自由视点四维空间视频编码系统的编码方法
CN101980536B (zh) 一种基于对象和分形的多目立体视频压缩编解码方法
CN101980539B (zh) 一种基于分形的多目立体视频压缩编解码方法
CN102917233A (zh) 空间遥操作环境下立体视频编码优化方法
Xiang et al. A novel error concealment method for stereoscopic video coding
CN103220532B (zh) 立体视频的联合预测编码方法及系统
CN102263952B (zh) 一种基于对象的快速双目立体视频分形压缩与解压缩方法
CN102263953B (zh) 一种基于对象的快速多目立体视频分形压缩与解压缩方法
Huang et al. Prediction-oriented disparity rectification model for geometry-based light field compression
CN103647969A (zh) 一种基于对象的快速分形视频压缩与解压缩方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20191022

Address after: 610000 Chengdu Free Trade Experimental Zone, Sichuan Province, No. 300 Jiaozi Avenue, Chengdu High-tech Zone, No. 3 Building, 22 Floor 5

Patentee after: CHENGDU VISION-ZENITH TECHNOLOGY DEVELOPMENT CO., LTD.

Address before: 100191 Haidian District, Xueyuan Road, No. 37,

Patentee before: Beijing University of Aeronautics and Astronautics

TR01 Transfer of patent right