一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

解码方法及装置、电子设备、计算机可读存储介质与流程

2021-10-24 05:16:00 来源:中国专利 TAG:解码 电子设备 装置 可读 计算机


1.本技术涉及数据解码技术领域,具体而言,涉及一种解码方法及装置、电子设备、计算机可读存储介质。


背景技术:

2.终端和服务器之间经常面临着数据交互,其中该数据可能为视频流数据,因此,也相应涉及到视频流的编解码。目前,无论是终端还是服务器都是在接收到某一个视频片段的视频流对应的所有数据包进行解码,由此,在极大程度上降低了解码效率。


技术实现要素:

3.为解决上述技术问题,本技术的实施例提供了一种解码方法及装置、电子设备、计算机可读存储介质。
4.根据本技术实施例的一个方面,提供了一种解码方法,待解码的视频包括至少一个视频片段,每个视频片段包括多个数据包,所述至少一个视频片段对应的数据包经由发送端发送至接收端进行解码处理,所述方法包括:接收所述发送端发送的第一视频片段的数据包;其中,所述第一视频片段为所述至少一个视频片段中的一个视频片段;根据所述视频的预设清晰度等级和接收到的数据包中携带的所述第一视频片段的数据包总量,确定所述第一视频片段进行解码所需的第一最少数据包数量;其中,所述第一最少数据包数量对应的数据包在解码后得到与所述预设清晰度等级相适应的视频画面;在接收所述第一视频片段的数据包的过程中,若接收到的数据包的第一累计总量达到所述第一最少数据包数量,则终止接收所述第一视频片段的数据包;对接收到的所述第一最少数据包数量的数据包进行解码。
5.根据本技术实施例的一个方面,提供了一种解码装置,待解码的视频包括至少一个视频片段,每个视频片段包括多个数据包,所述至少一个视频片段对应的数据包经由发送端发送至接收端进行解码处理,所述装置包括:接收模块,配置为接收所述发送端发送的第一视频片段的数据包;其中,所述第一视频片段为所述至少一个视频片段中的一个视频片段;确定模块,配置为根据所述视频的预设清晰度等级和接收到的数据包中携带的所述第一视频片段的数据包总量,确定所述第一视频片段进行解码所需的第一最少数据包数量;其中,所述第一最少数据包数量对应的数据包在解码后得到与所述预设清晰度等级相适应的视频画面;接收模块,还配置为在接收所述第一视频片段的数据包的过程中,若接收到的数据包的第一累计总量达到所述第一最少数据包数量,则终止接收所述第一视频片段的数据包;解码模块,配置为对接收到的所述第一最少数据包数量的数据包进行解码。
6.根据本技术实施例的一个方面,提供了一种电子设备,包括处理器及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如上所述的解码方法。
7.根据本技术实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计
算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的解码方法。
8.根据本技术实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的解码方法。
9.在本技术的实施例提供的技术方案中,待解码的视频包括至少一个视频片段,且每个视频片段包括多个数据包,通过接收发送端发送的视频片段的数据包,根据该视频的预设清晰度等级和接收到的数据包中携带的视频片段的数据包总量,确定出该视频片段进行解码所需的最少数据包数量,这样在接收视频片段的数据包的过程中,只需接收与该最少数据包数量匹配的数据包,然后根据接收到的与该最少数据包数量匹配的数据包进行解码即可,而无需等待接收该视频片段的所有数据包以及无需在所有数据包接收完毕之后才进行解码,由此提升了视频片段的解码效率;并且由于视频片段是视频包括的至少一个视频片段中的视频片段,因此在提升视频片段解码效率的同时也相应提升了视频解码效率。
10.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
11.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
12.图1是本技术的一示例性实施例示出的解码云架构示意图;
13.图2是本技术的一示例性实施例示出的解码方法的流程图;
14.图3是本技术的一示例性实施例示出的解码云架构多传输链路的示意图;
15.图4是图2所示实施例中的步骤s130在一示例性实施例中的流程图;
16.图5是图2所示实施例中的步骤s170在一示例性实施例中的流程图;
17.图6是本技术的一示例性实施例示出的多个数据包传输的示意图;
18.图7是本技术的一示例性实施例示出的多个数据包传输的示意图;
19.图8是图2所示实施例中的步骤s170在一示例性实施例中的流程图;
20.图9是本技术的一示例性实施例示出的在终止接收第一视频片段的数据包的过程之后,接收发送端发送的第二视频片段的数据包并进行解码的流程图;
21.图10是本技术的一示例性实施例示出的若接收完发送端发送的第一视频片段的所有数据包,且接收到的数据包的第一累计总量未达到第一最少数据包数量,则降低预设清晰度等级的流程图;
22.图11是本技术的一示例性实施例示出的解码装置的框图;
23.图12示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
具体实施方式
24.这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相相同的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相相同的装置和方法的例子。
25.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
26.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
27.需要说明的是:在本技术中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
28.云计算(cloud computing)指it基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是it和软件、互联网相关,也可是其他服务。云计算是网格计算、分布式计算、并行计算、效用计算、网络存储、虚拟化、负载均衡等传统计算机和网络技术发展融合的产物。
29.随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
30.云服务器就是一种以云计算技术为基础的服务器。在视频解码场景下,云服务器与终端进行交互;具体地,由终端将采集到的视频流数据通过网络传输给云服务器,进而云服务器接收到视频流数据后进行相应解码,得到解码后的视频流数据,和/或,由云服务器将采集到的视频流数据通过网络传输给终端,进而终端接收到视频流数据后进行相应解码,得到解码后的视频流数据。
31.请参阅图1,图1是本技术的一示例性实施例示出的解码云架构示意图。从图1所示的解码云架构中可以看出,云服务器20具有逻辑计算和编解码逻辑,云服务器20接收终端10通过网络传送过来的视频流并进行解码,和/或,终端10具有逻辑计算和编解码逻辑,终端10接收云服务器20通过网络传送过来的视频流并进行解码。终端10可支持接入输入设备30来生成设备指令。
32.需要说明的是,终端10可以是智能手机、平板电脑、笔记本电脑、台式计算机等设备,但并不局限于此。云服务器20是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。输入设备30可以是键盘、鼠标、游戏手柄等设备,本处也不对此进行限制。
33.在一些示例中,图1中所示的云服务器20也可以是独立的物理服务器,还可以是多个物理服务器构成的服务器集群或者分布式系统等,本处也不对此进行限制。
34.需要说明的是,本实施例中是进行视频解码,该视频是由发送端发送给接收端的,其中待解码的视频包括至少一个视频片段,即待解码的视频可以包括一个或多个连续的视频片段,并且每个视频片段包括多个数据包。
35.请参阅图2,图2是本技术的一示例性实施例示出的解码方法的流程图。该方法可以由图1所示解码云架构中的云服务器20执行。如图2所示,解码方法至少包括步骤s110至步骤s170,详细介绍如下:
36.步骤s110,接收发送端发送的第一视频片段的数据包;其中,第一视频片段为至少一个视频片段中的一个视频片段。
37.本实施例中第一视频片段指的是待解码的视频包括的至少一个视频片段中的一个视频片段;其中视频是可以包括一个或多个连续的视频片段的,在视频包括一个视频片段时,例如视频包括视频片段1,则第一视频片段为视频片段1;在视频包括多个连续的视频片段时,例如视频包括视频片段1

