一种用于多核处理器的多视点视频编码的任务调度方法

文档序号:7698489阅读:109来源:国知局
专利名称:一种用于多核处理器的多视点视频编码的任务调度方法
技术领域
本发明涉及一种用于多核处理器的多视点视频编码的任务调度方法,属于视频编码领域。
背景技术
三维显示技术是关于自然视频场景渲染新技术发展的很有前途的领域之一。随着三维 立体电视和自由视点视频的风行,计算机图形学、计算机视觉、多媒体技术和相关领域技 术的融合促进了这些新媒体的发展。作为三维显示视频的核心技术,多视点视频技术本质 上是使用多个照相机从不同角度获取关于一个物体图像,然后对多个角度的视频进行编 码,再传输数据,然后解码,最后合成一个三维结果的过程。多视点视频和三维立体电视 是新一代的交互式媒体服务,给用户带来全新的观看体验用户可以自由地选择观看的视 点,并且随时在不同视点间进行切换,在不佩戴眼镜的情况下获得三维的场景体验和感受。 同传统二维电视相比,在视觉效果和用户交互性上的巨大优势,使得多视点视频/三维立 体电视成为研究的热点,迅速发展和普及,将成为继数字电视后广播网络和宽带网络上新 一代交互式媒体的重要应用。多视点视频技术解决了自由视点视频和三维交互式视频的展 示,交互,编码和传输等问题。多视点视频已经刺激了自由视点、三维显示和高性能成像 等技术应用的快速扩展。
多视点视频编码的标准已经推出最终的标准草稿,并且被应用在为便于传输和存储的
多视点视频的压縮过程中。多视点视频编解码的完整标准预期在2009年发布。尽管所有
这些多视点视频编解码的优势显示了客户市场的巨大潜力,但是巨大的计算需求阻碍了它 的广泛应用。多视点视频编解码的数据传输和计算复杂度都随着视点的数量线性增长。随 着多视点视频编解码应用的增加,实时编码的必要性越来越大。
随着计算机从单处理器进化为多核处理器,开发线程级的并行性为多媒体应用提供更 好的表现和更多的功能。然而为多核处理器提出并行算法并不容易,接近于线性的加速更 为困难。由于多核处理器变成了体系结构设计的趋势,所以多视点视频编解码要继续利用 计算资源和良好的可并行性。
多视点视频编解码是视频编解码标准H.264/AVC的一个具有很好的并行性的扩展。 由于多视点视频编解码的标准还未最终定稿,所以针对它的编码算法还比较少,目前已有 的多视点视频编码的任务调度算法就更少了。之前已有的工作设计和实现了一种基于超空 间理论的多视点视频编码任务调度方法。它使用一组帧作为并行粒度,针对多处理器平台 设计,但是多个处理器平台不是体系结构发展的主流,其体积大,使用不方便,而这种任 务调度方法的缺点是不适合多核处理器。之前已有的用于多核处理器的视频编码的任务调
3度方法,不是针对多视点视频编码而设计。它们的缺点体现在数据并行的并行粒度对于 多视点视频编解码太小,或者利用编码的过程各个步骤之间的并行性,缺乏可扩展性,当 多核处理器的结构稍有变化时,性能不再优越,需要重新设计,普适性差。

