CN103227925A - 一种自适应b帧编码方法和系统 - Google Patents

一种自适应b帧编码方法和系统 Download PDF

Info

Publication number
CN103227925A
CN103227925A CN2013101736272A CN201310173627A CN103227925A CN 103227925 A CN103227925 A CN 103227925A CN 2013101736272 A CN2013101736272 A CN 2013101736272A CN 201310173627 A CN201310173627 A CN 201310173627A CN 103227925 A CN103227925 A CN 103227925A
Authority
CN
China
Prior art keywords
frame
line
block
bframes
module
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.)
Granted
Application number
CN2013101736272A
Other languages
English (en)
Other versions
CN103227925B (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.)
SHENZHEN YUNZHOU MULTIMEDIA TECHNOLOGY Co Ltd
Original Assignee
SHENZHEN YUNZHOU MULTIMEDIA TECHNOLOGY Co Ltd
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 SHENZHEN YUNZHOU MULTIMEDIA TECHNOLOGY Co Ltd filed Critical SHENZHEN YUNZHOU MULTIMEDIA TECHNOLOGY Co Ltd
Priority to CN201310173627.2A priority Critical patent/CN103227925B/zh
Publication of CN103227925A publication Critical patent/CN103227925A/zh
Application granted granted Critical
Publication of CN103227925B publication Critical patent/CN103227925B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开一种自适应B帧编码方法和系统,所述方法方法通过分析片源帧间信息的冗余度,自适应调整B帧间隔,达到帧间信息冗余度的最大化消除,从而提升编码器的压缩性能;另一方面,设置加速判断变量,使得该算法能适应不同应用环境对计算量控制的需求。

Description