2,则第一视频片段为视频片段1

2中的任意一个视频片段,即第一视频片段可以是视频片段1,或者是视频片段2。
38.在一些示例中,待解码的视频可以是直播视频;其中直播视频指的是指用户可以通过网络收看到远端正在进行的现场音视频实况,比如赛事、会议、教学、手术等,其核心思想是利用既有的局域网、城域网甚至是万维网络条件实现对音视频信号的实时传输,并且能够在远端实现流畅的收看。
39.在一些示例中,待解码的视频可以是录播视频;其中录播视频指的是把现场拍摄录制的视频、音频、电子设备的图像信号进行整合并生成标准化的流媒体文件,上传至相应网站,以供用户观看。
40.可以理解的是,视频片段在传输过程中是以视频流的形式进行传输,并且视频流是划分为一个一个的数据包分别进行传输;例如整个视频流对应的数据大小为k,其分配为n个数据包进行传输,同时n个数据包分别对应的大小为[k1 k2 k3
……
kn],则理论上k=k1*1 k2*2 k3*3
……
kn*n,实际上k<k1*1 k2*2 k3*3
……
kn*n,这是因为每个数据包中会包含一些其他数据,例如视频流的总大小k、分为数据包的数据包总量n以及每个数据包的序号、大小等。
[0041]
步骤s130,根据视频的预设清晰度等级和接收到的数据包中携带的第一视频片段的数据包总量,确定第一视频片段进行解码所需的第一最少数据包数量;其中,第一最少数据包数量对应的数据包在解码后得到与预设清晰度等级相适应的视频画面。
[0042]
本实施例中视频的预设清晰度等级指的是视频进行解码后的视频画面的清晰度;其中清晰度可以分为标清、高清、超清或者蓝光等,通常预设清晰度等级取值是越清晰越好,即预设清晰度等级取值顺序可以为蓝光、超清、高清、标清。
[0043]
本实施例中第一视频片段的数据包总量指的是第一视频片段本身所对应的所有数据包的数量;例如上述示例中,第一视频片段的数据包总量为n,并且n个数据包累加的大小(k1*1 k2*2 k3*3
……
kn*n)理论上要等于第一视频片段本身的大小k。
[0044]
本实施例中第一最少数据包数量指的是对第一视频片段进行解码所需要的最少数量的数据包,针对同一第一视频片段而言,其对应的第一最少数据包数量要小于其对应的数据包总量;例如设预设清晰度等级为高清,以及设接收到的数据包中携带的第一视频片段的数据包总量为n,而根据高清以及数据包总量n,确定出第一视频片段进行解码所需
的第一最少数据包数量为q,其中q<n。可以理解的是,对最少数量的数据包进行解码是可以得到解码后的第一视频片段的,并且解码后的第一视频片段所对应的视频画面与预设清晰度等级相适应;例如设根据高清这一预设清晰度等级,以及第一视频片段的数据包总量n,确定出第一视频片段的第一最少数据包数量为q,那么对q个数据包进行解码,即可得到解码后的第一视频片段,其中解码后的第一视频片段所对应的视频画面也是高清的。
[0045]
步骤s150,在接收第一视频片段的数据包的过程中,若接收到的数据包的第一累计总量达到第一最少数据包数量,则终止接收第一视频片段的数据包。
[0046]
本实施例中接收到的数据包的第一累计总量指的是在第一视频片段的数据包的接收过程中,会对接收到的数据包的数量进行累加,从而得到当前接收到的数据包的第一累计总量。
[0047]
本实施例中是在接收第一视频片段的数据包的过程中,对接收到的数据包的第一累计总量进行监测,如果监测接收到的数据包的第一累计总量达到了第一最少数据包数量,则表征此时接收到的数据包已经能够实现对第一视频片段的解码,因此需要终止接收第一视频片段的数据包,从而以节省第一视频片段其他数据包的接收时间,实现第一视频片段的快速解码。
[0048]
请参阅图3所示,图3是本技术的另一示例性实施例示出的解码云架构示意图。从图3所示的解码云架构中可以看出,终端10和云服务器20之间是通过至少两条传输链路传输第一视频片段的数据包。在一些示例中,至少两条传输链路可以是由蜂窝网所形成的链路,例如5g基站、4g基站等。在一些示例中,至少两条传输链路可以是由无线网所形成的链路,例如wifi ap等。在一些示例中,至少两条传输链路可以是由蜂窝网和无线网所形成的链路,例如5g基站、4g基站、wifi ap等。
[0049]
在一些示例中,通过至少两条传输链路传输第一视频片段,具体可以是分别获取通过各条传输链路接收到的数据包的数量,并对至少两条传输链路接收到的数量进行求和运算,获得第一累计总量。其中分别获取通过各条传输链路接收到的数据包的数量,具体可以是通过先初始化各条传输链路接收到的数据包的数量,若监测到传输链路每接收到一个数据包,则控制相应传输链路接收到的数据包的数量累加1。
[0050]
举例说明,设终端10和云服务器20之间通过3条传输链路传输第一视频片段的数据包,其中传输链路分别为l1、l2、l3,先对每条传输链路接收到的数据包的数量s2进行初始化,即s2(l1)=0,s2(l2)=0,s2(l3)=0,如果监测到传输链路每接收到一个数据包,则控制相应传输链路接收到的数据包的数量累加1,设在时间段t1内,s2(l1)=50,s2(l2)=25,s2(l3)=25,因此在时间段t1内,第一累计总量s1=s2(l1) s2(l2) s2(l3)=100。
[0051]
需要说明的是,本实施例中通过至少两条传输链路传输第一视频片段的数据包,相比于现有技术中仅通过一条传输链路传输第一视频片段的数据包而言,能够在极大程度上提升第一视频片段的数据包的传输速率,避免了仅通过一条传输链路传输第一视频片段的数据包,由于该条传输链路发生堵塞而造成第一视频片段的数据包传输速率慢的现象。
[0052]
步骤s170,对接收到的第一最少数据包数量的数据包进行解码。
[0053]
本实施例中接收到的数据包的第一累计总量达到第一最少数据包数量时,则可以对接收到和第一最少数据包数量匹配的数据包进行解码,即可得到解码后的第一视频片段;例如接收到数据包的第一累计总量达到第一最少数据包数量q,则此时对这q个数据包
进行解码,从而以获得解码后的第一视频片段。
[0054]
需要说明的是,本实施例在接收视频片段的数据包的过程中,只需接收与该最少数据包数量匹配的数据包,然后根据接收到的与该最少数据包数量匹配的数据包进行解码即可,而无需等待接收该视频片段的所有数据包以及无需在所有数据包接收完毕之后才进行解码,由此提升了视频片段的解码效率;并且由于视频片段是视频包括的至少一个视频片段中的视频片段,因此在提升视频片段解码效率的同时也相应提升了视频解码效率。
[0055]
图4是图2所示实施例中的步骤s130在一示例性实施例中的流程图。如图4所示,根据视频的预设清晰度等级和接收到的数据包中携带的第一视频片段的数据包总量,确定第一视频片段进行解码所需的第一最少数据包数量的过程,可以包括步骤s131至步骤s133,详细介绍如下:
[0056]
步骤s131,获取与预设清晰度等级对应的误码字节总量。
[0057]
本实施例中误码字节总量指的是视频在传输过程中可以丢弃的误码字节的最大数量。可以理解的是,字节是计算机信息技术用于计量存储容量的一种计量单位,一个字节存储8位无符号数,存储的数值范围为0

