一种数据编码方法、装置、存储介质和计算机设备与流程

文档序号:29927024发布日期:2022-05-07 11:29阅读:67来源:国知局
一种数据编码方法、装置、存储介质和计算机设备与流程

1.本技术涉及数据处理的技术领域,尤其涉及一种数据编码方法、装置、存储介质和计算机设备。


背景技术:

2.在很多日常生活场景中,都会涉及到对视频数据进行压缩的场景,例如用户a向用户b传输一个视频数据时,就会涉及到对视频数据进行压缩再传输的过程。其中,在对视频数据进行压缩时通常有两种编码方式,一种为帧内编码方式,一种为帧间编码方式。
3.需要进行说明的是,通常对视频数据进行帧间编码方式比进行帧内编码方式要更耗时。现有技术中,通常会采用帧间编码方式对视频数据的每个图像帧进行编码,这是因为通常对图像帧采用帧间编码方式比对图像帧采用帧内编码方式,其编码效果会更好,该编码效果可以通过编码的率失真代价体现。
4.但是,对图像帧采用帧内编码方式和帧间编码方式其编码效果的差异通常与图像帧本身相关,若是不考虑图像帧之间的差异,统一对每个图像帧都采用帧间编码的方式进行编码,则会导致对图像帧的编码速度慢。


技术实现要素:

5.本技术提供了一种数据编码方法、装置、存储介质和计算机设备,可提高针对目标图像帧的编码速度。
6.本技术一方面提供了一种数据编码方法,包括:
7.获取目标图像帧,获取针对目标图像帧的帧内率失真代价,获取针对目标图像帧的帧间率失真代价;
8.根据帧间率失真代价和帧内率失真代价,确定目标图像帧与目标图像帧的相邻图像帧之间的帧间差距度;
9.根据帧间率失真代价,确定针对目标图像帧的图像帧复杂度;
10.根据图像帧复杂度和帧间差距度,确定针对目标图像帧的编码策略;编码策略为帧间编码策略或帧内编码策略。
11.本技术一方面提供了一种数据编码装置,包括:
12.代价获取模块,用于获取目标图像帧,获取针对目标图像帧的帧内率失真代价,获取针对目标图像帧的帧间率失真代价;
13.差距度确定模块,用于根据帧间率失真代价和帧内率失真代价,确定目标图像帧与目标图像帧的相邻图像帧之间的帧间差距度;
14.复杂度确定模块,用于根据帧间率失真代价,确定针对目标图像帧的图像帧复杂度;
15.策略确定模块,用于根据图像帧复杂度和帧间差距度,确定针对目标图像帧的编码策略;编码策略为帧间编码策略或帧内编码策略。
16.其中,帧间差距度为第一帧间差距度或第二帧间差距度;第一帧间差距度大于第二帧间差距度;图像帧复杂度为第一图像帧复杂度或第二图像帧复杂度;第一图像帧复杂度大于第二图像帧复杂度;
17.策略确定模块,包括:
18.第一策略确定单元,用于当图像帧复杂度为第一图像帧复杂度,且帧间差距度为第一帧间差距度时,确定针对目标图像帧的编码策略为帧内编码策略;
19.第二策略确定单元,用于当图像帧复杂度为第二图像帧复杂度,或帧间差距度为第二帧间差距度时,确定针对目标图像帧的编码策略为帧间编码策略。
20.其中,差距度确定模块,包括:
21.参数确定单元,用于根据帧间率失真代价和帧内率失真代价,确定帧差距衡量参数;
22.第一差距度确定单元,用于当帧差距衡量参数大于帧差距衡量阈值时,确定帧间差距度为第一帧间差距度;
23.第二差距度确定单元,用于当帧间差距度小于或等于帧差距衡量阈值时,确定帧间差距度为第二帧间差距度。
24.其中,复杂度确定模块,包括:
25.第一复杂度确定单元,用于当帧间率失真代价大于代价衡量阈值时,确定图像帧复杂度为第一图像帧复杂度;
26.第二复杂度确定单元,用于当帧间率失真代价小于或等于代价衡量阈值时,确定图像帧复杂度为第二图像帧复杂度。
27.其中,上述装置还包括:
28.第一单元获取模块,用于当确定针对目标图像帧的编码策略为帧间编码策略时,获取目标图像帧所包括的编码单元;
29.单元代价获取模块,用于获取针对编码单元的单元帧间率失真代价和单元帧内率失真代价;
30.阈值确定模块,用于获取代价衡量参数,根据代价衡量参数和单元帧内率失真代价,确定代价衡量阈值;
31.第一单元策略确定模块,用于当帧间率失真代价大于代价衡量阈值时,确定针对编码单元的编码策略为帧内编码策略。
32.其中,上述装置还包括:
33.第二单元获取模块,用于当确定针对目标图像帧的编码策略为帧内编码策略时,获取目标图像帧所包括的编码单元;
34.第二单元策略确定模块,用于确定针对编码单元的编码策略为帧内编码策略。
35.其中,代价获取模块,包括:
36.帧内参数获取单元,用于获取针对目标图像帧的帧内预测失真度,获取针对目标图像帧的帧内预测码率;
37.帧内代价确定单元,用于根据帧内预测失真度和帧内预测码率,确定针对目标图像帧的帧内率失真代价。
38.其中,代价获取模块,包括:
39.帧间参数获取单元,用于获取针对目标图像帧的帧间预测失真度,获取针对目标图像帧的帧间预测码率;
40.帧间代价确定单元,用于根据帧间预测失真度和帧间预测码率,确定针对目标图像帧的帧间率失真代价。
41.其中,代价获取模块,包括:
42.视频获取单元,用于获取视频数据;
43.分帧单元,用于对视频数据进行分帧,得到视频数据所包括的至少两个图像帧;
44.图像帧确定单元,用于从至少两个图像帧中,确定目标图像帧。
45.其中,上述装置还包括:
46.编码模块,用于基于所确定的针对目标图像帧的编码策略,对视频数据进行编码,得到视频数据的编码数据;
47.解码模块,用于将编码数据同步至视频客户端,以使视频客户端对编码数据进行解码,得到视频数据的解码数据,对解码数据进行播放。
48.本技术一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本技术中一方面中的方法。
49.本技术一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时使该处理器执行上述一方面中的方法。
50.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面等各种可选方式中提供的方法。
51.本技术可以获取目标图像帧,获取针对目标图像帧的帧内率失真代价,获取针对目标图像帧的帧间率失真代价;根据帧间率失真代价和帧内率失真代价,确定目标图像帧与目标图像帧的相邻图像帧之间的帧间差距度;根据帧间率失真代价,确定针对目标图像帧的图像帧复杂度;根据图像帧复杂度和帧间差距度,确定针对目标图像帧的编码策略;编码策略为帧间编码策略或帧内编码策略。由此可见,本技术提出的方法可以根据目标图像帧的帧间率失真代价和帧内率失真代价,得到目标图像帧与相邻图像帧之间的帧间差距度、以及目标图像帧的图像帧复杂度,该帧间差距度和图像帧复杂度可以用于判断目标图像帧是否是场景转换的图像帧,以此来确定针对目标图像帧的编码策略。由于对目标图像帧执行帧间编码策略比执行帧内编码策略的耗时要多,因此通过此种自适应的方式判断对目标图像帧执行帧间编码策略还是帧内编码策略,可以提高针对目标图像帧的编码速度。
附图说明
52.为了更清楚地说明本技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
53.图1是本技术实施例提供的一种网络架构的结构示意图;
54.图2是本技术提供的一种数据编码的场景示意图;
55.图3是本技术提供的一种数据编码方法的流程示意图;
56.图4是本技术提供的一种获取图像帧的场景示意图;
57.图5是本技术提供的一种编码预测的场景示意图;
58.图6是本技术提供的一种编码耗时对比的场景示意图;
59.图7是本技术提供的一种获取编码单元的编码策略的场景示意图;
60.图8是本技术提供的一种数据编码传输方法的流程示意图;
61.图9是本技术提供的一种数据编码装置的结构示意图;
62.图10是本技术提供的一种计算机设备的结构示意图。
具体实施方式
63.下面将结合本技术中的附图,对本技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
64.本技术涉及到云技术。其中,云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
65.云技术(cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
66.本技术中主要涉及到的云技术指对视频数据进行传输的技术,具体涉及到可以使用云服务器先对视频数据进行编码压缩再传输的技术。请参见下述内容描述。
67.请参见图1,图1是本技术实施例提供的一种网络架构的结构示意图。如图1所示,网络架构可以包括服务器200和终端设备集群,终端设备集群可以包括一个或者多个终端设备,这里将不对终端设备的数量进行限制。如图1所示,多个终端设备具体可以包括终端设备100a、终端设备101a、终端设备102a、

、终端设备103a;如图1所示,终端设备100a、终端设备101a、终端设备102a、

、终端设备103a均可以与服务器200进行网络连接,以便于每个终端设备可以通过网络连接与服务器200之间进行数据交互。
68.如图1所示的服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以是:智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视等智能终端。下面以终端设备100a与服务器200之间的通信为例,进行本技术实施例的具体描述。
69.请一并参见图2,图2是本技术提供的一种数据编码的场景示意图。图像帧101b和
图像帧102b可以是对视频数据100b进行分帧后,所得到的图像帧。即视频数据100b包括图像帧101b和图像帧102b。图像帧101b可以是102b的相邻图像帧,图像帧101b可以是图像帧102b的前一个图像帧。
70.该视频数据100b可以是任意一个视频数据,视频数据100b可以是由终端设备100a获取到的。例如,视频数据100b可以是终端设备100a在实现实时在线会议过程中所录制下来的会议视频数据。终端设备100a在获取到视频数据100b之后,可以将该视频数据100b发送给服务器200,以向服务器200请求对视频数据100b进行编码。因此,服务器100b在获取到视频数据108b之后,就可以对视频数据100b进行分帧,得到图像帧101b和图像帧102b。
71.由于,服务器200对视频数据100b所包含的每一个图像帧进行编码的原理都是相同的,因此,此处以服务器200如何对图像帧102b进行编码的过程为例进行说明。因此,可以将图像帧102b作为目标图像帧,图像帧101b为目标图像帧的相邻图像帧,目标图像帧可以是视频数据100b中的任意一个图像帧。下面具体说明服务器200对目标图像帧102b进行编码的过程,请参见下述内容描述。
72.如图2所示,服务器200在对视频数据100b进行编码的过程中,会对视频数据进行预分析,通过对视频数据100b进行预分析,服务器200可以得到对图像帧102b进行帧内编码的率失真代价,可以将对图像帧102b进行帧内编码的率失真代价称为帧内率失真代价106b。通过对视频数据100b进行预分析,服务器200还可以得到对图像帧102b进行帧间编码的率失真代价,可以将对图像帧102b进行帧间编码的率失真代价称为帧间率失真代价107b。
73.其中,率失真代价可以综合衡量对数据进行编码的质量。率失真代价是通过衡量对数据进行编码的失真度和码率得到。在实际编码场景中,是希望失真度越小,码率越小的,这就可以使得率失真代价越小。但是,失真度和码率通常不能兼得,两者一般是反相关的关系。其中,对目标图像帧102b进行帧内编码或者帧间编码的描述可以参见下述图3对应的实施例中的描述。
74.服务器200可以通过帧内率失真代价106b和帧间率失真代价107b,得到目标图像帧102b与其相邻图像帧101b之间的帧间差距度103b。服务器200还可以通过帧间率失真代价107b,得到目标图像帧102b的图像帧复杂度105b。其中,通过帧内率失真代价106b和帧间率失真代价107b,得到目标图像帧102b的帧间差距度103b和图像帧复杂度105b的具体过程也可以参见下述图3对应的实施例中的描述。
75.服务器200可以通过目标图像帧102b的帧间差距度103b和图像帧复杂度105b,来得到针对目标图像帧102b的编码策略108b。其中,服务器得到针对目标图像帧102b的编码策略108b,也就是判断出对目标图像帧102b采用何种编码的方式。如图2所示,编码策略108b可以为帧内编码策略110b或者帧间编码策略111b。
76.其中,当服务器200检测出目标图像帧102b的帧间差距度103b够大,并且,目标图像帧102b的图像帧复杂度也够大时,则可以认为目标图像帧102b是属于场景转换的图像帧,对于场景转换的目标图像帧102b,服务器200判断出来的针对目标图像帧102b的编码策略108b可以是帧内编码策略110b,即需要对目标图像帧102b进行帧内编码。
77.当服务器200检测出目标图像帧102b的帧间差距度103b不够大,或者,目标图像帧102b的图像帧复杂度不够大时,则可以认为目标图像帧102b不是属于场景转换的图像帧,
对于非场景转换的目标图像帧102b,服务器200判断出来的针对目标图像帧102b的编码策略108b可以是帧间编码策略111b,即需要对目标图像帧102b进行帧间编码。
78.如何确定针对目标图像帧102b的编码策略的具体过程也可以参见下述图3对应的实施例中的描述。
79.需要知道的是,对目标图像帧102b进行帧间编码的原理,主要是通过目标图像帧102b与相邻图像帧101b之间的相对运动所实现的,当目标图像帧102b与相邻图像帧101b之间的帧间差距度103b越大时,表明目标图像帧102b中的越多图像块大概率不是基于对相邻图像帧101b中的对应图像块运动得到(也越表征目标图像帧102b是场景转换的图像帧),而是新出现的图像块,因此即使对目标图像帧102b采取帧间编码的方式,但是对目标图像帧102b中的越多的图像块还是采用的帧内编码的方式。而当目标图像帧102b的帧间差距度越大并且也越复杂时(即图像帧复杂度105b越大时),对目标图像帧102b采取帧内编码的方式比对图像帧102b采取帧间编码的方式,其耗时要短很多。
80.通过本技术所提供的方法,对于比较复杂的图像帧,并且属于场景转换的图像帧,可以对该图像帧采取帧内编码的方式,可以提高针对该图像帧的编码速度。
81.请参见图3,图3是本技术提供的一种数据编码方法的流程示意图,如图3所示,该方法可以包括:
82.步骤s101,获取目标图像帧,获取针对目标图像帧的帧内率失真代价,获取针对目标图像帧的帧间率失真代价;
83.具体的,本技术实施例中的执行主体可以是任意一个计算机设备,或者可以是由多个计算机设备构成的设备集群。该计算机设备可以是服务器,也可以是终端设备,对此不进行限定。此处,以本技术中的执行主体为服务器为例进行说明。请参见下述内容描述。
84.服务器可以获取到视频数据,该视频数据可以是任意一个视频数据,该视频数据可以是终端设备发送给服务器的。终端设备通过向服务器发送视频数据,可以是向服务器请求对该视频数据进行编码。例如,该视频数据可以是摄像头实时拍摄下的视频数据,如在线会议视频数据;该视频数据还可以是屏幕分享的视频数据等。
85.服务器在对视频数据进行编码时,可以对该视频数据进行分帧,即可得到该视频数据所包含的多个(至少两个)图像帧。因此,目标图像帧可以是该视频数据中所分帧得到的多个图像帧中的任意一个图像帧。服务器对视频数据进行编码,就是需要对视频数据的每一个图像帧进行编码,此处,就以服务器对视频数据中的目标图像帧进行编码的过程为例进行说明。可以理解的是,服务器对视频数据中的每个图像帧进行编码的原理是相同的。请参见下述内容描述。
86.服务器在对视频数据进行编码的过程中,首先会对该视频数据进行预分析,服务器通过对视频数据进行预分析,可以预测得到对视频数据中的每一个图像帧进行帧内编码时的率失真代价(此处指帧内编码的最小率失真代价)、以及对每一个图像帧进行帧间编码时的率失真代价(此处指帧间编码的最小率失真代价)。可以将对每个图像帧进行帧内编码时的率失真代价,称之为每个图像帧的帧内率失真代价。可以将对每个图像帧进行帧间编码时的率失真代价,称之为每个图像帧的帧间率失真代价。
87.因此,通过对视频数据进行预分析,服务器也可以获取到针对目标图像帧的帧内率失真代价和帧间率失真代价。其中,服务器获取针对目标图像帧的帧内率失真代价和帧
间率失真代价的具体过程可以为:
88.由于率失真代价是通过同时衡量对数据进行编码时的失真度和码率所得到的,失真度越小,表明对数据进行编码时,数据的失真度越小,码率越小,表明对数据编码后,数据的数据量越小(即数据的比特数越少,也就是将数据压缩得越小)。因此,在对数据进行编码的场景中,是希望对数据编码后数据的失真度越小,并且码率越小的。
89.但是,对数据进行编码时,失真度和码率往往是负相关的关系,当数据的失真度越小,数据的码率往往会越大,反之,当数据的失真度越大时,数据的码率通常可以更小。因此,率失真代价就是综合衡量了对数据进行编码时数据的失真度和码率所得到的,换句话说,通过率失真代价,可以平衡地考虑对数据进行编码时数据的失真度和码率所带来的影响。
90.因此,可以理解的是,在对数据进行编码时,就是希望数据在编码时的率失真代价越小,这就表明对数据进行编码的效果越好。
91.具体的,服务器在对视频数据进行预分析的过程中,可以获取到针对目标图像帧的帧间预测失真度,该帧间预测失真度,也就是指所预测的对目标图像帧进行帧间编码时目标图像帧的失真度。服务器在对视频数据进行预分析的过程中,还可以获取到针对目标图像帧的帧间预测码率,该帧间预测码率,也就是指预测对目标图像帧进行帧间编码时目标图像帧的码率。通过目标图像帧的帧间预测失真度和帧间预测码率,服务器即可获取到针对目标图像帧的帧间率失真代价。
92.同理,服务器在对视频数据进行预分析的过程中,还可以获取到针对目标图像帧的帧内预测失真度,该帧内预测失真度,也就是指所预测的对目标图像帧进行帧内编码时目标图像帧的失真度。服务器在对视频数据进行预分析的过程中,还可以获取到针对目标图像帧的帧内预测码率,该帧内预测码率,也就是指预测对目标图像帧进行帧内编码时目标图像帧的码率。通过目标图像帧的该帧内预测失真度和帧内预测码率,服务器即可获取到针对目标图像帧的帧内率失真代价。
93.其中,由于在对视频数据进行预分析时,预测目标图像帧进行帧间编码的率失真代价时,会包括对目标图像帧进行帧内编码的方案。因此,在得到目标图像帧的帧内率失真代价和帧间率失真代价时,对目标图像帧进行帧内编码,可以仅包括对目标图像帧进行i帧编码的方案;对目标图像帧进行帧间编码,可以包括对目标图像帧进行i帧编码、p帧编码和b帧编码的方案。
94.上述服务器对目标图像帧进行帧内编码时的帧内率失真代价,就是对目标图像帧进行帧内编码(i帧编码)时最小的率失真代价,同理上述服务器对目标图像帧进行帧间编码时的帧间率失真代价,就是对目标图像帧进行帧间编码(i帧编码、p帧编码和b帧编码)时最小的率失真代价。而在除获取目标图像帧的帧间率失真代价和帧内率失真代价之外的情况中,对目标图像帧进行帧内编码就是可以指对目标图像帧进行i帧编码,对目标图像帧进行帧间编码就是可以指对目标图像帧进行b帧编码或者p帧编码。
95.由于在获取目标图像帧的帧内率失真代价和帧间率失真代价时,帧间编码的方案包括了帧内编码的方案,因此,目标图像帧的帧间率失真代价必然会小于或者等于目标图像帧的帧内率失真代价,目标图像帧的帧间率失真代价有可能就是目标图像帧的帧内率失真代价。
96.例如,当对目标图像帧进行i帧编码时的率失真代价最小,则目标图像帧的帧间率失真代价就和帧内率失真代价相同。当对目标图像帧进行b帧编码或者p帧编码时的率失真代价最小,则目标图像帧的帧间率失真代价就小于帧内率失真代价。
97.其中,对目标图像帧进行i帧编码,是指对目标图像帧进行编码时,保留目标图像帧的全部完整的画面信息,仅靠目标图像帧就可以实现对目标图像帧的编码,因此,解码时也只需要目标图像帧的编码数据即可实现对目标图像帧的解码。
98.而对目标图像帧进行p帧编码,则是指需要通过目标图像帧与相邻图像帧之间的相对运动来编码,即需要通过目标图像帧与相邻图像帧之间的差异来编码。该相邻图像帧可以指目标图像帧的前一个图像帧。
99.因此当对目标图像帧进行p帧编码后,对目标图像帧的编码数据进行解码时,不仅需要目标图像帧的编码数据来实现解码,还需要在目标图像帧的相邻图像帧的基础上叠加上目标图像帧的编码数据以实现对目标图像帧的解码。换句话说,对目标图像帧进行p帧编码所得到的编码数据,没有目标图像帧完整的画面信息,而是只有目标图像帧与相邻图像帧之间的差别数据。
100.上述对目标图像帧进行p帧编码为单向的编码,只需要目标图像帧的前面的图像帧(前面已解码的图像帧)来实现对目标图像帧的编码。而对目标图像帧进行b帧编码则为双向的编码,即对目标图像帧进行b帧编码不仅需要目标图像帧的前面的图像帧,还需要目标图像帧后面的图像帧(后面已解码的图像帧)。通过目标图像帧与前面的图像帧的差别、以及目标图像帧与后面的图像帧的差别,来对目标图像帧进行编码。
101.步骤s102,根据帧间率失真代价和帧内率失真代价,确定目标图像帧与目标图像帧的相邻图像帧之间的帧间差距度;
102.具体的,服务器可以获取到目标图像帧的帧间率失真代价与帧内率失真代价之间的比值,即帧间率失真代价比上帧内率失真代价的比值,可以将该比值称之为帧差距衡量参数。当该帧差距衡量参数大于帧差距衡量阈值时,可以认为目标图像帧与其相邻图像帧之间的帧差距度为第一帧间差距度,该第一帧间差距度表明目标图像帧与相邻图像帧之间的差距很大。其中,该相邻图像帧可以是目标图像帧前面任意的图像帧,例如可以是目标图像帧的前一个图像帧。
103.请参见图4,图4是本技术提供的一种获取图像帧的场景示意图。如图4所示,服务器可以对视频数据100c进行分帧,即可得到视频数据100c所包括的多个图像帧。该多个图像帧即为区域101c中的多个图像帧。该多个图像帧具体可以包括图像帧102c、图像帧103c、图像帧104c和图像帧105c。
104.服务器可以将视频数据100c所包括的任意一个图像帧作为目标图像帧,例如此处,服务器可以将视频数据100c的图像帧104c作为目标图像帧,将目标图像帧104c的前一个图像帧103c作为目标图像帧的相邻图像帧。
105.由于目标图像帧的帧间率失真代价必然是小于或者等于帧内率失真代价的,因此帧差距衡量参数的取值范围为0到1。因此,该帧差距衡量阈值可以根据实际情况自行设置,该帧差距衡量阈值的取值范围也是0到1,例如该帧差距衡量阈值可以等于0.7。
106.其中,当帧差距衡量参数大于帧差距衡量阈值时,对目标图像帧进行帧内编码或者帧间编码,其率失真代价差不多。而当目标图像帧与相邻图像帧之间的帧间差距度越大
时,表明目标图像帧中越多图像块不是基于相邻图像帧中的图像块运动而来,也就是表明目标图像帧中越多的图像块是新出现的图像块。
107.此时,即使对目标图像帧采取帧间编码(此处指p帧编码或者b帧编码)的方式进行编码,目标图像帧中越多的图像块(如新出现的图像块)也是采取的帧内编码(此处指i帧编码)的方式的进行编码的,因为新的图像块不是基于相邻图像帧中的图像块运动而来,因此,需要保留新出现的图像块的完整的画面信息。因此此种情况下,对目标图像帧采取帧间编码(此处指p帧编码或者b帧编码)的方式进行编码,与对目标图像帧采取帧内编码(此处指i帧编码)的方式的进行编码时其率失真代价的差别不大。
108.而目标图像帧与相邻图像帧之间的帧间差距度越大时,也越表明目标图像帧是场景转换的图像帧。因为,对于场景转换的图像帧而言,其所包含的图像块基本不是由前面的图像帧中的图像块运动而来。
109.因此,当上述目标图像帧的帧间率失真代价与帧内率失真代价之间的比值(即帧差距衡量参数)大于帧差距衡量阈值时,表明目标图像帧的帧内率失真代价越靠近目标图像帧的帧间率失真代价。因此,可以用上述帧差距衡量参数来衡量目标图像帧与相邻图像帧之间的差距(即差异)。
110.更多的,当上述帧差距衡量参数小于或者等于上述帧差距衡量阈值时,可以认为目标图像帧与其相邻图像帧之间的帧差距度为第二帧间差距度,该第二帧间差距度表明目标图像帧与相邻图像帧之间的差距较小。
111.因此,上述第一帧间差距度大于上述第二帧间差距度。
112.通过上述过程,服务器即可获取到目标图像帧与其相邻图像帧之间的帧间差距度,该帧间差距度可以为第一帧间差距度或者第二帧间差距度。
113.请参见图5,图5是本技术提供的一种编码预测的场景示意图。如图5所示,目标图像帧100d为场景转换的图像帧,可以对目标图像帧100d所包括的图像块进行预测,即预测每个图像块是帧内预测块,还是帧间预测块。若某个图像块为帧内预测块,则表明需要采用帧内编码(i帧编码)的方式对该图像块进行编码。若某个图像块为帧间预测块,则表明需要采用帧间编码(p帧编码或b帧编码)的方式对该图像块进行编码。
114.如图5所示,目标图像帧100d中可以包括图像块101d、图像块102d、图像块103d、图像块104d、图像块105d、图像块106d、图像块107d和图像块108d。由于目标图像帧属于场景转换的图像帧,因此,目标图像帧100d中少部分的图像块101d、图像块102d、图像块103d、图像块104d、图像块105d、图像块106d、图像块107d和图像块108d属于帧间预测块,而目标图像帧100d中除图像块101d、图像块102d、图像块103d、图像块104d、图像块105d、图像块106d、图像块107d和图像块108d之外的大部分图像块属于帧内预测块。
115.步骤s103,根据帧间率失真代价,确定针对目标图像帧的图像帧复杂度;
116.具体的,由于图像帧越复杂时,对该图像帧进行编码时,通常其帧间率失真代价会越大。因此,当目标图像帧的帧间率失真代价越小时,可以表明目标图像帧越不复杂,反之,当目标图像帧的帧间率失真代价越大时,可以表明目标图像帧越复杂。
117.因此,当目标图像帧的帧间率失真代价大于代价衡量阈值时,可以认为目标图像帧的图像帧复杂度为第一图像帧复杂度,该第一图像帧复杂度表明目标图像帧比较复杂。
118.反之,当目标图像帧的帧间率失真代价小于或者等于该代价衡量阈值时,可以认
为目标图像帧的图像帧复杂度为第二图像帧复杂度,该第二图像帧表明目标图像帧不太复杂。
119.因此,上述第一图像帧复杂度大于第二图像帧复杂度。
120.通过此过程,服务器即可获取到目标图像帧的图像帧复杂度,该图像帧复杂度可以为第一图像帧复杂度或者第二图像帧复杂度。
121.步骤s104,根据图像帧复杂度和帧间差距度,确定针对目标图像帧的编码策略;编码策略为帧间编码策略或帧内编码策略;
122.具体的,针对目标图像帧的编码策略为帧内编码策略,表明可以是对目标图像帧采取i帧编码的方式进行编码。针对目标图像帧的编码策略为帧间编码策略,表明可以是对目标图像帧采取p帧编码的方式进行编码或者采取b帧编码的方式进行编码。
123.当服务器获取到的帧间差距度为第一帧间差距度,并且目标图像帧的图像帧复杂度为第一图像帧复杂度时,表明此时对目标图像帧采取帧间编码方式(p帧编码或者b帧编码)进行编码或者采取帧内编码方式(i帧编码)进行编码其率失真代价差不多,并且目标图像帧也比较复杂,此种情况可以认为目标图像帧是场景转换的图像帧,因此此时针对目标图像帧的编码策略可以为帧内编码策略。
124.因为通常对图像帧采取帧间编码(p帧编码或者b帧编码)的方式进行编码时图像帧的编码耗时,要大于对图像帧采取帧内编码(i帧编码)的方式进行编码时图像帧的编码耗时。因此,当目标图像帧比较复杂,并且目标图像帧是场景转换的图像帧时,此时对目标图像帧采取帧间编码(p帧编码或者b帧编码)的方式进行编码时的率失真代价,与对目标图像帧采取帧内编码(i帧编码)的方式进行编码时的率失真代价差不多,但是对目标图像帧采取帧间编码(p帧编码或者b帧编码)的方式进行编码时目标图像帧的编码耗时,要大于对目标图像帧采取帧内编码(i帧编码)的方式进行编码时目标图像帧的编码耗时,因此此时针对目标图像帧的编码策略可以为帧内编码策略。
125.反之,当服务器获取到的帧间差距度为第二帧间差距度,或者目标图像帧的图像帧复杂度为第二图像帧复杂度时,表明目标图像帧与相邻图像帧之间的差距比较小,或者目标图像帧不那么复杂,此时可以认为针对目标图像帧的编码策略可以为帧间编码策略。
126.因为,当目标图像帧与相邻图像帧之间的帧间差距度比较小(即帧间差距度为第二帧间差距度)时,对目标图像帧采取帧间编码(p帧编码或者b帧编码)的方式进行编码其率失真代价,明显要小于对目标图像帧采取帧内编码(i帧编码)的方式进行编码其率失真代价,因此,此时还是使用帧间编码的方式对目标图像帧进行编码。
127.并且,当目标图像帧不那么复杂(即图像帧复杂度为第二图像帧复杂度)时,对目标图像帧采取帧内编码(i帧编码)的方式进行编码与对目标图像帧采取帧间编码(p帧编码或者b帧编码)的方式进行编码时,其耗时差不多,因此此时还是使用帧间编码的方式对目标图像帧进行编码。
128.其中,服务器在对目标图像帧进行编码时,还可以将目标图像帧分解为多个编码单元分别进行编码,一个编码单元可以为目标图像帧中的一个图像块。
129.当服务器获取到的针对目标图像帧的编码策略为帧内编码策略时,服务器可以获取到目标图像帧所包括的多个编码单元,服务器可以将目标图像帧所包括的每个编码单元的编码策略也确定为帧内编码策略。即此时在对目标图像帧进行编码时,可以对目标图像
帧所包括的每个编码单元都采用帧内编码(i帧编码)的方式进行编码。
130.通过本技术所提供的方法,可以根据在预分析过程中获取到的针对目标图像帧的帧间率失真代价和帧内率失真代价,来确定目标图像帧的编码策略,当判断出目标图像帧比较复杂并且为场景转换的图像帧时,对目标图像帧采取帧内编码的方式进行编码,这可以大大减少目标图像帧的编码耗时,提升针对目标图像帧的编码速度。
131.并且,由于用户在观看视频数据时,对场景转换的图像帧会更敏感,因此,通过提升针对场景转换的图像帧的编码速度,也可以提升视频数据的展示效果,即可以更快速平滑地展示场景转换的图像帧,从而提升用户针对视频数据的观感。
132.请参见图6,图6是本技术提供的一种编码耗时对比的场景示意图。如图6所示,图6中的坐标的横坐标表示图像帧索引号,纵坐标表示编码时间(即编码耗时),编码耗时的单位为ms(毫秒)。点101e和点102e为对同一个图像帧进行编码的编码时间,点101e表示对图像帧进行帧间编码的编码时间,点102e表示对图像帧进行帧内编码的耗时,可以看出点101e表示的编码时间大于点102e表示的编码时间。
133.同理,点103e和点104e为对同一个图像帧进行编码的编码时间,点103e表示对图像帧进行帧间编码的编码时间,点104e表示对图像帧进行帧内编码的耗时,可以看出点103e表示的编码时间大于点104e表示的编码时间。点105e和点106e为对同一个图像帧进行编码的编码时间,点105e表示对图像帧进行帧间编码的编码时间,点106e表示对图像帧进行帧内编码的耗时,可以看出点105e表示的编码时间大于点106e表示的编码时间。点107e和点108e为对同一个图像帧进行编码的编码时间,点107e表示对图像帧进行帧间编码的编码时间,点108e表示对图像帧进行帧内编码的耗时,可以看出点107e表示的编码时间大于点108e表示的编码时间。
134.更多的,点109e和点110e为对同一个图像帧进行编码的编码时间,点109e表示对图像帧进行帧间编码的编码时间,点110e表示对图像帧进行帧内编码的耗时,可以看出点109e表示的编码时间大于点110e表示的编码时间。点111e和点112e为对同一个图像帧进行编码的编码时间,点111e表示对图像帧进行帧间编码的编码时间,点112e表示对图像帧进行帧内编码的耗时,可以看出点111e表示的编码时间大于点112e表示的编码时间。点113e和点114e为对同一个图像帧进行编码的编码时间,点113e表示对图像帧进行帧间编码的编码时间,点114e表示对图像帧进行帧内编码的耗时,可以看出点113e表示的编码时间大于点114e表示的编码时间。
135.由上述可以看出,对图像帧采取帧间编码的方式进行编码的编码时间,普遍大于对图像帧采取帧内编码的方式进行编码的编码时间。
136.当服务器获取到的针对目标图像帧的编码策略为帧间编码策略时,服务器同样可以获取到目标图像帧所包括的多个编码单元,服务器可以进一步地判断目标图像帧中的每个编码单元的编码策略,该编码策略也可以包括帧间编码策略和帧内编码策略,若是某个编码单元的编码策略为帧间编码策略,则表明可以采用帧间编码(p帧编码或者b帧编码)的方式对该编码单元进行编码。若是某个编码单元的编码策略为帧内编码策略,则表明可以采用帧内编码(i帧编码)的方式对该编码单元进行编码。但是此时对于目标图像帧而言,其还是属于帧间编码。
137.由此可以实现,当目标图像帧属于场景转换的帧,但是目标图像帧并不是整帧发
生了场景转换,而只是部分图像帧发生了场景转换时,也可以更细致地对目标图像帧中发生场景转换处的编码单元进行帧内编码的方式进行编码,而对没有发生场景转换处的编码单元还是进行帧间编码的方式进行编码。
138.例如,目标图像帧中出现了一个小弹窗,则可以认为目标图像帧中只有该小弹窗处的编码单元发生了场景转换,而其他编码单元没有发生场景转换。
139.其中,服务器还可以获取到目标图像帧的每个编码单元的单元帧间率失真代价和单元帧内率失真代价,该单元帧间率失真代价表征了对编码单元采取帧间编码(p帧编码或b帧编码)的方式进行编码时的率失真代价,该单元帧内率失真代价表征了对编码单元采取帧内编码(i帧编码)的方式进行编码时的率失真代价。该单元帧间率失真代价和单元帧内率失真代价,也可以是服务器在对视频数据进行预分析的过程中获取到的。
140.当目标图像帧的某个编码单元的单元帧内率失真代价远远小于其单元帧间率失真代价时,则认为该编码单元为发生场景转换的编码单元,可以将帧内编码策略作为该编码单元的编码策略。反之,当目标图像帧的某个编码单元的单元帧内率失真代价没有远远小于其单元帧间率失真代价时,则认为该编码单元不是发生场景转换的编码单元,可以将帧间编码策略作为该编码单元的编码策略。
141.其中,服务器可以设定一个代价衡量参数,服务器可以将该代价衡量参数与编码单元的单元帧内率失真代价之间的乘积,作为代价衡量阈值。一个编码单元对应一个代价衡量阈值。当某个编码单元的单元帧间率失真代价大于其对应的代价衡量阈值时,可以认为该编码单元的单元帧内率失真代价远远小于其单元帧间率失真代价。反之,当某个编码单元的单元帧间率失真代价小于其对应的代价衡量阈值时,可以认为该编码单元的单元帧内率失真代价没有远远小于其单元帧间率失真代价。
142.上述代价衡量参数可以根据实际应用场景进行设定,例如可以将该代价衡量参数取一个比较大的值,当编码单元的单元帧间率失真代价大于代价衡量阈值时,编码单元的单元帧间率失真代价与其单元帧内率失真代价之间的比值,就大于该代价衡量参数。换句话说,当编码单元的单元帧间率失真代价比上其单元帧内率失真代价的比值大于代价衡量参数时,就可以认为编码单元的单元帧内率失真代价远远小于其单元帧间率失真代价,即编码单元的单元帧间率失真代价远远大于其单元帧内率失真代价。
143.通过进一步判断目标图像帧的每个编码单元的编码策略,对发生场景转换的编码单元进行帧内编码,可以进一步提升针对目标图像帧的编码速度。
144.请参见图7,图7是本技术提供的一种获取编码单元的编码策略的场景示意图。如图7所示,如区域100f所示,目标图像帧可以包括12个编码单元,该12个编码单元具体可以包括编码单元1、编码单元2、编码单元3、编码单元4、编码单元5、编码单元6、编码单元7、编码单元8、编码单元9、编码单元10、编码单元11、编码单元12。
145.如区域101f所示,上述12个编码单元中编码单元1和编码单元8,属于场景转换的编码单元,12个编码单元中除编码单元1和编码单元8之外的编码单元不属于场景转换的编码单元。
146.如区域102f所示,上述12个编码单元中属于场景转换的编码单元1和编码单元8的编码策略可以是帧内编码策略。上述12个编码单元中不属于场景转换的编码单元2、编码单元3、编码单元4、编码单元5、编码单元6、编码单元7、编码单元9、编码单元10、编码单元11和
编码单元12的编码策略可以是帧间编码策略。
147.更多的,服务器可以通过所得到的针对目标图像帧的编码策略和针对目标图像帧中的每个编码单元的编码策略,对目标图像帧所属的视频数据进行编码,可以得到该视频数据的编码数据。服务器可以将该编码数据发送至视频客户端,使得视频客户端可以对该编码数据进行解码,即可得到视频数据的解码数据,进而视频客户端可以对该解码数据进行播放,以实现对视频数据的播放。
148.例如,目标图像帧所属的视频数据可以是用户1的视频客户端发送给服务器的,用户1的视频客户端通过向服务器发送视频数据,是请求将该视频数据发送给用户2的视频客户端。因此,服务器可以对视频数据进行编码,得到视频数据的编码数据之后,将该编码数据发送至用户2的视频客户端,使得用户2的视频客户端可以对该编码数据进行解码,得到解码数据,并对该解码数据进行播放。
149.本技术可以获取目标图像帧,获取针对目标图像帧的帧内率失真代价,获取针对目标图像帧的帧间率失真代价;根据帧间率失真代价和帧内率失真代价,确定目标图像帧与目标图像帧的相邻图像帧之间的帧间差距度;根据帧间率失真代价,确定针对目标图像帧的图像帧复杂度;根据图像帧复杂度和帧间差距度,确定针对目标图像帧的编码策略;编码策略为帧间编码策略或帧内编码策略。由此可见,本技术提出的方法可以根据目标图像帧的帧间率失真代价和帧内率失真代价,得到目标图像帧与相邻图像帧之间的帧间差距度、以及目标图像帧的图像帧复杂度,该帧间差距度和图像帧复杂度可以用于判断目标图像帧是否是场景转换的图像帧,以此来确定针对目标图像帧的编码策略。由于对目标图像帧执行帧间编码策略比执行帧内编码策略的耗时要多,因此通过此种自适应的方式判断对目标图像帧执行帧间编码策略还是帧内编码策略,可以提高针对目标图像帧的编码速度。
150.请参见图8,图8是本技术提供的一种数据编码传输方法的流程示意图。如图8所示,该方法可以包括:
151.步骤s201,发送视频数据;
152.具体的,视频客户端100g可以向服务器101g发送视频数据,以向服务器101g请求将视频数据发送给视频客户端102g。
153.步骤s202,对视频数据进行编码;
154.具体的,服务器101g在接收到视频客户端100g发送的视频数据之后,可以将对该视频数据进行编码,即可得到视频数据的编码数据。其中,服务器101g对视频数据进行编码的方式,可以是采用上述图3对应的实施例中所描述的方式。
155.步骤s203,发送编码数据;
156.具体的,服务器101g可以将编码数据发送给视频客户端102g,这就表明服务器101g已经将视频数据发送给了视频客户端102g。
157.步骤s204,对编码数据进行解码,播放解码数据;
158.具体的,视频客户端102g接收到服务器101g发送的编码数据之后,可以对该编码数据进行解码,即可得到视频数据的解码数据。视频客户端102g可以对该解码数据进行播放,就实现了对上述视频数据的播放。
159.通过本技术所提供的方法对视频数据进行编码,可以减少针对视频数据的编码耗时,进而可以减少视频客户端100g将视频数据传输给视频客户端102g的耗时。
160.请参见图9,图9是本技术提供的一种数据编码装置的结构示意图。如图9所示,该数据编码装置1可以包括:代价获取模块101、差距度确定模块102、复杂度确定模块103和策略确定模块104;
161.代价获取模块101,用于获取目标图像帧,获取针对目标图像帧的帧内率失真代价,获取针对目标图像帧的帧间率失真代价;
162.差距度确定模块102,用于根据帧间率失真代价和帧内率失真代价,确定目标图像帧与目标图像帧的相邻图像帧之间的帧间差距度;
163.复杂度确定模块103,用于根据帧间率失真代价,确定针对目标图像帧的图像帧复杂度;
164.策略确定模块104,用于根据图像帧复杂度和帧间差距度,确定针对目标图像帧的编码策略;编码策略为帧间编码策略或帧内编码策略。
165.其中,代价获取模块101、差距度确定模块102、复杂度确定模块103和策略确定模块104的具体功能实现方式请参见图3对应的实施例中的步骤s101-步骤s104,这里不再进行赘述。
166.其中,帧间差距度为第一帧间差距度或第二帧间差距度;第一帧间差距度大于第二帧间差距度;图像帧复杂度为第一图像帧复杂度或第二图像帧复杂度;第一图像帧复杂度大于第二图像帧复杂度;
167.策略确定模块104,包括:第一策略确定单元1041和第二策略确定单元1042;
168.第一策略确定单元1041,用于当图像帧复杂度为第一图像帧复杂度,且帧间差距度为第一帧间差距度时,确定针对目标图像帧的编码策略为帧内编码策略;
169.第二策略确定单元1042,用于当图像帧复杂度为第二图像帧复杂度,或帧间差距度为第二帧间差距度时,确定针对目标图像帧的编码策略为帧间编码策略。
170.其中,第一策略确定单元1041和第二策略确定单元1042的具体功能实现方式请参见图3对应的实施例中的步骤s104,这里不再进行赘述。
171.其中,差距度确定模块102,包括:参数确定单元1021、第一差距度确定单元1022和第二差距度确定单元1023;
172.参数确定单元1021,用于根据帧间率失真代价和帧内率失真代价,确定帧差距衡量参数;
173.第一差距度确定单元1022,用于当帧差距衡量参数大于帧差距衡量阈值时,确定帧间差距度为第一帧间差距度;
174.第二差距度确定单元1023,用于当帧间差距度小于或等于帧差距衡量阈值时,确定帧间差距度为第二帧间差距度。
175.其中,参数确定单元1021、第一差距度确定单元1022和第二差距度确定单元1023的具体功能实现方式请参见图3对应的实施例中的步骤s102,这里不再进行赘述。
176.其中,复杂度确定模块103,包括:第一复杂度确定单元1031和第二复杂度确定单元1032;
177.第一复杂度确定单元1031,用于当帧间率失真代价大于代价衡量阈值时,确定图像帧复杂度为第一图像帧复杂度;
178.第二复杂度确定单元1032,用于当帧间率失真代价小于或等于代价衡量阈值时,
确定图像帧复杂度为第二图像帧复杂度。
179.其中,第一复杂度确定单元1031和第二复杂度确定单元1032的具体功能实现方式请参见图3对应的实施例中的步骤s103,这里不再进行赘述。
180.其中,上述装置1还包括:第一单元获取模块105、单元代价获取模块106、阈值确定模块107和第一单元策略确定模块108;
181.第一单元获取模块105,用于当确定针对目标图像帧的编码策略为帧间编码策略时,获取目标图像帧所包括的编码单元;
182.单元代价获取模块106,用于获取针对编码单元的单元帧间率失真代价和单元帧内率失真代价;
183.阈值确定模块107,用于获取代价衡量参数,根据代价衡量参数和单元帧内率失真代价,确定代价衡量阈值;
184.第一单元策略确定模块108,用于当帧间率失真代价大于代价衡量阈值时,确定针对编码单元的编码策略为帧内编码策略。
185.其中,第一单元获取模块105、单元代价获取模块106、阈值确定模块107和第一单元策略确定模块108的具体功能实现方式请参见图3对应的实施例中的步骤s104,这里不再进行赘述。
186.其中,上述装置1还包括:第二单元获取模块109和第二单元策略确定模块110;
187.第二单元获取模块109,用于当确定针对目标图像帧的编码策略为帧内编码策略时,获取目标图像帧所包括的编码单元;
188.第二单元策略确定模块110,用于确定针对编码单元的编码策略为帧内编码策略。
189.其中,第二单元获取模块109和第二单元策略确定模块110的具体功能实现方式请参见图3对应的实施例中的步骤s104,这里不再进行赘述。
190.其中,代价获取模块101,包括:帧内参数获取单元1011和帧内代价确定单元1012;
191.帧内参数获取单元1011,用于获取针对目标图像帧的帧内预测失真度,获取针对目标图像帧的帧内预测码率;
192.帧内代价确定单元1012,用于根据帧内预测失真度和帧内预测码率,确定针对目标图像帧的帧内率失真代价。
193.其中,帧内参数获取单元1011和帧内代价确定单元1012的具体功能实现方式请参见图3对应的实施例中的步骤s101,这里不再进行赘述。
194.其中,代价获取模块101,包括:帧间参数获取单元1013和帧间代价确定单元1014;
195.帧间参数获取单元1013,用于获取针对目标图像帧的帧间预测失真度,获取针对目标图像帧的帧间预测码率;
196.帧间代价确定单元1014,用于根据帧间预测失真度和帧间预测码率,确定针对目标图像帧的帧间率失真代价。
197.其中,帧间参数获取单元1013和帧间代价确定单元1014的具体功能实现方式请参见图3对应的实施例中的步骤s101,这里不再进行赘述。
198.其中,代价获取模块101,包括:视频获取单元1015、分帧单元1016和图像帧确定单元1017;
199.视频获取单元1015,用于获取视频数据;
200.分帧单元1016,用于对视频数据进行分帧,得到视频数据所包括的至少两个图像帧;
201.图像帧确定单元1017,用于从至少两个图像帧中,确定目标图像帧。
202.其中,视频获取单元1015、分帧单元1016和图像帧确定单元1017的具体功能实现方式请参见图3对应的实施例中的步骤s101,这里不再进行赘述。
203.其中,上述装置1还包括:编码模块111和解码模块112;
204.编码模块111,用于基于所确定的针对目标图像帧的编码策略,对视频数据进行编码,得到视频数据的编码数据;
205.解码模块112,用于将编码数据同步至视频客户端,以使视频客户端对编码数据进行解码,得到视频数据的解码数据,对解码数据进行播放。
206.其中,编码模块111和解码模块112的具体功能实现方式请参见图3对应的实施例中的步骤s104,这里不再进行赘述。
207.本技术可以获取目标图像帧,获取针对目标图像帧的帧内率失真代价,获取针对目标图像帧的帧间率失真代价;根据帧间率失真代价和帧内率失真代价,确定目标图像帧与目标图像帧的相邻图像帧之间的帧间差距度;根据帧间率失真代价,确定针对目标图像帧的图像帧复杂度;根据图像帧复杂度和帧间差距度,确定针对目标图像帧的编码策略;编码策略为帧间编码策略或帧内编码策略。由此可见,本技术提出的装置可以根据目标图像帧的帧间率失真代价和帧内率失真代价,得到目标图像帧与相邻图像帧之间的帧间差距度、以及目标图像帧的图像帧复杂度,该帧间差距度和图像帧复杂度可以用于判断目标图像帧是否是场景转换的图像帧,以此来确定针对目标图像帧的编码策略。由于对目标图像帧执行帧间编码策略比执行帧内编码策略的耗时要多,因此通过此种自适应的方式判断对目标图像帧执行帧间编码策略还是帧内编码策略,可以提高针对目标图像帧的编码速度。
208.请参见图10,图10是本技术提供的一种计算机设备的结构示意图。如图10所示,计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(display)、键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
209.在图10所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现前文图3对应实施例中对数据编码方法的描述。应当理解,本技术中所描述的计算机设备1000也可执行前文图9所对应实施例中对数据编码装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
210.此外,这里需要指出的是:本技术还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的数据编码装置1所执行的计算机程序,且计算机程序包括
程序指令,当处理器执行程序指令时,能够执行前文图3对应实施例中对数据编码方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本技术所涉及的计算机存储介质实施例中未披露的技术细节,请参照本技术方法实施例的描述。
211.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
212.以上所揭露的仅为本技术较佳实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1