一种自适应B帧编码方法和系统
技术领域
本发明涉及视频编解码领域,尤其涉及一种自适应B帧编码方法和系统。
背景技术
视频压缩技术根据预测技术的不同,可分为I帧、P帧、B帧三大帧类。其中B帧采用了双向预测技术,可以极大地消除帧间信息的冗余度,从而使其具有最高的压缩率。良好的B帧编码策略可以有效的提升编码器的压缩性能。一般编码器多采用默认的B帧间隔的编码策略。但实际编码片源具有多样性,片源的帧间信息冗余度也大不相同,此时如果采用默认的B帧间隔的编码策略的编码器,就会无法在各类片源下,获取最优的视频压缩效果。
发明内容
本发明实施例的目的在于提出一种自适应B帧编码方法,,旨在解决现有技术当实际编码片源具有多样性时,默认的B帧间隔的编码策略的编码器,无法在各类片源下,获取最优的视频压缩效果的问题。
本发明实施例是这样实现的,一种自适应B帧编码方法,所述方法包括以下步骤,
Step1:设置加速判断变量fastn的值;
Step2:令t=1;
Step3:如果t+bframes+1<numberframe,则计算framet的统计特性,进入Step4;
Step4:计算修正B帧间隔bframesm
Step5:由修正B帧间隔bframesm确定相应帧的别,然后对所述相应帧编码;
Step6:
Figure BDA00003178608800011
编码后,统计
Figure BDA00003178608800012
帧中I宏块的数量
Figure BDA00003178608800013
Step7:判断如果 number t + bframes m + 1 I > 0.9 * mbwidth * mbheight , 则t=t+bframesm+1,重新进入Step3,否则,则判断加速判断变量3的值是否为0,若为0则令
Figure BDA00003178608800015
重新进入Step3;若不为0则判断是否t+bframesm+1+bframes+1≥numberframe,若否则进入Step8;
Step8:统计
Figure BDA00003178608800021
帧中第一行宏块行、最后一行宏块行、最左端宏块列,最右端宏块列的运动向量的运动方向;
Step9:判断如果
(directionleft_line=directionright_line=directionup_line=directiondown_line≠no)||
(directionleft_line=left&&directionright_line=right&&directionup_line=up&&directiondown_line=down)||
(directionleft_line=right&&directionright_line=left&&directionup_line=down&&directiondown_line=up)
并且 min line ( max direction ( number direction line ) ) > 0.9 * min ( mbwidth , mbheight ) , 则,
Figure BDA00003178608800023
否则,令bframesmm=bframesm,进入步骤Step10。
Step10:判断加速判断变量4的值为0还是1,如果加速判断变量4的值为0且bframesmm≠bframesm,则令bframesm=bframesmm重新进入Step5;如果加速判断变量4的值为0且bframesmm=bframesm,则令t=t+bframesm+1,重新进入Step3;如果加速判断变量4的值为1,则进入Step11;
Step11:以bframesmm为B帧间隔,对所有framet(t≤t+bframesmm+1)编码;
其中,所述步骤Step9中,
Figure BDA00003178608800024
Figure BDA00003178608800027
min为求最小值;min(a,b)表示对a,b求最小值;表示对m所有取值情况对应的g(m)值求取最小值;
Figure BDA00003178608800029
表示对m所有取值情况对应的g(m)值求取最大值;&&和分别表示并且和或者;二次修正B帧间隔记为bframesmm
其中,t表示编码帧图像在片源序列中的时间序号;bframes为编码器默认的B帧间隔常量;framet称为第t帧编码帧;numberframe表示编码片源的帧数;表示
Figure BDA000031786088000211
编码帧;mbwidth,mbheight分别表示一帧图像划分成宏块以后,图像以宏块为单位的列数和行数。
本发明实施例的另一目的在于提出一种自适应B帧编码系统,所述系统包括:加速判断变量设置模块、初始化模块、第一判断模块、常规编码模块、统计特性计算模块、修正B帧间隔计算模块、修正编码模块、I宏块的数量统计模块、第二判断模块、宏块行列运动方向统计模块、第三判断模块、第四判断模块、编码及I宏块的数量统计模块、第五判断模块、第六判断模块,
加速判断变量设置模块,用于设置加速判断变量fastn的值;
初始化模块,用于初始化t=1,t表示编码帧图像在片源序列中的时间序号;
第一判断模块,用于判断是否t+bframes+1<numberframe,若是则进入统计特性计算模块,若否则进入常规编码模块;bframes为编码器默认的B帧间隔常量;framet称为第t帧编码帧;numberframe表示编码片源的帧数;
常规编码模块,用于采用原始编码器设置帧类别的方法,对所有未编码帧编码,结束;
统计特性计算模块,用于计算framet的统计特性;
修正B帧间隔计算模块,用于计算修正B帧间隔bframesm
修正编码模块,用于由修正B帧间隔bframesm,确定相应帧的类别,然后对所述相应帧编码;
I宏块的数量统计模块,用于
Figure BDA00003178608800031
编码后,统计
Figure BDA00003178608800032
帧中I宏块的数量;
第二判断模块,用于判断是否 number t + bframes m + 1 I > 0.9 * mbwidth * mbheight , 若是则t=t+bframesm+1,重新进入第一判断模块;否则判断是否加速判断变量3(记为fast3)的值为0,若是则t=t+bframesm+1,进入第一判断模块;否则,判断是否t+bframesm+1+bframes+1≥numberframe,若是则进入常规编码模块;否则进入宏块行列运动方向统计模块;mbwidth,mbheight分别表示一帧图像划分成宏块以后,图像以宏块为单位的列数和行数。
宏块行列运动方向统计模块,用于统计
Figure BDA00003178608800034
帧中第一行宏块行、最后一行宏块行、最左端宏块列,最右端宏块列的运动向量的运动方向;
第三判断模块,用于判断是否
(directionleft_line=directionright_line=directionup_line=directiondown_line≠no)||
(directionleft_line=left&&directionright_line=right&&directionup_line=up&&directiondown_line=down)||
(directionleft_line=right&&directionright_line=left&&directionup_line=down&&directiondown_line=up)
并且 min line ( max direction ( number direction line ) ) > 0.9 * min ( mbwidth , mbheight ) ,
若是则,
Figure BDA00003178608800042
否则,令bframesmm=bframesm,进入第四判断模块。
其中,
Figure BDA00003178608800043
Figure BDA00003178608800044
Figure BDA00003178608800045
Figure BDA00003178608800046
条件1=(directionleft_line=directionright_line=directionup_line=directiondown_line=left)||(directionleft_line=directionright_line=directionup_line=directiondown_line=right);
条件2=(directionleft_line=directionright_line=directionup_line=directiondown_line=up)||(directionleft_line=directionright_line=directionup_line=directiondown_line=down);
条件3=(directionleft_line=left&&directionright_line=right&&directionup_line=up&&directiondown_line=down)||;
(directionleft_line=right&&directionright_line=left&&directionup_line=down&&directiondown_line=up)
else表示表示条件1、2、3都不满足;
全文中,所述所选取的宏块行指第一行宏块行、最后一行宏块行、最左端宏块列,最右端宏块列;min为求最小值;min(a,b)表示对a,b求最小值;
Figure BDA00003178608800047
表示对m所有取值情况对应的g(m)值求取最小值;表示对m所有取值情况对应的g(m)值求取最大值;&&和||分别表示并且和或者;二次修正B帧间隔,记为bframesmm
第四判断模块,用于判断加速判断变量4(记为fast4)的值为0还是1,如果加速判断变量4(记为fast4)的值为0且bframesmm≠bframesm,则令bframesm=bframesmm重新进入修正编码模块;如果加速判断变量4(记为fast4)的值为0且bframesmm=bframesm,则令t=t+bframesm+1,重新进入第一判断模块;如果加速判断变量4(记为fast4)的值为1,则进入编码及I宏块的数量统计模块;
编码及I宏块的数量统计模块,用于以bframesmm为B帧间隔,对所有framet(t≤t+bframesmm+1)编码,每完成一帧编码,则统计framet帧中I宏块的数量
第五判断模块,用于判断是否
Figure BDA00003178608800052
若是则令t=t+bframesmm+1,重新进入第一判断模块,否则,进入第六判断模块。
第六判断模块,用于判断是否t+bframesmm*2+2≥numberframe,若是则进入常规编码模块,若否,令t=t+bframesmm+1,重新进入编码及I宏块的数量统计模块。
本发明的有益效果
本发明实施例提出一种自适应B帧编码方法和系统,所述方法方法通过分析片源帧间信息的冗余度,自适应调整B帧间隔,达到帧间信息冗余度的最大化消除,从而提升编码器的压缩性能。另一方面,设置加速判断变量,使得该算法能适应不同应用环境对计算量控制的需求。
附图说明
图1是本发明优选实施例一种自适应B帧编码方法流程图;
图2是图1流程图中步骤Step3中计算framet的统计特性方法流程图;
图3是图2流程图中步骤Step33的方法流程图;
图4是图3流程图中步骤Step331的方法流程图;
图5是图1流程步骤中Step8的方法流程图;
图6是本发明优选实施例一种自适应B帧编码系统结构图;
图7是图6结构图中统计特性计算模块的结构图;
图8是图7结构图中帧统计变量计算模块的结构图;
图9是图8结构图中块统计变量计算子模块的结构图;
图10是图6结构图中宏块行列运动方向统计模块的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明,为了便于说明,仅示出了与本发明实施例相关的部分。应当理解,此处所描写的具体实施例,仅仅用于解释本发明,并不用以限制本发明。
本发明实施例提出一种自适应B帧编码方法和系统,所述方法方法通过分析片源帧间信息的冗余度,自适应调整B帧间隔,达到帧间信息冗余度的最大化消除,从而提升编码器的压缩性能。另一方面,设置加速判断变量,使得该算法能适应不同应用环境对计算量控制的需求。
实施例一
图1是本发明优选实施例一种自适应B帧编码方法流程图,所述方法包括以下步骤:
Step1:设置加速判断变量fastn的值;
是否采用加速处理方法由用户确定,各加速处理方法可以独立选择;
如果要使用该加速处理方法,则设置该加速判断变量fastn的值为1;否则,则设置该加速判断变量fastn的值为0;n=1,2,...,4。
Step2:令t=1。
Step3:如果t+bframes+1<numberframe,则计算framet的统计特性(即TI_framet和TISI_framet),进入Step4;否则,采用原始编码器设置帧类别的方法,对所有未编码帧编码,结束。
t表示编码帧图像在片源序列中的时间序号;bframes为编码器默认的B帧间隔常量;framet称为第t帧编码帧;numberframe表示编码片源的帧数。
所述计算framet的统计特性的方法具体包括以下步骤(如附图2所示):
Step31:如果加速判断变量1(记为fast1)的值为0,则设置当前处理帧
Figure BDA00003178608800061
为framey,t,即
Figure BDA00003178608800062
设置当前后续默认处理帧
Figure BDA00003178608800063
为framey,t+bframes+1,即 frame t + bframes + 1 deal = frame y , t + bframes + 1 , 然后进入Step32;否则,进入Step311。
Step311:对第t帧编码帧framet的亮度信息帧framey,t进行下采样处理,获取
Figure BDA00003178608800071
其中,framet称为第t帧编码帧,也称为当前编码帧;framey,t称为framet的亮度信息帧;为framey,t进行下采样处理后的亮度信息帧;下采样方法可采用公知的最邻近法、双线性插值、三次卷积等;t表示编码帧图像在片源序列中的时间序号。
Step312:对第t+bframes+1帧编码帧framet+bframes+1的亮度信息帧framey,t+bframes+1进行下采样处理,获取
Figure BDA00003178608800073
其中,framet+bframes+1称为第t+bframes+1帧编码帧,也称为第t帧后续默认编码帧;framey,t+bframes+1称为framet+bframes+1的亮度信息帧;
Figure BDA00003178608800074
为framey,t+bframes+1进行下采样处理后的亮度信息帧;bframes为编码器默认的B帧间隔常量;
Figure BDA00003178608800075
Figure BDA00003178608800076
应具有相同的分辨率。
Step313:设置当前处理帧为
Figure BDA00003178608800077
设置当前后续默认处理帧为
Figure BDA000031786088000716
frame t + bframes + 1 deal = frame y , t + bframes + 1 down - sampling .
全文中
Figure BDA000031786088000710
称为当前处理帧;
Figure BDA000031786088000711
称为当前后续默认处理帧。
Step32:利用当前处理帧和当前后续默认处理帧,计算统计变量1和统计变量2(分别记为TI_framet和TISI_framet),统计变量1和统计变量2统称为当前编码帧的统计变量。具体计算方法如下(如附图3所示):
Step321:计算块统计变量1,块统计变量2或块统计变量3(分别记为ti_blockt,n、tisi_blockt,n、si_blockt,n),具体包括以下步骤;(如附图4所示)
Step3211:将当前处理帧划分成块,将当前处理帧的第n个块记为
Figure BDA000031786088000712
再将当前后续默认处理帧划分成块,将当前后续默认处理帧的第n个块记为
Figure BDA000031786088000713
块的大小可以根据需要确定,常用的如16x16、8x8等;
Figure BDA000031786088000714
Figure BDA000031786088000715
须大小一致;全文中,当块的大小为16x16,则称为宏块;当宏块进一步划分为的大小为n×m的块(n≤16或者m≤16,但两者不能同时等于16),则这些尺寸小一些的块称为子块。
Step3212:计算每一个块的块统计变量1,即ti_blockt,n
n=1,2,......,numberblock
Figure BDA00003178608800081
其中,
Figure BDA00003178608800083
全文中,
Figure BDA00003178608800084
第i行第j列的像素值;
Figure BDA00003178608800086
Figure BDA00003178608800087
第i行第j列的像素值;表示属于的所有
Figure BDA00003178608800089
的集合,
Figure BDA000031786088000827
表示属于
Figure BDA000031786088000810
的所有
Figure BDA000031786088000811
的集合;记numberblock为一帧图像包含的块总数;std表示求均方差;
and
Figure BDA000031786088000813
表示对
Figure BDA000031786088000814
Figure BDA000031786088000815
进行减法运算,其中要求
Figure BDA000031786088000816
属于并且
Figure BDA000031786088000817
属于
Figure BDA000031786088000830
,然后对所有求取的
Figure BDA000031786088000818
求均方差。
Step3213:如果加速判断变量2(记为fast2)的值为0,则计算每一个块的块统计变量2,即tisi_blockt,n,否则则计算每一个块的块统计变量3,即si_blockt,n,n=1,2,......,numberblock,具体计算公式如下:
Figure BDA000031786088000820
全文中,const_div=10-5
Figure BDA000031786088000821
表示对属于
Figure BDA000031786088000828
的所有
Figure BDA000031786088000822
求均方差;其余变量含义及表达式同Step3212。
Step322:计算统计变量1和统计变量2,即TI_framet和TISI_framet
TI _ f rame t = mean n = 1,2 , . . . , number block ( Ti _ block t , n )
TISI _ frame t = mean n = 1,2 , . . . , number block ( tisi _ block t , n ) , fast 2 = 0 TI _ frane t / mean n = 1,2 , . . . , number block ( si _ block t , n ) , fast 2 = 1
全文中,
Figure BDA000031786088000825
表示对所有满足条件的变量求均值;TI_framet和TISI_framet统称为当前编码帧framet的统计特性。
Step4:计算修正B帧间隔bframesm,计算公式如下:
Figure BDA00003178608800091
其中,ceil为常规C语言中向上取整函数; clip ( x , a , b ) = x , a &le; x &le; b a , x < a b , x > b , Iconst为I帧间隔;如果加速判断变量2的值为1,则Thres1=15,Thres2=0.6,否则Thres1=15,Thres2=1.0;Thres1为统计变量1的判定阈值;Thres2为统计变量2的判定阈值;fps为片源帧率。
Step5:由修正B帧间隔bframesm,确定相应帧的类别,然后对所述相应帧编码。具体如下:
如果t+bframesm+1≤numberframe,则,
如果t+bframesm+1-poc(Ilast)≥Iconst,则
Figure BDA000031786088000912
为I帧,
Figure BDA000031786088000915
为B帧,然后对上述帧编码,接着令t=poc(Ilast)+Iconst,重新进入Step3。
如果t+bframesm+1-poc(Ilast)<Iconst,则为B帧,
Figure BDA00003178608800093
为P帧,然后对对上述帧编码。
否则(即为t+bframesm+1≤numberframe条件不满足)则,
如果numberframe-poc(Ilast)≥Iconst,则
Figure BDA00003178608800094
为I帧,为B帧,然后对上述帧编码,接着令t=poc(Ilast)+Iconst,重新进入Step3。
如果numberframe-poc(Ilast)<Iconst,则
Figure BDA00003178608800096
为B帧,
Figure BDA00003178608800097
为P帧,然后对上述帧编码,结束。
全文中,frame下标表示第下标帧编码帧(例如:framet表示第t帧编码帧,表示第poc(Ilast)+Iconst帧编码帧,
Figure BDA000031786088000910
表示第numberframe帧编码帧,其他类似字符的含义不再赘述);
Figure BDA000031786088000911
表示上一个I帧的播放序号,Ilast表示上一个I帧。
Step6:
Figure BDA00003178608800101
编码后(Step5中进行),统计
Figure BDA00003178608800102
帧中I宏块的数量;
所述“统计
Figure BDA00003178608800103
帧中I宏块的数量”具体为:如果宏块为I宏块或者宏块至少包含一个为帧内预测模式的子块,则 number t + bframes m + 1 I = number t + bfr ames m + 1 I + 1 .
其中,
Figure BDA00003178608800105
表示
Figure BDA00003178608800106
帧中I宏块的数量;同理
Figure BDA00003178608800107
表示framet帧中I宏块的数量,其统计方法也使用一样的方法;全文I宏块指采用帧内预测模式且块的大小为16x16的块。
Step7:如果 number t + bframes m + 1 I > 0.9 * mbwidth * mbheight , 则t=t+bframesm+1,重新进入Step3;否则,如果加速判断变量3(记为fast3)的值为0,则t=t+bframesm+1,重新进入Step3;否则,如果t+bframesm+1+bframes+1≥numberframe,则,采用原始编码器设置帧类别的方法,对所有未编码帧
Figure BDA000031786088001010
编码,结束;否则进入Step8。
其中,mbwidth,mbheight分别表示一帧图像划分成宏块以后,图像以宏块为单位的列数和行数。
Step8:统计
Figure BDA000031786088001011
帧中第一行宏块行、最后一行宏块行、最左端宏块列,最右端宏块列的运动向量的运动方向;
统计方法如下(如附图5所示):
Step81:按如下方法,计算宏块mb的运动方向。
如果mb为P宏块,则,
direct ion mb left , mv x mb > abs ( mv y mb ) right , - mv x mb > abs ( mv y mb ) up , mv y mb > abs ( m v x mb ) down , - mv y mb > abs ( m v x mb ) no , else .
否则,如果mb为P子块构成(假设宏块mb由成n个P子块pj构成,j=1,2,......,n),则
direction mb = left , note _ p left = 1 right , note _ p right = 1 up , note _ p up = 1 down , note _ p down = 1 no , else , 其中
note _ p left = sign ( ( &Sigma; j = 1,2 , . . . , n sign ( mv x pj > abs ( mv y pj ) ) ) > n / 2 )
note _ p right = sign ( ( &Sigma; j = 1,2 , . . . , n sign ( mv x pj > abs ( mv y pj ) ) ) > n / 2 )
note _ p up = sign ( ( &Sigma; j = 1,2 , . . . , n sign ( mv y pj > abs ( mv x pj ) ) ) > n / 2 )
note _ p down = sign ( ( &Sigma; j = 1,2 , . . . , n sign ( mv y pj > abs ( mv x pj ) ) ) > n / 2 )
否则(即上述条件都不满足),directionmb=no
全文中,mb表示宏块;directionmb表示宏块mb的运动方向;
Figure BDA00003178608800116
表示宏块mb的运动向量,
Figure BDA00003178608800117
表示宏块mb的运动向量在x轴方向上的分量,
Figure BDA00003178608800118
表示宏块mb的运动向量在y轴方向上的分量;P宏块指采用帧间预测模式且块的大小为16x16的块;P子块指采用帧间预测模式且块的大小为nxm(n≤16或者m≤16,但两者不能同时等于16)的块,记为pj,即pj表示第j个子块;
Figure BDA00003178608800119
表示pj的运动向量,
Figure BDA000031786088001110
表示pj的运动向量在x轴方向上的分量,
Figure BDA000031786088001111
表示pj的运动向量在y轴方向上的分量;abs表示求绝对值;left,right,up,down,no分别表示向左运动,向右运动,向上运动,向下运动,无一致趋势运动;
Figure BDA000031786088001112
Figure BDA000031786088001113
表示对满足条件的所有变量求和,举例说明
Figure BDA000031786088001114
就表示
sign ( mv x p 1 > abs ( m v y p 1 ) ) + sign ( mv x p 2 > abs ( m v y p 2 ) ) + . . . . . . + sign ( mv x pn > abs ( m v y pn ) ) .
Step82:计算宏块mb运动方向在各方向上的取值;
note direction mb = 1 , direc tion mb = direction 0 , else , 令上式变量direction分别等于left,right,up,down,no,即可获取分别表示宏块mb运动方向directionmb为向左运动,向右运动,向上运动,向下运动,无一致趋势运动的取值;
Figure BDA000031786088001118
表示宏块mb运动方向directionmb为direction的取值。
Step83:计算第一行宏块行、最后一行宏块行、最左端宏块列,最右端宏块列的各个方向上的宏块数量;
number direction line = &Sigma; mb &Element; line note direction mb , 其中,
line=left_line,right_line,up_line,down_line,
direction=left,right,up,down,no。
令上式变量line分别等于left_line,right_line,up_line,down_line,即可获取
Figure BDA00003178608800122
它们分别表示最左端宏块列在direction方向上的宏块数量,最右端宏块列在direction方向上的宏块数量、第一个行宏块行在direction方向上的宏块数量、最后一行宏块行在direction方向上的宏块数量;
令direction分别等于left,right,up,down,no,即可以获取
Figure BDA00003178608800123
它们分别表示line宏块行中向左运动,向右运动,向上运动,向下运动,无一致趋势运动的的宏块数量。
全文中,变量line等于left_line,right_line,up_line,down_line,则分别表示最左端宏块列,最右端宏块列、第一行宏块行、最后一行宏块行;
Figure BDA00003178608800124
表示对所有属于line的mb的
Figure BDA00003178608800125
进行求和运算;
Figure BDA00003178608800126
表示line宏块行在direction方向上的宏块数量。
Step84:计算最左端宏块列的方向,最右端宏块列的方向、第一个行宏块行的方向、最后一行宏块行的方向;
计算公式如下:
direction line =
left , number left line = max ( number left line , number right line , number up line , number down line , number no line ) right , number right line = max ( number left line , number right line , number up line , number down line , number no line ) up , number up line = max ( number left line , number right line , number up line , number down line , number no line ) down , number down line = max ( number left line , number right line , number up line , number down line , number no line ) no , else ,
令该式变量line分别等于left_line,right_line,up_line,down_line,即可获取directionleft_line,directionright_line,directionup_line,directiondown_line,分别表示最左端宏块列的方向,最右端宏块列的方向、第一个行宏块行的方向、最后一行宏块行的方向;max表示求最大值,
Figure BDA00003178608800128
表示对所有的direction取值对应
Figure BDA00003178608800129
求最大值;
max ( number left line , number right line , number up line , number down line , number no line ) = max direction ( nu mber direction line ) .
Step9:如果
(directionleft_line=directionright_line=directionup_line=directiondown_line≠no)||
(directionleft_line=left&&directionright_line=right&&directionup_line=up&&directiondown_line=down)||
(directionleft_line=right&&directionright_line=left&&directionup_line=down&&directiondown_line=up)
并且 min line ( max direction ( number direction line ) ) > 0.9 * min ( mbwidth , mbheight ) , 则,
否则,令bframesmm=bframesm,进入步骤Step10。
其中,
Figure BDA00003178608800133
Figure BDA00003178608800134
Figure BDA00003178608800135
Figure BDA00003178608800136
条件1=(directionleft_line=directionright_line=directionup_line=directiondown_line=left)||
(directionleft_line=directionright_line=directionup_line=directiondown_line=right);
条件2=(directionleft_line=directionright_line=directionup_line=directiondown_line=up)||
(directionleft_line=directionright_line=directionup_line=directiondown_line=down);
条件3=(directionleft_line=left&&directionright_line=right&&directionup_line=up&&directiondown_line=down)||;
(directionleft_line=right&&directionright_line=left&&directionup_line=down&&directiondown_line=up)
else表示条件1、2、3都不满足;
全文中,所述所选取的宏块行指第一行宏块行、最后一行宏块行、最左端宏块列,最右端宏块列;min为求最小值;min(a,b)表示对a,b求最小值;表示对m所有取值情况对应的g(m)值求取最小值;
Figure BDA00003178608800138
表示对m所有取值情况对应的g(m)值求取最大值;&&和||分别表示并且和或者;二次修正B帧间隔,记为bframesmm
Step10:判断加速判断变量4(记为fast4)的值为0还是1,
如果加速判断变量4(记为fast4)的值为0且bframesmm≠bframesm,则令bframesm=bframesmm重新进入Step5。
如果加速判断变量4(记为fast4)的值为0且bframesmm=bframesm,则令t=t+bframesm+1,重新进入Step3。
如果加速判断变量4(记为fast4)的值为1,则进入Step11。
Step11:以bframesmm为B帧间隔,对所有framet(t≤t+bframesmm+1)编码,每完成一帧编码,则统计framet帧中I宏块的数量
Figure BDA00003178608800141
所述“统计framet帧中I宏块的数量”具体为:如果宏块为I宏块或者宏块至少包含一个为帧内预测模式的子块,则
Figure BDA00003178608800142
其中,
Figure BDA00003178608800143
表示framet帧中I宏块的数量(其统计方法也使用一样的方法);
Step12:如果
Figure BDA00003178608800145
则令t=t+bframesmm+1,重新进入Step3,否则,判断是否t+bframesmm*2+2≥numberframe,若是则采用原始编码器设置帧类别的方法,对所有未编码帧编码,结束,若否,令t=t+bframesmm+1,重新进入步骤Step11。
实施例二
图6是本发明优选实施例一种自适应B帧编码系统结构图;所述系统包括:加速判断变量设置模块、初始化模块、第一判断模块、常规编码模块、统计特性计算模块、修正B帧间隔计算模块、修正编码模块、I宏块的数量统计模块、第二判断模块、宏块行列运动方向统计模块、第三判断模块、第四判断模块、编码及I宏块的数量统计模块、第五判断模块、第六判断模块,
加速判断变量设置模块,用于设置加速判断变量fastn的值;
是否采用加速处理方法由用户确定,各加速处理方法可以独立选择;
如果要使用该加速处理方法,则设置该加速判断变量fastn的值为1;否则,则设置该加速判断变量fastn的值为0;n=1,2,...,4。
初始化模块,用于初始化t=1,t表示编码帧图像在片源序列中的时间序号;
第一判断模块,用于判断是否t+bframes+1<numberframe,若是则进入统计特性计算模块,若否则进入常规编码模块;bframes为编码器默认的B帧间隔常量;framet称为第t帧编码帧;numberframe表示编码片源的帧数。
常规编码模块,用于采用原始编码器设置帧类别的方法,对所有未编码帧编码,结束。
统计特性计算模块,用于计算framet的统计特性;
修正B帧间隔计算模块,用于计算修正B帧间隔bframesm
计算公式如下:
Figure BDA00003178608800151
其中,ceil为常规C语言中向上取整函数; clip ( x , a , b ) = x , a &le; x &le; b a , x < a b , x > b , Iconst为I帧间隔;如果加速判断变量2的值为1,则Thres1=15,Thres2=0.6,否则Thres1=15,Thres2=1.0;Thres1为统计变量1的判定阈值;Thres2为统计变量2的判定阈值;fps为片源帧率。
修正编码模块,用于由修正B帧间隔bframesm,确定相应帧的类别,然后对所述相应帧编码。
具体如下:
如果t+bframesm+1≤numberframe,则,
如果t+bframesm+1-poc(Ilast)≥Iconst,则
Figure BDA00003178608800153
为I帧,
Figure BDA00003178608800159
为B帧,然后对上述帧编码,接着令t=poc(Ilast)+Iconst,重新进入第一判断模块。
如果t+bframesm+1-poc(Ilast)<Iconst,则
Figure BDA00003178608800154
为B帧,
Figure BDA00003178608800155
为P帧,然后对上述帧编码。
否则,则,
如果numberframe-poc(Ilast)≥Iconst,则
Figure BDA00003178608800156
为I帧,为B帧,然后对上述帧编码,接着令t=poc(Ilast)+Iconst,重新进入第一判断模块。
如果numberframe-poc(Ilast)<Iconst,则
Figure BDA00003178608800158
为B帧,
Figure BDA00003178608800161
为P帧,然后对上述帧编码,结束。
全文中,
Figure BDA00003178608800162
表示第下标帧编码帧(例如:framet表示第t帧编码帧,
Figure BDA00003178608800163
表示第poc(Ilast)+Iconst帧编码帧,
Figure BDA000031786088001613
表示第numberframe帧编码帧,其他类似字符的含义不再赘述);poc(Ilast)表示上一个I帧的播放序号,Ilast表示上一个I帧。
I宏块的数量统计模块,用于
Figure BDA00003178608800164
编码后,统计帧中I宏块的数量;
所述“统计
Figure BDA00003178608800166
帧中I宏块的数量”具体为:如果宏块为I宏块或者宏块至少包含一个为帧内预测模式的子块,则 number t + bframes m + 1 I = number t + bfr ames m + 1 I + 1 .
其中,
Figure BDA00003178608800168
表示
Figure BDA00003178608800169
帧中I宏块的数量;
全文I宏块指采用帧内预测模式且块的大小为16x16的块。
第二判断模块,用于判断是否 number t + bframes m + 1 I > 0.9 * mbwidth * mbheight , 若是则t=t+bframesm+1,重新进入第一判断模块;否则判断是否加速判断变量3(记为fast3)的值为0,若是则t=t+bframesm+1,进入第一判断模块;否则,判断是否t+bframesm+1+bframes+1≥numberframe,若是则进入常规编码模块;否则进入宏块行列运动方向统计模块。mbwidth,mbheight分别表示一帧图像划分成宏块以后,图像以宏块为单位的列数和行数。
宏块行列运动方向统计模块,用于统计
Figure BDA000031786088001611
帧中第一行宏块行、最后一行宏块行、最左端宏块列,最右端宏块列的运动向量的运动方向;
第三判断模块,用于判断是否
(directionleft_line=directionright_line=directionup_line=directiondown_line≠no)||
(directionleft_line=left&&directionright_line=right&&directionup_line=up&&directiondown_line=down)||
(directionleft_line=right&&directionright_line=left&&directionup_line=down&&directiondown_line=up)
并且 min line ( max direction ( number direction line ) ) > 0.9 * min ( mbwidth , mbheight ) ,
若是则,
Figure BDA00003178608800171
否则,令bframesmm=bframesm,进入第四判断模块。
其中,
Figure BDA00003178608800172
Figure BDA00003178608800173
Figure BDA00003178608800174
Figure BDA00003178608800175
条件1=(directionleft_line=directionright_line=directionup_line=directiondown_line=left)||(directionleft_line=directionright_line=directionup_line=directiondown_line=right);
条件2=(directionleft_line=directionright_line=directionup_line=directiondown_line=up)||(directionleft_line=directionright_line=directionup_line=directiondown_line=down);
条件3=(directionleft_line=left&&directionright_line=right&&directionup_line=up&&directiondown_line=down)||;
(directionleft_line=right&&directionright_line=left&&directionup_line=down&&directiondown_line=up)
else表示表示条件1、2、3都不满足;
全文中,所述所选取的宏块行指第一行宏块行、最后一行宏块行、最左端宏块列,最右端宏块列;min为求最小值;min(a,b)表示对a,b求最小值;表示对m所有取值情况对应的g(m)值求取最小值;
Figure BDA00003178608800177
表示对m所有取值情况对应的g(m)值求取最大值;&&和||分别表示并且和或者;二次修正B帧间隔,记为bframesmm
第四判断模块,用于判断加速判断变量4(记为fast4)的值为0还是1,如果加速判断变量4(记为fast4)的值为0且bframesmm≠bframesm,则令bframesm=bframesmm重新进入修正编码模块;如果加速判断变量4(记为fast4)的值为0且bframesmm=bframesm,则令t=t+bframesm+1,重新进入第一判断模块;如果加速判断变量4(记为fast4)的值为1,则进入编码及I宏块的数量统计模块。
编码及I宏块的数量统计模块,用于以bframesmm为B帧间隔,对所有framet(t≤t+bframesmm+1)编码,每完成一帧编码,则统计framet帧中I宏块的数量
Figure BDA00003178608800181
所述“统计framet帧中I宏块的数量”具体为:如果宏块为I宏块或者宏块至少包含一个为帧内预测模式的子块,则
Figure BDA00003178608800182
第五判断模块,用于判断是否
Figure BDA00003178608800183
若是则令t=t+bframesmm+1,重新进入第一判断模块,否则,进入第六判断模块。
第六判断模块,用于判断是否t+bframesmm*2+2≥numberframe,若是则进入常规编码模块,若否,令t=t+bframesmm+1,重新进入编码及I宏块的数量统计模块。
进一步地,所述统计特性计算模块还包括:第一加速判断变量判定模块、第一设置模块、第一下采样模块、第二下采样模块、第一设置模块、帧统计变量计算模块,(如图7所示)
第一加速判断变量判定模块,用于判断是否加速判断变量1(记为fast1)的值为0,若是则进入第一设置模块;否则,进入第一下采样模块;
第一设置模块,用于设置当前处理帧
Figure BDA00003178608800184
为framey,t,即
Figure BDA00003178608800185
设置当前后续默认处理帧为framey,t+bframes+1,即 frame t + bframes + 1 deal = frame y , t + bframes + 1 , 进入帧统计变量计算模块。
全文中
Figure BDA00003178608800188
称为当前处理帧;
Figure BDA00003178608800189
称为当前后续默认处理帧;
第一下采样模块,用于对第t帧编码帧framet的亮度信息帧framey,t进行
下采样处理,获取
Figure BDA000031786088001810
其中,framet称为第t帧编码帧,也称为当前编码帧;framey,t称为framet的亮度信息帧;
Figure BDA000031786088001811
为framey,t进行下采样处理后的亮度信息帧;下采样方法可采用公知的最邻近法、双线性插值、三次卷积等;t表示编码帧图像在片源序列中的时间序号。
第二下采样模块,用于对第t+bframes+1帧编码帧framet+bframes+1的亮度信息帧framey,t+bframes+1进行下采样处理,获取
其中,framet+bframes+1称为第t+bframes+1帧编码帧,也称为第t帧后续默认编码帧;framey,t+bframes+1称为framet+bframes+1的亮度信息帧;
Figure BDA000031786088001813
为framey,t+bframes+1进行下采样处理后的亮度信息帧;bframes为编码器默认的B帧间隔常量;
Figure BDA00003178608800191
Figure BDA00003178608800192
应具有相同的分辨率。
第二设置模块,用于设置当前处理帧为
Figure BDA00003178608800193
Figure BDA00003178608800194
设置当前后续默认处理帧为
Figure BDA00003178608800195
Figure BDA00003178608800196
然后进入帧统计变量计算模块。
全文中
Figure BDA00003178608800197
称为当前处理帧;
Figure BDA00003178608800198
称为当前后续默认处理帧。
帧统计变量计算模块,用于利用当前处理帧和当前后续默认处理帧,计算统计变量1和统计变量2(分别记为TI_framet和TISI_framet);
进一步地,所述帧统计变量计算模块还包括块统计变量计算子模块、帧统计变量计算子模块(如图8所示),
块统计变量计算子模块,用于计算块统计变量1,块统计变量2或块统计变量3(分别记为ti_blockt,n、tisi_blockt,n、si_blockt,n);
帧统计变量计算子模块,用于根据块统计变量技术统计变量1和统计变量2(分别记为TI_framet和TISI_framet);
TI _ f rame t = mean n = 1,2 , . . . , number block ( Ti _ block t , n )
TISI _ frame t = mean n = 1,2 , . . . , number block ( tisi _ block t , n ) , fast 2 = 0 TI _ frane t / mean n = 1,2 , . . . , number block ( si _ block t , n ) , fast 2 = 1
全文中,表示对所有满足条件的变量求均值;TI_framet和TISI_framet统称为当前编码帧framet的统计特性。
进一步地,所述块统计变量计算子模块还包括块划分单元、块统计变量1计算单元、块统计变量2或3计算单元(如图9所示),
划分单元,用于将当前处理帧划分成块,将当前处理帧的第n个块记为
Figure BDA000031786088001912
再将当前后续默认处理帧划分成块,将当前后续默认处理帧的第n个块记为
Figure BDA000031786088001913
块统计变量1计算单元,用于计算每一个块的块统计变量1,即ti_blockt,n,n=1,2,......,numberblock
Figure BDA000031786088001914
其中,
Figure BDA000031786088001915
Figure BDA000031786088001916
全文中,
Figure BDA00003178608800201
Figure BDA00003178608800202
第i行第j列的像素值;
Figure BDA00003178608800203
Figure BDA00003178608800204
第i行第j列的像素值;
Figure BDA000031786088002021
表示属于
Figure BDA00003178608800205
的所有
Figure BDA00003178608800206
的集合,表示属于
Figure BDA00003178608800207
的所有
Figure BDA00003178608800208
的集合;记numberblock为一帧图像包含的块总数;std表示求均方差;
表示对进行减法运算,其中要求
Figure BDA000031786088002012
属于
Figure BDA000031786088002024
并且
Figure BDA000031786088002013
属于
Figure BDA000031786088002025
,然后对所有求取的
Figure BDA000031786088002014
求均方差。
块统计变量2或3计算单元,用于判断如果加速判断变量2(记为fast2)的值为0,则计算每一个块的块统计变量2,即tisi_blockt,n,否则则计算每一个块的块统计变量3,即si_blockt,n,n=1,2,......,numberblock,具体计算公式如下:
Figure BDA000031786088002015
全文中,const_div=10-5
Figure BDA000031786088002017
表示对属于的所有求均方差;
进一步地,所述宏块行列运动方向统计模块还包括宏块运动方向计算子模块、宏块取值计算子模块、宏块数量计算子模块、宏块行列运动方向计算子模块(如图10所示),
宏块运动方向计算子模块,用于计算宏块mb的运动方向,
如果mb为P宏块,则,
direct ion mb left , mv x mb > abs ( mv y mb ) right , - mv x mb > abs ( mv y mb ) up , mv y mb > abs ( m v x mb ) down , - mv y mb > abs ( m v x mb ) no , else .
否则,如果mb为P子块构成(假设宏块mb由成n个P子块pj构成,j=1,2,......,n),则
direction mb = left , note _ p left = 1 right , note _ p right = 1 up , note _ p up = 1 down , note _ p down = 1 no , else , 其中
note _ p left = sign ( ( &Sigma; j = 1,2 , . . . , n sign ( mv x pj > abs ( mv y pj ) ) ) > n / 2 )
note _ p right = sign ( ( &Sigma; j = 1,2 , . . . , n sign ( mv x pj > abs ( mv y pj ) ) ) > n / 2 )
note _ p up = sign ( ( &Sigma; j = 1,2 , . . . , n sign ( mv y pj > abs ( mv x pj ) ) ) > n / 2 ) note _ p down = sign ( ( &Sigma; j = 1,2 , . . . , n sign ( mv y pj > abs ( mv x pj ) ) ) > n / 2 )
否则(即上述条件都不满足),directionmb=no
全文中,mb表示宏块;directionmb表示宏块mb的运动方向;
Figure BDA00003178608800215
表示宏块mb的运动向量,
Figure BDA00003178608800216
表示宏块mb的运动向量在x轴方向上的分量,表示宏块mb的运动向量在y轴方向上的分量;P宏块指采用帧间预测模式且块的大小为16x16的块;P子块指采用帧间预测模式且块的大小为nxm(n≤16或者m≤16,但两者不能同时等于16)的块,记为pj,即pj表示第j个子块;表示pj的运动向量,
Figure BDA00003178608800219
表示pj的运动向量在x轴方向上的分量,表示pj的运动向量在y轴方向上的分量;abs表示求绝对值;left,right,up,down,no分别表示向左运动,向右运动,向上运动,向下运动,无一致趋势运动;
Figure BDA000031786088002111
Figure BDA000031786088002112
表示对满足条件的所有变量求和,举例说明
Figure BDA000031786088002113
就表示
sign ( mv x p 1 > abs ( m v y p 1 ) ) + sign ( mv x p 2 > abs ( m v y p 2 ) ) + . . . . . . + sign ( mv x pn > abs ( m v y pn ) ) .
宏块取值计算子模块,用于计算宏块mb运动方向在各方向上的取值; note direction mb = 1 , direc tion mb = direction 0 , else , 令上式变量direction分别等于left,right,up,down,no,即可获取
Figure BDA000031786088002116
分别表示宏块mb运动方向directionmb为向左运动,向右运动,向上运动,向下运动,无一致趋势运动的取值;
Figure BDA000031786088002117
表示宏块mb运动方向directionmb为direction的取值。
宏块数量计算子模块,用于计算第一行宏块行、最后一行宏块行、最左端宏块列,最右端宏块列的各个方向上的宏块数量;
number direction line = &Sigma; mb &Element; line note direction mb , 其中,
line=left_line,right_line,up_line,down_line,
direction=left,right,up,down,no。
令上式变量line分别等于left_line,right_line,up_line,down_line,即可获取
它们分别表示最左端宏块列在direction方向上的宏块数量,最右端宏块列在direction方向上的宏块数量、第一个行宏块行在direction方向上的宏块数量、最后一行宏块行在direction方向上的宏块数量;令direction分别等于left,right,up,down,no,即可以获取
Figure BDA00003178608800222
它们分别表示line宏块行中向左运动,向右运动,向上运动,向下运动,无一致趋势运动的的宏块数量。
全文中,变量line等于left_line,right_line,up_line,down_line,则分别表示最左端宏块列,最右端宏块列、第一行宏块行、最后一行宏块行;
Figure BDA00003178608800223
表示对所有属于line的mb的
Figure BDA00003178608800224
进行求和运算;
Figure BDA00003178608800225
表示line宏块行在direction方向上的宏块数量。
宏块行列运动方向计算子模块,用于计算最左端宏块列的方向,最右端宏块列的方向、第一个行宏块行的方向、最后一行宏块行的方向;
计算公式如下:
direction line =
left , number left line = max ( number left line , number right line , number up line , number down line , number no line ) right , number right line = max ( number left line , number right line , number up line , number down line , number no line ) up , number up line = max ( number left line , number right line , number up line , number down line , number no line ) down , number down line = max ( number left line , number right line , number up line , number down line , number no line ) no , else ,
令该式变量line分别等于left_line,right_line,up_line,down_line,即可获取directionleft_line,directionright_line,directionup_line,directiondown_line,分别表示最左端宏块列的方向,最右端宏块列的方向、第一个行宏块行的方向、最后一行宏块行的方向;max表示求最大值,
Figure BDA00003178608800227
表示对所有的direction取值对应
Figure BDA00003178608800228
求最大值;
max ( number left line , number right line , number up line , number down line , number no line ) = max direction ( nu mber direction line ) .
本领域的普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序指令相关硬件来完成的,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质可以为ROM、RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种自适应B帧编码方法,其特征在于,所述方法包括以下步骤,
Step1:设置加速判断变量fastn的值;
Step2:令t=1;
Step3:如果t+bframes+1<numberframe,则计算framet的统计特性,进入Step4;
Step4:计算修正B帧间隔bframesm
Step5:由修正B帧间隔bframesm确定相应帧的别,然后对所述相应帧编码;
Step6:
Figure FDA00003178608700011
编码后,统计
Figure FDA00003178608700012
帧中I宏块的数量
Figure FDA00003178608700013
Step7:判断如果 number t + bframes m + 1 I > 0.9 * mbwidth * mbheight , 则t=t+bframesm+1,重新进入Step3,否则,则判断加速判断变量3的值是否为0,若为0则令t=t+bframesm+1,重新进入Step3;若不为0则判断是否t+bframesm+1+bframes+1≥numberframe,若否则进入Step8;
Step8:统计
Figure FDA00003178608700015
帧中第一行宏块行、最后一行宏块行、最左端宏块列,最右端宏块列的运动向量的运动方向;
Step9:判断如果
(directionleft_line=directionright_line=directionup_line=directiondown_line≠no)||
(directionleft_line=left&&directionright_line=right&&directionup_line=up&&directiondown_line=down)||
(directionleft_line=right&&directionright_line=left&&directionup_line=down&&directiondown_line=up)
并且 min line ( max direction ( number direction line ) ) > 0.9 * min ( mbwidth , mbheight ) , 则,
否则,令bframesmm=bframesm,进入步骤Step10。
Step10:判断加速判断变量4的值为0还是1,如果加速判断变量4的值为0且bframesmm≠bframesm,则令bframesm=bframesmm重新进入Step5;如果加速判断变量4的值为0且bframesmm=bframesm,则令t=t+bframesm+1,重新进入Step3;如果加速判断变量4的值为1,则进入Step11;
Step11:以bframesmm为B帧间隔,对所有framet(t≤t+bframesmm+1)编码;
其中,所述步骤Step9中,
Figure FDA00003178608700021
Figure FDA00003178608700022
Figure FDA00003178608700023
Figure FDA00003178608700024
min为求最小值;min(a,b)表示对a,b求最小值;
Figure FDA00003178608700025
表示对m所有取值情况对应的g(m)值求取最小值;
Figure FDA00003178608700026
表示对m所有取值情况对应的g(m)值求取最大值;&&和||分别表示并且和或者;二次修正B帧间隔记为bframesmm
其中,t表示编码帧图像在片源序列中的时间序号;bframes为编码器默认的B帧间隔常量;framet称为第t帧编码帧;numberframe表示编码片源的帧数;
Figure FDA00003178608700027
表示
Figure FDA000031786087000210
编码帧;mbwidth,mbheight分别表示一帧图像划分成宏块以后,图像以宏块为单位的列数和行数。
2.如权利要求1所述的自适应B帧编码方法,其特征在于,所述步骤Step11中还包括对所有framet(t≤t+bframesmm+1)编码,每完成一帧编码,则统计framet帧中I宏块的数量
Figure FDA00003178608700028
步骤Step11之后还包括步骤,
Step12:如果
Figure FDA00003178608700029
则令t=t+bframesmm+1,重新进入Step3,否则,判断是否t+bframesmm*2+2≥numberframe,若否,令t=t+bframesmm+1,重新进入步骤Step11。
3.如权利要求1所述的自适应B帧编码方法,其特征在于,所述步骤Step9中,
条件1=(directionleft_line=directionright_line=directionup_line=directiondown_line=left)||(directionleft_line=directionright_line=directionup_line=directiondown_line=right);
条件2=(directionleft_line=directionright_line=directionup_line=directiondown_line=up)||(directionleft_line=directionright_line=directionup_line=directiondown_line=down);
条件3=(directionleft_line=left&&directionright_line=right&&directionup_line=up&&directiondown_line=down)||;
(directionleft_line=right&&directionright_line=left&&directionup_line=down&&directiondown_line=up)
else表示条件1、2、3都不满足;所述所选取的宏块行指第一行宏块行、最后一行宏块行、最左端宏块列,最右端宏块列。
4.如权利要求2所述的自适应B帧编码方法,其特征在于,
所述“统计
Figure FDA00003178608700031
帧中I宏块的数量
Figure FDA00003178608700032
具体为:如果宏块为I宏块或者宏块至少包含一个为帧内预测模式的子块,则 number t + bfames m + 1 I = num ber t + bframes m + 1 I + 1 ;
所述“统计framet帧中I宏块的数量具体为:如果宏块为I宏块或者宏块至少包含一个为帧内预测模式的子块,则
Figure FDA00003178608700035
5.如权利要求1所述的自适应B帧编码方法,其特征在于,所述计算framet的统计特性具体包括以下步骤,
Step31:判断如果加速判断变量1(fast1)的值为0,则设置当前处理帧
Figure FDA00003178608700036
为framey,t,设置当前后续默认处理帧
Figure FDA00003178608700037
为framey,t+bframes+1,然后进入Step32;否则(fast1的值为1),进入Step311;
Step311:对第t帧编码帧framet的亮度信息帧framey,t进行下采样处理,获取
Step312:对第t+bframes+1帧编码帧framet+bframes+1的亮度信息帧framey,t+bframes+1进行下采样处理,获取
Step313:设置当前处理帧
Figure FDA000031786087000310
Figure FDA000031786087000311
设置当前后续默认处理帧
Figure FDA000031786087000312
Figure FDA000031786087000313
Step32:利用当前处理帧和当前后续默认处理帧,计算统计变量1和统计变量2(分别记为TI_framet和TISI_framet);
其中,framet称为第t帧编码帧,也称为当前编码帧;framey,t称为framet的亮度信息帧;
Figure FDA000031786087000314
为framey,t进行下采样处理后的亮度信息帧;t表示编码帧图像在片源序列中的时间序号,framet+bframes+1称为第t+bframes+1帧编码帧,也称为第t帧后续默认编码帧;framey,t+bframes+1称为framet+bframes+1的亮度信息帧;
Figure FDA000031786087000315
为framey,t+bframes+1进行下采样处理后的亮度信息帧;bframes为编码器默认的B帧间隔常量;
Figure FDA00003178608700041
Figure FDA00003178608700042
具有相同的分辨率,
Figure FDA00003178608700043
称为当前处理帧;称为当前后续默认处理帧。
6.如权利要求5所述的自适应B帧编码方法,其特征在于,所述”利用当前处理帧和当前后续默认处理帧,计算统计变量1和统计变量2”包括以下步骤:
Step321:计算块统计变量1,块统计变量2或块统计变量3(ti_blockt,n、tisi_blockt,n、si_blockt,n);
Step322:根据块统计变量计算统计变量1和统计变量2(TI_framet和TISI_framet);
TI _ f rame t = mean n = 1,2 , . . . , number block ( Ti _ block t , n )
TISI _ frame t = mean n = 1,2 , . . . , number block ( tisi _ block t , n ) , fast 2 = 0 TI _ frane t / mean n = 1,2 , . . . , number block ( si _ block t , n ) , fast 2 = 1
Figure FDA00003178608700047
表示对所有满足条件的变量求均值;TI_framet和TISI_framet统称为当前编码帧framet的统计特性。
7.如权利要求6所述的自适应B帧编码方法,其特征在于,所述“计算块统计变量1,块统计变量2或块统计变量3”包括以下步骤,
Step3211:将当前处理帧划分成块,将当前处理帧的第n个块记为
Figure FDA00003178608700048
再将当前后续默认处理帧划分成块,将当前后续默认处理帧的第n个块记为
Step3212:计算每一个块的块统计变量1(ti_blockt,n),n=1,2,......,numberblock
Figure FDA000031786087000410
and
Figure FDA000031786087000411
其中,
Figure FDA000031786087000412
Figure FDA000031786087000413
Figure FDA000031786087000414
Figure FDA000031786087000415
第i行第j列的像素值;
Figure FDA000031786087000417
第i行第j列的像素值;
Figure FDA000031786087000423
表示属于
Figure FDA000031786087000418
的所有
Figure FDA000031786087000419
的集合,
Figure FDA000031786087000424
表示属于
Figure FDA000031786087000420
的所有
Figure FDA000031786087000421
的集合;记numberblock为一帧图像包含的块总数;std表示求均方差;
Figure FDA000031786087000422
表示对
Figure FDA00003178608700051
进行减法运算,其中要求
Figure FDA00003178608700053
属于
Figure FDA000031786087000514
并且属于
Figure FDA000031786087000515
,然后对所有求取的求均方差;
Step3213:如果加速判断变量2(fast2)的值为0,则计算每一个块的块统计变量2(tisi_blockt,n),否则则计算每一个块的块统计变量3(si_blockt,n)n=1,2,......,numberblock
Figure FDA00003178608700056
Figure FDA00003178608700057
其中,
Figure FDA00003178608700058
表示对属于
Figure FDA000031786087000516
的所有
Figure FDA00003178608700059
求均方差。
8.如权利要求1所述的自适应B帧编码方法,其特征在于,所述计算修正B帧间隔bframesm,计算公式如下:
Figure FDA000031786087000510
其中,ceil为常规C语言中向上取整函数; clip ( x , a , b ) = x , a &le; x &le; b a , x < b , x > b , Iconst为I帧间隔;如果加速判断变量2的值为1,则Thres1=15,Thres2=0.6,否则Thres1=15,Thres2=1.0;Thres1为统计变量1的判定阈值;Thres2为统计变量2的判定阈值;fps为片源帧率。
9.如权利要求1所述的自适应B帧编码方法,其特征在于,所述“由修正B帧间隔bframesm,确定相应帧的类别,然后对所述相应帧编码”具体如下:
如果t+bframesm+1≤numberframe,则,
如果t+bframesm+1-poc(Ilast)≥Iconst,则
Figure FDA000031786087000512
为I帧,
Figure FDA000031786087000513
为B帧,然后对上述帧编码,接着令t=poc(Ilast)+Iconst,重新进入Step3。
如果t+bframesm+1-poc(Ilast)<Iconst,则为B帧,
Figure FDA00003178608700062
为P帧,然后对对上述帧编码。
否则(即为t+bframesm+1≤numberframe条件不满足)则,
如果numberframe-poc(Ilast)≥Iconst,则
Figure FDA00003178608700063
为I帧,
为B帧,然后对上述帧编码,接着令t=poc(Ilast)+Iconst,重新进入Step3。
如果numberframe-poc(Ilast)<Iconst,则为B帧,
Figure FDA00003178608700066
为P帧,然后对上述帧编码,结束。
其中,frame下标表示第下标帧编码帧;poc(Ilast)表示上一个I帧的播放序号,Ilast表示上一个I帧。
10.如权利要求1所述的自适应B帧编码方法,其特征在于,所述“统计
Figure FDA00003178608700067
帧中第一行宏块行、最后一行宏块行、最左端宏块列,最右端宏块列的运动向量的运动方向”包括以下步骤:
Step81:计算宏块mb的运动方向;
Step82:计算宏块mb运动方向在各方向上的取值;
Step83:计算第一行宏块行、最后一行宏块行、最左端宏块列,最右端宏块列的各个方向上的宏块数量;
Step84:计算最左端宏块列的方向,最右端宏块列的方向、第一个行宏块行的方向、最后一行宏块行的方向。
11.如权利要求10所述的自适应B帧编码方法,其特征在于,
所述步骤Step81中“计算宏块mb的运动方向”具体为:
如果mb为P宏块,则,
direct ion mb left , mv x mb > abs ( mv y mb ) right , - mv x mb > abs ( mv y mb ) up , mv y mb > abs ( m v x mb ) down , - mv y mb > abs ( m v x mb ) no , else .
否则,如果mb为P子块构成,则
direction mb = left , note _ p left = 1 right , note _ p right = 1 up , note _ p up = 1 down , note _ p down = 1 no , else , 其中
note _ p left = sign ( ( &Sigma; j = 1,2 , . . . , n sign ( mv x pj > abs ( mv y pj ) ) ) > n / 2 )
note _ p right = sign ( ( &Sigma; j = 1,2 , . . . , n sign ( mv x pj > abs ( mv y pj ) ) ) > n / 2 )
note _ p up = sign ( ( &Sigma; j = 1,2 , . . . , n sign ( mv y pj > abs ( mv x pj ) ) ) > n / 2 )
note _ p down = sign ( ( &Sigma; j = 1,2 , . . . , n sign ( mv y pj > abs ( mv x pj ) ) ) > n / 2 )
否则,directionmb=no
其中,mb表示宏块;directionmb表示宏块mb的运动方向;
Figure FDA00003178608700076
表示宏块mb的运动向量,
Figure FDA00003178608700077
表示宏块mb的运动向量在x轴方向上的分量,
Figure FDA00003178608700078
表示宏块mb的运动向量在y轴方向上的分量;P宏块指采用帧间预测模式且块的大小为16x16的块;P子块指采用帧间预测模式且块的大小为nxm(n≤16或者m≤16,但两者不能同时等于16)的块(记为pj),pj表示第j个子块;
Figure FDA00003178608700079
表示pj的运动向量,
Figure FDA000031786087000710
表示pj的运动向量在x轴方向上的分量,
Figure FDA000031786087000711
表示pj的运动向量在y轴方向上的分量;abs表示求绝对值;left,right,up,down,no分别表示向左运动,向右运动,向上运动,向下运动,无一致趋势运动;
Figure FDA000031786087000712
Figure FDA000031786087000713
表示对满足条件的所有变量求和;
所述步骤Step82中“计算宏块mb运动方向在各方向上的取值”具体为:
note direction mb = 1 , direction mb = direction 0 , esle ,
令上式变量direction分别等于left,right,up,down,no,获取分别表示宏块mb运动方向directionmb为向左运动,向右运动,向上运动,向下运动,无一致趋势运动的取值;
Figure FDA000031786087000716
表示宏块mb运动方向directionmb为direction的取值;
所述步骤Step83中“计算第一行宏块行、最后一行宏块行、最左端宏块列,最右端宏块列的各个方向上的宏块数量”具体为:
number direction line = &Sigma; mb &Element; line note direction mb ,
其中,line=left_line,right_line,up_line,down_line,direction=left,right,up,down,no
令上式变量line分别等于left_line,right_line,up_line,down_line,即可获取它们分别表示最左端宏块列在direction方向上的宏块数量,最右端宏块列在direction方向上的宏块数量、第一个行宏块行在direction方向上的宏块数量、最后一行宏块行在direction方向上的宏块数量;
令direction分别等于left,right,up,down,no,即可以获取
Figure FDA00003178608700082
它们分别表示line宏块行中向左运动,向右运动,向上运动,向下运动,无一致趋势运动的的宏块数量。
其中,变量line等于left_line,right_line,up_line,down_line,则分别表示最左端宏块列,最右端宏块列、第一行宏块行、最后一行宏块行;
Figure FDA00003178608700083
表示对所有属于line的mb的
Figure FDA00003178608700084
进行求和运算;
Figure FDA00003178608700085
表示line宏块行在direction方向上的宏块数量;
所述步骤Step84中“计算最左端宏块列的方向,最右端宏块列的方向、第一个行宏块行的方向、最后一行宏块行的方向”具体为:
direction line =
left , number left line = max ( number left line , number right line , number up line , number down line , number no line ) right , number right line = max ( number left line , number right line , number up line , number down line , number no line ) up , number up line = max ( number left line , number right line , number up line , number down line , number no line ) down , number down line = max ( number left line , number right line , number up line , number down line , number no line ) no , else ,
令该式变量line分别等于left_line,right_line,up_line,down_line,即可获取directionleft_line,directionright_line,directionup_line,directiondown_line,分别表示最左端宏块列的方向,最右端宏块列的方向、第一个行宏块行的方向、最后一行宏块行的方向;max表示求最大值,表示对所有的direction取值对应
Figure FDA00003178608700088
求最大值;
max ( number left line , number right line , number up line , number down line , number no line ) = max direction ( nu mber direction line ) .
12.一种自适应B帧编码系统,其特征在于,所述系统包括:加速判断变量设置模块、初始化模块、第一判断模块、常规编码模块、统计特性计算模块、修正B帧间隔计算模块、修正编码模块、I宏块的数量统计模块、第二判断模块、宏块行列运动方向统计模块、第三判断模块、第四判断模块、编码及I宏块的数量统计模块、第五判断模块、第六判断模块,
加速判断变量设置模块,用于设置加速判断变量fastn的值;
初始化模块,用于初始化t=1,t表示编码帧图像在片源序列中的时间序号;
第一判断模块,用于判断是否t+bframes+1<numberframe,若是则进入统计特性计算模块,若否则进入常规编码模块;bframes为编码器默认的B帧间隔常量;framet称为第t帧编码帧;numberframe表示编码片源的帧数;
常规编码模块,用于采用原始编码器设置帧类别的方法,对所有未编码帧编码,结束;
统计特性计算模块,用于计算framet的统计特性;
修正B帧间隔计算模块,用于计算修正B帧间隔bframesm
修正编码模块,用于由修正B帧间隔bframesm,确定相应帧的类别,然后对所述相应帧编码;
I宏块的数量统计模块,用于
Figure FDA00003178608700091
编码后,统计
Figure FDA00003178608700092
帧中I宏块的数量;
第二判断模块,用于判断是否 number t + bframes m + 1 I > 0.9 * mbwidth * mbheight , 若是则t=t+bframesm+1,重新进入第一判断模块;否则判断是否加速判断变量3(记为fast3)的值为0,若是则t=t+bframesm+1,进入第一判断模块;否则,判断是否t+bframesm+1+bframes+1≥numberframe,若是则进入常规编码模块;否则进入宏块行列运动方向统计模块;mbwidth,mbheight分别表示一帧图像划分成宏块以后,图像以宏块为单位的列数和行数。
宏块行列运动方向统计模块,用于统计
Figure FDA00003178608700094
帧中第一行宏块行、最后一行宏块行、最左端宏块列,最右端宏块列的运动向量的运动方向;
第三判断模块,用于判断是否
(directionleft_line=directionright_line=directionup_line=directiondown_line≠no)||
(directionleft_line=left&&directionright_line=right&&directionup_line=up&&directiondown_line=down)||
(directionleft_line=right&&directionright_line=left&&directionup_line=down&&directiondown_line=up)
并且 min line ( max direction ( number direction line ) ) > 0.9 * min ( mbwidth , mbheight ) ,
若是则,
Figure FDA00003178608700101
否则,令bframesmm=bframesm,进入第四判断模块。
其中,
Figure FDA00003178608700103
Figure FDA00003178608700104
Figure FDA00003178608700105
条件1=(directionleft_line=directionright_line=directionup_line=directiondown_line=left)||(directionleft_line=directionright_line=directionup_line=directiondown_line=right);
条件2=(directionleft_line=directionright_line=directionup_line=directiondown_line=up)||(directionleft_line=directionright_line=directionup_line=directiondown_line=down);
条件3=(directionleft_line=left&&directionright_line=right&&directionup_line=up&&directiondown_line=down)||;
(directionleft_line=right&&directionright_line=left&&directionup_line=down&&directiondown_line=up)
else表示表示条件1、2、3都不满足;
全文中,所述所选取的宏块行指第一行宏块行、最后一行宏块行、最左端宏块列,最右端宏块列;min为求最小值;min(a,b)表示对a,b求最小值;
Figure FDA00003178608700106
表示对m所有取值情况对应的g(m)值求取最小值;
Figure FDA00003178608700107
表示对m所有取值情况对应的g(m)值求取最大值;&&和||分别表示并且和或者;二次修正B帧间隔,记为bframesmm
第四判断模块,用于判断加速判断变量4(记为fast4)的值为0还是1,如果加速判断变量4(记为fast4)的值为0且bframesmm≠bframesm,则令bframesm=bframesmm重新进入修正编码模块;如果加速判断变量4(记为fast4)的值为0且bframesmm=bframesm,则令t=t+bframesm+1,重新进入第一判断模块;如果加速判断变量4(记为fast4)的值为1,则进入编码及I宏块的数量统计模块;
编码及I宏块的数量统计模块,用于以bframesmm为B帧间隔,对所有framet(t≤t+bframesmm+1)编码,每完成一帧编码,则统计framet帧中I宏块的数量
Figure FDA00003178608700111
第五判断模块,用于判断是否
Figure FDA00003178608700112
若是则令t=t+bframesmm+1,重新进入第一判断模块,否则,进入第六判断模块。
第六判断模块,用于判断是否t+bframesmm*2+2≥numberframe,若是则进入常规编码模块,若否,令t=t+bframesmm+1,重新进入编码及I宏块的数量统计模块。
13.如权利要求12所述的自适应B帧编码系统,其特征在于,所述统计特性计算模块还包括:第一加速判断变量判定模块、第一设置模块、第一下采样模块、第二下采样模块、第一设置模块、帧统计变量计算模块,
第一加速判断变量判定模块,用于判断是否加速判断变量1(记为fast1)的值为0,若是则进入第一设置模块;否则,进入第一下采样模块;
第一设置模块,用于设置当前处理帧
Figure FDA00003178608700113
为framey,t,设置当前后续默认处理帧
Figure FDA00003178608700114
为framey,t+bframes+1,进入帧统计变量计算模块;其中
Figure FDA00003178608700115
称为当前处理帧;
Figure FDA00003178608700116
称为当前后续默认处理帧;
第一下采样模块,用于对第t帧编码帧framet的亮度信息帧framey,t进行下采样处理,获取
Figure FDA00003178608700117
其中,framet称为第t帧编码帧,也称为当前编码帧;framey,t称为framet的亮度信息帧;为framey,t进行下采样处理后的亮度信息帧;
第二下采样模块,用于对第t+bframes+1帧编码帧framet+bframes+1的亮度信息帧framey,t+bframes+1进行下采样处理,获取
Figure FDA00003178608700119
其中,framet+bframes+1称为第t+bframes+1帧编码帧,也称为第t帧后续默认编码帧;framey,t+bframes+1称为framet+bframes+1的亮度信息帧;为framey,t+bframes+1进行下采样处理后的亮度信息帧;bframes为编码器默认的B帧间隔常量;
Figure FDA000031786087001111
Figure FDA000031786087001112
应具有相同的分辨率;
第二设置模块,用于设置当前处理帧为
Figure FDA000031786087001113
设置当前后续默认处理帧为然后进入帧统计变量计算模块。
其中
Figure FDA000031786087001115
称为当前处理帧;称为当前后续默认处理帧;
帧统计变量计算模块,用于利用当前处理帧和当前后续默认处理帧,计算统计变量1和统计变量2(分别记为TI_framet和TISI_framet)。
14.如权利要求13所述的自适应B帧编码系统,其特征在于,所述帧统计变量计算模块还包括块统计变量计算子模块、帧统计变量计算子模块,
块统计变量计算子模块,用于计算块统计变量1,块统计变量2或块统计变量3(分别记为ti_blockt,n、tisi_blockt,n、si_blockt,n);
帧统计变量计算子模块,用于根据块统计变量技术统计变量1和统计变量2(分别记为TI_framet和TISI_framet);
TI _ f rame t = mean n = 1,2 , . . . , number block ( Ti _ block t , n )
TISI _ frame t = mean n = 1,2 , . . . , number block ( tisi _ block t , n ) , fast 2 = 0 TI _ frane t / mean n = 1,2 , . . . , number block ( si _ block t , n ) , fast 2 = 1
其中,
Figure FDA00003178608700123
表示对所有满足条件的变量求均值;TI_framet和TISI_framet统称为当前编码帧framet的统计特性。
15.如权利要求14所述的自适应B帧编码系统,其特征在于,所述块统计变量计算子模块还包括块划分单元、块统计变量1计算单元、块统计变量2或3计算单元,
划分单元,用于将当前处理帧划分成块,将当前处理帧的第n个块记为
Figure FDA00003178608700124
再将当前后续默认处理帧划分成块,将当前后续默认处理帧的第n个块记为
Figure FDA00003178608700125
块统计变量1计算单元,用于计算每一个块的块统计变量1,即ti_blockt,n,n=1,2,......,numberblock;
Figure FDA00003178608700126
其中,
Figure FDA00003178608700127
Figure FDA00003178608700128
Figure FDA00003178608700129
Figure FDA000031786087001210
第i行第j列的像素值;
Figure FDA000031786087001211
Figure FDA000031786087001212
第i行第j列的像素值;
Figure FDA000031786087001225
表示属于
Figure FDA000031786087001213
的所有
Figure FDA000031786087001214
的集合,表示属于
Figure FDA000031786087001215
的所有
Figure FDA000031786087001216
的集合;记numberblock为一帧图像包含的块总数;std表示求均方差;
Figure FDA000031786087001217
and表示对
Figure FDA000031786087001219
Figure FDA000031786087001220
进行减法运算,其中要求
Figure FDA000031786087001221
属于并且
Figure FDA000031786087001222
属于
Figure FDA000031786087001223
然后对所有求取的
Figure FDA000031786087001224
求均方差。
块统计变量2或3计算单元,用于判断如果加速判断变量2(记为fast2)的值为0,则计算每一个块的块统计变量2,即tisi_blockt,n,否则则计算每一个块的块统计变量3(si_blockt,n),n=1,2,......,numberblock,具体计算公式如下:
Figure FDA00003178608700131
Figure FDA00003178608700132
其中,const_div=10-5表示对属于
Figure FDA00003178608700135
的所有
Figure FDA00003178608700134
求均方差。
16.如权利要求15所述的自适应B帧编码系统,其特征在于,所述宏块行列运动方向统计模块还包括:宏块运动方向计算子模块、宏块取值计算子模块、宏块数量计算子模块、宏块行列运动方向计算子模块,
宏块运动方向计算子模块,用于计算宏块mb的运动方向;
宏块取值计算子模块,用于计算宏块mb运动方向在各方向上的取值;
宏块数量计算子模块,用于计算第一行宏块行、最后一行宏块行、最左端宏块列,最右端宏块列的各个方向上的宏块数量;
宏块行列运动方向计算子模块,用于计算最左端宏块列的方向,最右端宏块列的方向、第一个行宏块行的方向、最后一行宏块行的方向。
CN201310173627.2A 2013-05-13 2013-05-13 一种自适应b帧编码方法和系统 Expired - Fee Related CN103227925B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310173627.2A CN103227925B (zh) 2013-05-13 2013-05-13 一种自适应b帧编码方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310173627.2A CN103227925B (zh) 2013-05-13 2013-05-13 一种自适应b帧编码方法和系统

