Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020107268 - GDR CODE STREAM ENCODING METHOD, TERMINAL DEVICE, AND MACHINE-READABLE STORAGE MEDIUM

Document

说明书

发明名称 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103  

权利要求书

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19  

附图

1   2   3   4   5   6   7  

说明书

发明名称 : GDR码流编码方法、终端设备、机器可读存储介质

技术领域

[0001]
本发明实施例涉及控制技术领域,尤其涉及一种GDR码流编码方法、终端设备、机器可读存储介质。

背景技术

[0002]
目前,在接收到图传的GDR(Gradual Decoder Refresh,视频渐近刷新)码流后,终端设备对该GDR码流解码后实现本地播放。并且,终端设备还需要将GDR码流保存到本地存储器,这就需要对解码后的图像帧再进行编码,将编码后的编码码流保存在本地,即终端设备对GDR码流编码的过程包括逐帧解码->编码,但是逐帧编码的效率较低。
[0003]
发明内容
[0004]
本发明实施例提供一种GDR码流编码方法、终端设备、机器可读存储介质。
[0005]
第一方面,本发明实施例提供一种GDR码流编码方法,包括:
[0006]
获取GDR码流;
[0007]
将所述GDR码流编码为包含多个编码组的编码码流;每个编码组的第一帧为包含全部图像信息的完整I帧,所述第一帧之后的预设数量帧为复制所述GDR码流中的帧。
[0008]
可选地,所述预设数量为44,每个编码组的预设数量帧包括GDR码流中的4个包含I片的P帧和40个普通P帧。
[0009]
可选地,利用GDR码流编码为一个编码组,包括:
[0010]
获取GDR码流中的一个图像码流组;
[0011]
获取所述图像码流组中最后一个普通P帧;
[0012]
将所述最后一个普通P帧编码为包含全部图像信息的完整I帧,所述 完整I帧作为编码组的第一帧;
[0013]
将所述图像码流组中最后一个普通P帧和后续一个图像码流组中最后一个普通P帧之间的帧作为所述编码组第一帧的后续帧,复制到编码组。
[0014]
可选地,划分一个图像码流组包括:以所述GDR码流的第一个包含I片的P帧为第一帧,之后3个包含I片的P帧和41个普通P帧作为所述第一帧的后续帧,形成一个图像码流组。
[0015]
可选地,还包括:
[0016]
存储时,丢弃编码后第一帧之前的GDR码流。
[0017]
可选地,获取所述图像码流组中最后一个普通P帧包括:
[0018]
获取所接收图传码流中第一个I帧,将所述第一个I帧之前的普通P帧作为前一个图像码流组的最后一个普通P帧。
[0019]
可选地,将所述最后一个普通P帧编码为I帧包括:
[0020]
从指定位置获取参考图像帧,以及获取所述最后一个普通P帧的YUV数据;
[0021]
基于所述参考图像帧和YUV数据,将所述最后一个普通P帧编码为I帧。
[0022]
可选地,所述指定位置为终端设备的缓存,所述参考图像帧为终端设备解码所述最后一个普通P帧之前的GDR码流形成的图像帧。
[0023]
可选地,还包括:
[0024]
若解码所述编码码流,则利用所述第一帧之后的包含I片的P帧修复所述第一帧。
[0025]
第二方面,本发明实施例提供一种终端设备,包括处理器和存储处理器可执行指令的存储器,所述处理器可以从所述存储器内读取可执行指令,用于实现:
[0026]
获取GDR码流;
[0027]
将所述GDR码流编码为包含多个编码组的编码码流;每个编码组的第一帧为包含全部图像信息的完整I帧,所述第一帧之后的预设数量帧为 复制所述GDR码流中的帧。
[0028]
可选地,所述预设数量为44,每个编码组的预设数量帧包括GDR码流中的4个包含I片的P帧和40个普通P帧。
[0029]
可选地,所述处理器用于利用GDR码流编码为一个编码组,包括:
[0030]
获取GDR码流中的一个图像码流组;
[0031]
获取所述图像码流组中最后一个普通P帧;
[0032]
将所述最后一个普通P帧编码为包含全部图像信息的完整I帧,所述完整I帧作为编码组的第一帧;
[0033]
将所述图像码流组中最后一个普通P帧和后续一个图像码流组中最后一个普通P帧之间的帧作为所述编码组第一帧的后续帧,复制到编码组。
[0034]
可选地,所述处理器用于划分为一个图像码流组包括:
[0035]
以所述GDR码流的第一个包含I片的P帧为第一帧,
[0036]
之后3个包含I片的P帧和41个普通P帧作为所述第一帧的后续帧,形成一个图像码流组。
[0037]
可选地,所述处理器还用于:
[0038]
存储时,丢弃编码后第一帧接收到第一个I帧之前的GDR码流。
[0039]
可选地,所述处理器用于获取所述图像码流组中最后一个普通P帧包括:
[0040]
获取所接收图传码流中第一个I帧,将所述第一个I帧之前的普通P帧作为前一个图像码流组的最后一个普通P帧。
[0041]
可选地,所述处理器用于将所述最后一个普通P帧编码为I帧包括:
[0042]
从指定位置获取参考图像帧,以及获取所述最后一个普通P帧的YUV数据;
[0043]
基于所述参考图像帧和YUV数据,将所述最后一个普通P帧编码为I帧。
[0044]
可选地,所述指定位置为终端设备的缓存,所述参考图像帧为终端设备解码所述最后一个普通P帧之前的GDR码流形成的图像帧。
[0045]
可选地,所述处理器还用于:
[0046]
若解码所述编码码流,则利用所述第一帧之后的包含I片的P帧修复所述第一帧。
[0047]
第三方面,本发明实施例提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时实现第一方面所述方法的步骤。
[0048]
由上述的技术方案可见,本实施例中通过将接收的GDR码流编码为包含多个编码组的编码码流;每个编码组的第一帧为包含全部图像信息的完整I帧,第一帧之后的预设数量帧为复制所述GDR码流中的帧。可见,本实施例中除了编码组中第一帧需要编码外,其余帧仅需要复制操作,从而可以减少编码计算量以及编码所需要时间,提升编码效率。

