专利名称:一种帧间预测方法、装置的制作方法
技术领域:
本发明涉及视频编码领域,尤其涉及一种帧间预测方法、装置。
背景技术:
在视频编码中,通常使用帧内预测来消除图像的空间冗余度,使用帧间预测来消除时间冗余度。其中视频源的帧间信息冗余度相比较于帧内的要大得多,这就使得帧间编码方法在视频编码中显得极为重要。帧间预测根据预测方向的不同分为P帧预测和B帧预测。目前主流的B帧预测方法采用前向已编码的帧以及后向已编码的帧,分别作为当前编码B帧的前后向参考帧, 利用当前编码B帧与前后向参考帧之间的相似性,压缩当前编码B帧的信息。这在参考帧与当前编码B帧具有高近似度时,具有很好的效果,但随着两者间近似度的降低,压缩效果也会急剧下降。尤其在对低帧率、全局镜头推进等片源进行编码时,这个问题将显著凸现。
发明内容
本发明实施例的目的在于提出一种帧间预测方法,旨在解决现有技术中遇到的参考帧与当前编码帧近似度较小,尤其在对低帧率、全局镜头推进等片源进行编码时,导致压缩当前编码帧效果比较低的问题。本发明提供一种帧间预测方法,所述的方法包括步骤101 预设第一参数M,M初始值为0 ;步骤102 选取参考帧列表;步骤103 判断所述的参考帧列表是前向参考列表还是后向参考列表;若为前向参考列表则执行步骤104,若为后向参考列表则执行步骤105 ;步骤104 若所述前向参考帧列表内的第一当前参考帧未处理过,则进一步根据前向参考帧列表中的第一当前参考帧与当前编码帧的关系处理第一当前参考帧,获取前向参考帧列表中的更新后第一当前参考帧,并标注前向参考帧列表内的更新后第一当前参考帧已处理过,进入步骤106 ;步骤105 若后向参考帧列表内的第二当前参考帧未处理过,则进一步根据后向参考帧列表中的第二当前参考帧与当前编码帧的关系处理第二当前参考帧,获取后向参考帧列表中的更新后的第二当前参考帧,并标注更新后的第二当前参考帧已处理过; 步骤106 设置第一参数M加1,判断M是否大于1,若是则执行步骤107 ;若否则执行步骤102 ;步骤107 通过所更新后的前向、后向参考帧列表对当前编码帧进行帧间预测。本发明还提供了一种帧间预测装置,该装置包括初始化单元,用于预设第一参数M,M初始值为0 ;第一判断单元,用于选取参考帧列表,判断所述的参考帧列表是前向参考列表还是后向参考列表;
参考帧单元,用于当所述参考帧列表为前向参考帧列表,若前向参考帧列表内的第一当前参考帧未处理过,则进一步根据前向参考帧列表中的第一当前参考帧与当前编码帧的关系处理第一当前参考帧,获取前向参考帧列表中的更新后第一当前参考帧,并标注前向参考帧列表内的更新后第一当前参考帧已处理过;设置第一参数M加1 ;用于当所述参考帧列表为后向参考帧列表,若后向参考帧列表内的第二当前参考帧未处理过,则进一步根据后向参考帧列表中的第二当前参考帧与当前编码帧的关系处理第二当前参考帧,获取更新后的后向参考帧列表中的更新后的第二当前参考帧,并标注更新后的第二当前参考帧已处理过;设置第一参数M加1 ;预测单元,用于判断第一参数M是否大于1,若是则通过更新后的前向或后向参考帧列表对当前编码帧进行帧间预测;若否则第一判断单元继续运行本发明提出一种帧间预测方法及装置,该方法及装置通过参考帧列表内当前参考帧与当前编码帧的关系不同,按照不同的方法来处理当前参考帧Listl^refi,获取更新后的当前参考帧cun^Listl^refi,提高了更新后当前参考帧与编码帧的相似度,从而达到了优化当前编码帧的压缩效果。在低帧率时,帧与帧之间的镜头变化更大,此时采用本发明的帧预测方法,压缩性能的提升将更为显著。
图1是本发明实施例1的方法流程图;图2是本发明实施例2的方法流程图。图3是本发明实施例3的方法流程图;图4是本发明实施例4的结构示意图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明,为了便于说明,仅示出了与本发明实施例相关的部分。应当理解,此处所描写的具体实施例,仅仅用于解释本发明,并不用以限制本发明。本发明提出一种新的B帧的帧间预测方法。该方法通过确定当前参考帧与当前编码帧的关系,分别按照镜头拉远或拉近的方式进行上下采样处理,提高了当前参考帧与编码帧的相似度,从而达到了优化当前编码帧的压缩效果。在低帧率时,帧与帧之间的镜头变化更大,此时采用本发明的帧预测方法,压缩性能的提升将更为显著。实施例1,参见图1,该方法主要应用于B帧的帧间预测,具体为步骤101 预设第一参数M与第二参数K,M与K为整数;M初始值为0 ;步骤102 选取参考帧列表;即选取ListK,K可以为0或1,在此设置LiskO为前向参考列表,Liskl为后向参考列表;步骤103 判断所述的参考帧列表中的第二参数K是否为0,若为0则执行步骤 104,若不为0则执行步骤105;步骤104 所述参考帧列表为前向参考帧列表;若前向参考帧列表内的第一当前参考帧Listl^refi (本发明所述的第一当前参考帧可以为前向参考帧列表中任一个参考帧)未处理过,则进一步根据前向参考帧列表中的第一当前参考帧Listl^refi与当前编码帧frame的关系处理第一当前参考帧Listl^refi,获取更新后的前向参考帧列表中的更新后第一当前参考帧cun^Listl^refi,并标注前向参考帧列表内的更新后第一当前参考帧 Listk_refi已处理过,进入步骤106 ;步骤105 所述参考帧列表为后向参考帧列表;若后向参考帧列表内的第二当前参考帧Listl^refi (本发明所述的第二当前参考帧可以为后向参考帧列表中任一个参考帧)未处理过,则进一步根据后向参考帧列表中的第二当前参考帧Listl^refi与当前编码帧frame的关系处理第二当前参考帧,获取更新后的后向参考帧列表中的更新后的第二当前参考帧,并标注更新后的第二当前参考帧已处理过,进入步骤106 ;步骤106 设置第一参数M加1,判断M是否大于1,若是则执行步骤107 ;若否则执行步骤102 ;步骤107 利用更新过的前向参考帧列表与后向参考帧列表对当前编码帧进行帧间预测。该方法通过参考帧列表内当前参考帧与当前编码帧的关系不同,按照不同的方法来处理当前参考帧Listk_refi,获取更新后的当前参考帧curi^Listl^refi,提高了更新后当前参考帧与编码帧的相似度,从而达到了优化当前编码帧的压缩效果。在低帧率时,帧与帧之间的镜头变化更大,此时采用本发明的帧预测方法,压缩性能的提升将更为显著。实施例2,参见图2,本发明提供了一种B帧的帧间预测方法,具体为步骤201 预设第一参数M与第二参数K,M与K为整数;M初始值为0 ;步骤202 选取参考帧列表;即选取ListK,K可以为0或1,在此设置LiskO为前向参考帧列表,Liskl为后向参考帧列表;步骤203 判断所述的参考帧列表中的第二参数K是否为0,若K为0为前向参考帧列表,若不为0为后向参考帧列表;以及确定前向参考列表中的第一当前参考帧或后向参考列表中的第二当前参考帧是否未处理过;若K为0且第一当前参考帧未处理过则执行步骤204,若K不为0且第二当前参考帧未被处理过则执行步骤204 ;步骤204 确定前向参考帧列表中第一当前参考帧LiStk_refi或后向参考帧列表中第二当前参考帧Listl^refi与当前编码帧frame的关系,若是镜头拉近则执行步骤205, 若是镜头拉远则执行步骤206 ;若不存在镜头推远或拉近,执行步骤207 ;if (镜头拉进)进入步骤205 ;else if (镜头推远)进入步骤206 ;else 进入步骤 207。步骤205 若是镜头拉近则对第一或第二当前参考帧Listk_refi进行处理,得到第二参考帧,并将更新后的第一或第二当前参考帧CunListk^efi设置为第二参考帧,CWT — Listk — re/] = Listk — ref;;并标注更新后的第一或第二当前参考帧已处理过;执行步骤208 ;该步骤中对第一或第二当前参考帧进行处理得到第二参考帧具体为对第一或第二当前参考帧进行上采样,得到第二参考帧。步骤206 若为镜头拉远则对第一或第二当前参考帧LiStk_refi进行处理, 得到第四参考帧并将更新后的第一或第二当前参考帧设置为第四参考帧; cwr —Z/i —并标注更新后的第一或第二当前参考帧已处理过;进入步骤 208 ;该步骤中对第一或第二当前参考帧进行处理,得到第四参考帧具体为对第一或第二当前参考帧进行下采样,得到第四参考帧。步骤207 前向参考帧列表内的第一当前参考帧或后向参考列表内的第二当前参考帧不做处理,即直接设置更新后的第一或第二当前参考帧cun^Listl^refi为第一或第二当前参考帧Listl^refi,并标注当更新后的第一或第二当前参考帧已处理过;步骤208 设置第一参数M加1,判断M是否大于1,若是则执行步骤208 ;若否则执行步骤202 ;步骤209 利用更新过的前向参考帧列表与后向参考帧列表对当前编码帧进行帧间预测。该方法通过确定当前参考帧与当前编码帧的关系,分别按照镜头拉远或拉近的方式进行上下采样处理,提高了更新后的当前参考帧与编码帧的相似度,从而达到了优化当前编码帧的压缩效果。在低帧率时,帧与帧之间的镜头变化更大,此时采用本发明的帧预测方法,压缩性能的提升将更为显著实施例3,参见图3,本发明提供了一种B帧的帧间预测方法,具体为步骤301 预设第一参数M与第二参数K,M与K为整数;M初始值为0 ;步骤302 选取参考帧列表;即选取ListK,K可以为0或1,在此设置LiskO为前向参考列表,Liskl为后向参考列表;步骤303 判断所述的参考帧列表中的第二参数K是否为0,若为0即当前参考帧列表为前向参考帧列表,不为0即当前参考帧列表为后向参考帧列表;进一步确定前向参考列表内的第一当前参考帧未处理过,执行步骤304,若,以及后向参考列表内的第二参考帧没有处理过,执行步骤304 ;步骤304 确定前向参考帧列表中的第一当前参考帧或后向参考帧列表中第二当前参考帧与当前编码帧的关系,若是镜头拉近则执行步骤305,若是镜头拉远则执行步骤 306 ;若不存在镜头推远拉近,则执行步骤307 ;if (镜头拉进)进入步骤305 ;else if (镜头推远)进入步骤306 ;else 进入步骤 307。步骤305 若是镜头拉近则对第一或第二当前参考帧Listk_refi进行处理, 得到第二参考帧’,进一步对第二参考帧L切进行处理,得到第三参考帧 Listk __ refi ;相应的,将更新后的第一或第二当前参考帧设置为第三参考帧,
并标注更新后的第一或第二当前参考帧已处理过,进入步
骤 308 ;该步骤具体实现为对第一或第二当前参考帧进行上采样,得到第二参考帧;将第二参考帧进行边界像素删除,获取第三参考帧,使得第三参考帧与第一或第二当前参考帧具有相同的分辨率;并且将第二参考帧进行边界像素删除方法具体为Listk _ Yefi (m,/2) 二 Listk _Tefi (m + d_heifht k,n + d_ width k)
9
其中为第二参考帧,为第三参考帧,o_widthk、o_heightk为 LiStk_refi第一参考帧的列数与行数,m_width' k、m_height' k为第二参考帧Z如A: —re/; 的列数与行数;m、η为参考帧像素的行标号与列标号;d_width' k = (m_width' k-o_widthk)/2,d_height' k=(m一height' k-o_heightk)/2步骤306 :若为镜头拉远则对第一或第二当前参考帧Listk_refi进行处理,得到第四参考帧Zk汝一 re/;,进一步对第四参考帧进行处理,得到第五参考帧
Listk^refi β — ,相应的,将更新后的第一或第二当前参考帧设置为第五参考帧Z&A — re/ ,并标注更新后的第一或第二当前参考帧已处理过;进入步骤308 ;该步骤体实现为对第一或第二当前参考帧进行下釆样,得到第四参考帧;对第四参考帧进行边界像素填充扩展,获取第五参考帧,使得第五参考帧与第一或第二当前参考帧具有相同的分辨率;其中对第四参考帧进行边界像素填充扩这具体为列填充
权利要求
1.一种帧间预测方法,其特征在于,所述的方法包括 步骤101 预设第一参数Μ, M初始值为0 ;步骤102 选取参考帧列表;步骤103 判断所述的参考帧列表是前向参考列表还是后向参考列表;若为前向参考列表则执行步骤104,若为后向参考列表则执行步骤105 ;步骤104 若所述前向参考帧列表内的第一当前参考帧未处理过,则进一步根据前向参考帧列表中的第一当前参考帧与当前编码帧的关系处理第一当前参考帧,获取前向参考帧列表中的更新后第一当前参考帧,并标注前向参考帧列表内的更新后第一当前参考帧已处理过,进入步骤106 ;步骤105 若后向参考帧列表内的第二当前参考帧未处理过,则进一步根据后向参考帧列表中的第二当前参考帧与当前编码帧的关系处理第二当前参考帧,获取后向参考帧列表中的更新后的第二当前参考帧,并标注更新后的第二当前参考帧已处理过;步骤106 设置第一参数M加1,判断M是否大于1,若是则执行步骤107 ;若否则执行步骤 102 ;步骤107 通过所更新后的前向、后向参考帧列表对当前编码帧进行帧间预测。
2.根据权利要求1所述的帧间预测方法,其特征在于,所述的步骤104中,进一步根据前向参考帧列表中的第一当前参考帧与当前编码帧的关系处理第一当前参考帧,获取前向参考帧列表中的更新后第一当前参考帧,以及所述的步骤105中,进一步根据后向参考帧列表中的第二当前参考帧与当前编码帧的关系处理第二当前参考帧,获取更新后的后向参考帧列表中的更新后的第二当前参考帧具体为步骤1041 确定所述第一或第二当前参考帧与当前编码帧的关系; 步骤1042 若是镜头拉近则对第一或第二当前参考帧进行处理,得到第二参考帧,并将更新后第一或第二当前参考帧设置为第二参考帧;若为镜头拉远则对第一或第二当前参考帧进行处理,得到第四参考帧,并将更新后第一或第二当前参考帧设置为第四参考帧;若第一或第二当前参考帧为第一参考帧,设置更新后的第一或第二当前参考帧为第一或第二当前参考帧。
3.根据权利要求2所述的帧间预测方法,其特征在于,所述的步骤1042中,若是镜头拉近则对第一或第二当前参考帧进行处理,得到第二参考帧具体为对第一或第二当前参考帧进行上采样,得到第二参考帧。
4.根据权利要求2所述的帧间预测方法,其特征在于,所述的步骤1042中,得到所述第二参考帧后,进一步对第二参考帧进行处理,得到第三参考帧;相应的,将更新后的第一或第二当前参考帧设置为第三参考帧。
5.根据权利要求4所述的帧间预测方法,其特征在于,所述的步骤1042中,进一步对第二参考帧进行处理,得到第三参考帧具体为将第二参考帧进行边界像素删除,获取第三参考帧,使得第三参考帧与第一或第二当前参考帧具有相同的分辨率。
6.根据权利要求5所述的帧间预测方法,其特征在于,所述的步骤1042中,将第二参考帧进行边界像素删除方法具体为
7.根据权利要求2所述的帧预测方法,其特征在于,所述的步骤1042中,对第一或第二当前参考帧进行处理,得到第四参考帧具体为对第一或第二当前参考帧进行下采样,得到第四参考帧。
8.根据权利要求7所述的帧预测方法,其特征在于,得到所述的第四参考帧后,进一步对第四参考帧进行处理,得到第五参考帧;相应的,将更新后的第一或第二当前参考帧设置为第五参考帧。
9.根据权利要求8所述的帧预测方法,其特征在于,所述的对第四参考帧进行处理,得到第五参考帧具体为对第四参考帧进行边界像素填充扩展,获取第五参考帧,使得第五参考帧与第一或第二当前参考帧具有相同的分辨率。
10.根据权利要求9所述的帧预测方法,其特征在于,所述的对第四参考帧进行边界像素填充扩这具体为列填充
11. 一种帧间预测装置,其特征在于,该装置包括 初始化单元,用于预设第一参数M,M初始值为0 ;第一判断单元,用于选取参考帧列表,判断所述的参考帧列表是前向参考列表还是后向参考列表;参考帧单元,用于当所述参考帧列表为前向参考帧列表,若前向参考帧列表内的第一当前参考帧未处理过,则进一步根据前向参考帧列表中的第一当前参考帧与当前编码帧的关系处理第一当前参考帧,获取前向参考帧列表中的更新后第一当前参考帧,并标注前向参考帧列表内的更新后第一当前参考帧已处理过;设置第一参数M加1 ;用于当所述参考帧列表为后向参考帧列表,若后向参考帧列表内的第二当前参考帧未处理过,则进一步根据后向参考帧列表中的第二当前参考帧与当前编码帧的关系处理第二当前参考帧,获取更新后的后向参考帧列表中的更新后的第二当前参考帧,并标注更新后的第二当前参考帧已处理过;设置第一参数M加1 ;预测单元,用于判断第一参数M是否大于1,若是则通过更新后的前向或后向参考帧列表对当前编码帧进行帧间预测;若否则第一判断单元继续运行。
12.根据权利要求11所述的帧间预测装置,其特征在于,所述的参考帧单元用于进一步根据前向参考帧列表中的第一当前参考帧与当前编码帧的关系处理第一当前参考帧,获取前向参考帧列表中的更新后第一当前参考帧,以及进一步根据后向参考帧列表中的第二当前参考帧与当前编码帧的关系处理第二当前参考帧,获取更新后的后向参考帧列表中的更新后的第二当前参考帧具体为确定所述第一或第二当前参考帧与当前编码帧的关系;若是镜头拉近则对第一或第二当前参考帧进行处理,得到第二参考帧,并将更新后的第一或第二当前参考帧设置为第二参考帧;若为镜头拉远则对第一或第二当前参考帧进行处理,得到第四参考帧,并将第一或第二当前参考帧设置为第四参考帧;若第一或第二当前参考帧为第一参考帧,设置更新后的第一或第二当前参考帧为第一或第二当前参考帧。
13.根据权利要求12所述的帧间预测装置,其特征在于,所述的参考帧单元用于若是镜头拉近则对第一或第二当前参考帧进行处理,得到第二参考帧具体为对第一或第二当前参考帧进行上采样,得到第二参考帧。
14.根据权利要求13所述的帧间预测装置,其特征在于,所述的参考帧单元用于得到所述第二参考帧后,进一步对第二参考帧进行处理,得到第三参考帧;相应的,将第一或第二当前参考帧设置为第三参考帧。
15.根据权利要求14所述的帧间预测装置,其特征在于,所述的参考帧单元用于进一步对第二参考帧进行处理,得到第三参考帧具体为将第二参考帧进行边界像素删除,获取第三参考帧,使得第三参考帧与第一或第二当前参考帧具有相同的分辨率;所述的将第二参考帧进行边界像素删除方法具体为 Listk _ refi (m, n) = Listk __ ref] (m + d _ heiflit\ ,n + d _ width k)其中Zis汰— re/;为第二参考帧,"为第三参考帧,o_widthk、o_heightk为 Listk^efi第一参考帧的列数与行数,m_width' k、m_height' k为第二参考帧Zh汰— re/’ 的列数与行数,m、η为参考帧像素的行标号与列标号; d—width' k = (m—width' k_o—widthk)/2, d—height' k = (m—height' k_o_heightk)/2。
16.根据权利要求12所述的帧间预测装置,其特征在于,所述参考帧单元用于对第一或第二当前参考帧进行处理,得到第四参考帧具体为对第一或第二当前参考帧进行下采样,得到第四参考帧。
17.根据权利要求16所述的帧间预测装置,其特征在于,所述参考帧单元用于得到所述的第四参考帧后,进一步对第四参考帧进行处理,得到第五参考帧;相应的,将第一或第二当前参考帧设置为第五参考帧。
18.根据权利要求17所述的帧间预测装置,其特征在于,所述的参考帧单元用于对第四参考帧进行处理,得到第五参考帧具体为对第四参考帧进行边界像素填充扩展,获取第五参考帧,使得第五参考帧与第一或第二当前参考帧具有相同的分辨率;所述的对第四参考帧进行边界像素填充扩这具体为 列填充其中ZbM: —re/;"为第四参考帧,为第五参考帧、0_widthk、o_heightk为 Listkjefi的列数与行数,m_width〃 ‘ k、m_height〃 ‘ k为/^汰―re/"的列数与行数,m、η为参考帧像素的行标号与列标号;
全文摘要
本发明提供一种帧间预测方法,该方法通过参考帧列表内当前参考帧与当前编码帧的关系不同,按照不同的方法来处理当前参考帧Listk_refi,获取更新后的当前参考帧curr_Listk_refi,提高了更新后当前参考帧与编码帧的相似度,从而达到了优化当前编码帧的压缩效果。在低帧率时,帧与帧之间的镜头变化更大,此时采用本发明的帧预测方法,压缩性能的提升将更为显著。
文档编号H04N7/26GK102572419SQ20101061012
公开日2012年7月11日 申请日期2010年12月28日 优先权日2010年12月28日
发明者舒倩 申请人:深圳市融创天下科技股份有限公司