发明内容
本发明的目的是提出一种用于多核处理器的多视点视频编码的任务调度方法,克服已 有技术的缺点,使得多视点视频编码可以充分发挥各种多核处理器的处理能力,縮短视频 编码时间,使多视点视频编码方法的应用更加广泛。
本发明提出的用于多核处理器的多视点视频编码的任务调度方法,包括以下步骤
(1) 设置N个摄像机,并使位置相邻的摄像机的编号相连,N=0, 1, 2,……,N
一l;
(2) 将由上述N个摄像机获取的所有视频帧分为五种类型,l帧类、P帧类、B2帧 类、B3帧类和B4帧类,其中l帧类为本视频帧的编码需要本帧的视频数据,P帧类为 本视频帧的编码需要本帧的视频数据和一个参考帧的视频数据,B2帧类为本视频帧的
编码需要本帧的视频数据和两个参考帧的视频数据,B3帧类为本视频帧的编码需要本 帧的视频数据和三个参考帧的视频数据,B4帧类为本视频帧的编码需要本帧的视频数 据和四个参考帧的视频数据;
(3) 定义从N个摄像机得到的N路视频中,图像帧与图像帧之间的编码参考关系以 设定的循环单元沿时间方向循环产生,最小的循环单元为一个图像组,将接收的视频分成 图像组,并对图像组从1开始进行编号;
(4) 若接收的视频帧为图像组中的第一个接收帧,则分别为图像组中的每个视频帧 设定初始化参数,参数包括该视频帧所在图像组的组编号a,该视频帧在图像组内的帧 编号b,该视频帧编码时所参考的视频帧在图像组内的帧编号C;
(5) 将接收的视频帧放到视频输入缓存中,当接收新的视频帧时,重复步骤(3) —
(5);
(6) 当上述视频输入缓存中,视频帧的上述所参考的视频帧在图像组内的帧编号不 存在或全部为一l,将该视频帧排入任务队列;
(7) 将上述任务队列中的视频帧分配到多核处理器的空闲核上,分配过程如下
若编码程序要求优先对视频帧序列中获取时间点在前的视频帧编码,则获取时间点最 前的视频帧的优先级最高,若编码程序要求编码时间最短,则编码时被参考的视频帧数目 最多的视频帧优先级最高,若两个帧的优先级相同,则根据上述对视频帧分类,优先级从
高到低依次为l帧类、P帧类、B2帧类、B3帧类和B4帧类,从上述任务队列中挑选优 先级最高的视频帧,并分配到多核处理器的空闲核上;
(8) 多核处理器上的核对上述分配的视频帧进行视频编码,同时进行步骤(6)和步
骤(7);(9)当一个视频帧编码结束后,将该视频帧所在的图像组中,其它编码时需要参考 该视频帧的每个视频帧的参数中,将与该视频帧的帧编号b相等的视频帧的帧编号c更 新为-1,转至步骤(6)。
上述方法中,图像组内帧编号可以由两个数字组成, 一个是获取该视频帧的摄像机编 号,另一个是拍摄时间顺序从O开始的编号。
本发明提出的用于多核处理器的多视点视频编码的任务调度方法,其优点是
1、 本发明是一种用于多核处理器的多视点视频编码的任务调度方法,可以在多核处 理器上,在保持视频压縮效果不变的情况下,使得多视点视频编码在多核处理器上得到接 近线型的加速比。
2、 本发明方法专门针对多核处理器设计,而多核处理器是未来处理器体系结构发展
的方向,相对多处理器平台,多核处理器的体积小,运算能力强,因此本发明方法为未来 处理器体系提供了先进的软件支持。
3、 本发明方法以视频帧为并行单元,对于多视点视频编码算法,该并行单元的大小 适中,使多视点视频编码在多核处理器上的编码速度更快。
4、 本发明方法的普适性强,是自适应的多视点视频编码算法,可以随着多核处理器 的变化而调整,不需要针对多核处理器的各个种类分别设计。
5、 本发明方法由数据驱动,只要有可以被处理的数据,处理器就不会空闲,因此提 高了处理器的利用效率。


