发明名称 一种面向多视点视频的快速编码方法
摘要 一种面向多视点视频的快速编码方法,属于H.264/AVC视频编码技术领域,其特征在于,对左、右视点先用全搜索方法进行编码并提取编码信息,再对右视点中除锚定帧以外的其他各帧采用两层SVM分类器按能够反映编码时宏块预测的错误量SSD、编码残差状态CBP以及宏块编码模式的使用率构建两层SVM分类器的特征矢量,分类器按用以识别同质、平坦区域的宏块的编码模式以及较大块编码模式的宏块的编码模式进行相对应的编码,最后从中选取率失真代价最小的宏块编码模式作为宏块的最优编码模式。本发明提前终止了原始的全模式搜索方法采用的率失真优化方法,优化后的宏块编码模式降低了编码复杂度,至少降低了70%的编码时间。
申请公布号 CN102420990A 申请公布日期 2012.04.18
申请号 CN201110421038.2 申请日期 2011.12.15
申请人 北京工业大学 发明人 贾克斌;窦环;邓智玭
分类号 H04N7/26(2006.01)I;H04N7/32(2006.01)I 主分类号 H04N7/26(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 楼艮基
主权项 1.一种面向多视点视频的快速编码方法,其特征在于,是在计算机中依次按以下步骤仿真实现的:步骤(1),计算机初始化:设置:按全模式搜索方法对选定的参考视点(S0)以及当前视点(S1)进行编码的JMVC软件,以其中的多视点视频编码模型JMVC7.2软件作为实验平台,量化参数QP设置为22、27、32和37,运动估计和视差估计搜索窗口大小为96×96,支持向量机训练和预测使用libSVM软件包,YUV格式的多视点国际标准测试视频序列ballroom序列作为训练序列,race1序列、flamenco2序列、exit序列作为测试序列,分别从ballroom_0.yuv文件、race1_0.yuv文件、flamenco2_0.yuv文件、exit_0.yuv文件中选取41帧图像作为各序列的左视点,在编码时构成所述各序列的参考视点(S0),再分别选取ballroom_1.yuv文件、race1_1.yuv文件、flamenco2_1.yuv文件、exit_1.yuv文件中的41帧图像作为各序列的右视点,在编码时构成所述各序列的当前视点(S1);步骤(2),利用所述的JMVC多视点视频编码软件对从所述的YUV格式的多视点国际标准测试视频序列ballroom序列、race1序列、flamenco2序列、exit序列中分别选取的所述左视点和右视点按全模式搜索编码方法进行编码,并同时提取编码信息,包括:当前进行编码的宏块中各原始数据与相对应的已经编码重建的参考帧内宏块中各数据的差值平方和SSD、宏块残差编码方式CBP、宏块前向运动矢量(L0)和宏块后向运动矢量(L1)、宏块的编码模式MODE以及所述当前编码帧所对应的参考帧;步骤(3),对所述多视点视频中除锚定帧以外的所有帧的宏块按模式选择快速预测方法进行编码,其步骤如下:步骤(3.1),利用步骤(2)得到的编码信息为支持向量机分类器模型选取特征向量:步骤(3.1.1),第一层分类器的特征向量,表述如下:在所述左视点中与相对应的所述右视点中的各当前编码宏块所处相同位置的各宏块的宏块残差编码模式CBP和差值平方和SSD,各当前编码宏块在所述左视点中对应的各宏块的周边八个宏块的平均的差值平方和SSD,各当前编码宏块在所述左视点中所对应的各个宏块和其八个相邻宏块中的使用次数最多的模式,各当前编码宏块的左上、上边、左边方向三个已编码宏块的平均的差值平方和SSD,在所述右视点中各当前编码宏块前一个已编码宏块的运动矢量;步骤(3.1.2),第二层分类器的特征向量,表述如下:各当前编码宏块在左视点S0中的对应宏块及周边八个相邻宏块、各当前编码宏块在右视点S1中的左上、上边、左边已编码的三个宏块组成的集合中使用次数最多的宏块模式,各当前编码宏块前一个已编码宏块的差值平方和SSD和宏块残差编码模式CBP,在前一帧内与当前编码宏块所处相同位置的宏块使用的宏块编码模式,在所述右视点中与当前帧中的当前编码宏块所处位置相同的这一个宏块其在前一帧中处于相同位置的宏块所使用的宏块模式;步骤(3.1.3),采用默认的RBF核函数,也称径向基函数,为支持向量机核函数,记为k(||x-x<sub>c</sub>||),并使用最常用的高斯核函数,形式为k(||x-x<sub>c</sub>||)=exp{-||x-x<sub>c</sub>||<sup>2</sup>/2σ<sup>2</sup>},其中,x为所述RBF核函数的坐标变量,x<sub>c</sub>为所述RBF核函数的中心,||·||表示欧式范数,σ为所述RBF核函数的宽度参数,计算公式为<img file="FDA0000120368790000021.GIF" wi="325" he="57" />其中M为训练样本中根据经验选定均匀分布的中心的个数,d为这些中心的间距;步骤(3.1.4),按以下步骤搭建两层SVM分类器:步骤(3.1.4.1),第一层分类器把属于{SKIP,Inter16x16}模式集合中的一个模式分离出来,用以识别同质、平坦区域的宏块;步骤(3.1.4.2),第二层分类器再把属于{Inter16x8,Inter8x16}模式集合中的一个模式分离出来,以识别较大编码模式的宏块;步骤(3.1.5),依次通过所述两层SVM分类器对多视点视频中的宏块模式进行优化分类,以减少宏块预测模式,并把分类后的宏块模式记录为TXT格式的外部文件存储;步骤(3.1.6),再次通过JMVC软件,以步骤(3.1.5)中优化后的宏块编码模式分类结果对所述多视点视频测试序列race1序列,flamenco2序列,exit序列的各个右视点进行编码,若当前编码帧为锚定帧则采用所述全模式搜索方法;步骤(3.1.7),读取第一层分类器的分类结果,若属于{SKIP,Inter16x16}模式集合中之一的模式,则仅对当前编码宏块使用SKIP模式和Inter16x16模式分别进行编码,并计算各模式的率失真代价,选取率失真代价最小的作为当前编码宏块的最佳编码模式;否则,执行步骤(3.1.8);步骤(3.1.8),读取第二层分类器的分类结果,若属于{Inter16x8,Inter8x16}模式集合中之一的模式,则仅对当前编码宏块使用Inter16x8模式和Inter8x16模式分别进行编码,并计算各模式的率失真代价,选取率失真代价最小的作为当前编码宏块的最佳编码模式;否则,采用Inter8x8模式、Intra16x16模式、Intra8x8模式和Intra4x4模式分别进行编码,并计算各模式的率失真代价,选取率失真代价最小的作为当前编码宏块的最佳编码模式;步骤(3.1.9),判断当前帧中是否还有未编码的宏块,若有,跳转并执行步骤(3.1.7),对当前编码宏块的下一宏块进行编码,若没有,则判断当前的右视点中是否还有未编码帧,若有,则跳转并执行步骤(3.1.6),对当前帧的下一帧进行编码,若没有,则对当前的右视点编码结束。
地址 100124 北京市朝阳区平乐园100号