发明名称 一种多核平台下MPEG2高清编码器的Slice码率分配方法
摘要 本发明涉及一种多核平台下MPEG2高清编码器的Slice码率分配方法,是一种用于视频图像压缩编码的方法。本发明所述的方法包括以下步骤:输入无压缩帧数据的步骤;创建编码线程的步骤;划分的步骤;判断输入视频图像帧类型的步骤;运动补偿预测的步骤;交叉分配的步骤;编码过程计算的步骤;输出压缩帧数据的步骤。本发明在单帧多编码线程的前提下,通过在各编码线程间平均分配码率的办法,将信息量较大的Slice和信息量较少的Slice交叉分配,平均各编码线程Slice的码率,在各编码线程内仍使用TM5模型编码,最终较好解决了单帧画面有序而视频序列画面存在随机性的矛盾。
申请公布号 CN101969560B 申请公布日期 2012.09.05
申请号 CN201010526210.6 申请日期 2010.11.01
申请人 北京中科大洋科技发展股份有限公司 发明人 姚威;邓伟;田克俊;褚震宇
分类号 H04N7/26(2006.01)I;H04N7/50(2006.01)I 主分类号 H04N7/26(2006.01)I
代理机构 北京国林贸知识产权代理有限公司 11001 代理人 孙福春;李桂玲
主权项 一种多核平台下Mpeg2高清编码器的Slice码率分配方法,所述方法使用带有多个CPU核的,具有并行计算能力的计算机视频图像处理系统,所述的方法包括以下步骤:输入无压缩的原始视频图像帧的数据的步骤:用于接收待压缩编码的YUV原始视频图像帧的数据;创建编码线程的步骤:首先获取CPU的核数,设为M;根据CPU的核数创建N个编码线程,使N等于M,或者使N是M的整数倍,如果不是初次视频压缩则跳过这一步骤;划分的步骤:用于将原始视频图像帧从上到下依次划分为Q个图像部分,划分后的图像部分的数量Q等于编码线程数N,或者图像部分的数量Q是N的整数倍数;每个图像部分包含多个Slice,每个Slice包含多个宏块;将各个图像部分平均分配给各个编码线程处理;判断输入视频图像帧类型的步骤:用于判断输入的视频图像帧类型,如果是“B”类型帧或者是“P”类型帧则进入“编码线程运动补偿预测步骤”如果是“I”类型帧则进入“交叉分配的步骤”; 编码线程运动补偿预测的步骤:用于各编码线程分别对分配给各自的图像部分进行搜索,计算运动补偿预测,并将计算的结果按宏块暂存;其特征在于如下步骤:交叉分配的步骤:用于将原始视频图像上的Slice交叉分配形成编码视频图像帧,所述的编码视频图像帧中包含N个Slice组,将各个Slice组分配给各编码线程,并按照各编码线程所分配的Slice数占总视频图像Slice总数的比例,给各编码线程分配各自的占总体目标码率相应比例的码率,具体方法是:将原始视频图像帧按从上到下的次序,依次取出N个Slice作为一个Slice段,直至分完为止;如果Slice数不能被N整除,最后不足N个的Slice也作为一个Slice段;将即将形成的编码视频图像帧按从上到下的次序分为N个Slice组,每个Slice段中的第一个Slice分配给第一个Slice组、第二个Slice分配给第二个Slice组、第三个Slice分配给第三个Slice组,余此类推,第N个Slice分配给第N个Slice组;如果Slice数不能被N整除,对于最后一个Slice数不足N个的Slice段,记其所包含的Slice数为P,只需将其包含的P个Slice依次分配给第1至第P个Slice组即可,这样形成交叉顺序的带有N个Slice组的编码视频图像帧;编码计算的步骤:用于各个编码线程对Slice组内的各个Slice的宏块依次执行编码计算,如果该帧为B帧或P帧,编码计算过程将使用运动补偿预测的结果;恢复正常顺序和输出压缩视频图像帧的数据的步骤:用于将经过编码计算的编码视频图像帧按正常的顺序进行拼接,形成正常Slice次序的压缩视频图像帧并输出,完成视频图像帧的编码。
地址 100193 北京市海淀区中关村软件园11号楼