255,因此,本实施例中可以以字节为计量单位计算可以丢弃的最大数量的误码字节。其中不同预设清晰度等级对应的误码字节总量不同,通常而言,预设清晰度等级越高,则可以丢弃的误码字节总量越少;例如请参阅下表1所示,为一种示例的预设清晰度等级与误码字节总量的关系表。
[0058]
预设清晰度等级误码字节总量蓝光b1超清b2高清b3标清b4
[0059]
表1
[0060]
由表1可知,不同预设清晰度等级对应的误码字节总量不同,其中b1<b2<b3<b4。
[0061]
步骤s132,根据误码字节总量和预设数据包字节长度,确定可以丢弃的数据包数量。
[0062]
本实施例中获取与预设清晰度等级对应的误码字节总量后,需要根据误码字节总量和预设数据包字节长度,确定可以丢弃的数据包数量。
[0063]
本实施例中预设数据包字节长度指的是数据包对应的字节长度。可以理解的是,不同协议或不同应用场景下数据包的字节长度通常不同,其中可以从数据包的第一预设字段中获取到数据包对应的字节长度。
[0064]
在一些示例中,可以从接收到的第一视频片段的多个数据包中,分别获取多个数据包对应的字节长度,如果多个数据包分别对应的字节长度不相同,则根据用户的输入操作生成对应的预设数据包长度。也即,如果第一视频片段的多个数据包对应的字节长度存在不相同的情况时,则可以根据用户输入操作生成该预设数据包字节长度,即指定一个预设数据包字节长度,从而便于后续计算可以丢弃的数据包数量。
[0065]
在一些示例中,可以从接收到的第一视频片段的多个数据包中,分别获取多个数据包分别对应的字节长度,如果多个数据包分别对应的字节长度相同,则将字节长度作为
预设数据包长度。也即,如果第一视频片段的多个数据包对应的字节长度都是相同的情况时,则可以将任一数据包对应的字节长度作为预设数据包长度,从而便于后续计算可以丢弃的数据包数量。
[0066]
步骤s133,对第一视频片段的数据包总量和可以丢弃的数据包数量进行求差运算,获得对第一视频片段进行解码所需的第一最少数据包数量。
[0067]
本实施例中在获取到第一视频片段的数据包总量和可以丢弃的数据包数量后,需要对两者进行求差运算,从而获得第一视频片段进行解码所需的第一最少数据包数量;例如设获取到第一视频片段的数据包总量为n,可以丢弃的数据包数量为b,则第一最少数据包数量q=n

