一种解码方法、解码设备及计算机可读存储介质与流程

文档序号:24814009发布日期:2021-04-27 13:32阅读:97来源:国知局
一种解码方法、解码设备及计算机可读存储介质与流程

1.本申请涉及编解码领域,尤其涉及一种解码方法、解码设备及计算机可读存储介质。


背景技术:

2.随着视频高清化的发展,嵌入式设备(如网络视频录像机)的解码能力受自身硬件的限制越来越大。目前,在无法支持解码多路原高清视频的情况下,嵌入式设备通常会采用降低原高清视频分辨率或减少解码路数的方式完成解码。这样一来,因为解码策略单一,不仅不能完全发挥出嵌入式设备的解码能力,而且因为解码效果不能够符合用户期望,所以用户体验也不够好。


技术实现要素:

3.本申请提供一种解码方法、解码设备及计算机可读存储介质,能够更好的发挥解码设备的解码能力。
4.为达到上述目的,本申请采用如下技术方案:
5.第一方面,提供一种解码方法,应用于解码设备,该方法包括:获取n路视频码流和视频码流中每个子码流的特征参数;每个视频码流包括m个子码流,且至少一个子码流中的子码流的分辨率均不同;特征参数用于表征解码子码流要求的解码能力;n为正整数;n为正整数,m为正整数;根据视频码流中子码流的特征参数和解码设备的总解码能力,确定视频码流中目标子码流的目标帧;解码设备的总解码能力大于或等于所有视频码流中的目标帧要求的解码能力;对视频码流中目标子码流的目标帧进行解码。
6.基于上述技术方案,在对解码设备获取到的多路视频码流进行解码时,可以根据解码设备本身的总解码能力和每路视频码流中不同分辨率子码流的特征参数表征的解码能力,确定视频码流中最终要解码的目标子码流的目标帧,因为目标帧可以不是目标子码流的全部帧,所以其可以在保证子码流分辨率的同时降低对解码能力的需求,这样一来,便可以在解码路数和解码出的视频清晰度两个方面保证解码效果,更好的发挥出解码设备的解码能力,提高用户体验。
7.可选的,根据视频码流中子码流的特征参数和解码设备的总解码能力,确定视频码流中目标子码流的目标帧,包括:
8.在确定总解码能力小于所有视频码流中特次子码流以预设抽帧方式进行抽帧后的抽帧结果要求的解码能力的总和的情况下,确定视频码流中特征参数表征的解码能力最小的最次子码流为目标子码流,并确定目标子码流中的所有帧为目标帧;特次子码流为m个子码流中特征参数表征的解码能力仅大于最次子码流的特征参数表征的解码能力的子码流;预设抽帧方式为视频码流的编码方式支持的所有抽帧方式中抽帧比最小的抽帧方式;抽帧比为抽帧方式对目标视频码流进行抽帧后的抽帧结果的帧数占目标视频码流的总帧数的占比;
9.和/或,
10.在确定总解码能力大于或等于所有视频码流中特次子码流以预设抽帧方式进行抽帧后的抽帧结果要求的解码能力的总和的情况下,根据视频码流中子码流的特征参数和解码设备的总解码能力,确定视频码流中目标子码流的目标帧。
11.可选的,该方法还包括:若n大于最大解码通道数,则确定总解码能力小于所有视频码流中特次子码流以预设抽帧方式进行抽帧后的抽帧结果要求的解码能力的总和;最大解码通道数为解码设备支持的解码通道数的最大值;若n小于或等于最大解码通道数,则确定总解码能力大于或等于所有视频码流中特次子码流以预设抽帧方式进行抽帧后的抽帧结果要求的解码能力的总和。
12.进一步可选的,在n路视频码流的编码方式为目标编码方式,且目标编码方式支持的抽帧方式包括x个抽帧方式且x为正整数的情况下,根据视频码流中子码流的特征参数和解码设备的总解码能力,确定视频码流中目标子码流的目标帧,包括:在n路视频码流用于回放播放的情况下,则根据回放倍数、视频码流中子码流的特征参数和解码设备的总解码能力确定视频码流中目标子码流的目标帧;和/或,在n路视频码流用于预览播放的情况下,执行第一操作。
13.上述第一操作包括:在总解码能力大于或等于所有视频码流中第i子码流的特征参数表征的解码能力的总和的情况下,确定第i子码流中的所有帧为目标帧;i的初始值为1,i的最大值为m,i为正整数;第i子码流的特征参数表征的解码能力大于第i+1子码流的特征参数表征的解码能力。在i等于m,且总解码能力小于所有视频码流的第i子码的特征参数表征的解码能力的总和情况下,将视频码流的第m子码流的全部帧确定为视频码流的目标帧后,按照预设顺序逐路将n路视频码流的目标帧更新为空,直至所有视频码流的目标帧要求的解码能力小于或等于总解码能力为止;在i小于m,且总解码能力小于所有视频码流中第i子码流的特征参数对应的解码能力的总和的情况下,执行第二操作。
14.上述第二操作包括:若k=x,则将i更新为i+1,并重新执行第一操作;若k<x,按照第k抽帧方式对第j路视频码流中第i子码流抽帧;若j<n,且总解码能力大于或等于进行了第i子码流以第k抽帧方式抽帧的第一视频码流的第i子码流的抽帧结果要求的解码能力,和其他未进行第i子码流以第k抽帧方式抽帧但进行了第i子码流以第y抽帧方式抽帧的第二视频码流的第i子码流的抽帧结果要求的解码能力的总和,则确定第一视频码流的第i子码流以第k抽帧方式抽帧的抽帧结果为第一视频码流的目标子码流的目标帧,以及第二视频码流的第i子码流以第y抽帧方式抽帧的抽帧结果为第二视频码流的目标子码流的目标帧;若j<n,且总解码能力小于第一视频码流中第i子码流以第k抽帧方式抽帧的抽帧结果要求的解码能力和第二视频码流的第i子码流以第y抽帧方式抽帧的抽帧结果要求的解码能力的总和,则将j更新为j+1,并重新执行第二操作;若j等于n,且总解码能力小于所有视频码流进行第i子码流以第k抽帧方式抽帧的抽帧结果要求的解码能力的总和,则将k更新为k+1,并重新执行第二操作。
15.本申请中,j的初始值为1,j的最大值为n,j为正整数;k的初始值为1,k的最大值为x,k为正整数,第k抽帧方式的抽帧比大于第k+1抽帧方式的抽帧比;当k≥2时,y为k

