发明名称 一种实现视频码流帧率可调整的压缩方法
摘要 本发明提供实现视频码流帧率可调整的压缩方法,压缩图像的类型分I帧、non-I帧、P帧、non-P帧以及B帧,在解码过程中,类型为工帧或者P帧的各帧图像的时域层次以单位组大小为周期变化;编码中,先按待编码的当前帧图像编码顺序确定当前帧图像的时域层次,然后按照参考帧选取策略获得当前帧图像的参考帧图像,对当前帧图像编码,编码完成后按照参考帧更新策略更新参考帧缓存;解码中,按待解码的当前帧图像解码顺序确定当前帧图像的时域层次,按照参考帧选取策略获得当前帧图像的参考帧图像,对当前帧图像解码,解码完成后按照参考帧更新策略更新参考帧缓存。本发明使得压缩后的码流具有帧率可调整的功能,能够适应不同网络的传输和不同终端设备的显示。
申请公布号 CN101257628B 申请公布日期 2010.06.02
申请号 CN200810047101.9 申请日期 2008.03.20
申请人 武汉大学 发明人 胡瑞敏;王启军;牟晓弦;刘琼;屠增辉
分类号 H04N7/26(2006.01)I;H04N7/50(2006.01)I 主分类号 H04N7/26(2006.01)I
代理机构 武汉天力专利事务所 42208 代理人 冯卫平;程祥
主权项 一种实现视频码流帧率可调整的压缩方法,其特征在于:将压缩图像的类型分为帧内编码帧、非参考帧内编码帧、前向预测帧、非参考前向预测帧以及双向参考帧,在编解码过程中,类型为帧内编码帧或者前向预测帧的各帧图像的时域层按周期进行变化,周期大小为单位组;编码过程中,先按待编码的当前帧图像编码顺序确定当前帧图像的时域层次,然后按照参考帧选取策略获得当前帧图像的参考帧图像,对当前帧图像进行编码,编码完成后按照参考帧更新策略更新参考帧缓存,所述当前帧图像的时域层次根据单位组大小确定,如果当前帧图像的类型是非参考帧内编码帧或者双向参考帧,则其时域层次默认为最高时域层次;在所述根据单位组大小确定当前帧图像时域层次的具体过程为,单位组大小标记为unit_size;初始化一大小为单位组大小的数组level,在该数组中,将所有数组序号为奇数的数组值设为log2(unit_size),所有数组序号为2的整数倍的数组值设为log2(unit_size)-1,将所有数组序号为4的整数倍的数组值设为log2(unit_size)-2,直到将所有数组序号为unit_size的整数倍的数组值设为0为止;如果当前帧图像为帧内编码帧或者前向预测帧,则其时域层次为level[x%unit_size],其中x为当前帧图像的序号,如果当前帧图像为非参考帧内编码帧或者双向参考帧,则当前帧图像时域层次为log2(unit_size);解码过程中,先按待解码的当前帧图像解码顺序确定当前帧图像的时域层次,然后按照参考帧选取策略获得当前帧图像的参考帧图像,对当前帧图像进行解码,解码完成后按照参考帧更新策略更新参考帧缓存,所述当前帧图像的时域层次确定方法为,通过对已解码的帧内编码帧和前向预测帧计数来映射出当前帧图像的时域层次,如果当前帧图像是非参考前向预测帧或者双向参考帧,则其时域层次默认为最高时域层次;具体映射方式为,根据单位组大小unit_size确定当前帧图像时域层次,如果当前帧图像为第一个编码帧,则初始化一大小为单位组大小的数组level,在该数组中,将所有数组序号为奇数的数组值设为log2(unit_size),所有数组序号为2的整数倍的数组值设为log2(unit_size)-1,将所有数组序号为4的整数倍的数组值设为log2(unit_size)-2,直到将所有数组序号为unit_size的整数倍的数组值设为0为止;如果当前帧图像类型为I帧或者P帧,则其时域层次为level[x%unit_size],其中x为当前帧图像的序号,如果当前帧图像为non-P帧,则当前帧图像的时域层次为log2(unit_size);编解码过程中所述参考帧选取策略为,从参考帧缓存中选取与当前帧图像时域层次相等或比当前帧图像时域层次低的图像为参考帧图像;编解码过程中所述参考帧更新策略为,在对帧内编码帧和前向预测帧完成编码或者解码后,对参考帧缓存进行更新,对其余类型的帧进行编码或者解码后,不更新参考帧缓存,所述更新的具体规则为,对当前帧图像进行编码或者解码后,对参考帧缓存进行更新的方式为,当参考帧缓存未填满时,按照编码顺序将当前帧图像的重建图像按缓存中的编号依次存入参考帧缓存中,直至将其填满;当参考帧缓存已填满时,重建图像替代参考帧缓存中的某一帧,被替代帧的时域层次等于重建图像所在的时域层次且被替代帧的显示顺序号为参考帧缓存内所有参考帧中最小的。
地址 430072 湖北省武汉市武昌珞珈山