掌桥专利:专业的专利平台
掌桥专利
首页

编解码方法、设备及系统

文献发布时间:2023-06-19 11:14:36


编解码方法、设备及系统

技术领域

本公开涉及图像技术领域,尤其涉及编解码方法、设备及系统。

背景技术

计算机合成图像是采用计算机图形学技术,通过计算机上显卡计算得到的人造图像。在对图像进行传输时,通常需要对图像进行编解码。

相关技术中,编码端设备在对图像编码时会将一整帧图像编码为一整码流,然后将该整段码流一起发送给解码端设备,由解码端设备对该整段码流进行解码后显示。

但上述技术中,将整段码流一起发送会在低带宽网络中产生一个峰值,从而会造成较高的丢包率。

发明内容

本公开实施例提供一种编解码方法、设备及系统,能够解决现有技术中造成较高的丢包率的问题。所述技术方案如下:

根据本公开实施例的第一方面,提供一种编解码方法,应用于编码端设备,所述方法包括:

获取解码端设备的当前丢包率;

在确定所述当前丢包率大于预设丢包阈值时,将待编码图像帧划分为多个目标待编码区域;

对当前目标待编码区域进行编码,得到码流数据;

向所述解码端设备发送所述码流数据的同时,对下一目标待编码区域进行编码,使得所述解码端设备依次对每个所述码流数据进行解码。

本公开实施例提供一种编解码方法,编码端设备在确定解码端设备的当前丢包率大于预设丢包阈值时,将待编码图像帧划分为多个目标待编码区域,然后对当前目标待编码区域进行编码,得到码流数据,并在向解码端设备发送码流数据的同时,对下一个目标待编码区域进行编码,使得解码端设备依次对每个码流数据进行解码。这样,将待编码图像帧划分为多个目标待编码区域进行编码,每个目标待编码区域得到的编码码流小于待编码图像帧的整帧码流,将每个编码码流分开发送给网络带来的压力小于整帧码流,从而降低了传输码流的丢包率。

在一个实施例中,在所述向所述解码端设备发送所述码流数据之后,返回执行所述获取解码端设备的当前丢包率的步骤,并在确定所述当前丢包率大于所述预设丢包阈值时,减小所述目标待编码区域的大小,直至所述当前丢包率小于所述预设丢包阈值。

在一个实施例中,还包括:

获取当前应用程序的类型;

在确定所述当前应用程序为即时会话应用时,获取所述解码端设备的当前延时信息;

在确定所述当前延时信息大于预设延时阈值时,返回执行所述将待编码图像帧划分为多个目标待编码区域的步骤,并增大所述目标待编码区域的大小,直至所述当前延时信息小于所述预设延时阈值。

在一个实施例中,还包括:

在确定所述当前延时信息小于所述预设延时阈值时,返回执行所述对当前目标待编码区域进行编码的步骤。

在一个实施例中,还包括:

在确定所述当前应用程序未为所述即时会话应用时,返回执行所述获取解码端设备的当前丢包率的步骤。

在一个实施例中,在所述获取解码端设备的当前丢包率之前,还包括:

获取编码参数;所述编码参数至少包括图像分辨率、图像划分规则、编码方法和量化参数;

对所述编码参数进行编码,得到编码参数码流;

将所述编码参数码流发送至所述解码端设备。

在一个实施例中,所述将待编码图像帧划分为多个目标待编码区域包括:

根据宏块行划分规则将所述待编码图像帧划分为多个所述目标待编码区域。

在一个实施例中,还包括:

确定是否完成所有目标待编码区域的编码;

在确定未完成所有目标待编码区域的编码时,依次获取未完成编码的目标待编码区域进行编码,直至完成所有目标待编码区域的编码。

根据本公开实施例的第二方面,提供一种编解码方法,应用于解码端设备,所述方法包括:

接收编码端设备发送的每个码流数据;所述码流数据为对当前目标待编码区域进行编码得到的数据;所述当前目标待编码区域为对待编码图像帧进行划分得到的区域;

对接收到的所述码流数据依次进行解码,得到解码数据。