1;当k=1时,第y抽帧方式的抽帧比为1。
16.进一步可选的,根据回放倍数、视频码流中子码流的特征参数和解码设备的总解
码能力确定视频码流中目标子码流的目标帧,包括:在回放倍数为单倍,或者回放倍数为多倍且小于或等于预设倍数的情况的,执行第一操作;在回放倍数为多倍且大于预设倍数的情况下,根据视频码流中最优子码流的特征参数抽取视频码流中最优子码流的关键帧作为视频码流的目标子码流的目标帧;最优子码流为m个子码流中分辨率最高的子码流。
17.可选的,目标编码方式为可适性视讯编码svc,svc支持的抽帧方式包括两个抽帧方式,两个抽帧方式中的第一抽帧方式为1/2svc抽帧,两个抽帧方式中的第二抽帧方式为1/4svc抽帧。
18.可选的,在n路视频码流用于预览播放的情况下,还包括:在预览未结束的情况下,若n路视频码流中存在预设特征的目标视频码流,则重新根据解码设备的总解码能力和重新获取的n路视频码流中每个子码流的特征参数,确定n路视频码流中每一路视频码流的目标子码流的目标帧;预设特征至少包括以下任一项:视频码流数据为空、指定用于解码的子码流、子码流的分辨率改变;对n路视频码流中每一路视频码流的目标子码流的目标帧进行解码。
19.第二方面,提供一种解码设备,包括:获取模块、处理模块和解码模块。其中,获取模块,被配置为获取n路视频码流和视频码流中每个子码流的特征参数;每路视频码流包括m个子码流,且m个子码流中的子码流的分辨率均不同;特征参数用于表征解码子码流要求的解码能力;n为正整数;n为正整数,m为正整数;处理模块,被配置为根据解码设备的总解码能力和获取模块获取的视频码流中子码流的特征参数,确定视频码流中目标子码流的目标帧;解码设备的总解码能力大于或等于所有视频码流中的目标帧要求的解码能力;解码模块,被配置为对处理模块确定的视频码流中目标子码流的目标帧进行解码。
20.可选的,处理模块具体被配置为:在确定总解码能力小于获取模块获取的所有视频码流中特次子码流以预设抽帧方式进行抽帧后的抽帧结果要求的解码能力的总和的情况下,确定视频码流中特征参数表征的解码能力最小的最次子码流为目标子码流,并确定目标子码流中的所有帧为目标帧;特次子码流为m个子码流中特征参数表征的解码能力仅大于最次子码流的特征参数表征的解码能力的子码流;预设抽帧方式为视频码流的编码方式支持的所有抽帧方式中抽帧比最小的抽帧方式;抽帧比为抽帧方式对目标视频码流进行抽帧后的抽帧结果的帧数占目标视频码流的总帧数的占比;和/或,在确定总解码能力大于或等于获取模块获取的所有视频码流中特次子码流以预设抽帧方式进行抽帧后的抽帧结果要求的解码能力的总和的情况下,根据获取模块获取的视频码流中子码流的特征参数和解码设备的总解码能力,确定视频码流中目标子码流的目标帧。
21.进一步可选的,处理模块具体被配置为:若n大于最大解码通道数,则确定总解码能力小于获取模块获取的所有视频码流中特次子码流以预设抽帧方式进行抽帧后的抽帧结果要求的解码能力的总和;最大解码通道数为解码设备支持的解码通道数的最大值;若n小于或等于最大解码通道数,则确定总解码能力大于或等于获取模块获取的所有视频码流中特次子码流以预设抽帧方式进行抽帧后的抽帧结果要求的解码能力的总和。
22.可选的,在n路视频码流的编码方式为目标编码方式,且目标编码方式支持的抽帧方式包括x个抽帧方式且x为正整数的情况下,在处理模块确定总解码能力大于或等于获取模块获取的所有视频码流中特次子码流进行预设抽帧后的抽帧结果要求的解码能力的总和的情况下,处理模块具体被配置为:在n路视频码流用于回放播放的情况下,则根据回放
倍数、解码设备的总解码能力和获取模块获取的视频码流中子码流的特征参数确定视频码流中目标子码流的目标帧;和/或,在n路视频码流用于预览播放的情况下,执行第一操作。
23.上述第一操作包括:
24.在总解码能力大于或等于所有视频码流中第i子码流的特征参数表征的解码能力的总和的情况下,确定第i子码流中的所有帧为目标帧;i的初始值为1,i的最大值为m,i为正整数;第i子码流的特征参数表征的解码能力大于第i+1子码流的特征参数表征的解码能力。
25.在i等于m,且总解码能力小于所有视频码流的第i子码的特征参数表征的解码能力的总和情况下,将视频码流的第m子码流的全部帧确定为视频码流的目标帧后,按照预设顺序逐路将n路视频码流的目标帧更新为空,直至所有视频码流的目标帧要求的解码能力小于或等于总解码能力为止。
26.在i小于m,且总解码能力小于所有视频码流中第i子码流的特征参数对应的解码能力的总和的情况下,执行第二操作;第二操作包括:
27.若k=x,则将i更新为i+1,并重新执行第一操作;若k<x,按照第k抽帧方式对第j路视频码流中第i子码流抽帧;若j<n,且总解码能力大于或等于进行了第i子码流以第k抽帧方式抽帧的第一视频码流的第i子码流的抽帧结果要求的解码能力,和其他未进行第i子码流以第k抽帧方式抽帧但进行了第i子码流以第y抽帧方式抽帧的第二视频码流的第i子码流的抽帧结果要求的解码能力的总和,则确定第一视频码流的第i子码流以第k抽帧方式抽帧的抽帧结果为第一视频码流的目标子码流的目标帧,以及第二视频码流的第i子码流以第y抽帧方式抽帧的抽帧结果为第二视频码流的目标子码流的目标帧;若j<n,且总解码能力小于第一视频码流中第i子码流以第k抽帧方式抽帧的抽帧结果要求的解码能力和第二视频码流的第i子码流以第y抽帧方式抽帧的抽帧结果要求的解码能力的总和,则将j更新为j+1,并重新执行第二操作;若j等于n,且总解码能力小于所有视频码流进行第i子码流以第k抽帧方式抽帧的抽帧结果要求的解码能力的总和,则将k更新为k+1,并重新执行第二操作。
28.本申请中,j的初始值为1,j的最大值为n,j为正整数;k的初始值为1,k的最大值为x,k为正整数,第k抽帧方式的抽帧比大于第k+1抽帧方式的抽帧比;当k≥2时,y为k

