一种面向低功耗的流媒体播放方法与流程

文档序号:15925263发布日期:2018-11-14 01:04阅读:161来源:国知局
本发明涉及流流媒体视频播放过程中降低设备功耗的
技术领域
,尤其涉及一种一种面向低功耗的流媒体播放方法。
背景技术
目前,流媒体视频播放过程中降低设备功耗的技术在数字化多媒体网络教学、培训机构、企事业单位网络会议直播及数字化校园网络资源共享、移动视频播放设备等领域的需求越来越迫切。其中:1.视频编解码。视频文件是由多个连续的图片帧组成,帧是组成视频图像的基本单位。在mpeg编码的过程中,部分视频帧序列压缩成为i帧;部分压缩成p帧;还有部分压缩成b帧。关键帧编解码。关键帧也叫i帧,它是一个全帧压缩的编码帧,解码时仅需其自身的数据就可以完成整个图像的重构,不需要参考其他画面而生成。i帧又称为内部画面(intrapicture),通常是每个gop(mpeg所使用的一种视频压缩技术)的第一帧,经过适度地压缩,作为随机访问的参考点。i帧的压缩方法是一种基于离散余弦变换dct(discretecosinetransform)技术的帧内压缩方法,它可达到1/6的压缩比而无明显的压缩痕迹。dct过程先将图像分解成很多8×8的块,然后使用离散余弦变换对每个8×8的块逐行进行变换,得到的是一个8×8的变换系数矩阵。关键帧的解码是编码的逆过程,使用的是离散余弦变换的逆过程,称为反离散余弦变换。同样是将图像分解成很多8×8的块,然后对每个块分别逐行进行反离散余弦变换。反离散余弦变换的过程定义用公式表示如下:其中f(x,y)是空间二维向量的元素,x,y=0,1,2,......n-1;f(0,v),f(u,0),f(u,v)是变换系数阵列的元素,v,u=1,2,......n-1;式中表示的阵列为n×n,一般为8×8矩阵。关键帧中对8×8块的一个1×8行向量的idct实现过程如下:其中w1,w2,……,w7是常系数,x是二维空间的初始1×8的行向量,x是经过idct变换的1×8行向量。对一个1×8行向量的idct过程中共执行了加法32次,乘法29次。对整个块的idct过程是执行8次1×8行向量的idct过程,共执行加法256次,乘法232次。帧间预测编解码。为了达到图像压缩的目的,利用视频图像帧间在时间上的相关性,不直接传送当前帧的像素值,而是传送像素x和其前一帧或后一帧的对应像素x’之间的差值,这称为帧间预测。一个帧间编码的帧被分成若干块,编码器不直接对每个块的原始像素值进行编码,而是试图找到一个在它之前编码的帧(称为参考帧)上与当前块最类似的块,此过程由块匹配算法完成。如果编码器在参考块上搜索成功,则块可以通过一个称为运动矢量的向量进行编码,该向量指向匹配块在参考帧中所处的位置。运动矢量的确定过程就称为运动估计。一般情况下,编码器都能够成功的找到最佳匹配块,但找到的块可能与它所编码的块不完全匹配,这时候编码器就会计算它们之间差异的残差,这些残差被称为预测误差,需要对其进行变换并发送到解码器。预测帧分为p帧和b帧。p帧的参考帧是它前一个i帧或p帧,因此p帧的解码过程也叫做前向预测。b帧的参考帧是它的前一个i帧或p帧和(或)后一个i帧或p帧,因此b帧的解码过程也叫做双向预测。为了保证视频质量,b帧是不作为参考帧的。编码器成功的在参考帧上找到匹配块,它将获得指向匹配块的运动矢量和预测误差,使用这两个元素,通过运动补偿技术,解码器将能够恢复块的原始像素。2.近似计算。在计算机科学中,近似计算是用来发现近似方法来解决优化问题的算法。近似计算通常与np-hard问题相关。由于不可能存在有效的多项式时间可以精确地计算解决np-hard问题,所以考虑求解多项式时间次优解。与启发式算法不同,近似计算通常可以在可证明的解决方案质量和可证明的运行时间范围内快速地找到合理的解决方案。理想情况下,近似值最优可达到一个小的常数因子(例如在最优解的5%以内)。近似计算越来越多地用于已知精确多项式时间算法但输入过大的问题。技术实现要素:本发明的目的在于克服上述
背景技术
存在的缺陷,提供一种面向低功耗的流媒体播放方法,该方法是解决一些不支持可变码流的传统视频播放设备上,在保证视频质量的前提下降低系统能耗的技术问题;同时,让设备在执行多任务播放流媒体视频时有更低的负载。本发明的技术方案:一种面向低功耗的流媒体播放方法,包括如下步骤:步骤一,对视频中关键帧的高频区域进行省略解码的近似运算;步骤二,对视频中处理域的预测帧进行近似运算过程:a2.1,计算处理域中所有预测帧的全部块的运动矢量偏移量的绝对值和并设置全局阀值;a2.2,找出处理域中全部块的运动矢量偏移量的绝对值和最小的预测帧;a2.3,判断当前预测帧全部块的运动矢量偏移量的绝对值和是否大于步骤2.1中的全局阀值;如果满足条件则用当前预测帧前一个参考帧的内容填充当前帧,结束;否则进入下一步;a2.4,将处理域中的每预测帧作为一作用域进行块处理过程。所述a2.4步骤中块处理过程为:步骤一,判断预测帧中当前块运动矢量的绝对值和是否小于局部阀值,如果满足条件,则用参考帧对应块的内容填充当前块获得预测块并进入步骤四;否则进入下一步;步骤二,根据运动矢量得到最佳匹配块;步骤三,根据最佳匹配块和像素残差通过补偿获得预测块;步骤四,根据预测块和dct系数相加获得重建块;步骤五,根据多个重建块构成预测帧。与现有技术相比,本发明具有的优点:1、本发明是对解码算法近似以后,减少了idct过程和预测块重建过程中的计算量,加快了解码速度。2、本发明提高计算机的处理能力,保证用户体验的同时降低耗能。同时,能够很好的解决系统执行多个流媒体播放任务时的卡顿问题。附图说明图1是本发明中预测帧近似运算流程图。图2是本发明中预测帧的块处理流程图。具体实施方式下面结合附图对本发明作详细说明:从上述
背景技术
可知,视频在编码过程中为了节省资源,已经对视频进行了压缩存储。根据视频帧在时间上的相关性,只对关键帧(i帧)进行完全编码,对于预测帧(p、b帧)只对它们相对于参考帧变化的部分进行编码并传输,减少传输过程中的数据冗余。为了达到在播放流媒体视频降低耗能的目的,在编码过程中已经做了最大的努力了,目前只能在解码的过程中在解码算法上做一些近似计算。为了达到这个目的,以下提出两种解码算法改造的方法:对关键帧的解码近似算法和对预测帧的解码近似算法。本发明提供一种面向低功耗的流媒体播放方法,包括如下步骤:步骤一,对视频中高频区域的关键帧进行省略解码的近似运算;1.对关键帧的解码近似算法关键帧的解码算法类似于jpeg的解码算法,主要的步骤有直流系数的差分编码、反量化、反zig-zag编码、反离散余弦变换等。经分析得知,解码过程中进行最多次计算,消耗最多系统资源,最方便改造的部分是反离散余弦变换的过程。反离散余弦变换是将每一帧图片分成很多8×8的块,接着对每个块逐行进行处理。经过dct变换的图像中数据的存储有这样的规律:左上角的低频区域存储的信息量大、数据量小;右下角的高频区域存储的信息量小、数据量大。因此,在对每一个8×8的块进行反离散余弦变换的时候就可以考虑不对部分高频区域进行处理,省略一些计算步骤,不进行计算的少量信息对整帧图片的输出质量没有太大的影响,从而达到对关键帧解码算法的近似改造。关键帧经过dct变换后的8×8的系数矩阵中,低频分量集中在矩阵的左上角,高频分量集中在右下角。而在图像中一般低频分量部分的信息量远大于高频分量;且低频分量部分的数据量远小于高频分量。由此可知,减少部分右下角的高频分量不仅能减少计算的数据量,而且对图像的信息量不会有太大的影响。关键帧解码8×8块的idct过程如下:在关键帧中的一个8×8块使用idct解码时,尝试不对信息量少、数据量大的高频分量进行解码。以8×8块为例,不对它最后一个8×1的列向量做idct,对一个1×8的行向量进行idct的执行过程如下:以上过程相比于对一个完整1×8的行向量的解码,少执行了4次加法和4次乘法运算。因此,对于一个8×8块,若不对最后一个8×1的列向量执行idct,则一共少执行了32次加法和32次乘法。同理,当不对最后两个8×1的列向量执行idct时,则对于8×8块少执行了64次加法和64次乘法。以此类推,当不对最后k个8×1的列向量做idct时(其中k=1,2…….6),则对于一个8×8块少执行的加法和乘法次数s相同,s为:s=32k(k=1,2,……6)当减少对一个8×8块高频区域的idct过程时,每个块少执行的加法和乘法的次数为32k(k同上)。一个关键帧在解码时被分成很多8×8的块,对每个块减少高频区域的idct过程使得整个关键帧在解码过程中能够减少大量的加法和乘法运算。下表是当k取不同值时,一个8×8块解码过程中执行idct加法和乘法的次数是不近似解码的idct过程中加法和乘法的次数的百分比。k123456加法次数2241921601289664性能提升12.5%25.0%37.5%50.0%62.5%75.0%表1近似算法中加法执行次数占原算法中加法次数的百分比k123456乘法次数2001681361047240性能提升13.8%27.6%41.4%55.2%69.0%82.8%表2近似算法中乘法执行次数占原算法中乘法次数的百分比实验证明不进行idct处理的列数越多,视频的质量越差;经过多次实验可以测出一个对视频质量影响最小,同时计算过程最简单的不进行idct的列数。这样,减少了关键帧的解码过程中的计算量,实现了关键帧的解码算法的近计算。2.对预测帧的解码近似算法预测帧的解码是利用读取的当前帧相对于参考帧变化部分的运动矢量和像素残差来重建当前帧的过程。下面分两个方面对预测解码的算法进行近似计算。①在播放一段流媒体视频时,经常有一些画面是静止不变的,或者是变化极其微小,这些画面往往是b帧。b帧的压缩率是最高的,在一个视频中b帧的数量是最多的,所以可以对预测帧——b帧的解码过程做一些近似处理。考虑不对这些变化极其微小的b帧全部进行解码重建的过程,而是用上一帧的内容填充当前帧。由于b帧编码存储的是当前帧与参考帧间变化部分的运动矢量和像素残差,在视频播放前对这部分逐块进行解码像素重建。因此可以统计所有变化块的运动矢量在水平和竖直方向上的偏移量,将所有变化块的整体偏移量作为衡量这个b帧是否要被重建的标准。这个过程让某些b帧的近似重建算法减少了解码过程中大量的计算量,从而减少了耗能。当统计的所有变化块的运动矢量偏移量不满足要完全跳过这个b帧的重建过程时,考虑对每一块的处理,同样是使用读入的当前块与参考帧对应块的运动矢量和像素残差进行预测。若当前块和参考帧对应块的位置偏移很小时,可以近似的认为这个块相对于参考帧对应块没有发生变化,并用参考帧对应块的内容来填充当前块。对视频整体的播放效果没有太大的影响,同时减少了在参考帧中定位最佳匹配块过程的计算量。②在帧间解码的过程中,先是通过运动估计得到变化块的运动矢量,再由运动矢量和像素残差计算出块的像素值,形成预测块,最后对块的dct系数进行解码,并将它加到预测块中,完成预测块的重建过程。最后将块的dct系数解码加到块上的过程其实是对运动块的边缘进行补偿的过程。很多情况下,视频中变化事物的边缘对观看视频的整体效果并没有多大的影响,此时,就可以不对边缘进行补偿,近似的认为边缘没有发生变化。从而减少了加dct系数的步骤,减少了计算量,降低播放设备的功耗。现有技术中对每一个预测块的重建过程,首先根据运动矢量找到当前块在参考帧中最佳的对应块,然后根据定位信息、像素残差信息和参考帧的像素信息经过运动补偿得到预测块的内容,最后将当前块的dct系数加到预测块上完成预测块的边缘补偿。在一些情况下,变化块的边缘对视频整体的效果并没有太大的影响,而dct系数的重建过程有很大的计算量。因此考虑在对边缘信息没有严格要求的情况下可以不去做边缘补偿的步骤,省去大量的计算步骤,降低了设备的负载。本发明中运动矢量是用于帧间预测的二维矢量,提供从解码图像中的坐标到参考图像中的坐标的偏移。在ffmpeg中运动矢量是一个2*4*2的矩阵,其中mv[dir][0][0]表示在坐标轴x上的偏移量,mv[dir][0][1]表示在坐标轴y上的偏移量。dir为0时表示前向预测,dir为1时表示后向预测。b帧的压缩率最高,一个视频中最多的是b帧。在视频中有很多静止或者是变化很小的画面,这些画面在编码时一般都编码为b帧,方便压缩存储,但是在解码过程中重建画面的时候不免要进行很多重复相同的步骤。此时可以考虑不对相差很小的帧都进行解码重建过程,而是用前一帧的内容来填充当前帧的内容。以一个gop(groupofpicture)为一个处理域,设置一个帧所有运动矢量偏移量的绝对值和的全局阈值,计算每一个b帧中所有运动矢量在坐标轴上偏移量的绝对值和,将处理域中偏移量绝对值和最小且大于全局阈值的b帧跳过,不进行解码重建的过程,直接用它前一个参考帧的内容填充当前帧。减少了重建过程中繁琐的计算步骤,近似的重建了当前帧。如图1所示,步骤二,对视频中处理域的预测帧进行近似运算过程:a2.1(101),计算处理域中所有预测帧的全部块的运动矢量偏移量的绝对值和的全局阀值;a2.2(102),找出处理域中全部块的运动矢量偏移量的绝对值和最小的预测帧;a2.3(103),判断当前预测帧全部块的运动矢量偏移量的绝对值和是否大于步骤2.1中的全局阀值;如果满足条件则用当前预测帧前一个参考帧的内容填充当前帧(104),结束;否则进入下一步;a2.4(105)将处理域中的每预测帧作为一作用域进行块处理过程如图2所示,所述a2.4步骤中块处理过程为:将处理域中的每预测帧作为一作用域进行块处理过程。当gop中没有满足跳过的b帧的时,以每一个b帧为一个作用域,设置一个块的运动矢量偏移量的绝对值和的局部阈值,计算当前b帧中所有块的运动矢量偏移量的绝对值和。对小于局部阈值的块不进行重建过程,直接用参考帧的对应块的内容直接填充当前块的内容。减少了定位当前块在参考帧中对应块的位置的计算步骤,近似的认为当前块相对与参考帧对应块没有发生变化。步骤一(201),判断预测帧中当前块运动矢量的绝对值和是否小于局部阀值,如果满足条件,则用参考帧对应块的内容填充当前块获得预测块204并进入步骤四(205);否则进入下一步;步骤二(202),根据运动矢量得到最佳匹配块;步骤三(203),根据最佳匹配块和像素残差通过补偿获得预测块;步骤四(205),根据预测块和dct系数相加获得重建块;步骤五(206),根据多个重建块构成预测帧。应当理解的是,这里所讨论的实施方案及实例只是为了说明,对本领域技术人员来说,可以加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1