本公开实施例提供一种编解码方法,编码端设备在确定解码端设备的当前丢包率大于预设丢包阈值时,将待编码图像帧划分为多个目标待编码区域,然后对当前目标待编码区域进行编码,得到码流数据,并在向解码端设备发送码流数据的同时,对下一个目标待编码区域进行编码,使得解码端设备依次对每个码流数据进行解码。这样,将待编码图像帧划分为多个目标待编码区域进行编码,每个目标待编码区域得到的编码码流小于待编码图像帧的整帧码流,将每个编码码流分开发送给网络带来的压力小于整帧码流,从而降低了传输码流的丢包率。

在一个实施例中,在所述接收编码端设备发送的每个码流数据之前,还包括:

接收所述编码端设备发送的编码参数码流;

对所述编码参数码流进行解码,得到编码参数;所述编码参数至少包括图像分辨率、图像划分规则、编码方法和量化参数;

所述对接收到的所述码流数据依次进行解码包括:

根据所述编码参数配置解码参数;

根据所述解码参数对接收到的所述码流数据进行解码。

在一个实施例中,所述在对接收到的所述码流数据依次进行解码之后,还包括:

确定是否完成待编码图像帧对应的所有目标待编码区域的码流数据的解码;

在确定完成所述待编码图像帧对应的所有目标待编码区域的码流数据的解码时,保存或显示所有的所述解码数据。

在一个实施例中,所述保存或显示所有的所述解码数据包括:

根据所述图像划分规则和所述图像分辨率对所有的所述解码数据进行组合;

保存或显示组合后的所有的所述解码数据。

根据本公开实施例的第三方面,提供一种编码端设备,包括:

第一处理模块,用于获取解码端设备的当前丢包率;

所述第一处理模块,还用于在确定所述当前丢包率大于预设丢包阈值时,将待编码图像帧划分为多个目标待编码区域;

所述第一处理模块,还用于对当前目标待编码区域进行编码,得到码流数据;

发送模块,用于向所述解码端设备发送所述码流数据的同时,对下一目标待编码区域进行编码,使得所述解码端设备依次对每个所述码流数据进行解码。

在一个实施例中,所述第一处理模块还用于在发送模块向所述解码端设备发送所述码流数据之后,返回执行所述获取解码端设备的当前丢包率的步骤,并在确定所述当前丢包率大于所述预设丢包阈值时,减小所述目标待编码区域的大小,直至所述当前丢包率小于所述预设丢包阈值。

在一个实施例中,所述第一处理模块,还用于获取当前应用程序的类型;

所述第一处理模块,还用于在确定所述当前应用程序为即时会话应用时,获取所述解码端设备的当前延时信息;

所述第一处理模块,还用于在确定所述当前延时信息大于预设延时阈值时,返回执行所述将待编码图像帧划分为多个目标待编码区域的步骤,并增大所述目标待编码区域的大小,直至所述当前延时信息小于所述预设延时阈值。

在一个实施例中,所述第一处理模块,还用于在确定所述当前延时信息小于所述预设延时阈值时,返回执行所述对当前目标待编码区域进行编码的步骤。

在一个实施例中,所述第一处理模块,还用于在确定所述当前应用程序未为所述即时会话应用时,返回执行所述获取解码端设备的当前丢包率的步骤。

在一个实施例中,所述编码端设备还包括第二发送模块;

所述第一处理模块,还用于获取编码参数;所述编码参数至少包括图像分辨率、图像划分规则、编码方法和量化参数;

所述第一处理模块,还用于对所述编码参数进行编码,得到编码参数码流;

第二发送模块,用于将所述编码参数码流发送至所述解码端设备。

在一个实施例中,所述第一处理模块包括划分子模块;

所述划分子模块,用于根据宏块行划分规则将所述待编码图像帧划分为多个所述目标待编码区域。

在一个实施例中,所述第一处理模块,还用于确定是否完成所有目标待编码区域的编码,在确定未完成所有目标待编码区域的编码时,依次获取未完成编码的目标待编码区域进行编码,直至完成所有目标待编码区域的编码。

根据本公开实施例的第四方面,提供一种解码端设备,包括:

第一接收模块,用于接收编码端设备发送的码流数据;所述码流数据为对当前目标待编码区域进行编码得到的数据;所述当前目标待编码区域为对待编码图像帧进行划分得到的区域;