附图说明

[0049]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0050]
图1是本发明实施例提供的一种应用场景图;
[0051]
图2是本发明实施例提供的一种GDR码流编码方法的流程示意图;
[0052]
图3是本发明实施例提供的一种GDR码流格式的示意图;
[0053]
图4是本发明实施例提供的编码一个编码组的流程示意图;
[0054]
图5是本发明实施例提供的编码普通P帧为I帧的流程示意图;
[0055]
图6(a)和图6(b)是本发明实施例提供的GDR码流和编码码流GDR’的示意图;
[0056]
图7是本发明实施例提供的一种终端设备的框图。

具体实施方式

[0057]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0058]
目前,在接收到图传的GDR码流后,终端设备对该GDR码流解码后实现本地播放。并且,终端设备还需要将GDR码流保存到本地存储器,这就需要对解码后的图像帧再进行编码,然后将编码后的编码码流保存在本地,即终端设备对GDR码流编码的过程包括逐帧解码->逐帧编码,但是逐帧编码的效率较低。
[0059]
为此,本发明实施例提供了一种GDR码流编码方法,图1是本发明实施例提供的一种应用场景图。参见图1,图像采集设备20采集视频,然后将视频进行编码、压缩等处理后生成GDR码流,上传给流媒体服务器30,然后由流媒体服务器30转发给终端设备10。或者,图像采集设备20采集视频,然后将视频进行编码、压缩等处理后生成GDR码流,直接将GDR码流发送给终端设备10。GDR码流的传输方式可以根据具体场景进行设置。
[0060]
终端设备10在将GDR码流解码进行播放视频的同时,利用一种GDR码流编码方法,将GDR码流编码后存储在本地存储器、缓存或者云端(图中未示出)。一种GDR码流编码方法,其发明构思在于:
[0061]
终端设备在接收到某一帧时,结合播放视频时所解码出图像帧,可以得到与某一帧对应的图像帧,该图像帧为全部图像信息的完整I帧,然后将GDR码流中某一帧之后的预设数量帧复制到完整I帧之后,这样可以得到一个编码组。重复上述步骤即可多个编码组,从而将GDR码流编码为编码码流。
[0062]
这样,终端设备在对GDR码流编码的过程中,仅对一个帧进行编码操作,剩余帧无需处理,可以极大降低编码的数据量,有利于提高编码效率。
[0063]
图2是本发明实施例提供的一种GDR码流编码方法的流程示意图,参见图2,一种GDR码流编码方法,包括步骤201和步骤202,其中:
[0064]
201,获取GDR码流。
[0065]
本实施例中,终端设备10中处理器可以获取图像采集设备20发送的GDR码流。例如处理器可以从本地存储器、缓存或云端读取GDR码流。
[0066]
本实施例中处理器获取的GDR码流可以包括若干个图像码流组,其中图3中虚线框示出了一个图像码流组。每个图像码流组包括多个包含I片(slice)的P帧和多个普通P帧,图像码流组中包含I slice的P帧和不包含I slice的P帧可以根据具体场景进行设置,在此不作限定。参见图3,本实施例中每个图像码流组包括4个包含I片(slice)的P帧和41个普通P帧,即每个图像码流组包括45个P帧。其中,4个包含I片(slice)的P帧的组成分别为:第一帧的组成是I slice、P slice、P slice和P slice;第二帧的组成是P slice、I slice、P slice和P slice;第三帧的组成是P slice、P slice、I slice和P slice;第四帧的组成是P slice、P slice、P slice和I slice。并且,本实施例中处理器通过这4个包含I slice的P帧可以恢复出来一帧正确的图像帧,即视频画画。
[0067]
202,将所述GDR码流编码为包含多个编码组的编码码流;每个编码组的第一帧为包含全部图像信息的完整I帧,所述第一帧之后的预设数量帧为复制所述GDR码流中的帧。
[0068]
本实施例中,终端设备10中处理器将GDR码流编码为包含多个编码组的编码码流,参见图4,包括:
[0069]
首先,处理器获取GDR码流中的一个图像码流组(对应步骤401)。以划分一个图像码流组为例,获取GDR码流中的第一个包含I slice的P帧,以该第一个包含I slice的P帧作为图像码流组的第一帧,以之后3个 包含I slice的P帧和41个普通P帧作为第一帧的后续帧,得到一个图像码流组。
[0070]
需要说明的是,处理器可以将GDR码流划分为多个图像码流组,然后对多个图像码流组并行执行后续步骤。当然,处理器也可以每次只划分出一个图像码流组,针对该图像码流组执行后续步骤。
[0071]
然后,处理器获取每个图像码流组的最后一个普通P帧(对应步骤402)。继续参见图3,图像码流组的最后一个普通P帧采用箭头示出。
[0072]
之后,处理器将最后一个普通P帧编码为包含全部图像信息的完整I帧,并将该完整I帧作为编码组的第一帧(对应步骤403)。由于终端设备10还需要播放视频,因此存在GDR码流的解码过程,解码方式可以参考相关技术的方案,在此不作限定。
[0073]
在解码过程中,可以得到一个用于显示的完整图像帧,参见图5,处理器可以指定位置读取到该完整图像帧(即参考图像帧)以及获取最后一个普通P帧的YUV数据(对应步骤501),结合该参考图像帧和YUV数据将最后一个普通P帧编码为包含全部图像信息的完整I帧(对应步骤502),编码方式可以参考相关技术的方案,例如H264编码方法,在此不作限定。其中指定位置可以为终端设备的缓存。
[0074]
最后,处理器将图像码流组中最后一个普通P帧和后续一个图像码流组中最后一个普通P帧之间的帧作为编码组第一帧的后续帧,复制到编码组(对应步骤404)。
[0075]
参见图6(a),处理器获取到第一个包含I slice的P帧,即图6(a)中左数第二个虚线框内的第一个P帧,然后处理器将该第一个包含I slice的P帧之前一个图像码流组中最后一个普通P帧,将该最后一个普通P帧编码为完整I帧,作为编码码流中一个编码组的第一帧。之后,处理器复制第二个、第三个、第四个包含I slice的P帧,以及第二个虚线框内最后一个普通P帧之前的全部普通P帧,作为该编码组第一帧之后的后续帧,得到图6(b)所示的编码码流GDR’的一个编码组(虚线框表示)。重 复上述步骤即可得到编码码流GDR’。
[0076]
继续参见图6(b),处理器在存储编码码流GDR’时,由于第一个完整I帧之前的GDR码流无法构成一个编码组,因此处理器会将第一个完整I帧之前的GDR码流丢弃,从而节省存储空间。
[0077]
需要说明的是,本实施例中,当再次解码编码码流GDR’时,处理器可以利用完整I帧(即编码组中第一帧)之后的包含I slice的P帧来修复该完整I帧,从而将画面差异控制在最低范围内。
[0078]
至此,本实施例中除了编码组中第一帧需要编码外,其余帧仅需要复制操作,从而可以减少44/45的编码计算量,有利于减少编码所需要时间以及提升编码效率。
[0079]
本发明实施例还提供了一种终端设备,图7是本发明实施例提供的一种终端设备的框图。参见图7,一种终端设备700包括处理器701和存储处理器701可执行指令的存储器702,处理器701通过通信总线703与存储器702连接,处理器701可以从存储器702内读取可执行指令,用于实现:
[0080]
获取GDR码流;
[0081]
将所述GDR码流编码为包含多个编码组的编码码流;每个编码组的第一帧为包含全部图像信息的完整I帧,所述第一帧之后的预设数量帧为复制所述GDR码流中的帧。
[0082]
在一些实施例中,所述预设数量为44,每个编码组的预设数量帧包括GDR码流中的4个包含I片的P帧和40个普通P帧。
[0083]
在一些实施例中,所述处理器701用于利用GDR码流编码为一个编码组,包括:
[0084]
获取GDR码流中的一个图像码流组;
[0085]
获取所述图像码流组中最后一个普通P帧;
[0086]
将所述最后一个普通P帧编码为包含全部图像信息的完整I帧,所述完整I帧作为编码组的第一帧;
[0087]
将所述图像码流组中最后一个普通P帧和后续一个图像码流组中最后一个普通P帧之间的帧作为所述编码组第一帧的后续帧,复制到编码组。
[0088]
在一些实施例中,所述处理器701用于划分为一个图像码流组包括:
[0089]
以所述GDR码流的第一个包含I片的P帧为第一帧,
[0090]
之后3个包含I片的P帧和41个普通P帧作为所述第一帧的后续帧,形成一个图像码流组。
[0091]
在一些实施例中,所述处理器701还用于:
[0092]
存储时,丢弃编码后第一帧接收到第一个I帧之前的GDR码流。
[0093]
在一些实施例中,所述处理器701用于获取所述图像码流组中最后一个普通P帧包括:
[0094]
获取所接收图传码流中第一个I帧,将所述第一个I帧之前的普通P帧作为前一个图像码流组的最后一个普通P帧。
[0095]
在一些实施例中,所述处理器701用于将所述最后一个普通P帧编码为I帧包括:
[0096]
从指定位置获取参考图像帧,以及获取所述最后一个普通P帧的YUV数据;
[0097]
基于所述参考图像帧和YUV数据,将所述最后一个普通P帧编码为I帧。
[0098]
在一些实施例中,所述指定位置为终端设备的缓存,所述参考图像帧为终端设备解码所述最后一个普通P帧之前的GDR码流形成的图像帧。
[0099]
在一些实施例中,所述处理器701还用于:
[0100]
若解码所述编码码流,则利用所述第一帧之后的包含I片的P帧修复所述第一帧。
[0101]
本发明实施例还提供了一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时实现图1~图5所述方法的步骤。
[0102]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用 来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0103]
以上对本发明实施例所提供的检测装置和方法进行了详细介绍,本发明中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

