Mpeg到h.264/avc视频编码转换系统的制作方法

文档序号:7697931阅读:194来源:国知局

专利名称::Mpeg到h.264/avc视频编码转换系统的制作方法
技术领域
:本发明涉及一种视频编码技术,特别是涉及利用软件方法实现两种视频编码的转换的方法。
背景技术
:近年来,数字视频编码技术发展迅速,多媒体应用领域呈现出多种标准共存的局面。H.264/AVC作为国际电信联盟电信标准化部门(ITU-T)和ISO/IEC联合完成的最新视频编码标准,采用了一系列更加复杂而有效的视频压縮算法,与先前的编码标准相比,压縮性能明显提高。此外,H.264/AVC还具有抗误码性能强,易于适应网络环境和网络接口多样性等优点。H.264/AVC标准将在数字电视、IPTV以及移动多媒体服务等领域中获得广泛的应用。然而,由于H.264/AVC标准的产业化才刚刚起步,符合H.264/AVC标准的数字多媒体资源还非常少,实际应用中急需可以提供H.264/AVC格式的硬件或软件产品,相对于提供硬件来说,利用软件的方法实现将目前应用普遍的MPEG编码转换为H.264/AVC格式是更为有效和经济的技术手段,这也成为本发明亟待解决的问题
发明内容i鉴于上述技术问题,本发明提出了一种MPEG到H.264/AVC视频编码转换系统,在现有MPEG视频编码系统中,利用软件实现MPEG编码到H.264编码的转换,以及实现大量MPEG-2格式的码流共享为H.264/AVC格式。本发明提出了一种MPEG到H.264/AVC的视频编码转换系统,其特征在于,MPEG节目流或传输流首先经过MPEG系统层解复用模块,解复用后分别提取出MPEG视频数据、音频及其他数据;解复用得到的MPEG音频数据及其他数据直接送入后端的MPEG系统层复用模块;而解复用输出的MPEG视频数据通过编码转换器被转码为H.264格式,然后送入MPEG系统层复用模块,编码转换器将输入的MPEG码流完全解码到像素域,再进行H.264编码;编码转换器包括频域帧内模式判断模块和运动矢量MV重用&优化及频域宏块模式判断模块;其中频域帧内模式判断模块利用输入码流的VLD解码再反量化后的DCT系数进行帧内预测模式判断;运动矢量重用&优化子模块和频域宏块模式,其中运动矢量重用&优化子模块将MPEG-2码流中的整像素运动矢量MV直接作为H.264的整像素运动矢量MV,再通过快速运动矢量优化算法获得1/4精度的运动矢量MV;频域宏块模式判断子模块则通过MPEG-2解码宏块判断H.264宏块所述频域帧内模式判断模块的算法,包括以下步骤歩骤一、判断预测宏块的大小采用Intra_16xl6还是Intm_4x4:1)计算预测宏块各子块的DC系数的均方差Msd(DC),即,n、i=l乂;=1J^("C)为DC系数的方差,ZX^表示各子块的DCT系数矩阵的DC值,^表示各子块DC系数的均值,n表示预测块的子块数;若Msd(DC)大于或等于阈值TH—DC,确定编码端帧内预测块用4x4块大小进行预测编码;若Msd(DC)小于阈值TH一DC,转入步骤2);其中,阈值TH一DC在各个Qp下的取值见阈值表ll;2)计算预测宏块各子块的DCT系数矩阵的AC系数绝对和,即n=64JC表示宏块中各子块的AC系数,S"^-^G的i取0n-l,分别表示宏块中各子块的AC系数绝对和;中j取264,表示一个DCT系数矩阵的63个AC系数;如果四个AC系数绝对和不大于阈值TI^SUNLAC,用16x16块进行预测编码;反之,如果四个AC系数绝对和大于阈值TH—SUM—AC,用4x4块进行预测编码;其中,阈值TH_SUM_AC在各个Qp下的取值见阈值表11;歩骤二、若上述预测结果是Intra—16x16,则判定Intra一16x16预测模式如果某一宏块的UP1、UP2、LEFT1、LEFT2邻块都不存在,则用Intra一16x16—DC预测模式;如果宏块只有UP1、UP2邻块,那么在Intra—16x16—DC和Intra—16x16—Vertical中选择;如果宏块只有LEFT1、LEFT2邻块,则在Intra_16xl6—DC和Intra16x16Horizontal中选择;对UP1、UP2、LEFT1、LEFT2邻块同时存在的待编码10宏块,则从4种预测方式即Intra—16x16—Vertical、Intra—16x16—Horizontal、Intra—16x16—DC和Intra—16x16—Plane中选择;歩骤三、若上述预测结果是Intra—4x4,判定Intra—4x4预测模式1)计算当前4x4子块的AC系数绝对和,记作^C——4,即^W]表示当前8x8块DCT系数矩阵第一行或第一列的AC系数,水平方向预测用第一行的AC系数,垂直方向预测用第一列的AC系数;计算当前4x4块与上边或左边4x4块的绝对AC系数和,记作。—」DS—"力JC[f]-爿C—,]Ijc"一"/[/j表示对应参考块的8x8dct系数矩阵第一行或第一列的ac系数,水平预测的时候用当前块和参考块的第一行AC系数,垂直预测的时候用当前块和参考块的第一列AC系数;计算内部预测值,记作^e-^7-4,即"C—Z>/_4=2|JC|其中^q03是当前宏块第一行或第一列中的第一个AC系数值,水平预测的时候用第一行的第一个AC系数,能够表示当前块左边和右边的能量差,可近似认为是左右两部分的亮度差异。垂直预测的时候用第一列的第一个AC系数;计算外部预测值,记作^c-4,艮pDC—DO—4=|ZX7—re/-DCI其中zx:—"/是参考块的DC值,"C是当前块的DC值;2)若水平类预测是内部预测,则使用两个判据,即当前4x4子块的AC系数绝对禾口^c—AS—4以及内部预测值DC一D/—4:当^C—^S一4小于闺值TH—AC—AS,且dc—d/一4小于阈值TH—Dc一Di时,判定当前子块用水平类预测,且取"c-"7—4作为第四步的判断是否使用水平预测的De-^,否则该子块不能用水平类预测;若垂直类预测是内部预测,则使用两个判据,即当前4x4子块的AC系数绝对和爿C一^S一4以及内部预观,j值DC—D/—4:当^C一AS—4小于阔值TH—AC—AS,且DC一Z)7-4小于阈值TH一Dc—Di时,判定当前子块用垂直类预测,且取"C—Z)/—4作第四歩的判断是否使用垂直预测的De—r,否则该子块不能用垂直类预测;3)若水平类预测是外部预测,则使用两个判据,即当前4x4块与上边或左边4x4块的绝对AC系数和^C-^^-4以及外部预测值DC-DO-4;当^C—^DS—4小于阈值TH—AC—ADS,且DC-"0-4小于阈值TH一DC一DO时,判定当前子块用水平类预测,且取1^-4作第四步的DC-^,否则该子块不能用水平类预测;若垂直类预测是外部预测,则使用两个判据^C——4和DC-DO—4,当^C-^^-4小于阈值TH—AC—ADS,且"C-"0-4小于阈值TH—DC—DO时,判定当前子块用垂直类预测,且取^C-DC>-4作第四步的DC-「,否则该子块不能用垂直类预测;4)若上述水平类预测和垂直类预测同时不可用,该子块采用DC类预测;若水平类和垂直类同时可用,则比较"c-^和"c-r,假如前者小于后者,那么用水平类预测,若后者小于前者,则用垂直类预测;若仅一种类可用,则用相应类预测。以上步骤获得当前子块的预测类,然后进行像素域预测来确定最佳预测模式。所述频域宏块模式判断模块针对P、B图像中帧内编码模式的算法包括以下步骤若MPEG-2编码时宏块采用帧内编码模式,将宏块在转码器的编码端直接映射成帧内编码模式,MPEG-2的P帧内同时存在帧内和帧间编码宏块,由于判断帧内预测模式的需要(见频域帧内模式判断模块),应该对上边和左边的宏块进行DCT域运动补偿,得到上边和左边宏块亮度的DCT系数矩阵。所述频域宏块模式判断模块针对跳过编码模式的算法包括以下步骤若MPEG-2编码时宏块采用跳过编码模式,由于MPEG-2和H.264对跳过模式定义不一致,故需要根据汪264标准的跳过模式的条件进行判断,R264标准跳过模式的条件为运动矢量残差为0,像素残差为0。若满足上面条件,即可判断为跳过编码模式。所述频域宏块模式判断模块针对帧间预测编码模式的算法包括以下步骤若宏块无残差,在编码转换时直接选择P—16x16模式;若宏块有残差,则利用4个DCT系数矩阵反映该宏块与预测宏块间的残差,按以下歩骤判定H.264/AVC编码端宏块编码模式。步骤一、分别计算1个宏块的4个子块的64个DCT系数绝对值的和,即64S固—Xi=》l其中》的i取1,2,3,4;与4个子块Mb—xl、Mb—x2、Mb—x3和Mb—x4对应,Xij为各块的DCT系数,记作Sum—xl、Sum—x2、Sum—x3和Sum—x4;若Min(Sum—xl,Sum—x2,Sum—x3,Sum—x4)大于阈值TH—INTER—SUM1,则该宏块用8x8预测模式;若这4个值中有三个都小于某阈值TH—INTER—SUM2,则这个宏块用16x16预测模式。如果以上两个条件都不满足,则进入步骤二。歩骤二、计算左、右各两个块的64个DCT系数绝对值的和,分别为Sum—xlx3和Sum—x2x4;计算上、下各两个块的64个DCT系数绝对值的和,分别记作Sum一xlx2和Sum一x3x4,即S固—x2jc4=5"聽—x2+iS簡—x4iSiwj—jc1x2=Swn—xl+—x2Sw/w—;c3x4=iSi/m—;c3+iSw/w—;c4根据得到的数据做如下判断1)若Max(Sum—xlx2,Sum—x3x4)不大于阈值(2xTH—INTER—SUM2),则这个宏块用P—16x8预测模式;如果Max(Sum—xlx3,Sum_x2x4)不大于阈值(2xTHJNTER—SUM2),那么这个宏块用P—8><16预测模式;否则进入2);2)若Min(Sum—xlx2,Sum—x3x4)大于阈值(2xTH—INTER—SUM1),则这个宏块用P—8x8预测模式;如果Min(Sum—xlx3,Sum—x2x4)大于阈值(2xTHJNTER—SUM1),则这个宏块用P—8x8预测模式;否则进入3);3)若Sum—xlx2、Sum—x3x4都小于阈值THJNTER_SUM3,则用P—16x8预测模式,如果都大于阈值TH—INTER—SUM3,则用P—8x8预测模式;否则比较1她(S,—xb:2^鹏—x3x4)-THJNTER—SUM31和|Mcc(5i/m—xbc2^ww—;c3x4)-TH—INTER_SUM3|,如果前者小,则用P—16x8预测模式,否则用P—8x8预测模式;4)若Sum—xlx3、Sum—x2x4都小于阈值TH—INTER—SUM3,则用P_8xl6预测模式,如果都大于阈值THJNTER—SUM3,则用P—8><8预测模式;否则比较l杨(S/m—;clx3,S鹏—jc2jc4)-TH—INIER一SUM31和IMk(Swj—xlx3,S腦—jc2x4)-TH—INIER_SUM3|,如果前者小,则用P一8xl6预测模式,否则用P一8x8预测模式。对于MPEG-2帧间编码残差很大的宏块进行帧间编码宏块的帧内编码校正的判决条件为-cw^rMB——6to>;7x爿FG—6to其中currMBjDits为当前宏块占用的比特数;AVG一bits是宏块的平均比特数,即帧总比特数除以总宏块数,il为一个系数,取值2。所述运动矢量重用及优化模块的算法包括以下步骤从MPEG-2码流经过变字长解码得到半像素精度的运动矢量,再将这个运动矢量换算成整像素精度,送到R264编码部分作为整像素搜索的运动矢量,在这个运动矢量基础上,搜索包括本点在内的周围9个半像素点,得到最优半像素精度运动矢量MV,再搜索最优半像素精度运动矢量MV周围的9个1/4像素点,最终得到最优1/4精度运动矢量MV,每个块进行半像素精度和l/4像素精度的搜索,共18个点的搜索。所述判定Intra_16xl6频域模式的步骤还包括对于有邻块UP1、UP2的宏块,计算这两个块的DCT系数绝对和S"w—^\艮卩<formula>formulaseeoriginaldocumentpage14</formula>式中义"和X"下标中的j取164,分别表示UP1和UP2的64个DCT系数值;若—t/P大于阈值TH—SUM—UP,则判此方向的块不可用,即不能选IntmJ6xl6—Vertical预测模式;反之判定该方向的块可用,即用Intra—16x16—Vertical预测模式;对于有LEFT1、LEFT2邻块的宏块,计算这两个邻块的DCT系数绝对和Swm一LE尸r,艮卩<formula>formulaseeoriginaldocumentpage14</formula>式中Z"和X"下标中的j取164,分别表示LEFT1和LEFT2的64个DCT系数值;若^,—大于预测阈值TH—SUM—LEFT,则判此方向的块不可用,即不可选Intra—16x16—Horizontal预测模式;反之可用Intra—16x16—Horizontal预测模式。所述判定Intra—16x16频域模式的步骤还包括如果宏块的UP方向可用,计算对应位置DCT系数绝对差值和(SD—UP),即8888SD一iW5=》聊-x、1+》X/').-IAf=0户O/乂-o其中烦中的k取l、3,表示宏块中A,C两个块对应位置的DCT系数值;聊中的1取2、4,表示宏块中的B,D两个块对应位置的DCT系数值;x、表示UPl块对应位置的DCT系数值;x、表示UP2对应位置的DCT系数值;如果LEFT方向可用,计算对应位置的DCT系数绝对差值和(SD—LEFT),艮卩88885!D—Z^/T=21种—x'1')I+22]ZI聊-x'2'yIjfei=07=0/'=o7=0其中^/中的k取l、2,表示宏块中A,B两个块对应位置的DCT系数值;"々中的1取3、4,表示宏块中C,D两个块对应位置的DCT系数值;x、表示LEFT1块对应位置的DCT系数值;x、表示LEFT2块对应位置的DCT系数值。对所得DCT系数绝对差值和进行如下分析(1)如果宏块仅UP方向可用,且SD—UP小于阈值TH一SD—UP,则该宏块用IntraJ6x16—Vertical模式;如果SD—UP不小于阈值TH—SDJJP,则判该宏块用Intra—16x16—DC模式。(2)如果宏块仅LEFT方向可用,且SD一LEFT小于阈值TH—SD—LEFT,则该宏块用Intra—16x16—Horizontal模式;如果SD—LEFT不小于阈值TH—SD—LEFT,则该宏块用Intra—16x16—DC模式。(3)如果宏块UP和LEFT方向均可用,则需进一步分析(i)如果SD一UP不小于阈值TH_SD_UP,且SD一LEFT不小于阈值TH—SD_LEFT,则该宏块用Intra—16xl6_DC模式。Gi)如果SD—UP小于阈值TH—SD—UP,且SD—LEFT小于阈值TH—SD—LEFT,则宏块用Intra一16x16—Plane模式。(iii)如果SD—UP小于阈值TH一SD—UP,SD_LEFT不小于阈值TH_SD—LEFT,则该宏块用Intra—16x16—Vertical模式;如果SD—LEFT小于阈值TH—SD—LEFT,SD—UP不小于阈值TH—SDJJP,则该宏块用Intra_l6x16—Horizontal模式。上述所有阈值在各个Qp下的取值见阈值表11。与现有技术相比,本发明所提供的MPEG-2到H.264/AVC的高效转换编码技术,避免了复杂的解码-重编码处理,所需的计算量极低,有着非常广阔的应用前景。实验表明,采用该技术方案可以使用软件方式高效的完成转码处理,系统成本低廉,可以被广泛应用于H.264/AVC系统中,提供优质的数字视频服务。图1为本发明的MPEG到H.264/AVC的视频编码转换系统结构图;图2为待编码宏块及与周边8X8块的关系图;图3为分成4个4X4块的8X8块及与周边4X4块的关系图;图4为宏块的4个DCT系数矩阵图5为Mobile测试序列的R-D曲线图6为Foreman测试序列的R-D曲线图;图7为Flower测试序列的R-D曲线图;图8为Flower测试序列的R-D曲线图;图9为Mother测试序列的R-D曲线图。具体实施例方式实际应用中的数字多媒体资源主要为MPEG-2标准格式,MPEG-2标准的多媒体资源可以分为节目流(PS)和传输流(TS)两种,针对这两种格式,采用本发明的编码转换系统完成从MPEG-2标准格式到H.264标准格式的编码转换。由于H.264标准中的系统层和音频编码标准均可兼容MPEG标准的系统层和音频标准,因此,本发明的编码转换系统中,对系统层和音频编码标准复用采用了符合MPEG标准的技术。如图1所示,为MPEG到H.264/AVC的视频编码转换系统结构图,MPEG节目流(PS)或传输流(TS)首先经过"MPEG系统层解复用"模块11,解复用后分别提取出MPEG视频数据、音频及其他数据;其中解复用得到的MPEG音频数据及其他数据不进行转码处理,直接送入后端的"MPEG系统层复用"模块13;而解复用输出的MPEG视频数据通过编码转换器12被转码为H.264格式,然后送入"MPEG系统层复用"模块13。其中,编码转换器12将MPEG格式视频数据转换成H.264格式视频数据的处16理结构见图1中的虚线方框部分,该转换器将输入的MPEG码流完全解码到像素域,再进行H.264编码MPEG到H.264的转码器中的关键处理模块为转换器12中的频域帧内模式判断模块121和运动矢量MV重用&优化及频域宏块模式判断模块122,还包括硬件部分,包括变长解码(VLD)、反量化(IQ)、反向离散余弦转换器(IDCT)、运动补偿(MC)等。但是,与传统的简单级联编码转换器结构(解码器和编码器级联)不同的是,本发明编码转换器12充分利用了MPEG-2解码信息,在H.264编码某宏块之前就基本确定了该宏块的编码参数,在H.264编码器中直接编码,而不是采用遍历式的编码转换方式。其中,"频域帧内模式判断"模块121利用输入码流的VLD解码再反量化后的DCT系数进行帧内预测模式判断;"运动矢量(MV)重用&优化及频域宏块模式判断"模块122中的运动矢量重用&优化子模块将MPEG-2码流中的整像素MV直接作为H.264的整像素MV,再通过快速运动矢量优化算法并获得1/4精度的MV;频域宏块模式判断子模块则通过MPEG-2解码宏块的编码类型、编码比特数信息,快速判断R264宏块的编码类型,尺寸划分等参数,采用这两个子模块可以极大地降低转码计算量。1.264标准支持使用环路滤波处理来保证低码率条件下的视频质量,但是,本专利所提出的转换结构主要针对数字电视和IPTV应用,输出码流码率较高,块效应并不是很明显,因此没有使用。以下将对本专利中的主要算法模块一"频域帧内预测模式判断"和"运动矢量重用&优化及频域宏块模式判断"进行详细介绍。一、频域帧内模式判断模块算法对于帧内亮度宏块,H.264标准支持16x16和4x4两种块大小的帧内预测,分别对应lntra—16x16和Intra—4x4两种模式。其中,Intra—16x16有4种预测模式可供选择,分别是垂直、水平、DC和平面预测;Intra一4x4有9种预测模式可供选择,分别是垂直、水平、DC、下左对角线、下右对角线、右垂直、下水平、左垂直、上水平。Intra—4x4模式下对每个44亮度信号块都单独进行预测,这对图像中部分区域的细节可以描述得很好。Intm_16xl6模式则对16"6的亮度信号块进行预测,更适合对图像平坦区编码。H.264的标准编码器JM10.1采用遍历的方法计算Intra_16xl6和Intra—4x4模式各预测方向的rd一cost,选择最小值对应的预测模式为该宏块的预测模式。这样做固然可以获得最优预测模式,但所需要的计算量非常巨大。为了最大限度的减少计算量,本专利提出两歩法进行快速帧内预测第一步判断预测块尺寸,即采用Intraj6x16还是Intra—4x4;第二步判断Intra_16xl6对应4种预测模式中哪个为最佳。如果第一步中选用Intra一4x4,则判断Intra—4x4对应9种预测模式中哪个为最佳。第一歩编码宏块尺寸的确定像素信息经DCT变换后的DCT系数矩阵有如下特点当宏块包含的纹理信息较少时,DCT系数矩阵非O系数很少,甚至仅有DC系数;当宏块含较多纹理信息时,DCT系数矩阵所含非0系数较多。而DCT系数矩阵中的DC系数值大小反映宏块整体能量的大小。按H.264/AVC标准进行预测时,对图像的平坦区宜采用大尺寸16x16分块,而对细节多,运动复杂的图像区域,则适合采用小尺寸4x4分块。据此,本专利提出如下判断算法来确定转换编码中编码端帧内预测块的大小。1)利用直流系数判断对某一宏块(如图2所示),假定已知其A、B、C、D四个子块的8x8DCT系数矩阵。取每个子块的DCT系数矩阵的DC值,记作DC一A,DC—B,DC一C,DC_D。若各块DC系数的方差为均方差MWfDq),计算如式(l)所示。同理,若某宏块包括n个8x8块,则上述公式(1)中i取ln。若Ms《Dq)小于阈值TH—DC,则该宏块的四个8x8块所含能量接近,进入2);否则可知该宏块的四个块的能量有很大差异,于是可判断用4x4块大小进行预测编码。2)利用交流系数进行判断像素'值经DCT变换后得DCT系数矩阵,其AC系数反映整个宏块的纹理信息。由式错误!未找到引用源。可得一宏块的4个DCT系数矩阵的4组AC系数绝对和。如果这4个AC系数和不大于阈值TILSUM—AC,那么可判定这个宏块比较平坦,应该用16x16块进行预测编码。反之,可判定该宏块含较多纹理信息,适合用4x4块进行预测编码。其中Sww—4G的i取03,分别表示图2中A、B、C、D四个块的AC系数绝对和;A的j取264,是一个DCT系数矩阵的63个AC系数。第二歩IntraJ6x16和Intra—4x4最佳预测模式的判定1.Intra—16x16最佳预测模式的判定H.264/AVC对16x16预测块有4种预测方式供选用。本节重点讨论如何快速判定待编码宏块预测方式。频域模式判断的过程如下1)利用宏块位置进行频域模式判断H.264/AVC标准规定用宏块相邻像素预测,对某一宏块(如图2所示),如果UP1、UP2、LEFT1、LEFT2邻块都不存在,则直接用IntraJ6xl6一DC预测模式。如果宏块只有UP1、UP2邻块,则只需在Intra—16x16—DC和Intra—16x16—Vertical中选择;如果宏块只有LEFT1、LEFT2邻块,就只需在Intra_16xl6—DC和Intra—16x16—Horizontal中选择;对于UP1、UP2、LEFT1、LEFT2邻块同时存在的待编码宏块,则需要从4种预测方式艮卩Intra一16xl6一Vertical、Intra」6xl6—Horizontal、Intra—16xl6一DC禾口Intra—16x16—Plane中选择。2)利用宏块的可用性进行频域模式判断H.264/AVC规定用宏块的相邻像素预测,对某宏块,即使UP1、UP2、LEFT1、LEFT2都存在(图2),受允许的预测误差阈值限制,也不一定选用对应方向的预测。考虑本文在频域预测,尽管DCT系数可反映块纹理信息,但只是整体上反映,无法确切反映块中某行或某列信息。为此,本文首先分析DCT系数矩阵,如果该宏块较平坦,那么可用DCT系数预测某一行或某一列信息。判定方法如下对存在邻块UP1、UP2的宏块(图2),按式(3)计算这两个块的DCT系数绝对和—f/尸。若^附_<7尸大于阈值TH—SUM—UP,则判此方向的块不可用,即不能选Intra—16x16J/ertical预测模式;反之判该方向的块可用,即用Intra—16x16—Vertical预测模式。6464s訓—c/p=£|xiy|+2|jr2;|(3)乂=1式中和义".下标中的j取164,分别表示UP1和UP2的64个DCT系数值。对有LEFT1、LEFT2的宏块,用式(4)计算这两个邻块的DCT系数绝对和Swm—'^LE尸r。若5^w—LE/T大于预测阈值TH—SUM—LEFT,则判该方向的块不可用,即不可选IntraJ6x16—Horizontal预测模式;反之可用Intra—16x16—Horizontal预测模式。6464如—L鮮-艺IJ^I+艺IX2乂l(4)式中Zu和下标中的j取164,分别表示LEFT1和LEFT2的64个DCT系数值。3V预测模式的判定通过1)和2),可初步判定待编码宏块可能的预测模式。如果宏块的UP方向可用,那么就用式(5)计算对应位置DCT系数绝对差值和(SD—UP)。同理,若LEFT方向可用,则用式(6)计算对应位置的DCT系数绝对差值和(SD—LEFT)。SD—L/P=S|;£|^-x'w|+Sj|>y-(5)其中场中的k取l、3,表示宏块中A,C两个块对应位置的DCT系数值;脚中的l取2、4,表示宏块中的B,D两个块对应位置的DCT系数值;x、表示UPl块对应位置的DCT系数值;x、表示UP2对应位置的DCT系数值。一=Zt力IH:c、I+力聊—jc、I(6)jfc/=0_/=0/_/=0其中Xfa,中的k取l、2,表示宏块中A,B两个块对应位置的DCT系数值;夠中的l取3、4,表示宏块中C,D两个块对应位置的DCT系数值;表示LEFT1块对应位置的DCT系数值;jc、表示LEFT2块对应位置的DCT系数值。对所得DCT系数绝对差值和进行如下分析-(1)如果宏块仅有UP方向可用,且SD—UP小于阈值TH一SD—UP,则该宏块用Intra—16x16—Vertical模式;如果SD—UP不小于阈值TH—SD—UP,则判该宏块用IntraJ6x16—DC模式。(2)如果宏块仅有LEFT方向可用,且SD一LEFT小于阈值TH—SD—LEFT,则该宏块用Intra—16x16—Horizontal模式;如果SD—LEFT不小于阈值TH—SD—LEFT,则该宏块用Intra—16x16—DC模式。(3)如果宏块UP和LEFT方向均可用,则需进一步分析(i)若SD—UP不小于阈值TH—SD—UP,且SD—LEFT不小于阈值TH—SD—LEFT,则该宏块用Intra_16xl6—DC模式。(ii)如果SD—UP小于阈值TH_SD—UP,且SD—LEFT小于阈值TH—SD—LEFT,那么判此宏块用Intra_l6x16—Plane模式。(iii)若SD—UP小于阈值TH—SD一UP,SD—LEFT不小于阈值TH_SD_LEFT,则判该宏块用Intra_l6x16—Vertical模式。如果SD—LEFT小于阈值TH—SD—LEFT,SD—UP不小于阈值TH—SD—UP,则判其用Intra—16x16—Horizontal模式。2.Intra一4x4最佳预测模式的判定当一个16x16宏块用Intra—4x4方式进行块分割预测时,这个宏块共分成16个4><4子块。其中,宏块的每个8x8块分成4个4x4子块,它们单独进行预测编码。为了利用DCT信息进行Intra—4x4模式判定,首先将H.264/AVC标准支持4x4块,勺9种预测方式分成3类DC类、水平类和垂直类。其中,DC类包括Intra—4M—DC;水平类包括Intra—4x4—Horizontal、Intra一4x4—Horizontal—Down、Intra—4x4—Horizontal—Up禾口Intra—4x4—Diagonal—Down—Right;垂直类包括Intra—4x4—Vertical、Intra—4x4一Vertical—Left、Intra—4x4—Vertical—Right禾口Intra一4x4—Diagonal—Down一Left。其次由子块所在8x8块的DCT系数矩阵得到对应4x4子块的纹理信息,通过分析子块的纹理信息,对子块进行归类。最后用H.264参考软件JM10.1的算法,判定子块所用预测模式。当参考像素不在当前8x8块中时,需要用周边块进行判定,本专利称这种情况为外部预测。如图3中的BLOCK1,其水平和垂直方向的参考像素需要参考左边和上边对应位置的像素,这些像素不包括在本块中,对其预测称外部预测。如果参考像素在本块中,则可用本块的信息判定,这种情况专利称内部预测,如BLOCK4,使用BLOCK2和BLOCK3中的像素来预测。下面通过5个步骤判定4x4子块预测模式-(1)用式(7)计算当前4x4子块的AC系数绝对和,记作爿C—AS—4。d4:力柳l(7)其中XCW表示当前8x8块DCT系数矩阵第一行或第一列的AC系数,水平方向预测用第一行的AC系数,垂直方向预测用第一列的AC系数。用式(8)计算当前4x4块与上边或左边4x4块的绝对AC系数和,记作爿C—JDS—4。《赢一4=力|郡]-[,]|(8)其中JC_^/[/]表示对应参考块的8x8DCT系数矩阵第一行或第一列的AC系数,水平预测的时候用当前块和参考块的第一行AC系数,垂直预测的时候用当前块和参考块的第一列AC系数。用式(9)计算内部预测值,记作zx:—P/—4。DC—£>/_4=2|^C|(9)其中4C是当前宏块第一行或第一列中的第一个AC系数值,水平预测的时候用第一行的第一个AC系数,能够表示当前块左边和右边的能量差,可近似认为是左右两部分的亮度差异。垂直预测的时候用第一列的第一个AC系数。用式(10)计算外部预测值,记作DC—DO—4。DC—DO—4-1£>C—re/-DCI(10)其中DC一re/是参考块的DC值,ZX7是当前块的DC值。(2)如果水平预测是内部预测,那么可用两个判据JC—A5—4和DC—D/_4。当爿C—爿S—4小于阈值TH—AC—AS,且DC—D/—4小于阈值TH—DC一DI时,可判定当前子块用水平类预测,且取DC—£>/—4作为第四步的DC一/f,否则该子块不能用水平类预测。同理,若垂直预测是内部预测,则可得两个判据JC—」S—4禾tJZ)C—D/—4。当爿C——4小于阈值TH—AC—AS,且DC—D/—4小于阈值TH—DC—DI时,可判当前子块用垂直类预测,且取Z)CD/4作第四步的Z)Cr,否则该子块不能用垂直类预测。21(3)如果水平预测是外部预测,那么可得两个判据XC_^DS—4和DC—DO—4。当」C—JDS_4小于阈值TH—AC—ADS,且DC—DO—4小于阈值TH—DC—DO时,可判当前子块用水平类预测,且取DC一DO—4作第四步的DC—//,否则该子块不能用水平类预测。同理,若垂直预测是外部预测,则得两个判据乂C—JZW—4禾n/)C—"(9—4。当爿C—ADS—4小于阈值TH—AC—ADS,且DC—DO—4小于阈值TH_DC—DO时,可判当前子块用垂直类预测,且取DC—DO—4作第四步的DC—r,否则该子块不能用垂直类预测。(4)当水平类和垂直类同时不可用时,这个子块采用DC类预测;若水平类和垂直类同时可用,贝U比较DC一//和DC一F,假如前者小于后者,那么用水平类,若后者小于前者,则用垂直类;若仅一种类可用,则用相应类预测。(5)通过以上步骤可得当前子块可用的预测类。然后进行像素域预测来确定最佳预测模式。二、帧间宏块模式判断快速算法1.宏块编码类型映射和宏块预测尺寸说明对于帧间宏块,H.264/AVC标准提供了多种编码类型。虽然MPEG-2宏块编码类型不能和H.264/AVC宏块编码类型一一对应,不能在编码端被直接使用,但是它却能反映出图像的区域特性,从而根据这些区域特性判断H.264/AVC宏块的编码类型。表l、表2给出了转换编码过程中MPEG-2帧间宏块编码类型到H.264/AVC帧间宏块编码类型的转换初始化映射表。表lP帧宏块编码类型初始化映射表MPEG-2MBTYFEH.264MBTYPE1(Intra)或17(Intra量化)Intra8(MC编码)、10(MCi无编码)或26(MC编码量化)InterMC2(非MC编码)或18(非MC编码量化)InterMC(mv=0)表2B帧宏块编码类型初始化映射表MPEG-2MBTYPEH.264MBTYPE1(Intra)或17(Intra量化)Intra8(前向预测无编码)、10(前向预测编码)或26(前向预测编码量化)B—Fwd一WXH4(后向预测无编码)、6(后向预测编码)或22(后向预测编码量化)B—Bck_WXH12(双向预测无编码)、14(双向预测编码)或30(双向预测编码量化)B_Bi_WXH表2中,W、H分别表示帧间预测块的宽和高,均可取8和16,组合起来代表宏块的16X16、16X8、8X16和8X8分块模式。在MPEG-2中,帧间宏块预测尺寸为16X16或16X8,预测残差进行8X8DCT,得8X8DCT系数矩阵。H.264/AVC标准规定每个帧间宏块(16X16像素)可按4种方式分割l个16X16、2个16X8、2个8X16或4个8X8。若采用8X8模式,每个子宏块还可进一步分割成1个8X8、2个8X4、2个4X8或4个4X4。这些分割大大提高了各宏块之间的关联性。但每种分割或子宏块都各自进行运动补偿,各个MV都需要进行编码和传输,分割方式也需要在比特流中表示。对大的分割尺寸而言,MV和分割方式只需较少比特,但运动补偿残差在多细节区将加大。小尺寸分割的运动补偿残差能量低,但需较多比特表征MV和分割类型。两种情况表明,分割尺寸的选择影响着压縮率的高低。理论上,运动补偿的分块越小,得到的残差图像能量就越小。然而,运动补偿的分块越小,也造成了搜索算法复杂度的上升(有更多分块需比较),所需传输的运动矢量数目也更多。传输这些运动矢量带来的额外比特消耗可能会高于降低残差图像能量而节省的比特数。有文献显示,更小的分块8X4、4X8、4X4的引入,对图像质量的提高并不明显(O.ldB左右),然而运动补偿的复杂度大大增加(编码时间增加25%),码率也有相应增加。鉴于此,本专利并不引入更小的分块8X4、4X8、4X4。对一个1646的宏块,本专利采用的宏块预测尺寸有16X16、16X8、8X16和8X8。2.频域帧间预测模式判定快速算法MPEG-2编码P帧时,宏块编码模式有帧内编码、帧间预测编码和跳过宏块三种。帧间预测编码又分有运动矢量,有预测残差;有运动矢量,无预测残差;无运动矢量,有预测残差三种模式。R264/AVC编码P帧时,宏块编码同样有帧内编码、帧间预测编码和跳过宏块三种,但与MPEG-2有下列重要差别(1)帧内编码H.264/AVC采用预测编码来去除图像的空间相关性,MPEG-2则直接编码。(2)帧间编码H.264/AVC比MPEG-2有更多的块尺寸分割方式,并可用多参考帧预测。(3)跳过宏块MPEG-2规定当前块与参考帧相同位置块的预测残差为0(MV为0,残差为0)时,该宏块用跳过模式。而H.264/AVC与MPEG-2的差异在于不是MV为0,而是PMV(预测MV与实际MV的差值)为0。从输入的MPEG-2码流中,可以得到各宏块的编码模式。若某宏块(如图,4所示)是帧内编码,由解码的4个DCT系数矩阵(Mb—xl、Mb—x2、Mb—x3、Mb—x4),按前面的算法可导出该宏块的纹理信息,其中需要考虑UP和LEFT宏块是帧间宏块的情况。对帧间编码宏块,解码的DCT系数矩阵(Mb—xl、Mb_x2、Mb—x3、Mb—x4)反映该宏块与预测宏块之差。对跳过宏块,不包含DCT系数。这三种编码宏块在转码器的编码端需转换到:《.264/八¥<2目标码流中。对此,本文经实验研究,提出了下列算法。考虑到编码一个帧间宏块可以有不同的编码模式,下面将针对每一种情况提出模式判定的具体方法1)帧内编码模式如果MPEG-2码流中的某宏块采用帧内编码模式,那么说明此宏块采用帧间编码的效果比未用预测的帧内编码还要差(R264的帧内编码是带预测的,效果应该比未用预测的好),那么此宏块在转码器的编码端直接映射成帧内编码模式是最好的选择。考虑到H.264/AVC的帧内编码又有多种模式,需用前面的算法,在DCT域内予以确定。注意到在MPEG-2的P帧内,帧内编码宏块和帧间编码宏块同时存在,有可能有的帧内宏块的上边和左边宏块是帧间宏块,这时由于判断帧内预测模式的需要,就应该对上边和左边的宏块进行DCT域运动补偿,得到上边和左边宏块亮度的DCT系数矩阵而不是残差的DCT系数矩阵。2)跳过宏块如果MPEG-2码流中的某宏块采用跳过编码模式,说明当前块没有运动(MV为0,残差也为0),但是H.264的P帧的跳过宏块的条件是MV残差为0,与MV为O不同,所以不能直接映射为跳过模式,需要进一步根据H.264的跳过模式的条件进行判断。3)帧间预测编码模式如果MPEG-2码流中的某宏块为帧间预测编码模式,则按其有无预测残差,采用下述不同算法。(1)无残差帧间预测编码模式的转换如果MPEG-2码流中的某宏块为帧间预测编码模式且无残差,那么表明预测最佳,在转码时直接选择P—16x16模式,且不需要进行运动矢量的进一步精细化。为进一步提高编码效率,这种宏块还可以按H,264的规定,判断是否可将其编码成SKIP模式。(2)有残差帧间预测编码模式的转换如果MPEG-2码流中的某宏块为帧间预测编码模式且有残差,那么4个DCT系数矩阵就能够反映该宏块与预测宏块间的残差。若残差较大,表明预测效果不佳,反之说明预测效果较好。于是可依据预测残差,按以下步骤判定H.264/AVC编码端宏块编码模式。①由式(ll)分别计算1个宏块的4个块Mb一xl、Mb—x2、Mb_x3和Mb一x4的64个DCT系数绝对值的和,记作Sum_xl、Sum—x2、Sum_x3和Sum_x4。若Min(Sum—xl,Sum—x2,Sum—x3,Sum—x4)大于阈值TH一INTER一SUM1,则该宏块用P—8xg预测模式;若这4个值中有三个都小于某阈值THJNTER—SUM2,则该宏块用P_16><16预测模式。如果两个条件都不满足,则进入步骤②。645臓_乂,=乃;|(11)声l其中的i取1,2,3,4;与4个块Mb—xl、Mb—x2、Mb—x3和Mb—x4对应,Xij为各块的DCT系数。②由式(12)计算左、右各两个块的64个DCT系数绝对值的和,分别记作Sum—xlx3和Sum—x2x4;由式(13)计算上、下各两个块的64个DCT系数绝对值的和,分别记作Sum—x1x2禾口Sum—x3x4:5"簡xlx3=S腦;cl+S腦;c3一一一(12)5"wm—x2x4=iSww—jc2+Swm—;v4一一一(13)Swot_x3x4=—;c3+Sww—x4③根据得到的数据做如下判断a)如果Max(Sum—xlx2,Sum—x3x4)不大于阈值(2xTH—INTER—SUM2),则这个宏块用P—16x8预测模式;如果Max(Sum—xlx3,Sum_x2x4)不大于阈值(2xTH—INTER一SUM2),那么这个宏块用P—8x16预测模式。否则进入b)。b)如果Min(Sum—xlx2,Sum—x3x4)大于阈值(2xTH—INTER—SUM1),则这个宏块用P—8x8预测模式;如果Min(Sum—xlx3,Sum—x2x4)大于阚值(2xTHJNTER^SUMl),则这个宏块用P一8x8预测模式。否则进入c)。c)如果Sum—xlx2、Sum—x3x4都小于阈值TH—INTER—SUM3,则用P—16x8预测模式,如果都大于阈值THJNTER—SUM3,则用P一8x8预测模式。否则比较I她(5"鹏—xlx2,肠—jc3x4)-TH—INTER—Sl^d31和IMa(Swm—xlx2,5iflw—x3x4)-TH—INTER—SUM3|,如果前者小,则用p—16x8预测模式,否则用P一8x8预测模式。d)如果Sum一xlx3、Sum—x2x4都小于阈值TH—INTER—SUM3,则用P—8x16预测模式,如果都大于阈值TH—INTER—SUM3,则用P—8x8预测模式;否则比较IM"dxlx3,5"鹏—;c2x4)-THJNTER—S画|和IMcc(S,—xb:3,5i柳—;c2x4)-TO—INTER—SUM3|,如果前者小,则用P—8x16预测模式,否则用?_8><8预测模式。4)帧间编码宏块的帧内编码校正由于H,264的帧内宏块采用了预测编码,在帧间编码残差很大的情况下,也许帧内编码比帧间编码效果更好。因此,对于MPEG-2帧间编码残差很大的宏块,启用帧间编码宏块的帧内编码校正。判决条件如下cunMBj5its为当前宏块占用的比特数;AVG—bits是宏块的平均比特数,即帧总比特数除以总宏块数(由于跳过宏块不占用bit信息,故除去跳过宏块),n为一个系数,本专利中n取2。三、运动矢量重用及优化运动估计处理在视频编码过程中计算量巨大,其中用于帧间宏块编码的运动估计处理占用了整个编码过程约70%的运算量。因此在转换编码器中充分利用MPEG-2中现有运动矢量(MV)可以提高H.264编码部分的运动估计速度,进而提高整个转换编码器的效率。在相同标准间的转换编码过程中,输入码流的运动矢量是经过编码器运动估计过程的,在某种运动搜索算法和匹配法则下的最优运动矢量,因此运动矢量基本可以不加修改的重用。而由于不同标准间的差异很多,运动矢量就不能直接加以利用。MPEG-2和H.264在帧间运动估计方面的差异有(1)预测精度不同。MPEG-2中MV是1/2像素精度的,而H.264标准中的MV是1/4像素精度的;(2)半像素内插公式不同。在MPEG-2中,半像素的内插是相邻2个像素的算数平均值。而在FL264中,亮度的半像素是用一个6阶有限冲击响应滤波器对相邻整数位置的像素值进行内插得到的,1/4的像素值用线性插补得到。(3)预测帧的数量不同。在MPEG-2中,只能使用前面一帧和后面一帧的数据进行预测,最大范围是2帧。而在H264中,可以使用多帧预测,最大范围是16帧。(4)预测块大小不同。在MPEG-2中是按照16X16的宏块或16X8的块进行预测的,而在H.264中,可以将宏块划分成16X16,16X8,8X16和8X84种子块,而8X8的子块又可以进一步划分成8X8,8X4,4X8和4X44种更小的块来进行预测。由于MPEG-2的整像素运动矢量也是经过全局运动搜索得到的,得到的参考块与当前待编码块相关性最高,因此可用MPEG-2的全局运动搜索结果来替代H.264中整像素全局运动搜索,节省大量的计算量。方法是从MPEG-2码流经过变字长解码得到半像素精度的运动矢量,再将这个运动矢量换算成整像素精度,送到H.264编码部分作为整像素搜索的运动矢量,在这个运动矢量基础上,搜索本点在内的周围9个半像素点,得到最优半像素精度MV,再搜索最优半像素精度MV周围的9个1/4像素点,最终得到最优1/4精度MV。按照这种方法每个块需要进行半像素精度和1/4像素精度的搜索,共18个点的搜索。这种算法的优点在于节省了编码端整像素搜索部分的计算量,运算速度明显提高。由于整像素部分的搜索H.264和MPEG-2差异很小,对于半像素和1/4像素搜索部分没有任何影响,因此获得的编码质量很好,与采用R264编码器进行重编码相比,PSNR差异很小。PSNR产生差异主要是由于MPEG-2中进行的整像素搜索是基于16X16的宏块进行的,而在H.264中,如果宏块分成16X8,8X16,8X8甚至更小的8X4,4X8禾口4X4,得到的整像素搜索结果可能是不同的,这就可能引起最终预测结果与JM中的标准预测结果不同,造成编码效率变化。不直接利用MPEG-2的半像素运动矢量进行优化起点的原因在于,MEPG-2和H.264的半像素插值公式不同,插值出来的参考半像素图像也就不同,所以MPEG-2的最优运动矢量在H.264中不一定是最优的,这会导致图像质量的降低。实例1.Intra—16x16预测模式判断算法实验结果实验数据包括两部分用前面提出的算法判断采用Intra—16x16还是Intra_4><4块分割方式。对Intra—16x16预测模式,用Intra_16xl6最佳预测模式的判定提出的算法判定预测模g。对Intra一4x4预测模式,用JM10.1计算每种预测方式的SAD,取其最小值对应的预测模式。得到的第一部分实验数据,后文用"New—Method"表示。用JM10.1作参考得到的第二部分实验数据,后文用"Ref—Method"表示。实验序列Football、Flower、Bus和Mobile为CIF(352x288)格式,实验序列Foreman和Akiyo为QCIF(176x144)格式,序列均长30帧,帧率为30,采用全I帧编码。1)R-D曲线的比较R-D曲线的比较在用本文提出的Intra—16X16预测模式判定算法和参照转码器采用JM10.1算法判定Intra—16X16预测模式所得R-D曲线间进行。图5和图6分别示出了测试序列Mobile和Foreman在使用本文提出算法和参考算法下所得的R-D曲线。横坐标为比特率(kbit/s),纵坐标为亮度信号信噪比(dB)。图5和图6表明,本文提出的算法和参考算法相比得到的R-D曲线几乎没有发生变化。2)模式判定时间的比较比较针对采用不同算法的两种转码器所用时间进行。一种是图l所示,采用本文提出的IntmJ6xl6模式判定算法,对Intra_16X16模式进行预测模式判定。另一种是级联型参照转码器(MPEG-2解码器与JM10.1简单串联),采用JM10.1算法,对lntraJ6X16模式进行预测模式判定。实验机器配置CPU为Pentium41.6GHz,内存为512MB。表3列出了不同测试序列在转码器编码端用定值QP(QP=32)编码判定模式所花时间的实验数据。表中实验数据表明,本文提出的算法与参考算法相比,模式判定时间平均节省58.44%。表3模式判定时间的比较27X^:法比较New_MethodRef—Method△Time(%)Bus0.7041.95864.04Mobile0.7141.79060.11Flower0.7961.79455.63Football0.7781.69053.963)实验数据说明以上实验数据表明本专利提出的IntraJ6X16预测模式判定算法与参照算法相比,可在几乎不影响图像质量情况下,平均节省58.44%左右的模式判定时间。这一方面是由于DCT变换属线性变换,通过分析宏块的DCT系数矩阵,可很好的获取该宏块的纹理信息,因此有利于模式判定。另一方面,通过分析DCT系数判定模式不需像参照算法中进行Intra一16X16预测模式的全搜索,从而提高了模式判定效率。2.Intra—4x4预测模式判断算法实验结果实验数据同样由两部分组成用前面提出的算法判断采用Intra—16X16还是Intra—4X4块分割方式。接着对Intra—16x16模式,用JM10.1算法,计算每种预测方式的SAD,取最小值对应的预测模式。对Intra_4x4模式,用前文提出的算法来判定预测模式,得到第一部分实验数据,后文中用"New—Method"表示。使用JM10.1中算法得到第二部分实验数据,后文中用"Ref—Method"表示。实验序列Football、Flower、Bus和Mobile为CIF(352x288)格式,实验序列Foreman和Akio为QCIF(176x144)格式,序列均长30帧,帧率为30,采用全I帧编码。.l)比特率和亮度信号信噪比的实验比较表4给出了6个测试序列在转码器采用两种算法,且编码端用定值QP(QP=32)编码所得的比特率和亮度信号信噪比的实验数据。表5给出了测试序列Flower在转码器采用两种算法,且编码端用不同定值QP编码所得比特率和亮度信号信噪比的实验数据。表4两种算法判断Intra—4X4模式的比较(QP-32)<table>tableseeoriginaldocumentpage28</column></row><table><table>tableseeoriginaldocumentpage29</column></row><table>表中所列数据表明,在图像质量(PSNR)相当的情况下,本文所提算法比参照算法的比特率略有提高。主要是本文所提算法从DCT域进行帧内模式判断,用MPEG-2中得到的是8x8的DCT系数矩阵来判断4x4子块的特性,确定编码模式,这样引入的误差较大,而且H.264/AVC中Intra一4x4的预测方向划分的比较细,两个预测方向之间仅仅相差22.5°,这对于模式判断的细节要求很高,但从DCT域进行判断无法达到这么敏感,因此使得编码效率会下降。2)R-D曲线的比较进行比较的R-D曲线分别对应本文所提Intra—4x4预测模式判定算法和参照转码器用JM10.1算法判定Intra—4x4预测模式。图7给出了测试序列Flower的R-D曲线。横坐标为比特率(kbit/s),纵坐标为亮度信号信噪比(dB)。该图表明,本文提出的算法和参照算法相比在相同码率情况下,PSNR值约降低0.5dB。3)模式判定时间的比较比较针对采用不同算法的两种转码器所用时间进行。一种是图1所示,采用本文提出的Intra一4x4模式判定算法,对Intra一4X4模式判定预测模式。另一种是级联型参照转码器(MPEG-2解码器与JM10.1简单串联),采用JM10.1算法,对Intra—4X4模式判定预测模式。实验机器配置CPU为Pentium41.6GHz,内存为512MB。表6给出了不同测试序列在转码器编码端用定值QP(QP=32)编码所需模式判定时间的实验数据。实验数据表明,本文提出的算法与参考算法相比,模式判定时间平均节省71.51%。表6模式判定时间的比较<table>tableseeoriginaldocumentpage30</column></row><table>4)实验数据说明实验数据表明本专利提出的Intra一4x4预测模式判定算法与参考算法相比,两者的PSNR值差异不大,比特率有所增加,同时新算法比参考算法判定Intm一4x4预测模式的时间约节省71.51%。这里造成比特率变大的原因是8x8的DCT系数矩阵反映8x8像素块整体的纹理信息,从中获取其4x4子块的纹理信息有一定难度,导致无法正确判定Intra—4x4的9种预测模式哪种最优。新算法又先将9种预测模式分成3类,最后只需对某类的预测模式进行计算,从而避免了对每个Intra—4x4都要进行9种预测模式的计算,这就提高了判定Intr^4x4预测模式的效率。3.变换系数帧间模式快速判断算法实验结果实验条件测试序列Flower、Mobile和Bus为CIF(352x288)格式,测试序列Mother、Foreman和Akio为QCIF(176x144)格式,长度均为30帧,每一个GOP为12,帧结构为IPPPPPPP。在所进行的试验中,运动矢量的重用和优化技术均采用了以上小节"运动矢量重用及优化"中的相应方法进行优化。1)比特率和亮度信号信噪比的比较使用参考转码器(MPEG-2解码器和H.264编码器简单串联)所得实验数据用Ref_Method表示,使用文中提出的快速算法所得实验数据用New—Method表示。表7给出了6个测试序列在转码器采用不同算法,且编码端用定值QP(QP=32)编码所得比特率和亮度信号信噪比的实验数据。表8和表9分别给出了测试序列Mobile、Foreman在转码器采用不同算法,且编码端用不同定值QP编码所得比特率和亮度信号信噪比的实验数据。这些数据表明,在图像质量(PSNR)几乎不变的情况下,本算法的码率略高于参照算法。表7两种判断帧间预测模式算法的比较<table>tableseeoriginaldocumentpage31</column></row><table>表8Mobile测试序列帧间预测模式两种判断算法的比较<table>tableseeoriginaldocumentpage31</column></row><table>表9Mother测试序列帧间预测模式两种判断算法的比较<table>tableseeoriginaldocumentpage31</column></row><table>2)R-D曲线的比较图8和图9分别给出了测试序列Flower和Mother的R-D曲线。图中带菱形点的R-D曲线对应参考转码器,采用JMlO.l算法判定帧间预测模式。带方形点的为采用图1转码器和本文帧间预测模式判定算法所得R-D曲线。图8和图9表明,本算法和参照算法的R-D曲线几乎无差别。3)模式判定时间的比较表10给出了不同测试序列在转码器编码端用定值QP(QP=32)编码所需模式判定时间的实验数据。实验机器配置CPU为Pentium41.6GHz,内存为512MB。表中,New—Method栏所列为用本文帧间预测模式判定算法判定预测模式所用时间,ReiLMethod栏所列为参考转码器判定帧间预测模式所需时间。表10表明,本算法与参照算法相比模式判定时间约节约17.40%。表10模式判定时间的比较算法比较测试iij^^New—MethodRef—Method△Time(%)Bus24.88931.22520.291Mobile22.44026.71516.002Flow6r27,01433.65419.730Mother8.4269.97715.545Foreman8.75110.52616.863Akio8.52910.15115.978表ll文中用到的阈值(未说明的QP均为32)ThresholdQP=24QP=28ValueQP=32QP-36QP=40TH—DC7080180100160TH_SUM—AC30050080010001800TH—SUM—UP150250400500900TH—SUM—LEFT150250400500900TH—SD—UP500500500500500TH—SD—LEFT500500500500500TH—AC—AS200200200200200TH—DC一DI250250250250250TH—AC—ADS250250250250250TH—DC—DO300300300300300TH—INTER—S固l300400500600700TH—INTER—SUM2250350550650750THfNTER—SUM35507501050125014504)实验结果分析以上实验结果表明,本专利提出的帧间预测模式判定算法与参照算法相比,在图像质量几乎不变的情况下,平均约节省17.40%的模式判定时间。这一方面是由于DCT变换属线性变换,宏块的DCT系数矩阵表征宏块的纹理信息,可借以判定帧间预测模式;另了方面是在DCT域判定帧间预测模式,不需像参考算法那样进行全搜索。权利要求1.一种MPEG到H.264/AVC的视频编码转换系统,其特征在于,MPEG节目流或传输流首先经过MPEG系统层解复用模块,解复用后分别提取出MPEG视频数据、音频及其他数据;解复用得到的MPEG音频数据及其他数据直接送入后端的MPEG系统层复用模块;而解复用输出的MPEG视频数据通过编码转换器被转码为H.264格式,然后送入MPEG系统层复用模块,编码转换器将输入的MPEG码流完全解码到像素域,再进行H.264编码;编码转换器包括频域帧内模式判断模块和运动矢量MV重用&amp;优化及频域宏块模式判断模块;其中频域帧内模式判断模块利用输入码流的VLD解码再反量化后的DCT系数进行帧内预测模式判断;运动矢量重用&amp;优化子模块和频域宏块模式,其中运动矢量重用&amp;优化子模块将MPEG-2码流中的整像素MV直接作为H.264的整像素运动矢量MV,再通过快速运动矢量优化算法获得1/4精度的运动矢量MV;频域宏块模式判断子模块则通过MPEG-2解码宏块判断H.264宏块参数。2.如权利要求1所述的MPEG到H.264/AVC的视频编码转换系统,其特征在于,所述频域帧内模式判断模块的算法,包括以下步骤歩骤一、判断预测宏块的大小采用Intra—16x16还是Intra_4><4:1)计算预测宏块各子块的DC系数的均方差Msd(DC),即/"、'=1乂'=1乂J^("C)为DC系数的方差,ZX^表示各子块的DCT系数矩阵的DC值,^表示各子块DC系数的均值,"表示预测块的子块数;若Msd(DC)大于或等于阈值TH—DC,确定编码端帧内预测块用4x4块大小进行预测编码;若Msd(DC)小于阈值TH—DC,转入步骤2);2)计算预测宏块各子块的DCT系数矩阵的AC系数绝对和,即肠—》x乂i7=2^C表示宏块中各子块的AC系数,S"M-」G的i取0n-l,分别表示宏块中各子块的AC系数绝对和;中j取264,表示一个DCT系数矩阵的63个AC系数;如果四个AC系数绝对和不大于阈值TH—SUM—AC,用16x16块进行预测编码;反之,如果四个AC系数绝对和大于阈值TH—SUM—AC,用4x4块进行预测编码;步骤二、若上述预测结果是Intra—16x16,则判定Intra一16x16预测模式如果某一宏块的UP1、UP2、LEFT1、LEFT2邻块都不存在,则用Intra—16x16—DC预测模式;如果宏块只有UP1、UP2邻块,那么在Intra—16x16_DC和Intra—16x16—Vertical中选择;如果宏块只有LEFTl、LEFT2邻块,则在Intra—16x16—DC和Intra—16x16—Horizontal中选择;对UP1、UP2、LEFTl、LEFT2邻块同时存在的待编码宏块,则从4种预测方式即Intra—16x16—Vertical、Intra—16x16—Horizontal、Intra—16x16—DC和Intra—16x16—Plane中选择;步骤三、若上述预测结果是Intra—4x4,判定Intra—4x4预测模式1)计算当前4x4子块的AC系数绝对和,记作」C-^S-4,即爿C—爿S—4=力爿卿^q/]表示当前8x8块dct系数矩阵第一行或第一列的ac系数,水平方向预测用第一行的AC系数,垂直方向预测用第一列的AC系数;计算当前4x4块与上边或左边4x4块的绝对AC系数和,记作—^AS—4。力C—JIW—4=力^C[/]-爿C—一]I^c一"/[i]表示对应参考块的8x8dct系数矩阵第一行或第一列的ac系数,水平预测的时候用当前块和参考块的第一行AC系数,垂直预测的时候用当前块和参考块的第一列AC系数;计算内部预测值,记作DC-W-4,艮PDC—Z)/_4=2|JC则其中Jcro]是当前宏块第一行或第一列中的第一个Ac系数值,水平预测的时候用第一行的第一个AC系数,能够表示当前块左边和右边的能量差,可近似认为是左右两部分的亮度差异。垂直预测的时候用第一列的第一个AC系数;计算外部预测值,记作^07-1^-4,即DC—DO—4=|DC—re/-DC|其中"C-^/是参考块的DC值,zx7是当前块的DC值;2)若水平类预测是内部预测,则使用两个判据,即当前4x4子块的ac系数绝对禾口爿C—js—4以及内部预测值z)c—d/—4:当^c一^s一4小于闺值TH—AC—AS,且£C-D/—4小于阈值TH一Dcj3i时,判定当前子块用水平类预测,且取DC—"7-4作为第四步的判断是否使用水平预测的。e-^参数,否则该子块不能用水平类预测;若垂直类预测是内部预测,则使用两个判据,即当前4x4子块的AC系数绝对和爿c一^s—4以及内部预测值iX:一D/—4:当^c—爿s—4小于阔值th—ac—AS,且Z)C—£/—4小于阈值TH—DC—Di时,判定当前子块用垂直类预测,且取^c—^-4作第四歩的判断是否使用垂直预测的"e-7参数,否则该子块不能用垂直类预测;3)若水平类预测是外部预测,则使用两个判据,即当前4x4块与上边或左边4x4块的绝对AC系数和」C-^^—4以及外部预测值DC—DO-4;当^C_^i)S—4小于阈值th—ac—ads,且dc-"g-4小于阈值th—dc—do时,判定当前子块用水平类预领ij,且取"e-DC>-4作第四步的1^-^,否则该子块不能用水平类预测;若垂直类预测是外部预测,则使用两个判据^C—^Z)S-4和ZX:—DO-4,当—^ds一4小于阈值th—ac—ads,且"c-DO-4小于阈值th_dc—do时,判定当前子块用垂直类预测,且取DC-D<9-4作第四步的DC-「,否则该子块不能用垂直类预测;4)若上述水平类预测和垂直类预测同时不可用,该子块采用DC类预测;若水平类和垂直类同时可用,贝ij比较"c-^禾口dc—「,假如前者小于后者,那么用水平类预测,若后者小于前者,则用垂直类预测;若仅一种类可用,则用相应类预测。以上步骤获得当前子块的预测类,然后进行像素域预测来确定最佳预测模式。3.如权利要求1所述的厘£0到11.264/八¥(:的视频编码转换系统,其特征在于,所述频域宏块模式判断模块针对p、b图像中帧内编码模式的算法包括以下步骤若mpeg-2编码时宏块采用帧内编码模式,将宏块在转码器的编码端直接映射成帧内编码模式;MPEG-2的P帧内同时存在帧内和帧间编码宏块,对上边和左边的宏块进行DCT域运动补偿,得到上边和左边宏块亮度的DCT系数矩阵。4.如权利要求1所述的MPEG到H.264/AVC的视频编码转换系统,其特征在于,所述频域宏块模式判断模块针对P图像中跳过编码模式的算法包括以下步骤若MPEG-2编码时宏块采用跳过编码模式,根据H.264标准的跳过模式的条件进行判断,H.264标准跳过模式的条件为运动矢量残差为0,像素残差为0。若满足上面条件,即可判断为跳过编码模式。5.如权利要求1所述的MPEG到H.264/AVC的视频编码转换系统,其特征在于,所述频域宏块模式判断模块针对帧间预测编码模式的算法包括以下步骤若宏块无残差,在编码转换时直接选择P—16x16模式;若宏块有残差,则利用4个DCT系数矩阵反映该宏块与预测宏块间的残差,按以下歩骤判定H.264/AVC编码端宏块编码模式。歩骤一、分别计算1个宏块的4个子块的64个DCT系数绝对值的和,即64S顧—=》^Y^.I乂=1其中S"附一》的i取1,2,3,4;与4个子块Mb_xl、Mb—x2、Mb—x3和Mb—x4对应,Xij为各块的DCT系数,记作Sum—xl、Sum—x2、Sum—x3禾卩Sum—x4;若Min(Sum—xl,Sum—x2,Sum—x3,Sum—x4)大于阈值TH—INTER—SUM1,则该宏块用8x8预测模式;若这4个值中有三个都小于某阈值THJNTER一SUM2,则这个宏块用16x16预测模式。如果以上两个条件都不满足,则进入步骤二。步骤二、计算左、右各两个块的64个DCT系数绝对值的和,分别为Sum—xlx3和Sum一x2x4;计算上、下各两个块的64个DCT系数绝对值的和,分别记作Sum_xlx2和Sum—x3x4,艮卩—jc1x3=Sw附—xl+夕m附—jc3Swm_jc2jc4=S腦—;c2+5"謡—;c4(Sw附—jc1jc2=—xl+Sw/w—;c2iSw/w—jc3x4=Swn—jc3+夕mw—jc4根据得到的数据做如下判断1)、若Max(Sum—xlx2,Sum—x3x4)不大于阈值(2xTHJNTER—SUM2),则这个宏块用P—16x8预测模式;如果Max(Sum_xlx3,Sum—x2x4)不大于阈值(2xTH一INTER—SUM2),那么这个宏块用P—8x16预测模式;否则进入步骤2;2)、若Min(Sum_xlx2,Sum—x3x4)大于阈值(2xTH—INTER_SUM1),则这个宏块用P—8x8预测模式;如果Min(Sum—xlx3,Sum—x2x4)大于阈值(2xTH—INTER—SUM1),则这个宏块用P—8x8预测模式;否则进入步骤3;3)、若Sum—xlx2、Sum—x3x4都小于阈值TH—INTER—SUM3,则用P—16x8预测模式,如果都大于阈值TH—INTER—SUM3,则用P_8x8预测模式;否则比较I她(S,—xbc2^顧—jc3x4)—THJNTER一SUM31和IMcc(5i柳—;cbc2,Sww—;c3x4)-TH—INTER—SUM3|,如果前者小,则用P—16x8预测模式,否则用P—8x8预测模式;4)、若Sum—xlx3、Sum—x2x4都小于阈值TH—INTER_SUM3,则用P—8xl6预测模式,如果都大于阈值TH—INTER—SUM3,则用P—8x8预测模式;否则比较IM"(S謂—xLc3,肠—x2x4)—TH—INTER—SUM31和IMcc(&柳—x1jc3,S腦—jc2x4)-TH—INTER—SUM3|,如果前者小,则用P—8x16预测模式,否则用?_8><8预测模式。6.如权利要求5所述的MPEG到H.264/AVC的视频编码转换系统,其特征在于,对于MPEG-2帧间编码残差很大的宏块进行帧间编码宏块的帧内编码校正的判决条件为<formula>formulaseeoriginaldocumentpage6</formula>其中currMB—bits为当前宏块占用的比特数;AVG—bits是宏块的平均比特数,即帧总比特数除以总宏块数,il为一个系数,取值2。7.如权利要求1所述的MPEG到H.264/AVC的视频编码转换系统,其特征在于,所述运动矢量重用及优化模块的算法包括以下步骤从MPEG-2码流经过变字长解码得到半像素精度的运动矢量,再将这个运动矢量换算成整像素精度,送到汪264编码部分作为整像素搜索的运动矢量,在这个运动矢量基础上,搜索包括本点在内的周围9个半像素点,得到最优半像素精度运动矢量MV,再搜索最优半像素精度运动矢量MV周围的9个1/4像素点,最终得到最优1/4精度运动矢量MV,每个块进行半像素精度和l/4像素精度的搜索,共18个点的搜索。8.如权利要求2所述的MPEG到H.264/AVC的视频编码转换系统,其特征在于,所述判定Intra—16x16频域模式的步骤还包括对于有邻块UP1、UP2的宏块,计算这两个块的DCT系数绝对和S"w—^",艮卩<formula>formulaseeoriginaldocumentpage6</formula>式中a"和^"下标中的j取164,分别表示UP1和UP2的64个DCT系数值;若大于阈值TH—SUM—UP,则判此方向的块不可用,即不能选Intra—16xl6一Vertical预测模式;反之判定该方向的块可用,即用Intra一16x16—Vertical预测模式;对于有LEFT1、LEFT2邻块的宏块,计算这两个邻块的DCT系数绝对和Sww_,艮卩,6464ta—丄脏=艺|%1;|+艺|、|)=1>1式中Z〃和^"下标中的j取164,分别表示LEFT1和LEFT2的64个DCT系数值;若S"m—Z^fT大于预测阈值THjUM—LEFT,则判此方向的块不可用,即不可选Intra—16xl6_Horizontal预测模式;反之可用Intra—16x16—Horizontal预测模式。9.如权利要求3所述的MPEG到H.264/AVC的视频编码转换系统,其特征在于,所述判定Intra_16xl6频域模式的步骤还包括如果宏块的UP方向可用,计算对应位置DCT系数绝对差值和(SD一UP),艮P,8888其中聊中的k取l、3,表示宏块中A,C两个块对应位置的DCT系数值;观中的1取2、4,表示宏块中的B,D两个块对应位置的DCT系数值;x、表示UPl块对应位置的DCT系数值;x、表示UP2对应位置的DCT系数值;如果LEFT方向可用,计算对应位置的DCT系数绝对差值和(SD—LEFT),艮P其中聊中的k取l、2,表示宏块中A,B两个块对应位置的DCT系数值;聊中的1取3、4,表示宏块中C,D两个块对应位置的DCT系数值;表示LEFT1块对应位置的DCT系数值;x、表示LEFT2块对应位置的DCT系数值。对所得DCT系数绝对差值和进行如下分析(1)如果宏块仅UP方向可用,且SDJJP小于阈值TH—SD—UP,则该宏块用Intra—16x16—Vertical模式;如果SD—UP不小于阈值TH_SD—UP,则该宏块用Intra_16xl6—DC模式。(2)如果宏块仅LEFT方向可用,且SD—LEFT小于阈值TH一SD一LEFT,则选用Intra—16x16—Horizontal模式;如果SD_LEFT不小于阈值TH—SD—LEFT,则该宏块用Intra—16x16—DC模式。(3)如果宏块UP和LEFT方向均可用,则需进一步分析(i)如果SD—UP不小于阈值TH—SDJJP,且SD—LEFT不小于阈值TH_SD—LEFT,则该宏块用Intra—16xl6_DC模式。(ii)如果SDJJP小于阈值TH—SDJJP,且SD—LEFT小于阈值TH—SD—LEFT,则该宏块用Intra—16x16—Plane模式。(iii)如果SD—UP小于阈值TH—SD—UP,SD—LEFT不小于阈值TH_SD—LEFT,则该宏块用Intra—16x16—Vertical模式;如果SD—LEFT小于阈值TH—SD—LEFT,SD—UP不小于阈值TH—SD—UP,则该宏块用Intra_16x16—Horizontal模式。全文摘要本发明公开了一种MPEG到H.264/AVC的视频编码转换系统,该系统中的编码转换器将输入的MPEG码流完全解码到像素域,再进行H.264编码;编码转换器包括频域帧内模式判断模块和运动矢量MV重用&优化及频域宏块模式判断模块;其中频域帧内模式判断模块利用输入码流的VLD解码再反量化后的DCT系数进行帧内预测模式判断;运动矢量重用&优化子模块和频域宏块模式,其中运动矢量重用&优化子模块将MPEG-2码流中的整像素MV直接作为H.264的整像素MV,通过快速运动矢量优化算法并获得1/4精度的MV;频域宏块模式判断子模块则通过MPEG-2解码宏块判断H.264宏块参数。与现有技术相比,本发明避免了复杂的解码-重编码处理,所需的计算量极低,采用该技术方案可以使用软件方式高效的完成转码处理,系统成本低廉,可以被广泛应用于H.264/AVC系统中,提供优质的数字视频服务。文档编号H04N7/26GK101621689SQ20091006991公开日2010年1月6日申请日期2009年7月28日优先权日2009年7月28日发明者昱刘,岩徐,段继忠,奇汪,汪少初,立王申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1