第二处理模块,用于对接收到的所述码流数据进行解码,得到解码数据。

在一个实施例中,所述解码端设备还包括第二接收模块,所述第二处理模块包括配置子模块和解码子模块;

所述第二接收模块,用于接收所述编码端设备发送的编码参数码流;

所述第二处理模块,用于对所述编码参数码流进行解码,得到编码参数;所述编码参数至少包括图像分辨率、图像划分规则、编码方法和量化参数;

所述配置子模块,用于根据所述编码参数配置解码参数;

所述解码子模块,用于根据所述解码参数对接收到的所述码流数据进行解码。

在一个实施例中,所述第二处理模块,还用于确定是否完成待编码图像帧对应的所有目标待编码区域的码流数据的解码;在确定完成所述待编码图像帧对应的所有目标待编码区域的码流数据的解码时,保存或显示所有的所述解码数据。

在一个实施例中,所述第二处理模块还包括组合子模块和显示子模块;

所述组合子模块,用于根据所述图像划分规则和所述图像分辨率对所有的所述解码数据进行组合;

所述显示子模块,用于保存或显示组合后的所有的所述解码数据。

根据本公开实施例的第五方面,提供一种编解码系统,包括上述任一实施例所述的编码端设备和上述任一实施例所述的解码端设备。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是本公开实施例提供的一种编解码方法的流程图;

图2是本公开实施例提供的一种待编码图像帧的区域划分的结构示意图;

图3是本公开实施例提供的一种待编码图像帧的区域划分的结构示意图;

图4是本公开实施例提供的一种编解码的流程示意图;

图5是本公开实施例提供的一种编解码的流程示意图;

图6是本公开实施例提供的一种编解码方法的流程图;

图7是本公开实施例提供的一种编解码方法的流程图;

图8是本公开实施例提供的一种编解码方法的流程图;

图9是本公开实施例提供的一种待编码图像帧的区域划分的结构示意图;

图10是本公开实施例提供的一种编解码方法的流程图;

图11是本公开实施例提供的一种编解码方法的流程图;

图12a是本公开实施例提供的一种编码端设备的结构图;

图12b是本公开实施例提供的一种编码端设备的结构图;

图12c是本公开实施例提供的一种编码端设备的结构图;

图13a是本公开实施例提供的一种解码端设备的结构图;

图13b是本公开实施例提供的一种解码端设备的结构图;

图13c是本公开实施例提供的一种解码端设备的结构图;

图14是本公开实施例提供的一种编解码系统的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本公开实施例提供一种编解码方法,应用于编码端设备,如图1所示,该方法包括以下步骤:

步骤101、获取解码端设备的当前丢包率。

示例的,编码端设备向解码端设备发送丢包率获取请求,解码端设备在接收到丢包率获取请求时,将计算得到的当前丢包率发送给编码端设备,则编码端设备获取到解码端设备的当前丢包率;或者解码端设备在计算得到当前丢包率时,主动向编码端设备发送当前丢包率,使得编码端设备获取到解码端设备的当前丢包率。

步骤102、在确定所述当前丢包率大于预设丢包阈值时,将待编码图像帧划分为多个目标待编码区域。

示例的,编码端设备在获取到解码端设备的当前丢包率时,将当前丢包率与预设丢包阈值进行比较,在确定当前丢包率大于预设丢包阈值时,说明当前网络带宽较小,导致丢包严重,此时将待编码图像帧划分为多个目标待编码区域;在确定当前丢包率小于预设丢包阈值时,说明当前网络带宽较大,能够满足整帧码流的传输,此时对待编码图像帧进行整帧编码,维持不拆分方式编码。

可选的,根据宏块行划分规则将所述待编码图像帧划分为多个所述目标待编码区域。

示例的,待编码图像帧包括多个宏块,每个宏块由多个像素点组成,将待编码图像帧按照宏块行划分规则进行划分,宏块行划分规则是指按照一行宏块或者多行宏块作为一个目标待编码区域,例如图2所示,按照每两行宏块作为一个目标待编码区域对待编码图像帧进行划分,在图2中将待编码图像帧拆分成多个互不重叠的长方形区域,每个长方形区域中包含多个完整的宏块行,每个长方形区域的面积相等或者接近。这里的接近是指按照统一宏块行划分规则划分目标待编码区域,这样,最后的一个目标待编码区域可能和前面的目标待编码区域不一致,例如,以宏块行以两行作为一个目标待编码区域,如果待编码图像帧为奇数行,则最后一个目标待编码区域是3行或者1行宏块,和之前的目标待编码区域的面积不一致,但是不影响编码规则的改变。