b。
[0068]
需要说明的是,本实施例中通过与预设清晰度等级对应的误码字节总量和预设数据包字节长度,确定出可以丢弃的数据包数量,并根据第一视频片段的数据包总量和可以丢弃的数据包数量,即可获得第一视频片段进行解码所需的第一最少数据包数量,计算数据量少,计算过程简单。
[0069]
图5是图2所示实施例中的步骤s170在一示例性实施例中的流程图。如图5所示,对接收到的第一最少数据包数量的数据包进行解码的过程,可以包括步骤s171至步骤s172,详细介绍如下:
[0070]
步骤s171,根据获取到的第一最少数据包数量的数据包的序号对第一最少数据包数量的数据包进行排序,获得排序结果;其中,排序结果是非连续的序号序列。
[0071]
本实施例中获取到的第一最少数据包数量的数据包是多个数据包,则可以从多个数据包的第二预设字段中分别获取多个数据包对应的序号,其中序号是用于表征将第一视频片段的视频流划分为多个数据包,所形成的序号序列中的序号标识;例如数据包的序号为1,则表征该数据包是第一视频片段中需要解码的第1个数据包,以此类推即可。
[0072]
在一些示例中,请参阅图6,为将第一视频片段的视频流划分为n个数据包进行传输,其中每个数据包都对应有序号,并且每个数据包所形成的序号序列是连续的,如序号序列为1、2、3、4
……
n。
[0073]
在一些示例中,请参阅图7,为将第一视频片段的视频流划分为n个数据包进行传输,其中每个数据包都对应有序号,并且每个数据包所形成的序号序列是非连续的,如序号序列为1、3、5、7
……
n;在实际应用中,非连续的序号序列只要满足预设排序规则即可,如图7所示例的相邻数据包的序号相差2。
[0074]
可以理解的是,由于网络堵塞等原因,不同数据包的到达时间不同,并且传输过程中会出现丢包的现象。例如如图6所示,数据包的发送顺序为序号1、序号2、序号3、序号4
……
序号n

1、序号n,而数据包的接收顺序却为序号1、序号4、序号3
……
序号n、序号n

1;也即在数据包的传输过程中,丢弃了序号为2的数据包(这里只是以序号1

4进行说明),并且未丢包的数据包的接收顺序也发生了变化,如不受网络等其他因素影响的情况下,序号3的接收顺序应该早于序号4,序号n

1的接收顺序应该早于序号n。同样地,如图7所示,数据包的发送顺序为序号1、序号3、序号5、序号7
……
序号n