1;当k=1时,第y抽帧方式的抽帧比为1。
29.进一步可选的,在n路视频码流用于回放播放的情况下,处理模块具体被配置为:在回放倍数为单倍,或者回放倍数为多倍且小于或等于预设倍数的情况下,执行第一操作;在回放倍数为多倍且大于预设倍数的情况下,根据视频码流中最优子码流的特征参数抽取视频码流中最优子码流的关键帧作为视频码流的目标子码流的目标帧;最优子码流为m个子码流中分辨率最高的子码流。
30.可选的,处理模块还被配置为:在预览未结束的情况下,若获取模块获取的n路视频码流中存在预设特征的目标视频码流,则重新根据解码设备的总解码能力和获取模块重新获取的n路视频码流中每个子码流的特征参数,确定n路视频码流中每一路视频码流的目标子码流的目标帧;预设特征至少包括以下任一项:视频码流数据为空、指定用于解码的子码流、子码流的分辨率改变;解码模块还被配置为对处理模块确定的n路视频码流中每一路视频码流的目标子码流的目标帧进行解码。
31.第三方面,提供一种解码设备,包括存储器和用于存储处理器可执行指令的存储器;处理器被配置为执行指令,以实现如第一方面提供的解码方法。
32.第四方面,提供一种计算机可读存储介质,计算机可读存储介质包括计算机执行指令,当计算机执行指令在解码设备上运行时,使得解码设备执行如第一方面提供的解码方法。
33.第五方面,提供一种计算机程序产品,包括计算机指令,当该计算机指令在解码设备上运行时,使得解码设备执行如第一方面提供的解码方法。
34.可以理解地,上述提供的第三方面至第五方面的方案,均用于执行上文所提供的对应的解码方法,因此,其所能达到的有益效果可参考上文所提供的对应的解码方法中的有益效果,此处不再赘述。
35.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
36.为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1为本申请实施例提供的一种监控系统的结构示意图;
38.图2为本申请实施例提供的一种监控系统的交互示意图;
39.图3为本申请实施例提供的一种解码方法的流程示意图一;
40.图4为本申请实施例提供的一种解码方法的流程示意图二;
41.图5为本申请实施例提供的一种解码方法的流程示意图三;
42.图6为本申请实施例提供的一种确定目标帧的流程示意图;
43.图7为本申请实施例提供的一种解码方法的流程示意图四;
44.图8为本申请实施例提供的一种解码方法的流程示意图五;
45.图9为本申请实施例提供的一种解码方法的流程示意图六;
46.图10为本申请实施例提供的一种解码方法的补充流程示意图;
47.图11为本申请实施例提供的另一种解码方法的补充流程示意图;
48.图12为本申请实施例提供的一种解码设备的结构示意图;
49.图13为本申请实施例提供的另一种解码设备的结构示意图。
具体实施方式
50.下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
51.需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应
被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
52.还需要说明的是,本申请实施例中,“的(英文:of)”,“相应的(英文:corresponding,relevant)”和“对应的(英文:corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
53.为了便于清楚描述本申请实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不是在对数量和执行次序进行限定。
54.为了便于理解本发明,下面先对本发明涉及到的相关术语进行解释。
55.svc:全称为scalable video coding,即可适性视讯编码或可分级视频编码,可提升更大的编码弹性,并具有时间可适性、空间可适性及讯杂比(质量)可适性三大特性。
56.抽帧:按照预设规则(例如svc规定的抽帧规则)对视频码流的部分帧进行抽取用于解码。示例性的,将帧率为60的视频码流进行1/2抽帧后则其帧率变为30。
57.nvr:全称为network video recorder,即网络视频录像机,是网络视频监控系统的存储转发部分,nvr与视频编码器或网络摄像机协同工作,具体解码能力,能够完成视频的录像、存储及转发。
58.ipc:全称为ip camera,即网络摄像机,是一种结合传统摄像机与网络技术所产生的新一代摄像机,它可以将影像通过网络传至地球另一端,且远端的浏览者不需用任何专业软件,只要标准的网络浏览器(如microsoft ie或netscape)即可监视其影像。网络摄像机一般由镜头、图像、声音传感器、a/d转换器、图像、声音、控制器网络服务器、外部报警、控制接口等部分组成。
59.关键帧:也叫i帧,它是帧间压缩编码里的重要帧;它是一个全帧压缩的编码帧;解码时仅用i帧的数据就可重构完整图像;i帧不需要参考其他画面而生成。
60.目前应用在监控领域的网络硬盘录像机,由于其属于嵌入式设备,所以解码能力有限,对于多路高清视频码流,往往需要通过降低视频码流的分辨率或者减少路数,已完成解码。这样一来,即造成用户的体验不佳,而且不能很好的利用到网络硬盘录像机的解码能力。
61.针对上述问题,本申请实施例提供一种应用在解码设备上的解码方法,结合解码设备的总解码能力和其接收到的多路视频码流中子码流需求的解码能力,确定最终可以最大程度上解码的视频码流的目标子码流的目标帧,提高对解码设备的解码能力的利用程度。
62.本申请实施例提供的解码方法可以使用于监控系统。图1示出了该监控系统的一种可能的结构。如图1所示,该监控系统,包括具备解码能力的播放器01和至少一个摄像装置02(02

1和02

2)。播放器01可以和摄像装置02之间通过无线或有线通讯连接。
63.示例性的,播放器01可以为各类具备有解码能力、播放能力和存储能力的终端,例如个人计算机、笔记本电脑、智能手机、平板电脑等计算设备。也可以为硬盘录像机(digital video recorder,dvr)或网络视频录像机等录像机设备。
64.摄像装置02,具体用于采集指定区域的图像并对其进行编码后发送给播放器01,根据实际需求的不同,该摄像装置在对指定区域进行摄像后,获取的视频数据会采用特定
的编码方式编码成不同成像质量(不同分辨率和不同码率)的视频码流(即本申请中属于同一视频码流的子码流)发送给播放器01,以供播放器01在不同情况下使用。例如在预览时,播放器01可以对摄像装置02传输的成像质量最高的视频码流进行解码播放,在回放时,如果用户需要同时观看多个视频码流且不需要关注视频细节时,则可以解码播放性成像质量较低的视频码流。示例性的,该摄像装置02可以为网络摄像机或其他各类具备编码能力的摄像头。
65.在本申请实施例中,在编码过程中需要对视频码流进行抽帧,而抽帧则需要视频码流具备特殊的编码方式,例如svc。所以在实施本申请提供的技术方案时,需要开启摄像装置的特殊编码能力。具体的,以播放器为nvr,摄像装置为ipc,特殊编码方式为svc为例,整个监控系统的组成以及解码参照图2所示,具体包括以下步骤:
66.(1)用户触发nvr添加ipc。
67.其中,用户可以通过可视的操作屏对nvr的相关功能进行触发开启。
68.(2)nvr向ipc发送添加请求,添加请求用于请求ipc能力集。
69.其中,ipc能力集中包括了ipc是否支持svc。
70.(3)ipc向nvr返回ipc能力集。
71.(4)nvr根据该ipc能力集判断ipc是否支持svc。
72.(5)在nvr确定ipc支持svc时,nvr向ipc发送开启svc的指令。
73.(6)ipc开启svc后通知nvr,完成ipc的添加。
74.(7)用户触发nvr进行预览,nvr根据自身解码能力对ipc发送的以svc编码的视频码流进行解码。
75.其中,nvr会根据自身解码能力和ipc传输的视频码流需要的解码能力确定解码策略,具体包括解主码流还是次码流、是否做svc抽帧以及是否叠加无资源等的判断,从而得到最优解码方式。其中,主码流和子码流是以为ipc传输的视频码流中包括两个子码流为例,分辨率高的为主码流,分辨率低的为次码流;svc抽帧具体分为1/2抽帧和1/4抽帧,1/2抽帧情况下解码能力一般可以达到翻倍的效果,即比如从可以解码4个1080p*60帧的视频码流提升到可以解码8个1080p*30帧的视频码流,1/4抽帧理论上可以翻2番,即从可以解码4个1080p*60帧的视频码流提升到可以解码16个1080p*15帧的视频码流。其中,1080p为一种高清分辨率(1920
×
1080)对应的显示格式,在本申请中用于表明其对应的分辨率。1080p后乘的数字为视频码流的帧率的数值。
76.(8)用户触发nvr进行回放,nvr根据自身解码能力对自身存储的以svc编码的视频码流的进行解码回放。
77.其中,nvr会根据自身解码能力和存储的视频码流需要的解码能力确定解码策略,具体和预览解码过程相似,区别在于因为存储数据的读取速度可能会受到硬件限制,而且因为回放会存在倍数回放的情况,如果回放倍数过大,全帧率解码收益会较小,而且会占用较多资源,所以在回放倍数过大的情况,会进行抽关键帧后倍速播放。
78.示例性的,为了方便比较,在本申请实施例中,播放器(解码设备)的总解码能力可以为根据其可以同时解码某种分辨率的视频码流的路数量化得出,例如若该播放器可以同时解码4路1080p帧率30的视频码流,则可以将其总解码能力设定为800,那么若可以同时解码8路1080p帧率30的视频码流,则其总解码能力则可以设定为1600,具体总解码能力如何
量化根据实际而定。当然,总解码能力也可以不进行量化,只要可以相互比较即可。
79.示例性的,视频码流或抽帧得到的视频码流(即本申请中的抽帧结果)要求的解码能力则可以根据其特征参数(分辨率,帧率)得出,例如1080p帧率30的视频码流要求的解码能力可以为200,那么720p帧率30的视频码流要求的解码能力则为100,1080p帧率15的视频码流要求的解码能力也为100。当然,这里的解码能力也可以不进行量化,只要可以相互比较即可。
80.基于上述图1和图2的相关表述,参照图3所示,本申请实施例提供一种解码方法,应用于解码设备,该解码设备可以为图1中的播放器或者播放器中具备解码能力的一部分。该方法具体可以包括301

303:
81.301、获取n路视频码流和视频码流中每个子码流的特征参数。
82.其中,每路视频码流包括m个子码流,且至少一个子码流中的子码流的分辨率均不同;特征参数用于表征解码子码流要求的解码能力;n为正整数;n为正整数,m为正整数。示例性的,特征参数至少包括:分辨率、帧率。在本申请中,因为同一视频码流的子码流必然是由同一拍摄装置拍摄并编码得到的,所以其帧率相同。对于不同视频码流而言,因为其对应的拍摄装置是不同的,对应的拍摄区域也可能是不同的,所以不同视频码流对应的子码流的帧率可能不同。另外,在本申请实施例中,子码流的特征参数可以存在于视频码流中由解码设备在接收到视频码流时获取,也可以由拍摄装置(例如ipc)在传输视频码流时,将相应参数发送给解码设备,本申请对此不做具体限制。
83.具体的,当这里的n路视频码流是用于预览播放时,即此时解码设备是用于实时对其接收到的视频码流进行解码时,这里所说的m个子码流为解码设备对应的某一个拍摄装置(例如ipc)传输给解码设备的对应同一拍摄场景的不同成像质量(分辨率不同,需求的解码能力不同)的视频码流。当这里的n路视频码流是用于回放播放时,即此时解码设备用于从自身对应的存储器中提取相应的视频码流进行解码播放时,这里的m个子码流为存储器存储的对应同一拍摄场景的不同成像质量的视频码流。
84.302、根据视频码流中子码流的特征参数和解码设备的总解码能力,确定视频码流中目标子码流的目标帧。
85.其中,解码设备的总解码能力大于或等于所有视频码流中的目标帧要求的解码能力。
86.可选的,结合图3,参照图4所示,302步骤具体可以包括3021

3023:
87.3021、判断总解码能力是否小于最低解码能力需求。
88.其中,最低解码能力需求为所有视频码流中特次子码流以预设抽帧方式进行抽帧后的抽帧结果要求的解码能力的总和;特次子码流为m个子码流中特征参数表征的解码能力仅大于最次子码流的特征参数表征的解码能力的子码流。预设抽帧方式为视频码流的编码方式支持的所有抽帧方式中抽帧比最小的抽帧方式;抽帧比为抽帧方式对目标视频码流进行抽帧后的抽帧结果的帧数占目标视频码流的总帧数的占比。例如以编码方式为svc为例,svc支持的1/2svc抽帧方式的抽帧比为1/2,svc支持的1/4svc抽帧方式的抽帧比为1/4,则预设抽帧方式为1/4svc抽帧方式。
89.当确定总解码能力小于最低解码能力需求时,执行3022;当确定总解码能力大于或等于最低解码能力需求时,执行3023。
90.当然,实际中可以不存在上述3021步骤,直接在确定总解码能力小于最低解码能力需求的情况下执行3022,在确定总解码能力大于或等于最低解码能力需求的情况下执行3023即可。另外,在本申请实中,可以仅存在3022,也可以仅存在3023,也可以两者同时存在,本申请对此不做具体限制。
91.3022、确定视频码流中特征参数表征的解码能力最小的最次子码流为目标子码流,并确定目标子码流中的所有帧为目标帧。
92.当总解码能力小于所有视频码流中特次子码流以预设抽帧方式进行抽帧后的抽帧结果要求的解码能力的总和时,表明解码设备无法同时对n路视频码流中成像质量较好的子码流进行解码,所以为了不降低用户对路数的需求,又达到解码的目的,此时只能使用成像质量最低的最次子码流进行解码。当然,如果n路最次子码流所需的解码能力仍然大于解码设备的总解码能力,则需要根据预设规则选择部分路的视频码流不进行解码,后续显示时只需要显示无资源即可。
93.3023、根据视频码流中子码流的特征参数和解码设备的总解码能力,确定视频码流中目标子码流的目标帧。
94.进一步可选的,为了简化3021所需的确定过程,实际中解码设备可以根据其自身的解码能力以及其配合的摄像装置的编码能力提前计算得出获取x(正整数)路视频码流时,可以对所有视频码流中特此子码流以预设抽帧方式抽帧后的抽帧结果同时进行解码,那么当视频码流的路数大于x时,则可以直接使用所有视频码流的最次子码流进行解码,所以可选的:若n大于最大解码通道数(即上述的x),则确定总解码能力小于所有视频码流中特次子码流以预设抽帧方式进行抽帧后的抽帧结果要求的解码能力的总和;若n小于或等于最大解码通道数,则确定总解码能力大于或等于所有视频码流中特次子码流以预设抽帧方式进行预设抽帧后的抽帧结果要求的解码能力的总和。
95.基于3021

3023提供的方案,因为可以快捷的在解码设备的总解码能力不足时及时使用所有视频码流的最次子码流进行解码,在解码设备的总解码能力完全高于所有最次子码流需要的解码能力总和时,根据视频码流中子码流的特征参数和解码设备的总解码能力,确定视频码流中目标子码流的目标帧。所以可以提高整个解码过程的效率。
96.进一步可选的,因为实际解码对应的场景存在两种,即预览播放和回放播放,两种场景中因为回放播放会涉及到数据读取效率的问题,需要结合回放倍数考虑解码策略(具体为确定视频码流的目标子码流和目标帧),所以为了达到区分的目的,结合图4,参照图5所示,在n路视频码流的编码方式为目标编码方式,且目标编码方式支持的抽帧方式包括x个抽帧方式且x为正整数的情况下,3023步骤可以包括s1和s2:
97.s1、在n路视频码流用于预览播放的情况下,执行第一操作。
98.其中,第一操作具体包括:
99.在总解码能力大于或等于所有视频码流中第i子码流的特征参数表征的解码能力的总和的情况下,确定第i子码流中的所有帧为目标帧;i的初始值为1,i的最大值为m,i为正整数;第i子码流的特征参数表征的解码能力大于第i+1子码流的特征参数表征的解码能力;
100.在i等于m,且总解码能力小于所有视频码流的第i子码的特征参数表征的解码能力的总和情况下,将视频码流的第m子码流的全部帧确定为视频码流的目标帧后,按照预设
顺序逐路将n路视频码流的目标帧更新为空,直至所有视频码流的目标帧要求的解码能力小于或等于总解码能力为止;
101.在i小于m,且总解码能力小于所有视频码流中第i子码流的特征参数对应的解码能力的总和的情况下,执行第二操作。
102.上述第二操作可以包括:
103.若k=x,则将i更新为i+1,并重新执行第一操作;
104.若k<x,按照第k抽帧方式对第j路视频码流中第i子码流抽帧;
105.若j<n,且总解码能力大于或等于进行了第i子码流以第k抽帧方式抽帧的第一视频码流的第i子码流的抽帧结果要求的解码能力,和其他未进行第i子码流以第k抽帧方式抽帧但进行了第i子码流以第y抽帧方式抽帧的第二视频码流的第i子码流的抽帧结果要求的解码能力的总和,则确定第一视频码流的第i子码流以第k抽帧方式抽帧的抽帧结果为第一视频码流的目标子码流的目标帧,以及第二视频码流的第i子码流以第y抽帧方式抽帧的抽帧结果为第二视频码流的目标子码流的目标帧;
106.若j<n,且总解码能力小于第一视频码流中第i子码流以第k抽帧方式抽帧的抽帧结果要求的解码能力和第二视频码流的第i子码流以第y抽帧方式抽帧的抽帧结果要求的解码能力的总和,则将j更新为j+1,并重新执行第二操作;
107.若j等于n,且总解码能力小于所有视频码流进行第i子码流以第k抽帧方式抽帧的抽帧结果要求的解码能力的总和,则将k更新为k+1,并重新执行第二操作;
108.j的初始值为1,j的最大值为n,j为正整数;k的初始值为1,k的最大值为x,k为正整数,第k抽帧方式的抽帧比大于第k+1抽帧方式的抽帧比;当k≥2时,y为k

1;当k=1时,第y抽帧方式的抽帧比为1。具体的,第y抽帧方式的抽帧比为1即表明不抽帧或者抽全部帧,此时第i子码流以第y抽帧方式抽帧的抽帧结果要求的解码能力即为第i子码流的特征参数对应的解码能力。需要说明的是,如果n个视频码流包括的子码流数量不同时,则在执行第一步骤时会出现i为某个值时,一类视频码流的存在对应的第i子码流,另一类视频码流不存在对应的第i子码流,此时将另一类视频码流的最差子码流确定为该第i子码流。另外,实际中不同路视频码流的编码方式可以不同,其支持的抽帧方式也可以不同,此时存在以下两种情况:
109.第一种情况:如果不同的编码方式对应的抽帧方式的数量相同,也可以使用前述的目标帧确定方式,仅需要在对某个视频码流的子码流抽帧时,使用其对应的抽帧方式即可。例如a视频码流使用a编码方式,支持抽帧比较大的a1抽帧方式和抽帧比较小的a2抽帧方式两种抽帧方式,b视频码流使用b编码方式,支持抽帧比较大b1抽帧方式和抽帧比较小的b2抽帧方式两种抽帧方式,则前述实施例中当k为1时,第k抽帧方式则根据视频码流的不同可以为a1抽帧方式或者b1抽帧方式。
110.第二种情况,如果不同的编码方式对应的抽帧方式的数量不同,也可以使用前述的目标帧确定方式,则需要在对某个视频码流的子码流抽帧时,使用其对应的抽帧方式的基础上,一旦某个视频码流对应的抽帧方式此时已经是其对应的抽帧比最小的抽帧方式时,则不再对其抽帧方式进行更新。例如a视频码流使用a编码方式,支持抽帧比最大的a1抽帧方式、抽帧比较大的a2抽帧方式和抽帧比较小的a3抽帧方式两种抽帧方式,b视频码流使用b编码方式,支持抽帧比较大b1抽帧方式和抽帧比较小的b2抽帧方式两种抽帧方式,则前
述实施例中当k为3时,第k抽帧方式则根据视频码流的不同可以为a3抽帧方式或者b2抽帧方式。
111.为了更清楚的说明上述第一步骤的内容,示例性的,以m为2,目标编码方式为svc,svc支持的抽帧方式包括两个抽帧方式,两个抽帧方式中的第一抽帧方式为1/2svc抽帧,两个抽帧方式中的第二抽帧方式为1/4svc抽帧为例,下面结合图6进行说明。参照图6所示,整个流程包括x1

x8:
112.x1、按照第一预设顺序逐路以1/2svc抽帧的方式对n路视频码流中的视频码流中的进行最优子码流的抽帧。
113.x1后执行x2和x3。
114.x2、在所有视频码流的最优子码流进行1/2svc抽帧后的抽帧结果要求的解码能力的总和大于总解码能力的情况下,按照第一预设顺序逐路以1/4svc抽帧的方式对n路视频码流中的视频码流中的进行最优子码流的抽帧。
115.其中,抽帧结果要求的解码能力由抽帧结果对应的子码流的特征参数结合抽帧结果对应的抽帧方式确定;最次子码流要求的解码能力由最次子码流对应的特征参数确定。
116.x2后执行x4和x5。
117.x3、在第五视频码流的最优子码流进行1/2svc抽帧后的抽帧结果要求的解码能力和第六视频码流的最优子码流的特征参数表征的解码能力的总和小于或等于总解码能力的情况下,停止按照第一预设顺序逐路以1/2svc抽帧的方式对n路视频码流中的视频码流中的进行最优子码流的抽帧,并将第五视频码流的最优子码流进行1/2svc抽帧后的抽帧结果确定为第一视频码流的目标子码流的目标帧,将第六视频码流的最优子码流的全部帧确定为第六视频码流的目标子码流的目标帧。
118.其中,第五视频码流为n路视频码流中的一路或多路,第六视频码流为n路视频码流中除第五视频码流外的视频码流。
119.x4、在所有视频码流的最优子码流进行1/4svc抽帧后的抽帧结果要求的解码能力的总和大于总解码能力的情况下,按照第二预设顺序逐路将n路视频码流中的视频码流的最次子码流的全部帧确定为视频码流的目标子码流的目标帧。
120.x4后执行x6、x7和x8。
121.x5、在第七视频码流的最优子码流进行1/4svc抽帧后的抽帧结果要求的解码能力和第八视频码流的最优子码流进行1/2svc抽帧后的抽帧结果要求的解码能力的总和小于或等于总解码能力的情况下,停止按照第一预设顺序逐路以1/4svc抽帧的方式对n路视频码流中的视频码流中的进行最优子码流的抽帧,并将第七视频码流的最优子码流进行1/4svc抽帧的抽帧结果确定为第七视频码流的目标子码流的目标帧,将第八视频码流的最优子码流进行1/2svc抽帧的抽帧结果确定为第八视频码流的目标子码流的目标帧。
122.其中,第七视频码流为n路视频码流中的一路或多路,第八视频码流为n路视频码流中除第七视频码流外的视频码流。
123.x6、在第三视频码流的最次子码流的特征参数表征的解码能力和第四视频码流的最优子码流进行1/4svc抽帧后抽帧结果要求的解码能力的总和小于或等于总解码能力的情况下,停止按照第二预设顺序逐路将n路视频码流中的视频码流的最次子码流的全部帧确定为视频码流的目标子码流的目标帧,并将第三视频码流的最次子码流的全部帧确定为
第三视频码流的目标子码流的目标帧,将第四视频码流的最优子码流进行1/4svc抽帧后的抽帧结果确定为第四视频码流的目标子码流的目标帧。
124.其中,第三视频码流为n路视频码流中的一路或多路,第四视频码流为n路视频码流中除第三视频码流外的视频码流。
125.x7、在所有视频码流的最次子码流的特征参数表征的解码能力的总和小于或等于总解码能力的情况下,将视频码流的最次子码流的全部帧确定为视频码流的目标子码流的目标帧。
126.x8、在所有视频码流的最次子码流的特征参数表征解码能力的总和大于总解码能力的情况下,将视频码流的最次子码流的全部帧确定为视频码流的目标子码流的目标帧后,按照第三预设顺序,逐路将n路视频码流中的视频码流的目标子码流的目标帧设为无资源,直至所有视频码流的目标子码流的目标帧要求的解码能力的总和小于或等于总解码能力。
127.这里的将目标帧设为无资源,即为前述实施例中的将目标帧更新为空,具体用于表明后续播放时在对应画面上显示指示无资源的指示信息。例如显示“无资源”。
128.一种可实现的方式中,以m为2(即每个视频码流包括两个子码流,在图7对应的实施例中,将两个子码流中分辨率高的称为主码流,分辨率低的称为次码流),目标编码方式为svc,svc支持的抽帧方式包括两个抽帧方式,两个抽帧方式中的第一抽帧方式为1/2svc抽帧,两个抽帧方式中的第二抽帧方式为1/4svc抽帧为例,在n路视频码流用于预览播放时,参照图7所示,本申请实施例提供的解码方法可以包括:401

414:
129.401、判断n是否大于x。
130.其中x为最大解码通道数,解码设备的总解码能力越大,x越大。当n大于x时,执行402;当n小于x,执行403。
131.401步骤的具体目的可以参照前述3022和3023的相关表述,此处不再赘述。
132.402、使用视频码流的次码流预览。
133.402步骤相当于前述实施例中的3022和303步骤。
134.403、判断所有视频码流的主码流对应的解码能力的总和是否大于解码设备的总解码能力。
135.当所有视频码流的主码流对应的解码能力的总和大于解码设备的总解码能力时,执行404;当所有视频码流的主码流对应的解码能力的总和小于或等于解码设备的总解码能力时,执行405。
136.404、使用n路视频码流的主码流进行预览。
137.405、按照预设顺序逐路对n路视频码流的主码流进行1/2svc抽帧,并在每一次对主码流进行1/2svc抽帧后执行406,当所有主码流都进行了1/2svc抽帧后执行408。
138.406、判断当前进行了1/2svc抽帧的主码流的抽帧结果要求的解码能力和未进行1/2svc抽帧的主码流对应的解码能力的和是否大于解码设备的总解码能力。
139.当确定当前进行了1/2svc抽帧的主码流的抽帧结果要求的解码能力和未进行1/2svc抽帧的主码流对应的解码能力的和大于解码设备的总解码能力时,执行407;当确定当前进行了1/2svc抽帧的主码流的抽帧结果要求的解码能力和未进行1/2svc抽帧的主码流对应的解码能力的和小于或等于解码设备的总解码能力时,执行405。
140.407、使用进行了1/2svc抽帧的主码流的抽帧结果和未进行1/2svc抽帧的主码流进行解码预览。
141.当所有主码流都进行1/2svc抽帧时,未进行1/2svc抽帧的主码流不存在,此时407可以为使用进行了1/2svc抽帧的主码流的抽帧结果进行解码预览。
142.408、判断所有主码流进行1/2svc抽帧的抽帧结果的解码能力的和是否大于解码设备的总解码能力。
143.当确定所有主码流进行1/2svc抽帧的抽帧结果的解码能力的和大于解码设备的总解码能力时,执行409;当确定所有主码流进行1/2svc抽帧的抽帧结果的解码能力的和小于或等于解码设备的总解码能力时,执行407。
144.409、按照预设顺序逐路对n路视频码流的主码流进行1/4svc抽帧,并在每一次对主码流进行1/4svc抽帧后执行410,当所有主码流都进行了1/2svc抽帧后执行412。
145.410、判断当前进行了1/4svc抽帧的主码流的抽帧结果要求的解码能力和仅进行1/2svc抽帧的主码流的抽帧结果对应的解码能力的和是否大于解码设备的总解码能力。
146.当确定当前进行了1/4svc抽帧的主码流的抽帧结果要求的解码能力和仅进行1/2svc抽帧的主码流的抽帧结果对应的解码能力的和大于解码设备的总解码能力时,执行411;当确定当前进行了1/4svc抽帧的主码流的抽帧结果要求的解码能力和仅进行1/2svc抽帧的主码流的抽帧结果对应的解码能力的和小于或等于解码设备的总解码能力时,执行409。
147.411、使用进行了1/4svc抽帧的主码流的抽帧结果和仅进行1/2svc抽帧的主码流的抽帧结果进行解码预览。
148.当所有主码流都进行1/4svc抽帧时,仅进行1/2svc抽帧的主码流不存在,此时411可以为使用进行了1/4svc抽帧的主码流的抽帧结果进行解码预览。
149.412、判断所有主码流进行1/4svc抽帧的抽帧结果的解码能力的和是否大于解码设备的总解码能力。
150.当确定所有主码流进行1/4svc抽帧的抽帧结果的解码能力的和大于解码设备的总解码能力时,执行413;当确定所有主码流进行1/4svc抽帧的抽帧结果的解码能力的和小于或等于解码设备的总解码能力时,执行411。
151.413、将n路视频码流的主码流进行1/4svc抽帧的抽帧结果作为n路解码资源,并按照预设顺序逐路将n路解码资源更新为其对应的次码流,直至n路解码资源要求的解码能力小于或等于解码设备的总解码能力。
152.414、使用n路解码资源进行解码预览。
153.基于上述401

414步骤,在预览播放的情况下,对解码设备获取到的多路视频码流进行解码时,可以根据解码设备本身的总解码能力和每路视频码流中主码流和次码流的对应的解码能力,确定视频码流中最终要解码的码流(主码流或主码流的抽帧结果或次码流),因为最终要解码的码流中的所有帧可以不是主码流或次码流的全部帧,所以其可以在保证分辨率的同时降低对解码能力的需求,这样一来,便可以在解码路数和解码出的视频清晰度两个方面保证解码效果,更好的发挥出解码设备的解码能力,提高用户体验。
154.s2、在n路视频码流用于回放播放的情况下,则根据回放倍数、视频码流中子码流的特征参数和解码设备的总解码能力确定视频码流中目标子码流的目标帧。
155.进一步可选的,集合图5,参照图8所示,s2具体包括s21和s22:
156.s21、在回放倍数为单倍,或者回放倍数为多倍且小于或等于预设倍数的情况的,执行第一操作。
157.s22、在回放倍数为多倍且大于预设倍数的情况下,根据视频码流中最优子码流的特征参数抽取视频码流中最优子码流的关键帧进行解码。
158.其中,最优子码流为m个子码流中分辨率最高的子码流。
159.因为在回放播放时,解码设备所解码的视频码流是来自解码设备对应的存储设备中的,而解码设备从存储设备读取数据的速率是有上限的,所以一旦回放倍数过大,解码设备可能需要消耗极大的资源进行数据读取影响自身使用,造成解码设备本身性能的下降。而且,回放倍数过大时,用户本身并不是为了流畅观看,所以全帧率解码乃至抽帧后的半帧率或1/4帧率解码的意义都不大,所以在回放倍数为多倍且大于预设倍数的情况下,出于保证成像清晰度的考量以及显示关键信息的考虑,可以根据视频码流中最优子码流的特征参数抽取其关键帧(i帧)进行解码播放。所以基于s11和s12两个步骤,可以使得解码设备在解码时,充分考虑到实际需求的情况下,降低对解码设备计算资源的消耗。
160.一种可实现的方式中,以m为2(即每个视频码流包括两个子码流,在图7对应的实施例中,将两个子码流中分辨率高的称为主码流,分辨率低的称为次码流),目标编码方式为svc,svc支持的抽帧方式包括两个抽帧方式,两个抽帧方式中的第一抽帧方式为1/2svc抽帧,两个抽帧方式中的第二抽帧方式为1/4svc抽帧为例,在n路视频码流用于回放播放时,参照图9所示,本申请实施例提供的解码方法可以包括:501

515:
161.501、判断是否为多倍速回放。
162.当确定为多倍速回放时,执行502;当确定为单倍速回放时,执行503。
163.502、判断回放倍速是否大于x。
164.其中,x为预设倍速。502步骤的具体意义可参照前述实施例中s22的相关表述,此处不再赘述。
165.当回放倍速大于x时,执行504;当回放倍速小于或等于x时,执行505。
166.503、判断n路视频码流的主码流对应的解码能力的和是否大于解码设备的总解码能力。
167.当确定n路视频码流的主码流对应的解码能力的和大于解码设备的总解码能力时,执行506;当确定n路视频码流的主码流对应的解码能力的和小于或等于解码设备的总解码能力时,执行507。
168.504、抽取视频码流中主码流的关键帧进行解码,并按照回放倍速回放。
169.505、判断n路视频码流的主码流对应的解码能力的总和是否大于解码设备的总解码能力。
170.当所有视频码流的主码流对应的解码能力的总和大于解码设备的总解码能力时,执行512;当所有视频码流的主码流对应的解码能力的总和小于或等于解码设备的总解码能力时,执行511。
171.506、对n路视频码流的主码流进行svc抽帧。
172.其中,svc抽帧包括1/2svc抽帧和/或1/4svc抽帧。
173.506后执行508。
174.507、使用n路视频码流的主码流进行解码回放。
175.508、判断n路视频码流的主码流进行svc抽帧的抽帧结果要求的解码能力是否大于解码设备的总解码能力。
176.当确定n路视频码流的主码流进行svc抽帧的抽帧结果要求的解码能力大于解码设备的总解码能力时,执行509;当确定n路视频码流的主码流进行svc抽帧的抽帧结果要求的解码能力小于或等于解码设备的总解码能力时,执行510。
177.509、对存在次码流的n路视频码流,使用其次码流进行解码回放,对不存在次码流的n路视频码流,播放无资源信息。
178.具体的,在本实施例中,默认所有视频码流均存在主码流和次码流,但是实际中,可能存在部分视频码流仅有主码流(即仅包括一个子码流)。此处无资源信息可以为用于提示用户当前画面没有解码资源的信息。
179.510、将n路视频码流的主码流进行svc抽帧的抽帧结果作为n路解码资源,进行解码回放。
180.具体的,506

508

510的流程步骤的具体过程可参照前述x1

x8中的相关表述或者405

414中的相关表述,此处不再赘述。
181.511、使用n路视频码流的主码流进行解码,并按照回放倍速回放。
182.512、对n路视频码流的主码流进行svc抽帧。
183.其中,svc抽帧包括1/2svc抽帧和/或1/4svc抽帧。
184.513、判断n路视频码流的主码流进行svc抽帧的抽帧结果要求的解码能力是否大于解码设备的总解码能力。
185.当确定n路视频码流的主码流进行svc抽帧的抽帧结果要求的解码能力大于解码设备的总解码能力时,执行514;当确定n路视频码流的主码流进行svc抽帧的抽帧结果要求的解码能力小于或等于解码设备的总解码能力时,执行515。
186.514、对存在次码流的n路视频码流,使用其次码流进行解码并按照回放倍速回放,对不存在次码流的n路视频码流,播放无资源信息。
187.515、将n路视频码流的主码流进行svc抽帧的抽帧结果作为n路解码资源,进行解码并按照回放倍速回放。
188.其中,512

515的流程步骤的具体过程可参照前述x1

x8中的相关表述或者405

414中的相关表述,此处不再赘述。
189.基于上述技术方案,在回放播放的情况下,对解码设备获取到的多路视频码流进行解码时,可以根据回放倍速、解码设备本身的总解码能力和每路视频码流中主码流和次码流的对应的解码能力,确定视频码流中最终要解码的码流(主码流或主码流的抽帧结果或次码流),因为最终要解码的码流中的所有帧可以不是主码流或次码流的全部帧,所以其可以在保证分辨率和回放倍速的同时降低对解码能力的需求,这样一来,便可以在解码路数和解码出的视频清晰度两个方面保证解码效果,更好的发挥出解码设备的解码能力,提高用户体验。
190.303、对视频码流中目标子码流的目标帧进行解码。
191.具体的,在对视频码流中目标子码流的目标帧进行解码后,便可以在解码设备所在的播放器或对应的显示器的对应画面上显示。需要说明的是,对于预览播放而言正常显
示,对于回放播放而言,还需要根据回放倍数倍速显示。
192.进一步可选的,因为实际中,解码设备对应的摄像装置(例如ipc)的工作状态可能会因为人为或者环境因素改变,所以在预览播放过程中,需要实时判断每路视频码流是否产生变化,如果产生变化需要重新确定解码策略(主要是确定目标子码流的目标帧),所以参照图10所示,该方法还包括l1和l2:
193.l1、在预览未结束的情况下,若n路视频码流中存在预设特征的目标视频码流,则重新根据解码设备的总解码能力和重新获取的n路视频码流中每个子码流的特征参数和,确定n路视频码流中每一路视频码流的目标子码流的目标帧。
194.示例性的,预设特征至少包括以下任一项:视频码流数据为空、指定用于解码的子码流、子码流的分辨率改变。
195.其中,具体如何根据解码设备的总解码能力和重新获取的n路视频码流中每个子码流的特征参数,确定n路视频码流中每一路视频码流的目标子码流的目标帧,可参照前述301

303中的具体内容,此处不再赘述。
196.l2、对n路视频码流中每一路视频码流的目标子码流的目标帧进行解码。
197.示例性的,以解码设备接收ipc的视频码流进行预览播放为例,l1

l2步骤参照图11所示,具体可以包括601

605:
198.601、判断预览是否结束。
199.当确定预览未结束时,执行602;当确定预览结束时,流程结束。
200.602、判断解码资源是否发生变化。
201.其中,解码资源的变化可以为上述的预设特征。
202.当确定解码资源发生变化时,执行603;当确定解码资源未发生变化时,执行601。
203.603、获取当前接入解码设备的ipc的信息。
204.其中,ipc信息具体可以为ipc输送给解码设备的视频码流中每个子码流的特征参数。
205.604、根据ipc的信息计算ipc输送的视频码流需要的解码能力。
206.605、根据ipc输送的视频码流需要的解码能力重新调整预览播放的解码资源。
207.其中,解码资源具体可以为前述实施例中最终用于解码播放的主码流抽帧结果或主码流或次码流。605具体的过程可以参照前述实施例中的302步骤的相关表述,此处不再赘述。
208.605后执行601。
209.基于上述601

605对应的技术方案,可以实时的对解码设备的播放过程进行调整,避免因为解码资源的改变导致解码设备无法正常播放,从而保证了保证用户对解码设备的使用体验。
210.本申请实施例提供的技术方案,在对解码设备获取到的多路视频码流进行解码时,可以根据解码设备本身的总解码能力和每个视频码流中不同分辨率子码流的特征参数表征的解码能力,确定视频码流中最终要解码的目标子码流的目标帧,因为目标帧可以不是目标子码流的全部帧,所以其可以在保证子码流分辨率的同时降低对解码能力的需求,这样一来,便可以在解码路数和解码出的视频清晰度两个方面保证解码效果,更好的发挥出解码设备的解码能力,提高用户体验。
211.上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
212.参照图12所示,本申请实施例还提供了一种解码设备03,该解码设备03可以为图1的播放器01或者播放器01中的一部分。该解码设备03包括:获取模块31、处理模块32和解码模块33。
213.其中,获取模块31,被配置为获取n路视频码流和视频码流中每个子码流的特征参数;每路视频码流包括m个子码流,且m个子码流中的子码流的分辨率均不同;特征参数用于表征解码子码流要求的解码能力;n为正整数;n为正整数,m为正整数;处理模块32,被配置为根据解码设备的总解码能力和获取模块31获取的视频码流中子码流的特征参数,确定视频码流中目标子码流的目标帧;解码设备的总解码能力大于或等于所有视频码流中的目标帧要求的解码能力;解码模块33,被配置为对处理模块32确定的视频码流中目标子码流的目标帧进行解码。
214.可选的,处理模块32具体被配置为:在确定总解码能力小于获取模块31获取的所有视频码流中特次子码流以预设抽帧方式进行抽帧后的抽帧结果要求的解码能力的总和的情况下,确定视频码流中特征参数表征的解码能力最小的最次子码流为目标子码流,并确定目标子码流中的所有帧为目标帧;特次子码流为m个子码流中特征参数表征的解码能力仅大于最次子码流的特征参数表征的解码能力的子码流;预设抽帧方式为视频码流的编码方式支持的所有抽帧方式中抽帧比最小的抽帧方式;抽帧比为抽帧方式对目标视频码流进行抽帧后的抽帧结果的帧数占目标视频码流的总帧数的占比;和/或,在确定总解码能力大于或等于获取模块31获取的所有视频码流中特次子码流以预设抽帧方式进行抽帧后的抽帧结果要求的解码能力的总和的情况下,根据获取模块31获取的视频码流中子码流的特征参数和解码设备的总解码能力,确定视频码流中目标子码流的目标帧。
215.进一步可选的,处理模块32具体被配置为:若n大于最大解码通道数,则确定总解码能力小于获取模块31获取的所有视频码流中特次子码流以预设抽帧方式进行抽帧后的抽帧结果要求的解码能力的总和;最大解码通道数为解码设备支持的解码通道数的最大值;若n小于或等于最大解码通道数,则确定总解码能力大于或等于获取模块31获取的所有视频码流中特次子码流以预设抽帧方式进行抽帧后的抽帧结果要求的解码能力的总和。
216.可选的,在n路视频码流的编码方式为目标编码方式,且目标编码方式支持的抽帧方式包括x个抽帧方式且x为正整数的情况下,在处理模块32确定总解码能力大于或等于获取模块31获取的所有视频码流中特次子码流进行预设抽帧后的抽帧结果要求的解码能力的总和的情况下,处理模块32具体被配置为:在n路视频码流用于回放播放的情况下,则根据回放倍数、解码设备的总解码能力和获取模块31获取的视频码流中子码流的特征参数确定视频码流中目标子码流的目标帧;
217.和/或,
218.在n路视频码流用于预览播放的情况下,执行第一操作;第一操作包括:
219.在总解码能力大于或等于所有视频码流中第i子码流的特征参数表征的解码能力的总和的情况下,确定第i子码流中的所有帧为目标帧;i的初始值为1,i的最大值为m,i为正整数;第i子码流的特征参数表征的解码能力大于第i+1子码流的特征参数表征的解码能力。
220.在i等于m,且总解码能力小于所有视频码流的第i子码的特征参数表征的解码能力的总和情况下,将视频码流的第m子码流的全部帧确定为视频码流的目标帧后,按照预设顺序逐路将n路视频码流的目标帧更新为空,直至所有视频码流的目标帧要求的解码能力小于或等于总解码能力为止。
221.在i小于m,且总解码能力小于所有视频码流中第i子码流的特征参数对应的解码能力的总和的情况下,执行第二操作;第二操作包括:
222.若k=x,则将i更新为i+1,并重新执行第一操作;若k<x,按照第k抽帧方式对第j路视频码流中第i子码流抽帧;若j<n,且总解码能力大于或等于进行了第i子码流以第k抽帧方式抽帧的第一视频码流的第i子码流的抽帧结果要求的解码能力,和其他未进行第i子码流以第k抽帧方式抽帧但进行了第i子码流以第y抽帧方式抽帧的第二视频码流的第i子码流的抽帧结果要求的解码能力的总和,则确定第一视频码流的第i子码流以第k抽帧方式抽帧的抽帧结果为第一视频码流的目标子码流的目标帧,以及第二视频码流的第i子码流以第y抽帧方式抽帧的抽帧结果为第二视频码流的目标子码流的目标帧;若j<n,且总解码能力小于第一视频码流中第i子码流以第k抽帧方式抽帧的抽帧结果要求的解码能力和第二视频码流的第i子码流以第y抽帧方式抽帧的抽帧结果要求的解码能力的总和,则将j更新为j+1,并重新执行第二操作;若j等于n,且总解码能力小于所有视频码流进行第i子码流以第k抽帧方式抽帧的抽帧结果要求的解码能力的总和,则将k更新为k+1,并重新执行第二操作。
223.本申请中,j的初始值为1,j的最大值为n,j为正整数;k的初始值为1,k的最大值为x,k为正整数,第k抽帧方式的抽帧比大于第k+1抽帧方式的抽帧比;当k≥2时,y为k

1;当k=1时,第y抽帧方式的抽帧比为1。
224.进一步可选的,在n路视频码流用于回放播放的情况下,处理模块32具体被配置为:在回放倍数为单倍,或者回放倍数为多倍且小于或等于预设倍数的情况下,执行第一操作;在回放倍数为多倍且大于预设倍数的情况下,根据视频码流中最优子码流的特征参数抽取视频码流中最优子码流的关键帧作为视频码流的目标子码流的目标帧;最优子码流为m个子码流中分辨率最高的子码流。
225.可选的,处理模块32还被配置为:在预览未结束的情况下,若获取模块31获取的n路视频码流中存在预设特征的目标视频码流,则重新根据解码设备的总解码能力和获取模块31重新获取的n路视频码流中每个子码流的特征参数,确定n路视频码流中每一路视频码流的目标子码流的目标帧;预设特征至少包括以下任一项:视频码流数据为空、指定用于解码的子码流、子码流的分辨率改变;解码模块33还被配置为对处理模块32确定的述n路视频码流中每一路视频码流的目标子码流的目标帧进行解码。
226.关于上述实施例中的解码设备,其中各个模块执行操作的具体方式及相应的有益效果已经在前述中的解码方法的实施例中进行了详细描述,此处将不再赘述。
227.在采用集成的模块的情况下,解码设备包括:存储单元、处理单元。处理单元用于
控制管理,例如,处理单元用于支持解码设备执行前述实施例中获取模块31、处理模块32和解码模块33所执行的步骤;存储单元,用于存储解码模块的程序代码和数据。
228.其中,以处理单元为处理器,存储单元为存储器。参照图13所示,本申请实施例还提供另一种解码设备,包括存储器41、处理器42、总线43和通信接口44;存储器41用于存储计算机执行指令,处理器42与存储器41通过总线43连接;当解码设备运行时,处理器42执行存储器41存储的计算机执行指令,以使解码设备执行如上述实施例提供的解码方法。
229.在具体的实现中,作为一种实施例,处理器42(42

1和42

2)可以包括一个或多个cpu,例如图13中所示的cpu0和cpu1。且作为一种实施例,解码设备可以包括多个处理器42,例如图13中所示的处理器42

1和处理器42

2。这些处理器42中的每一个cpu可以是一个单核处理器(single

cpu),也可以是一个多核处理器(multi

cpu)。这里的处理器42可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
230.存储器41可以是只读存储器41(read

only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read

only memory,eeprom)、只读光盘(compact disc read

only memory,cd

rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器41可以是独立存在,通过总线43与处理器42相连接。存储器41也可以和处理器42集成在一起。
231.在具体的实现中,存储器41,用于存储本申请中的数据和执行本申请的软件程序对应的计算机执行指令。处理器42可以通过运行或执行存储在存储器41内的软件程序,以及调用存储在存储器41内的数据,解码设备的各种功能。
232.通信接口44,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如控制系统、无线接入网(radio access network,ran),无线局域网(wireless local area networks,wlan)等。通信接口44可以包括接收单元实现接收功能,以及发送单元实现发送功能。
233.总线43,可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component interconnect,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。该总线43可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
234.本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质包括计算机执行指令,当计算机执行指令在解码设备上运行时,使得解码设备执行如上述实施例提供的解码方法。
235.本申请实施例还提供一种计算机程序产品,该计算机程序包括计算机指令,当该计算机指令在解码设备上运行时,使得解码设备执行如前述实施例提供的解码方法。
236.本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能
存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机可读存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
237.通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
238.在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
239.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
240.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1