示例的,还可以将待编码图像帧进行平均分配,例如将待编码图像帧划分成M个一样大小的宏块区域,每个宏块区域即为一个目标待编码区域,平均分配可以保证在多线程启动后,每个线程针对同样大小的宏块区域编码时间一致,充分发挥多核的优势。如图3所示,每个目标待编码区域的大小都是一样的,也就是说每个目标待编码区域都是4*2大小的宏块区域。

需要说明的是,拆分得到的目标待编码区域较小,则整体的编码码流可能会增大;拆分得到的目标待编码区域较大,则整体的编解码时间会变长,具体区域拆分可以根据需求预先设定或者基于一定条件自动调整。

需要说明的是,无论按照哪种规则将待编码图像帧拆分为多个目标待编码区域,都是按照宏块组成的行进行编码,所有的目标待编码区域互不重叠。

步骤103、对当前目标待编码区域进行编码,得到码流数据。

示例的,在将待编码图像帧划分为多个目标待编码区域时,依次对每个目标待编码区域进行编码,得到每个目标待编码区域对应的码流数据。

需要说明的是,一个编码过程通常包含帧内预测、像素平移、像素转换、量化、编码等过程,对于每个目标待编码区域的具体编码方法可参考现有技术,本公开在此不再赘述。

步骤104、向所述解码端设备发送所述码流数据的同时,对下一目标待编码区域进行编码,使得所述解码端设备依次对每个所述码流数据进行解码。

示例的,如图4所示,在编码端设备和解码端设备都是单线程工作的情况下,编码端设备编码第一个目标待编码区域,编码完成后将得到的码流数据发送给解码端设备,立刻开始第二个目标待编码区域的编码,解码端设备在每接收到一个码流数据时,立刻开始解码。这样编码过程和解码过程并行,大部分编码和解码时间重合,编解码的总时长等于总编码时长加上解码最后一个目标待编码区域对应的码流数据的时长。如图5所示,在编码端设备和解码端设备都是多线程工作的情况下,使用本公开的编解码方法能够进一步缩短编解码时间,图5编码端设备和解码端设备都采用了三线程。

需要说明的是,优选选择多线程进行编码传输,这样可以降低整体码流的编码和传输时间;若无法拆分并行的业务,则选择单线程处理。

进一步的,在执行完步骤104之后,返回执行步骤101获取解码端设备的当前丢包率的步骤,并在确定所述当前丢包率大于所述预设丢包阈值时,减小所述目标待编码区域的大小,直至所述当前丢包率小于所述预设丢包阈值。

示例的,在将当前待编码区域对应的码流数据发送至解码端设备时,解码端设备可以计算该码流数据对应的丢包率,即为当前丢包率,编码端设备还需要获取解码端设备的当前丢包率,并在确定当前丢包率还大于预设丢包阈值时,对目标待编码区域进行继续划分,以减小目标待编码区域的大小,并对减小后的目标待编码区域进行编码传输,如此循环,逐步减小目标待编码区域的大小,直至当前丢包率小于预设丢包阈值。

进一步的,如图6所示,所述方法还包括以下步骤105至步骤109:

步骤105、获取当前应用程序的类型。

示例的,编码端设备预先存储有每个应用程序的标识与类型的对应关系,根据当前应用程序的标识即可查找到当前应用程序的类型,应用程序的类型包括即时会话应用、游戏类应用、办公类应用、娱乐类应用等。

步骤106、在确定所述当前应用程序为即时会话应用时,获取所述解码端设备的当前延时信息。

示例的,在查找到当前应用程序的类型为即时会话应用时,向解码端设备发送延时获取请求,解码端设备在接收到延时获取请求时,将计算得到的当前延时信息发送给编码端设备,则编码端设备获取到解码端设备的当前延时信息;或者解码端设备在计算得到当前延时信息时,主动向编码端设备发送当前延时信息,使得编码端设备获取到解码端设备的当前延时信息。