2、序号n,而数据包的接收顺序却为序号1、序号7、序号3
……
序号n

2、序号n;也即在数据包的传输过程中,丢弃了序号为5的数据包(这里只是以序号1

7进行说明),并且未丢包的数据包的接收顺序也发生了变化,如不受网络等其他因素影响的情况下,序号3的接收顺序应该早于序号7。
[0075]
因此,本实施例中需要根据获取到的第一最少数据包数量的数据包的序号,对第一最少数据包数量的数据包重新进行排序,从而以使得接收顺序为不受网络等其他因素影响的接收顺序,获得排序结果。例如请再次参阅图6,进行排序之后,序号序列为序号1、序号3、序号4
……
序号n

1、序号n,其中在丢弃了序号为2的数据包之后,所得到的排序结果为非连续的序号序列。同样地,请再次参阅图7,进行排序之后,序号序列为序号1、序号3、序号7
……
序号n

2、序号n,其中在丢弃了序号为5的数据包之后,所得到的排序结果也为非连续的序号序列。
[0076]
步骤s172,按照排序结果对第一最少数据包数量的数据包进行解码。
[0077]
本实施例中根据获取到的第一最少数据包数量的数据包的序号对第一最少数据包数量的数据包进行排序,获得排序结果后,需要按照排序结果对第一最少数据包数量的数据包进行解码。
[0078]
本实施例中根据获取到的第一最少数据包数量的数据包的序号,对第一最少数据包数量的数据包进行排序,获得排序结果,具体可以是将序号序列中序号排在首位的数据包确定为初始数据包,其中序号排在首位的数据包的序号最小,然后从初始数据包开始进行解码,直至完成序号序列中序号排在末位的数据包的解码,其中序号排在末位的数据包的序号最大。例如请再次参阅图6、图7所示,均将序号1的数据包确定为初始数据包,从其开始进行解码,直至完成序号n的数据包的解码,此时完成第一视频片段的解码。
[0079]
在一些示例中,在根据获取到的第一最少数据包数量的数据包的序号,对第一最少数据包数量的数据包进行排序,获得排序结果后,还可以更新第一最少数据包数量的数据包的序号,以使得序号序列为连续的序号序列。
[0080]
举例说明,例如如图6所示的进行排序之后,序号序列为序号1、序号3、序号4
……
序号n

1、序号n,此时可以将序号序列更新为序号1、序号2、序号3
……
序号n

1、序号n,以得到连续的序号序列。同样地,如图7所示的进行排序之后,序号序列为序号1、序号3、序号7
……
序号n

2、序号n,此时可以将序号序列更新为序号1、序号2、序号3
……
序号n

1、序号n,以得到连续的序号序列。
[0081]
需要说明的是,本实施例中通过根据第一最少数据包数量的数据包的序号对接收到的和第一最少数据包数量匹配的多个数据包进行排序,从而根据排序结果进行解码,保证了第一视频片段解码的准确性,避免了由于数据包的接收顺序发生相应变化而直接进行第一视频片段的解码,所导致的解码出现乱码等的现象。
[0082]
图8是图2所示实施例中的步骤s170在一示例性实施例中的流程图。如图8所示,对接收到的第一最少数据包数量的数据包进行解码的过程,可以包括步骤s173至步骤s174,详细介绍如下:
[0083]
步骤s173,若第一最少数据包数量的数据包中存在字节长度和预设数据包字节长度不相同的数据包,则对小于预设数据包字节长度的数据包进行字节增加,以及对大于预设数据包字节长度的数据包进行字节分割,以使得第一最少数据包数量的数据包的字节长度和预设数据包字节长度均相同。
[0084]
本实施例中可以从接收到的和第一最少数据包数量匹配的多个数据包中,分别获取多个数据包对应的字节长度,如果存在数据包的字节长度和预设数据包字节长度不相同,则调整对应数据包的字节长度为预设数据包长度。也即如果接收到的多个数据包中存
在某个/某些数据包对应的字节长度和预设数据包字节长度不相同时,则可以将其字节长度调整为和预设数据包字节长度相同的字节长度,这样便使得多个数据包对应的字节长度均相同,能够更进一步提升第一视频片段的解码效率。
[0085]
可以理解的是,在对数据包的字节长度进行调整时,针对小于预设数据包字节长度的数据包,需要进行字节增加,即原本属于另一数据包的字节内容则可能会相应划分到该数据包中;针对大于预设数据包字节长度的数据包,需要进行字节分割,即原本属于该数据包的字节内容则可能会相应划分到另一数据包中;在实际应用中,需要根据具体应用场景进行灵活调整。
[0086]
可以理解的是,本实施例中第一最少数据包数量的数据包中也可能存在字节长度和预设数据包字节长度相同的数据包,则此时和预设数据包字节长度相同的某个/某些数据包无需进行字节长度的调整。但是在某些场景下即使某个/某些数据包的字节长度和预设数据包字节长度相同,但其对应的字节内容也可能会发生相应变化;例如上述所提及的原本属于另一数据包的字节内容则可能会相应划分到该数据包中,而原本属于该数据包的字节内容则可能会相应划分到另一数据包中,并且可能划分给另一数据包的数据内容所占有的字节长度刚好等于另一数据包划分过来的数据内容所占有的字节长度。
[0087]
步骤s174,对第一最少数据包数量的数据包进行解码。
[0088]
需要说明的是,本实施例中通过将和第一最少数据包数量匹配的多个数据包的字节长度都统一为同一字节长度,即统一为预设数据包字节长度,这样在解码时能够知晓每个数据包的字节长度,从而更进一步提升第一视频片段的解码效率。
[0089]
请参阅图9,图9是本技术的另一示例性实施例示出的解码方法的流程图。如图9所示,在终止接收第一视频片段的数据包的过程之后,方法还可以包括步骤s190至步骤s250,详细介绍如下:
[0090]
步骤s190,接收发送端发送的第二视频片段的数据包;其中,第二视频片段为多个连续的视频片段中位于第一视频片段之后的视频片段。
[0091]
可以理解的是,在大多数应用场景下,视频是包括多个连续的视频片段时,因此为了更进一步地提升视频的解码效率,则可以对视频中的多个连续的视频片段均采用上述第一视频片段的解码方式进行解码。例如待解码的视频按照播放顺序划分为了2个视频片段1