Publications (2)

Publication Number Publication Date
CN103227925A true CN103227925A (zh) 2013-07-31
CN103227925B CN103227925B (zh) 2016-05-11

Family

ID=48838162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310173627.2A Expired - Fee Related CN103227925B (zh) 2013-05-13 2013-05-13 一种自适应b帧编码方法和系统

Country Status (1)

Country Link
CN (1) CN103227925B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105578186A (zh) * 2015-12-30 2016-05-11 深圳市云宙多媒体技术有限公司 一种镜头推动场景的码流检测方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101854224A (zh) * 2009-04-01 2010-10-06 华为技术有限公司 纠错编码方法、装置和系统以及转发控制方法和装置
CN102833535A (zh) * 2012-07-03 2012-12-19 深圳市融创天下科技股份有限公司 一种基于宏块统计信息的参考帧筛选方法、装置
CN103024384A (zh) * 2012-12-14 2013-04-03 深圳百科信息技术有限公司 一种视频编码、解码方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101854224A (zh) * 2009-04-01 2010-10-06 华为技术有限公司 纠错编码方法、装置和系统以及转发控制方法和装置
CN102833535A (zh) * 2012-07-03 2012-12-19 深圳市融创天下科技股份有限公司 一种基于宏块统计信息的参考帧筛选方法、装置
CN103024384A (zh) * 2012-12-14 2013-04-03 深圳百科信息技术有限公司 一种视频编码、解码方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105578186A (zh) * 2015-12-30 2016-05-11 深圳市云宙多媒体技术有限公司 一种镜头推动场景的码流检测方法及系统