步骤107、在确定所述当前延时信息大于预设延时阈值时,返回执行步骤102,并增大所述目标待编码区域的大小,直至所述当前延时信息小于所述预设延时阈值。

示例的,编码端设备在获取到解码端设备的当前延时信息时,将当前延时信息与预设延时阈值进行比较,在确定当前延时信息大于预设延时阈值时,说明此时划分得到的目标待编码区域太小,码流较大,需要将待编码图像帧进行重新划分,以增大目标待编码区域的大小,并对增大后的目标待编码区域进行编码传输,如此循环,逐步增大目标待编码区域的大小,直至当前延时信息小于预设延时阈值。

需要说明的是,在当前延时信息一直无法小于预设延时阈值时,则不对待编码图像帧进行拆分,对待编码图像帧进行整帧编码。

步骤108、在确定所述当前延时信息小于所述预设延时阈值时,返回执行步骤101对当前目标待编码区域进行编码的步骤。

示例的,在确定当前延时信息小于预设延时阈值时,说明待编码区域划分合理,根据当前拆分的目标待编码区域进行编码即可。

步骤109、在确定所述当前应用程序未为所述即时会话应用时,返回执行步骤101获取解码端设备的当前丢包率的步骤。

示例的,在查找到当前应用程序不为即时会话应用时,说明当前应用程序对延时要求不高,此时可以直接返回执行步骤101获取解码端设备的当前丢包率,根据当前丢包率的大小对待编码图像帧进行拆分编码等,无需考虑延时信息。

进一步的,如图7所示,在执行步骤101之前,还包括以下步骤110至步骤112。

步骤110、获取编码参数。

其中,所述编码参数至少包括图像分辨率、图像划分规则、编码方法和量化参数;图像分辨率用于标识图像细节的精细程度,通常情况下,图像的分辨率越高,所包含的像素点就越多,图像就越清晰,印刷的质量也就越好,同时也会增加文件占用的存储空间;图像划分规则为将待编码图像帧划分为多个目标待编码区域的具体方法;编码方法为编码时采用的编码规则。

示例的,用户可以事先在相应解码上输入图像分辨率、图像划分规则、编码方法和量化参数等编码参数,使得编码端设备获取到编码参数。

需要说明的是,编码参数还可以包括编码时所需的其他参数,具体可参考现有技术,本公开在此不再赘述。

步骤111、对所述编码参数进行编码,得到编码参数码流。

示例的,编码端设备在进行待编码图像帧的编码之前,需要先对获取到的编码参数进行编码,得到编码参数码流。

步骤112、将所述编码参数码流发送至所述解码端设备。

示例的,编码端设备在得到编码参数码流时,将编码参数码流发送至解码端设备,使得解码端设备在接收到编码参考码流时,将编码参考码流进行解码,得到编码参数,并根据编码参数配置解码参数,进而根据解码参数进行解码。

进一步的,如图8所示,在执行完步骤104之后,所述方法还包括以下步骤113和步骤114:

步骤113、确定是否完成所有目标待编码区域的编码。

示例的,编码端设备在每完成一个目标待编码区域的编码时,需要确定是否完成待编码图像帧划分的每个目标待编码区域的编码,在确定完成待编码图像帧划分的每个目标待编码区域的编码时,结束编码。

步骤114、在确定未完成所有目标待编码区域的编码时,依次获取未完成编码的目标待编码区域进行编码,直至完成所有目标待编码区域的编码。

示例的,在确定未完成待编码图像帧划分的每个目标待编码区域的编码时,依次获取未完成编码的目标待编码区域进行编码,直至完成待编码图像帧划分的每个目标待编码区域的编码,此时结束编码。