权利要求书

[权利要求 1]
一种GDR码流编码方法,其特征在于,包括: 获取GDR码流; 将所述GDR码流编码为包含多个编码组的编码码流;每个编码组的第一帧为包含全部图像信息的完整I帧,所述第一帧之后的预设数量帧为复制所述GDR码流中的帧。
[权利要求 2]
根据权利要求1所述的方法,其特征在于,所述预设数量为44,每个编码组的预设数量帧包括GDR码流中的4个包含I片的P帧和40个普通P帧。
[权利要求 3]
根据权利要求1所述的方法,其特征在于,利用GDR码流编码为一个编码组,包括: 获取GDR码流中的一个图像码流组; 获取所述图像码流组中最后一个普通P帧; 将所述最后一个普通P帧编码为包含全部图像信息的完整I帧,所述完整I帧作为编码组的第一帧; 将所述图像码流组中最后一个普通P帧和后续一个图像码流组中最后一个普通P帧之间的帧作为所述编码组第一帧的后续帧,复制到编码组。
[权利要求 4]
根据权利要求3所述的方法,其特征在于,划分一个图像码流组包括:以所述GDR码流的第一个包含I片的P帧为第一帧,之后3个包含I片的P帧和41个普通P帧作为所述第一帧的后续帧,形成一个图像码流组。
[权利要求 5]
根据权利要求4所述的方法,其特征在于,还包括: 存储时,丢弃编码后第一帧之前的GDR码流。
[权利要求 6]
根据权利要求3所述的方法,其特征在于,获取所述图像码流组中最后一个普通P帧包括: 获取所接收图传码流中第一个I帧,将所述第一个I帧之前的普通P 帧作为前一个图像码流组的最后一个普通P帧。
[权利要求 7]
根据权利要求3所述的方法,其特征在于,将所述最后一个普通P帧编码为I帧包括: 从指定位置获取参考图像帧,以及获取所述最后一个普通P帧的YUV数据; 基于所述参考图像帧和YUV数据,将所述最后一个普通P帧编码为I帧。
[权利要求 8]
根据权利要求7所述的方法,其特征在于,所述指定位置为终端设备的缓存,所述参考图像帧为终端设备解码所述最后一个普通P帧之前的GDR码流形成的图像帧。
[权利要求 9]
根据权利要求3所述的方法,其特征在于,还包括: 若解码所述编码码流,则利用所述第一帧之后的包含I片的P帧修复所述第一帧。
[权利要求 10]
一种终端设备,其特征在于,包括处理器和存储处理器可执行指令的存储器,所述处理器可以从所述存储器内读取可执行指令,用于实现: 获取GDR码流; 将所述GDR码流编码为包含多个编码组的编码码流;每个编码组的第一帧为包含全部图像信息的完整I帧,所述第一帧之后的预设数量帧为复制所述GDR码流中的帧。
[权利要求 11]
根据权利要求10所述的终端设备,其特征在于,所述预设数量为44,每个编码组的预设数量帧包括GDR码流中的4个包含I片的P帧和40个普通P帧。
[权利要求 12]
根据权利要求10所述的终端设备,其特征在于,所述处理器用于利用GDR码流编码为一个编码组,包括: 获取GDR码流中的一个图像码流组; 获取所述图像码流组中最后一个普通P帧; 将所述最后一个普通P帧编码为包含全部图像信息的完整I帧,所述 完整I帧作为编码组的第一帧; 将所述图像码流组中最后一个普通P帧和后续一个图像码流组中最后一个普通P帧之间的帧作为所述编码组第一帧的后续帧,复制到编码组。
[权利要求 13]
根据权利要求12所述的终端设备,其特征在于,所述处理器用于划分为一个图像码流组包括: 以所述GDR码流的第一个包含I片的P帧为第一帧, 之后3个包含I片的P帧和41个普通P帧作为所述第一帧的后续帧,形成一个图像码流组。
[权利要求 14]
根据权利要求13所述的终端设备,其特征在于,所述处理器还用于: 存储时,丢弃编码后第一帧接收到第一个I帧之前的GDR码流。
[权利要求 15]
根据权利要求12所述的终端设备,其特征在于,所述处理器用于获取所述图像码流组中最后一个普通P帧包括: 获取所接收图传码流中第一个I帧,将所述第一个I帧之前的普通P帧作为前一个图像码流组的最后一个普通P帧。
[权利要求 16]
根据权利要求12所述的终端设备,其特征在于,所述处理器用于将所述最后一个普通P帧编码为I帧包括: 从指定位置获取参考图像帧,以及获取所述最后一个普通P帧的YUV数据; 基于所述参考图像帧和YUV数据,将所述最后一个普通P帧编码为I帧。
[权利要求 17]
根据权利要求16所述的终端设备,其特征在于,所述指定位置为终端设备的缓存,所述参考图像帧为终端设备解码所述最后一个普通P帧之前的GDR码流形成的图像帧。
[权利要求 18]
根据权利要求12所述的终端设备,其特征在于,所述处理器还用于: 若解码所述编码码流,则利用所述第一帧之后的包含I片的P帧修复 所述第一帧。
[权利要求 19]
一种机器可读存储介质,其特征在于,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时实现权利要求1~9任一项所述方法的步骤。

附图

[ 图 1]  
[ 图 2]  
[ 图 3]  
[ 图 4]  
[ 图 5]  
[ 图 6]  
[ 图 7]