Also Published As

Publication number Publication date
CN103227925B (zh) 2016-05-11

Similar Documents

Publication Publication Date Title
AU2020207860B2 (en) Image encoding method and apparatus, and image decoding method and apparatus
US9538197B2 (en) Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
CN101919255B (zh) 用于视频内插或外推的参考选择
CN101283600B (zh) 参考图像选择方法以及装置
US20110002390A1 (en) Methods and systems for motion vector derivation at a video decoder
US8000393B2 (en) Video encoding apparatus and video encoding method
CN104052998A (zh) 一种基于运动强度的gop层率控调整方法和系统
JP4735375B2 (ja) 画像処理装置及び動画像符号化方法。
CN102984523B (zh) 一种多方向的帧内预测编解码方法及装置
CN104717510A (zh) 用于图像处理的方法和装置
CN102986234A (zh) 图像处理装置和图像处理方法
CN101895739B (zh) 基于块统计特性的编码方法
US20160353107A1 (en) Adaptive quantization parameter modulation for eye sensitive areas
CN103167290B (zh) 一种视频编码运动强度量化方法及装置
CN105049853A (zh) 一种基于片源分析的sao编码方法及系统
CN103327329A (zh) 一种图像质量跳变的量化调整方法及系统
CN103283232B (zh) 用于形成预测值的方法和装置
CN102752598A (zh) 快速自适应码率控制方法
CN103281532B (zh) 一种基于运动强度检测的量化调整方法及系统
CN103227925A (zh) 一种自适应b帧编码方法和系统
CN102196254B (zh) 一种视频编码复杂度自适应调整方法及装置
JP5111128B2 (ja) 符号化装置、符号化装置の制御方法及びコンピュータプログラム
CN103327339A (zh) 一种帧内预测块划分的编码方法和系统
CN103079065B (zh) 一种视频数据处理方法以及装置
JP4405367B2 (ja) 映像信号の予測符号化における参照フィールドの決定方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: The central Shenzhen city of Guangdong Province, 518057 Keyuan Road, Nanshan District science and Technology Park No. 15 Science Park Sinovac A Building 1 unit 403, No. 405 unit

Applicant after: Shenzhen Yunzhou Multimedia Technology Co., Ltd.

Address before: Unit B4 9 building 518057 Guangdong city of Shenzhen province Nanshan District high in the four EVOC Technology Building No. 31

Applicant before: Shenzhen Yunzhou Multimedia Technology Co., Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160511

Termination date: 20200513