需要说明的是,在将待编码图像帧划分为多个目标待编码区域时,还可以将每个目标待编码区域划分为多个目标待编码子区域,然后对每个目标待编码子区域依次进行编码,然后将得到的每个目标待编码子区域的码流合并,得到该目标待编码区域的码流数据,再将该码流数据一起发送给解码端设备进行解码,每个目标待编码区域的码流数据的码流结构如图9所示,该码流结构中包含多个图像编码数据,以便于对编码区域的再次拆分,具体码流结构包括开始标志、区域编号、编码参数和多组编码数据,每组编码数据包括图像数据编码开始标志、图像编码数据、图像数据编码结束标志。其中,开始标志用于标识一个新的目标待编码区域编码的开始;区域编号用于标识该目标待编码区域的图像在整帧待编码图像中的绝对位置,例如,如图9所示,将待编码图像拆分为四个区域,每个区域的位置标识可以为00(左上),01(右上),10(左下),11(右下)。编码参数即为上述所述的编码参数;图像数据编码开始标志用于标识该位置宏块区域图像数据编码的开始;图像数据编码结束标志用于标识该位置宏块区域图像数据编码的数据已经完成;图像编码数据为每个目标待编码子区域编码得到的码流。

本公开实施例提供一种编解码方法,编码端设备在确定解码端设备的当前丢包率大于预设丢包阈值时,将待编码图像帧划分为多个目标待编码区域,然后对当前目标待编码区域进行编码,得到码流数据,并在向解码端设备发送码流数据的同时,对下一个目标待编码区域进行编码,使得解码端设备依次对每个码流数据进行解码。这样,将待编码图像帧划分为多个目标待编码区域进行编码,每个目标待编码区域得到的编码码流小于待编码图像帧的整帧码流,将每个编码码流分开发送给网络带来的压力小于整帧码流,从而降低了传输码流的丢包率。

本公开实施例提供一种编解码方法,应用于解码端设备,如图10所示,该方法包括以下步骤:

步骤1001、接收编码端设备发送的每个码流数据。

其中,所述码流数据为对当前目标待编码区域进行编码得到的数据;所述当前目标待编码区域为对待编码图像帧进行划分得到的区域。

步骤1002、对接收到的所述码流数据依次进行解码,得到解码数据。

本公开实施例提供一种编解码方法,编码端设备在确定解码端设备的当前丢包率大于预设丢包阈值时,将待编码图像帧划分为多个目标待编码区域,然后对当前目标待编码区域进行编码,得到码流数据,并在向解码端设备发送码流数据的同时,对下一个目标待编码区域进行编码,使得解码端设备依次对每个码流数据进行解码。这样,将待编码图像帧划分为多个目标待编码区域进行编码,每个目标待编码区域得到的编码码流小于待编码图像帧的整帧码流,将每个编码码流分开发送给网络带来的压力小于整帧码流,从而降低了传输码流的丢包率。

本公开实施例提供一种编解码方法,应用于解码端设备,如图11所示,该方法包括以下步骤:

步骤1101、接收所述编码端设备发送的编码参数码流。

步骤1102、对所述编码参数码流进行解码,得到编码参数。

其中,所述编码参数至少包括图像分辨率、图像划分规则、编码方法和量化参数。

示例的,解码端设备在接收到编码参数码流时,对编码参数码流进行解码,得到图像分辨率、图像划分规则、编码方法和量化参数等编码参数。

步骤1103、根据所述编码参数配置解码参数。

示例的,解码端设备在获取到编码参数时,根据编码参数对应的配置解码参数,具体配置方法可参考现有技术,本公开在此不再赘述。

步骤1104、接收编码端设备发送的每个码流数据。

步骤1105、根据所述解码参数对接收到的所述码流数据进行解码。

示例的,解码端设备在接收到码流数据时,立刻根据解码参数对码流数据进行解码,得到解码数据。

步骤1106、确定是否完成待编码图像帧对应的所有目标待编码区域的码流数据的解码。

示例的,解码端设备在每解码完成一个码流数据时,需要判断是否接收到新的码流数据,在没有接收到新的码流数据时,则进行等待;在接收到新的码流数据时,判断新的码流数据是否为待编码图像帧的码流数据,在确定新的码流数据为待编码图像帧的码流数据时,则继续对新的码流数据进行解码,就这样可以确定是否完成待编码图像帧对应的所有目标待编码区域的码流数据的解码。

步骤1107、在确定完成所述待编码图像帧对应的所有目标待编码区域的码流数据的解码时,保存或显示所有的所述解码数据。

可选的,根据所述图像划分规则和所述图像分辨率对所有的所述解码数据进行组合;保存或显示组合后的所有的所述解码数据。