2,其中第一视频片段为视频片段1,第二视频片段为视频片段2,则对视频片段1采用上述实施例中所介绍的解码方法进行解码之后,还可以对视频片段2也采用上述实施例中所介绍的解码方法进行解码。
[0092]
步骤s210,根据视频的预设清晰度等级和接收到的数据包中携带的第二视频片段的数据包总量,确定第二视频片段进行解码所需的第二最少数据包数量。
[0093]
步骤s230,在接收第二视频片段的数据包的过程中,若接收到的数据包的第二累计总量达到第二最少数据包数量,则终止接收第二视频片段的数据包。
[0094]
步骤s250,基于第二最少数据包数量的数据包,进行第二视频片段的解码。
[0095]
可以理解的是,本实施例中所介绍的是对第二视频片段的解码,其中第二视频片段的数据包的接收和解码过程和上述实施例中所介绍的对第一视频片段的数据包的接收和解码过程类似,这里不再重复赘述;并且为了区分,将第二视频片段进行解码所需的最少数据包数量称之为第二最少数据包数量,将接收第二视频片段的数据包的过程中,接收到
的第二视频片段的数据包的累计总量称之为第二累计总量。
[0096]
需要说明的是,本实施例中通过对视频包括的多个连续视频片段均采用其各自对应的最少数据包数量的数据包进行解码,由此可以提升多个视频片段的解码效率,相应地,更进一步地提升了视频的解码效率。
[0097]
请参阅图10,图10是本技术的另一示例性实施例示出的解码方法的流程图。如图10所示,方法还可以包括步骤s180,详细介绍如下:
[0098]
步骤s180,若接收完发送端发送的第一视频片段的所有数据包,且接收到的数据包的第一累计总量未达到第一最少数据包数量,则降低预设清晰度等级,以使得在接收第二视频片段的数据包的过程中,根据降低后的预设清晰度等级和接收到的数据包中携带的数据包总量,确定第二视频片段进行解码所需的第二最少数据包数量。
[0099]
本实施例中如果接收完发送端发送的第一视频片段的所有数据包,且接收到的数据包的第一累计总量未达到第一最少数据包数量,则表征此时网络不是很好,存在网络堵塞等情况,因此可以降低预设清晰度等级,以便于第二视频片段的传输和解码。
[0100]
在一些示例中,还可以根据预设数据包接收时长来确定是否降低第一视频片段的预设清晰度等级,具体可以是如果在预设数据包接收时长内接收完发送端发送的第一视频片段的所有数据包,且接收到的数据包的第一累计总量未达到第一最少数据包数量,则降低预设清晰度等级。其中可以是设置定时器,为定时器设定一个预设数据包接收时长,定时器从开始接收第一视频片段的数据包便进行计时,如果在定时器设定的预设数据包接收时长到达时,接收完发送端发送的第一视频片段的所有数据包,且接收到的数据包的第一累计总量未达到第一最少数据包数量,则此时可以降低预设清晰度等级,以便于第二视频片段的传输和解码。
[0101]
可以理解的是,在接收第二视频片段的数据包的过程中,可以根据降低后的预设清晰度等级和接收到的数据包中携带的数据包总量,确定第二视频片段进行解码所需的第二最少数据包数量,如果接收到的数据包的第二累计总量达到第二最少数据包数量,则此时终止接收第二视频片段的数据包,并对接收到的第二最少数据包数量的数据包进行解码,以获得解码后的第二视频片段,其中解码后的第二视频片段的清晰度等级低于预设清晰度等级。
[0102]
举例说明,设视频包括第一视频片段1和第二视频片段2,以及视频的预设清晰度等级为超清;其中在接收第一视频片段1的数据包的过程中,如果接收完发送端发送的第一视频片段1的所有数据包,且接收到的数据包的第一累计总量85未达到第一最少数据包数量90,则根据接收到的85个数据包进行解码,得到解码后的第一视频片段1,并同时将预设清晰度等级“超清”降低为“高清”。其中在接收第二视频片段2的数据包的过程中,根据预设清晰度等级“高清”和第二视频片段2的数据包总量,确定第二视频片段2进行解码所需的第二最少数据包数量,设第一视频片段1的数据包总量和第二视频片段2的数据包总量相同(在实际应用中也可以不相同),此时确定出第二最少数据包数量为80个,则在接收第二视频片段2的数据包的过程中,若接收到的数据包的第二累计总量达到第二最少数据包数量80,则终止接收第二视频片段2的数据包,并根据接收到的第二最少数据包数量所匹配的80个数据包进行解码,得到解码后的第二视频片段2,至此完成整个视频的解码。
[0103]
可以理解的是,在实际应用中,视频还包括多个连续的视频片段,例如视频包括第
一视频片段1、第二视频片段2、第三视频片段3和第四视频片段4等,如上述示例进行类推即可。
[0104]
需要说明的是,本实施例中通过接收完发送端发送的第一视频片段的所有数据包,且接收到的数据包的第一累计总量未达到第一最少数据包数量时,则降低预设清晰度等级,以匹配当前的网络情况,保证了发送端所发送的后续视频片段能够快速地解码。
[0105]
图11是本技术的一示例性实施例示出的解码装置的框图。如图11所示,待解码的视频包括至少一个视频片段,每个视频片段包括多个数据包,至少一个视频片段对应的数据包经由发送端发送至接收端进行解码处理,该装置包括:
[0106]
接收模块410,配置为接收发送端发送的第一视频片段的数据包;其中,第一视频片段为至少一个视频片段中的一个视频片段;
[0107]
确定模块430,配置为根据视频的预设清晰度等级和接收到的数据包中携带的第一视频片段的数据包总量,确定第一视频片段进行解码所需的第一最少数据包数量;其中,第一最少数据包数量对应的数据包在解码后得到与预设清晰度等级相适应的视频画面;
[0108]
接收模块410,还配置为在接收第一视频片段的数据包的过程中,若接收到的数据包的第一累计总量达到第一最少数据包数量,则终止接收第一视频片段的数据包;
[0109]
解码模块450,配置为对接收到的第一最少数据包数量的数据包进行解码。
[0110]
在本实施例中,待解码的视频包括至少一个视频片段,且每个视频片段包括多个数据包,通过接收发送端发送的视频片段的数据包,根据该视频的预设清晰度等级和接收到的数据包中携带的视频片段的数据包总量,确定出该视频片段进行解码所需的最少数据包数量,这样在接收视频片段的数据包的过程中,只需接收与该最少数据包数量匹配的数据包,然后根据接收到的与该最少数据包数量匹配的数据包进行解码即可,而无需等待接收该视频片段的所有数据包以及无需在所有数据包接收完毕之后才进行解码,由此提升了视频片段的解码效率;并且由于视频片段是视频包括的至少一个视频片段中的视频片段,因此在提升视频片段解码效率的同时也相应提升了视频解码效率。
[0111]
在另一示例性的实施例中,确定模块430包括:
[0112]
第一获取单元,配置为获取与预设清晰度等级对应的误码字节总量;第一确定单元,配置为根据误码字节总量和预设数据包字节长度,确定可以丢弃的数据包数量;求差单元,配置为对第一视频片段的数据包总量和可以丢弃的数据包数量进行求差运算,获得对第一视频片段进行解码所需的第一最少数据包数量。
[0113]
在另一示例性的实施例中,确定模块430还包括:
[0114]
第二获取单元,配置为在根据误码字节总量和预设数据包字节长度,确定可以丢弃的数据包数量之前,获取多个数据包分别对应的字节长度;生成单元,配置为若多个数据包分别对应的字节长度不相同,则根据用户的输入操作生成对应的预设数据包长度;第二确定单元,还配置为若多个数据包分别对应的字节长度相同,则将字节长度作为预设数据包长度。
[0115]
在另一示例性的实施例中,解码模块450包括:
[0116]
调整单元,配置为若第一最少数据包数量的数据包中存在字节长度和预设数据包字节长度不相同的数据包,则对小于预设数据包字节长度的数据包进行字节增加,以及对大于预设数据包字节长度的数据包进行字节分割,以使得第一最少数据包数量的数据包的
字节长度和预设数据包字节长度均相同;解码单元,配置为对第一最少数据包数量的数据包进行解码。
[0117]
在另一示例性的实施例中,视频包括多个连续的视频片段,多个连续的视频片段对应的数据包经由发送端依次发送至接收端进行解码处理;
[0118]
接收模块410,还配置为在终止接收第一视频片段的数据包之后,接收发送端发送的第二视频片段的数据包;其中,第二视频片段为多个连续的视频片段中位于第一视频片段之后的视频片段;确定模块430,还配置为根据视频的预设清晰度等级和接收到的数据包中携带的第二视频片段的数据包总量,确定第二视频片段进行解码所需的第二最少数据包数量;接收模块410,还配置为在接收第二视频片段的数据包的过程中,若接收到的数据包的第二累计总量达到第二最少数据包数量,则终止接收第二视频片段的数据包;解码模块450,还配置为基于第二最少数据包数量的数据包,进行第二视频片段的解码。
[0119]
在另一示例性的实施例中,该装置还包括:
[0120]
降低模块,配置为若接收完发送端发送的第一视频片段的所有数据包,且接收到的数据包的第一累计总量未达到第一最少数据包数量,则降低预设清晰度等级,以使得在接收第二视频片段的数据包的过程中,根据降低后的预设清晰度等级和接收到的数据包中携带的数据包总量,确定第二视频片段进行解码所需的第二最少数据包数量。
[0121]
在另一示例性的实施例中,解码单元包括:
[0122]
解码子单元,配置为在降低预设清晰度等级之后,对接收到的第二最少数据包数量的数据包进行解码,以获得解码后的第二视频片段,解码后的第二视频片段的清晰度等级低于预设清晰度等级。
[0123]
在另一示例性的实施例中,第一视频片段的数据包通过至少两条传输链路进行传输,确定模块430还包括:
[0124]
第三获取单元,配置为在接收第一视频片段的数据包之后,分别获取通过各条传输链路接收到的数据包的数量;第一求和单元,配置对至少两条传输链路接收到的数量进行求和运算,获得第一累计总量。
[0125]
在另一示例性的实施例中,第三获取单元包括:
[0126]
初始化单元,配置为初始化各条传输链路接收到的数据包的数量;第二求和单元,配置为若监测到传输链路每接收到一个数据包,则控制相应传输链路接收到的数据包的数量累加1。
[0127]
在另一示例性的实施例中,解码模块450还包括:
[0128]
排序单元,配置为根据获取到的第一最少数据包数量的数据包的序号,对第一最少数据包数量的数据包进行排序,获得排序结果;其中,排序结果是非连续的序号序列;解码单元,还配置为按照排序结果对多个数据包进行解码,以获得解码后的视频。
[0129]
在另一示例性的实施例中,解码单元还包括:
[0130]
第三确定单元,配置为将序号序列中序号排在首位的数据包确定为初始数据包;其中,序号排在首位的数据包的序号最小;解码子单元,还配置为从初始数据包开始进行解码,直至完成序号序列中序号排在末位的数据包的解码;其中,序号排在末位的数据包的序号最大。
[0131]
在另一示例性的实施例中,解码模块450还包括:
[0132]
更新单元,配置为在根据获取到的第一最少数据包数量的数据包的序号,对第一最少数据包数量的数据包进行排序,获得排序结果之后,更新第一最少数据包数量的数据包的序号,以使得序号序列为连续的序号序列。
[0133]
需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
[0134]
本技术的实施例还提供了一种电子设备,包括处理器和存储器,其中,存储器上存储有计算机可读指令,该计算机可读指令被处理器执行时实现如前的解码方法。
[0135]
图12示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
[0136]
需要说明的是,图12示出的电子设备的计算机系统1600仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
[0137]
如图12所示,计算机系统1600包括中央处理单元(central processing unit,cpu)1601,其可以根据存储在只读存储器(read

only memory,rom)1602中的程序或者从储存部分1608加载到随机访问存储器(random access memory,ram)1603中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在ram 1603中,还存储有系统操作所需的各种程序和数据。cpu1601、rom 1602以及ram 1603通过总线1604彼此相连。输入/输出(input/output,i/o)接口1605也连接至总线1604。
[0138]
以下部件连接至i/o接口1605:包括键盘、鼠标等的输入部分1606;包括诸如阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)等以及扬声器等的输出部分1607;包括硬盘等的储存部分1608;以及包括诸如lan(local area network,局域网)卡、调制解调器等的网络接口卡的通信部分1609。通信部分1609经由诸如因特网的网络执行通信处理。驱动器1610也根据需要连接至i/o接口1605。可拆卸介质1611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1610上,以便于从其上读出的计算机程序根据需要被安装入储存部分1608。
[0139]
特别地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1609从网络上被下载和安装,和/或从可拆卸介质1611被安装。在该计算机程序被中央处理单元(cpu)1601执行时,执行本技术的系统中限定的各种功能。
[0140]
需要说明的是,本技术实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read

only memory,cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机
可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
[0141]
附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0142]
描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
[0143]
本技术的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前的解码方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
[0144]
本技术的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的解码方法。
[0145]
上述内容,仅为本技术的较佳示例性实施例,并非用于限制本技术的实施方案,本领域普通技术人员根据本技术的主要构思和精神,可以十分方便地进行相应的变通或修改,故本技术的保护范围应以权利要求书所要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