图1是本发明方法中多视点视频编码参考关系的一个实施例。
具体实施方法
以下结合附图介绍本发明的方法。
本发明提出的用于多核处理器的多视点视频编码的任务调度方法,包括以下步骤
(1) 设置N个摄像机,使位置相邻的摄像机的编号相连,N=0, 1, 2,……,N —
1;
(2) 将由上述N个摄像机获取的所有视频帧分为五种类型,l帧类、P帧类、B2帧 类、B3帧类和B4帧类,其中l帧类为本视频帧的编码需要本帧的视频数据,P帧类为
本视频帧的编码需要本帧的视频数据和一个参考帧的视频数据,B2帧类为本视频帧的 编码需要本帧的视频数据和两个参考帧的视频数据,B3帧类为本视频帧的编码需要本 帧的视频数据和三个参考帧的视频数据,B4帧类为本视频帧的编码需要本帧的视频麵 据和四个参考帧的视频数据;
(3) 定义从N个摄像机得到的N路视频中,图像帧与图像帧之间的编码参考关系以 设定的循环单元沿时间方向循环产生,最小的循环单元为一个图像组,将接收的视频分成
5图像组,并对图像组从1开始进行编号;
(4) 若接收的视频帧为图像组中的第一个接收帧,则分别为图像组中的每个视频帧 设定初始化参数,参数包括该视频帧所在图像组的组编号,设为a,该视频帧在图像组
内的帧编号,设为b,由两个数字组成, 一个是获取该视频帧的摄像机编号,另一个是拍 摄时间顺序从0开始的编号,例如从第O个摄像机获取的第一个视频帧的编号为OO,该 视频帧编码时所参考的视频帧在图像组内的帧编号c,帧编号c的个数与上述视频帧分类 相关,I帧没有参考视频帧,^f以没有该视频帧编码时所参考的视频帧在图像组内的帧编 号,P帧有一个编码时所参考的视频帧在图像组内的帧编号,设为cl, B2帧有两个编码 时所参考的视频帧在图像组内的帧编号,设为cl和c2, B3帧有三个编码时所参考的视 频帧在图像组内的帧编号,设为cl, c2和c3, B4帧有四个编码时所参考的视频帧在图 像组内的帧编号,设为cl, c2, c3和c4,如图1所示,是8路多视点视频的一个图像 组内部的视频帧编号,以及各帧之间的编码参考关系,编码参考关系由箭头表示,被箭头 指向的帧需要参考发出箭头的帧,例如编号为41的视频帧,它的b参数是41,是B4帧, cl为40, c2为42, c3为01, c4为08;
(5) 将接收的视频帧放到视频输入缓存中,当接收新的视频帧时,重复步骤(3) —
(5);
(6) 当上述视频输入缓存中,视频帧的上述所参考的视频帧在图像组内的帧编号不
存在或全部为一l,将该视频帧排入任务队列;
(7) 将上述任务队列中的视频帧分配到多核处理器的空闲核上,分配过程如下 若编码程序要求优先对视频帧序列中获取时间点在前的视频帧编码,则获取时间点最
前的视频帧的优先级最高,若编码程序要求编码时间最短,则编码时被参考的视频帧数目 最多的视频帧优先级最高,若两个帧的优先级相同,则根据上述对视频帧分类,优先级从
高到低依次为l帧类、P帧类、B2帧类、B3帧类和B4帧类,从上述任务队列中挑选优 先级最高的视频帧,并分配到多核处理器的空闲核上;
(8) 多核处理器上的核对上述分配的视频帧进行视频编码,同时进行步骤(6)和步
骤(7);
(9) 当一个视频帧编码结束后,将该视频帧所在的图像组中,其它编码时需要参考 该视频帧的每个视频帧的参数中,将与该视频帧的帧编号b相等的视频帧的帧编号c更 新为-1,例如帧编号b为27的视频帧编码结束后,将与该视频帧同在一图像组内的帧编 号b为17的视频帧和帧编号b为37的视频帧中,选择等于27的帧编号c更新为-1 , 转至步骤(6)。
权利要求
1、一种用于多核处理器的多视点视频编码的任务调度方法,其特征在于该方法包括以下步骤(1)设置N个摄像机,使位置相邻的摄像机的编号相连,N=0,1,2,……,N—1;(2)将由上述N个摄像机获取的所有视频帧分为五种类型,1帧类、P帧类、B2帧类、B3帧类和B4帧类,其中1帧类为本视频帧的编码需要本帧的视频数据,P帧类为本视频帧的编码需要本帧的视频数据和一个参考帧的视频数据,B2帧类为本视频帧的编码需要本帧的视频数据和两个参考帧的视频数据,B3帧类为本视频帧的编码需要本帧的视频数据和三个参考帧的视频数据,B4帧类为本视频帧的编码需要本帧的视频数据和四个参考帧的视频数据;(3)定义从N个摄像机得到的N路视频中,图像帧与图像帧之间的编码参考关系以设定的循环单元沿时间方向循环产生,最小的循环单元为一个图像组,将接收的视频分成图像组,并对图像组从1开始进行编号;(4)若接收的视频帧为图像组中的第一个接收帧,则分别为图像组中的每个视频帧设定初始化参数,参数包括该视频帧所在图像组的组编号a,该视频帧在图像组内的帧编号b,该视频帧编码时所参考的视频帧在图像组内的帧编号c;(5)将接收的视频帧放到视频输入缓存中,当接收新的视频帧时,重复步骤(3)—(5);(6)当上述视频输入缓存中,视频帧的上述所参考的视频帧在图像组内的帧编号不存在或全部为—1,将该视频帧排入任务队列;(7)将上述任务队列中的视频帧分配到多核处理器的空闲核上,分配过程如下若编码程序要求优先对视频帧序列中获取时间点在前的视频帧编码,则获取时间点最前的视频帧的优先级最高,若编码程序要求编码时间最短,则编码时被参考的视频帧数目最多的视频帧优先级最高,若两个帧的优先级相同,则根据上述对视频帧分类,优先级从高到低依次为1帧类、P帧类、B2帧类、B3帧类和B4帧类,从上述任务队列中挑选优先级最高的视频帧,并分配到多核处理器的空闲核上;(8)多核处理器上的核对上述分配的视频帧进行视频编码,同时进行步骤(6)和步骤(7);(9)当一个视频帧编码结束后,将该视频帧所在的图像组中,其它编码时需要参考该视频帧的每个视频帧的参数中,将与该视频帧的帧编号b相等的视频帧的帧编号c更新为-1,转至步骤(6)。
2、如权利要求1所述的方法,其特征在于其中所述的图像组内帧编号由两个数字组成, 一个是获取该视频帧的摄像机编号,另一个是拍摄时间顺序从o开始的编号。
全文摘要
本发明涉及一种用于多核处理器的多视点视频编码的任务调度方法,属于视频编码领域。首先为获取视频的摄像机、接收的视频帧、图像组等编号,设置参数,根据编号和参数,参照设定的任务优先级设置方法,将优先级最高的视频帧分配到多核处理器的空闲核上,进行编码。上述设置编号和参数,挑选和分配视频帧以及编码过程同时进行。本发明方法的优点是在保持压缩效果不变的情况下,使得多视点视频编码在多核处理器上得到接近线型的加速比;针对多视点视频编码算法特点,选择以视频帧为并行粒度,该并行粒度大小适中;普适性强,具有自适应性,可以随着多核处理器种类的变化而自动调整,数据驱动的特性提高了处理器的利用效率。
文档编号H04N7/26GK101466041SQ20091007711
公开日2009年6月24日 申请日期2009年1月16日 优先权日2009年1月16日
发明者威 冯, 孙立峰, 一 庞, 张凤妍, 李彦洁, 杨士强, 胡伟栋 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1