其中,所述码流数据为对当前目标待编码区域进行编码得到的数据;所述当前目标待编码区域为对待编码图像帧进行划分得到的区域。

示例的,在确定完成待编码图像帧对应的所有目标待编码区域的码流数据的解码时,将得到的针对待编码图像帧的所有解码数据按照图像划分规则和编码参数中的图像分辨率进行组合,最后得到待编码图像帧的所有解码数据,并将该待编码图像帧的所有解码数据进行显示或者保存在存储模块中,完成该待编码图像帧的所有解码显示过程。

本公开实施例提供一种编解码方法,编码端设备在确定解码端设备的当前丢包率大于预设丢包阈值时,将待编码图像帧划分为多个目标待编码区域,然后对当前目标待编码区域进行编码,得到码流数据,并在向解码端设备发送码流数据的同时,对下一个目标待编码区域进行编码,使得解码端设备依次对每个码流数据进行解码。这样,将待编码图像帧划分为多个目标待编码区域进行编码,每个目标待编码区域得到的编码码流小于待编码图像帧的整帧码流,将每个编码码流分开发送给网络带来的压力小于整帧码流,从而降低了传输码流的丢包率。

基于上述实施例中所描述的编解码方法,下述为本公开装置实施例,可以用于执行本公开方法实施例。

本公开实施例提供一种编码端设备,如图12a所示,该编码端设备120包括第一处理模块1201和第一发送模块1202。

其中,第一处理模块1201,用于获取解码端设备的当前丢包率;

所述第一处理模块1201,还用于在确定所述当前丢包率大于预设丢包阈值时,将待编码图像帧划分为多个目标待编码区域。

所述第一处理模块1201,还用于对当前目标待编码区域进行编码,得到码流数据。

发送模块1202,用于向所述解码端设备发送所述码流数据的同时,对下一目标待编码区域进行编码,使得所述解码端设备依次对每个所述码流数据进行解码。

在一个实施例中,所述第一处理模块1201还用于在发送模块向所述解码端设备发送所述码流数据之后,返回执行所述获取解码端设备的当前丢包率的步骤,并在确定所述当前丢包率大于所述预设丢包阈值时,减小所述目标待编码区域的大小,直至所述当前丢包率小于所述预设丢包阈值。

在一个实施例中,所述第一处理模块1201,还用于获取当前应用程序的类型。

所述第一处理模块1201,还用于在确定所述当前应用程序为即时会话应用时,获取所述解码端设备的当前延时信息。

所述第一处理模块1201,还用于在确定所述当前延时信息大于预设延时阈值时,返回执行所述将待编码图像帧划分为多个目标待编码区域的步骤,并增大所述目标待编码区域的大小,直至所述当前延时信息小于所述预设延时阈值。

在一个实施例中,所述第一处理模块1201,还用于在确定所述当前延时信息小于所述预设延时阈值时,返回执行所述对当前目标待编码区域进行编码的步骤。

在一个实施例中,所述第一处理模块1201,还用于在确定所述当前应用程序未为所述即时会话应用时,返回执行所述获取解码端设备的当前丢包率的步骤。

在一个实施例中,如图12b所示,所述编码端设备还包括第二发送模块1203。

其中,所述第一处理模块1201,还用于获取编码参数;所述编码参数至少包括图像分辨率、图像划分规则、编码方法和量化参数。

所述第一处理模块1201,还用于对所述编码参数进行编码,得到编码参数码流。

第二发送模块1203,用于将所述编码参数码流发送至所述解码端设备。

在一个实施例中,如图12c所示,所述第一处理模块1201包括划分子模块12011。

其中,所述划分子模块12011,用于根据宏块行划分规则将所述待编码图像帧划分为多个所述目标待编码区域。

在一个实施例中,所述第一处理模块1201,还用于确定是否完成所有目标待编码区域的编码,在确定未完成所有目标待编码区域的编码时,依次获取未完成编码的目标待编码区域进行编码,直至完成所有目标待编码区域的编码。

本公开实施例提供一种编码端设备,编码端设备在确定解码端设备的当前丢包率大于预设丢包阈值时,将待编码图像帧划分为多个目标待编码区域,然后对当前目标待编码区域进行编码,得到码流数据,并在向解码端设备发送码流数据的同时,对下一个目标待编码区域进行编码,使得解码端设备依次对每个码流数据进行解码。这样,将待编码图像帧划分为多个目标待编码区域进行编码,每个目标待编码区域得到的编码码流小于待编码图像帧的整帧码流,将每个编码码流分开发送给网络带来的压力小于整帧码流,从而降低了传输码流的丢包率。

本公开实施例提供一种解码端设备,如图13a所示,该解码端设备130包括第一接收模块1301和第二处理模块1302。

其中,第一接收模块1301,用于接收编码端设备发送的码流数据;所述码流数据为对当前目标待编码区域进行编码得到的数据;所述当前目标待编码区域为对待编码图像帧进行划分得到的区域。

第二处理模块1302,用于对接收到的所述码流数据进行解码,得到解码数据。

在一个实施例中,如图13b所示,所述解码端设备还包括第二接收模块1303,所述第二处理模块1302包括配置子模块13021和解码子模块13022。

其中,所述第二接收模块1303,用于接收所述编码端设备发送的编码参数码流。

所述第二处理模块1302,用于对所述编码参数码流进行解码,得到编码参数;所述编码参数至少包括图像分辨率、图像划分规则、编码方法和量化参数。

所述配置子模块13021,用于根据所述编码参数配置解码参数。

所述解码子模块13022,用于根据所述解码参数对接收到的所述码流数据进行解码。

在一个实施例中,所述第二处理模块1302,还用于确定是否完成待编码图像帧对应的所有目标待编码区域的码流数据的解码;在确定完成所述待编码图像帧对应的所有目标待编码区域的码流数据的解码时,保存或显示所有的所述解码数据。

在一个实施例中,如图13c所示,所述第二处理模块1032还包括组合子模块13023和显示子模块13024。

其中,所述组合子模块13023,用于根据所述图像划分规则和所述图像分辨率对所有的所述解码数据进行组合。

所述显示子模块13024,用于保存或显示组合后的所有的所述解码数据。

本公开实施例提供一种解码端设备,编码端设备在确定解码端设备的当前丢包率大于预设丢包阈值时,将待编码图像帧划分为多个目标待编码区域,然后对当前目标待编码区域进行编码,得到码流数据,并在向解码端设备发送码流数据的同时,对下一个目标待编码区域进行编码,使得解码端设备依次对每个码流数据进行解码。这样,将待编码图像帧划分为多个目标待编码区域进行编码,每个目标待编码区域得到的编码码流小于待编码图像帧的整帧码流,将每个编码码流分开发送给网络带来的压力小于整帧码流,从而降低了传输码流的丢包率。

图14是本公开实施例提供的一种编解码系统的框架图,如图14所示的编解码系统包括上述任一实施例所述的编码端设备1401和上述任一实施例所述的解码端设备1402。

其中,解码端设备1402为云终端设备或者计算机设备,云终端设备或者计算机设备上设有解码模块,编码端设备1401为云服务器上运行的与云终端设备或者计算机设备对应的虚拟机,虚拟机上设有编码模块,虚拟机与云终端设备或者计算机设备对应连接。本公开应用于云手机、手环、手表、眼镜、和扳指等云终端设备场景,或者计算机、平板电脑等计算机设备场景,基于VDI(Virtual Desktop Infrastructure,虚拟桌面基础架构)技术,VDI架构包括云服务器和至少一个云终端设备或者计算机设备,云服务器上运行至少一个虚拟机,通过在数据中心的云服务器运行操作系统,从而将用户的桌面进行虚拟化。用户通过云终端设备或者计算机设备访问对应的虚拟机,从而获取桌面图像,并通过反向控制方式对获取到的桌面图像进行控制。

基于上述图1对应的实施例中所描述的编解码方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:ReadOnly Memory,ROM)、随机存取存储器(英文:Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图1对应的实施例中所描述的编解码方法,此处不再赘述。

基于上述图10对应的实施例中所描述的编解码方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器、随机存取存储器、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图10对应的实施例中所描述的编解码方法,此处不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

相关技术
  • 音频编解码器 、编解码方法、 集线器、 发送接收器、 发送接收方法、通信系统、 播放设备
  • 图像编解码方法、图像编解码设备及网络系统
技术分类

06120112854013