一种实现分层视频编码的方法、装置及系统与流程

文档序号:20082281发布日期:2020-03-13 05:47阅读:205来源:国知局
一种实现分层视频编码的方法、装置及系统与流程

本申请涉及视频编码领域,特别涉及一种基于单层编码器的分层视频编码的方法、装置及系统。



背景技术:

可分层视频编码(scalablevideocoding,svc)是一种能将视频流分割成不同帧率、分辨率和视频质量的视频压缩码流的技术。svc根据不同的视频质量需求将视频流分割为一个基础层和多个增强层。基础层为用户提供最基本的视频质量、帧率和分辨率。基础层可以独立解码,增强层依赖于基础层进行解码。解码端接收的增强层个数越多,解码得到的视频质量就越高。因此,svc的这种编码方式能够支持多种设备和网络同时访问svc视频流,对于异构接入网络和异构终端具有很强的伸缩性和适应性。

svc只需对原始视频序列编码一次,即可通过传输、提取和解码相应部分的压缩码流,重构出各种分辨率、码率或质量级别的视频序列。svc系统包括编码器、提取器和解码器。编码器用于对原始视频序列的一次编码处理得到一个具有可伸缩结构的编码数据流;提取器用于根据用户实际需求或网络带宽情况从编码数据流中提取出所需要的部分,形成符合用户实际需求的数据流;解码器用于对提取器传过来的可伸缩编码数据流进行解码,得到符合要求的输出视频序列。

svc技术在具有svc编码器组件的设备或系统中能够很好地实现,但在仅有单层编码器的设备或系统上目前较难实现分层视频编码,在异构网络的应用环境下的适应性并不优秀。



技术实现要素:

本申请提供了一种实现分层视频编码的方法、装置及系统,利用单层编码器协同实现分层视频编码,提升单层编码器组件的设备或系统在异构接入网络和异构终端中的伸缩性和适应性。

在本申请第一方面,提供了一种实现分层视频编码的方法,所述方法包括:

根据编码输入参数确定采样参数;所述编码输入参数包括:空间域的解析度、至少两个输出帧率和对应的码率;所述采样参数包括:待配置的采样器个数、待配置的采样器对应的解析度和输出帧率;

根据编码输入参数确定编码参数;所述编码参数包括:待配置的单层编码器个数、待配置的单层编码器对应的解析度、输出帧率和对应的码率;

按照所述采样参数和所述编码参数配置编码器群组中的采样器和单层编码器,将解析度相同的采样器和单层编码器进行绑定;所述编码器群组包括至少一个采样器和至少两个单层编码器;

控制所述编码器群组中的采样器对初始视频流进行采样得到样本视频流,将所述样本视频流输出给单层编码器,并控制单层编码器对所述样本视频流进行编码得到层位流。

在本申请第二方面,提供了一种实现分层视频编码的装置,所述装置包括:

采样参数确定单元,用于根据编码输入参数确定采样参数;所述编码输入参数包括:空间域的解析度、至少两个输出帧率和对应的码率;所述采样参数包括:待配置的采样器个数、待配置的采样器对应的解析度和输出帧率;

编码参数确定单元,用于根据编码输入参数确定编码参数;所述编码参数包括:待配置的单层编码器个数、待配置的单层编码器对应的解析度、输出帧率和对应的码率;

配置单元,用于按照所述采样参数和所述编码参数配置编码器群组中的采样器和单层编码器,将解析度相同的采样器和单层编码器进行绑定;所述编码器群组包括至少一个采样器和至少两个单层编码器;

控制单元,用于控制所述编码器群组中的采样器对初始视频流进行采样得到样本视频流,将所述样本视频流输出给单层编码器,并控制单层编码器对所述样本视频流进行编码得到层位流。

在本申请的第三方面,提供了一种实现分层视频编码的系统,所述系统包括:

编码器群组,所述编码器群组包括至少一个采样器和至少两个单层编码器;以及上述实现分层视频编码装置,所述装置用于配置和控制所述编码器群组实现分层视频编码。

与现有技术相比,本申请提供的技术方案具有以下有益效果:本申请根据编码输入参数确定采样参数和编码参数;按照所述采样参数和所述编码参数配置编码器群组中的采样器和单层编码器,将解析度相同的采样器和单层编码器进行绑定;所述编码器群组包括至少一个采样器和至少两个单层编码器;控制所述编码器群组中的采样器对初始视频流进行采样得到样本视频流,将所述样本视频流输出给单层编码器,并控制单层编码器对所述样本视频流进行编码得到层位流。本申请可以根据实际的编码需求生成相应的采样参数和编码参数,这些参数是用于配置编码器群组的,通过配置和控制编码器群组的方式,实现分层视频编码。该技术方案利用单层编码器分别独立完成编码,层与层间没有依赖关系,使得该技术方案具有更好的网络差错鲁棒性,更好地适应于异构网络和异构终端。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请的一种实现分层视频编码的方法的实施例1的流程图;

图2是本申请提供的编码器群组的内部结构一种示意图;

图3是本申请提供的编码器群组的内部结构另一种示意图;

图4是本申请的一种实现分层视频编码的方法的实施例2的流程图;

图5是本申请的一种实现分层视频编码的方法的实施例3的流程图;

图6是本申请的一种实现分层视频编码的装置的结构图;

图7是本申请的一种实现分层视频编码的系统的示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、包括以上任何系统或设备的分布式计算环境等等。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

参见图1,图1是本申请的一种实现分层视频编码的方法的实施例1的流程图,如图1所示,该方法包括:

s11:根据编码输入参数确定采样参数;所述编码输入参数包括:空间域的解析度、至少两个输出帧率和对应的码率;所述采样参数包括:待配置的采样器个数、待配置的采样器对应的解析度和输出帧率。

在本申请实施例中,编码输入参数可以是预先设定的参数,也可以是根据视频接收端的视频流要求确定的参数;该编码输入参数可以包括至少两个空间域的解析度,每个空间域至少有一个输出帧率和对应的码率;该编码输入参数也可以包括一个空间域的解析度、至少两个输出帧率和对应的码率。

在具体实现时,可以确定待配置的采样器个数与所述编码输入参数中空间域的个数相同;确定待配置的采样器对应的解析度与空间域的解析度相同;确定待配置的采样器对应的输出帧率与所述编码输入参数中最大的输出帧率相同。

下面以编码输入参数包含三个空间域、每个空间域对应一个输出帧率和码率的情况为一个示例对本步骤进行解释说明。例如编码输入参数包括:

第1个空间域:解析度180p、输出帧率7.5hz以及码率256kbps;

第2个空间域:解析度360p、输出帧率15hz以及码率512kbps;

第3个空间域:解析度720p、输出帧率30hz以及码率2048kbps。

基于上述编码输入参数,可知空间域的个数为3,最大的输出帧率为30hz,按照上述方式可以确定出采样参数包括:

待配置的采样器个数为3;3个待配置的采样器的相关参数如下:

第1个待配置的采样器的解析度是180p、输出帧率是30hz;

第2个待配置的采样器的解析度是360p、输出帧率是30hz;

第3个待配置的采样器的解析度是720p、输出帧率是30hz。

本申请是针对包含编码器群组的系统来实现分层视频编码,该编码器群组包括至少一个采样器和至少两个单层编码器;其中采样器用于对初始视频流进行采样,将采样得到的样本视频流输出给对应的单层编码器;而单层编码器则根据编码参数完成对样本视频流的编码处理。

s12:根据编码输入参数确定编码参数;所述编码参数包括:待配置的单层编码器个数、待配置的单层编码器对应的解析度、输出帧率和对应的码率。

在具体实现时,可以根据所述编码输入参数中空间域的个数以及单层编码器的时域分层特性确定待配置的单层编码器个数;根据预设的码表和所述编码输入参数确定待配置的单层编码器对应的解析度、输出帧率以及码率;所述预设的码表包括特定解析度下不同输出帧率对应的码率值。

当单层编码器支持时域分层特性时,可以确定待配置的单层编码器个数与所述编码输入参数中空间域的个数相同。

当单层编码器不支持时域分层特性时,可以确定待配置的单层编码器个数与所述编码输入参数中所有空间域的可分层数目总和相同。

在实际应用中,通过单层编码器的端口信息可以确定出单层编码器的时域分层特性,也可以根据实际需要预先配置单层编码器的时域分层特性;下面以上述示例为基础对步骤s12的上述方式进行解释说明。

如果编码器群组中的单层编码器支持时域分层特性,则确定待配置的单层编码器的个数n与编码输入参数中空间域的个数n相同,即n=n;每个待配置的单层编码器的相关参数等于对应的空间域的相关参数。

仍旧以上述示例为例,编码输入参数具体为:

第1个空间域:解析度180p、输出帧率7.5hz、码率256kbps;

第2个空间域:解析度360p、输出帧率15hz、码率512kbps;

第3个空间域:解析度720p、输出帧率30hz、码率2048kbps;

该编码输入参数中共有3个空间域,则n=n=3。对应的,每个待配置的单层编码器的相关参数如下:

第1个待配置的单层编码器对应的解析度是180p、输出帧率是7.5hz、码率是256kbps;

第2个待配置的单层编码器对应的解析度是360p、输出帧率是15hz、码率是512kbps;

第3个待配置的单层编码器对应的解析度是720p、输出帧率是30hz、码率是2048kbps。

如果编码器群组中的单层编码器不支持时域分层特性,则确定待配置的单层编码器的个数n与所述编码输入参数中所有空间域的可分层数目的总和相同;针对这种情况,n可以按照如下公式计算得到:

(公式1)

li=1+log2(frameratei/minframerate)(公式2)

minframerate=min(framerate0,…,frameratei,…,frameraten-1)(公式3)

在上述公式1中,n表示待配置的单层编码器个数;li表示第i个空间域的可分层数目;i的取值范围是(0,n-1),n表示空间域个数;

在上述公式2中,frameratei表示第i个空间域的帧率;minframerate表示所有空间域中的最小帧率。

接下来,仍旧以上述编码输入参数为例进行解释说明。

首先,按照上述公式3可以计算出minframerate等于7.5hz;

然后,按照上述公式2可以分别计算三个空间域的可分层数目:

第1个空间域的可分层数目l0=1;

第2个空间域的可分层数目l1=2;

第3个空间域的可分层数目l2=3;

最后,按照上述公式1可以计算出待配置的单层编码器个数n=6。

编码器群组中的单层编码器不支持时域分层特性时,需要遍历每个空间域,从空间域的原始输出帧率降低到所有空间域的最小输出帧率对应的码率,比如一个空间域可分的子层输出帧率是该空间域的原始输出帧率的1/2,或者1/4,最小至所有空间域中的最小输出帧率为止;一般情况下,空间域的不同输出帧率存在2m(m=0,1,2…)倍率关系;在实际应用中,可以根据编码器的压缩性能确定不同输出帧率对应的码率;也可以根据预设的码表确定不同输出帧率对应的码率。例如,针对上述编码输入参数和编码器群组中单层编码器不支持时域分层特性的情况,确定编码器群组中待配置的编码器的参数具体如下:

解析度是720p、输出帧率是30hz、码率是2048kbps;

解析度是720p、输出帧率是15hz、码率是1200kbps;

解析度是720p、输出帧率是7.5hz、码率是800kbps;

解析度是360p、输出帧率是15hz、码率是512kbps;

解析度是360p、输出帧率是7.5hz、码率是320kbps;

解析度是180p、输出帧率是7.5hz、码率是256kbps。

上述6个单层编码器的相关参数其本质就是从最高增强层到基本层的各层流参数。

在实际应用中,上述三个步骤s11和步骤s12并没有严格的执行顺序,图1仅是一种示例,也可以先执行s12再执行s11,还可以并行执行这两个步骤。

s13:按照所述采样参数和所述编码参数配置编码器群组中的采样器和单层编码器,将解析度相同的采样器和单层编码器进行绑定;所述编码器群组包括至少一个采样器和至少两个单层编码器。

在本申请实施例中,编码器群组中的采样器可以采用并联结构,也可以采用串联结构。图2中的采样器按照并联结构连接,采样器与具有相同解析度的单层编码器连接,一个采样器可以与一个单层编码器连接,也可以与多个单层编码器连接。图3中的采样器按照串联结构连接,其中,较高层采样器的输出作为下一层采样器的输入。

s14:控制所述编码器群组中的采样器对初始视频流进行采样得到样本视频流,将所述样本视频流输出给单层编码器,并控制单层编码器对所述样本视频流进行编码得到层位流。

在实际应用中,利用本申请实施例的技术方案配置和控制有编码器群组的系统,使该系统在单层编码器的环境中实现分层视频编码,使得该系统具有很好地伸缩性,能够很好地适应于异构网络。

与现有技术的svc编码方法相比,本申请实施例的技术方案不再需要提取器来提取相应的层位流,而可以直接将单层编码器生成的层位流输出给对应的终端,既简化了视频流传输处理过程,又节省了软硬件的成本。

本申请实施例的技术方案不仅可以适应于需要利用单层编码器实现分层视频编码功能的系统,如实时大型多点视频(视讯)会议系统、视频点播分层转码系统等等。

本申请实施例的技术方案利用单层编码器独立编码的方式,不需要层间预测,层与层之间没有依赖性,使其可以很好地兼容单层编码标准的系统。但考虑到视频接收端系统接口采用的是svc接口的情况,在利用本申请实施例的技术时,还需要将单层编码器生成的层位流转化成svc层流;具体方案参见图4,图4所示的方案是在图1所示方案的基础上增加了如下步骤:

s15:按照单层视频编码到多层视频编码的转换协议,对所述编码器群组中单层编码器生成的层位流进行编码处理得到多层视频编码层位流。

假设,编码器群组中单层编码器采用ituh.264avc编码标准,那么按照ituh.264avc到ituh.264svc的转换标准(jvt-x201协议规范),将单层编码器生成的层位流转换成svc层流。在实际应用中,视频编码标准种类较多(如还有isompeg4、ituh.265等标准),在本申请实施例中并不限定具体的标准类型,仅需要按照对应的转换协议实现avc到svc的转换即可。

另外,考虑到视频接收端对视频接收展示有同步需求时,则利用本申请实施例的技术方案时,还需要将单层编码器生成的层位流进行同步处理再输出给视频接收端;具体方案参见图5,图5所示的方案是在图1所示方案的基础上增加了如下步骤:

s16:根据编码帧指示信息对所述编码器群组中单层编码器生成的层位流进行同步处理,将同步后的层位流发送给终端;所述编码帧指示信息包括与视频序列组对应的编码帧索引。

在实际应用中,通过在层位流中设置同步使能标志字段的方式,控制是否对层位流进行同步处理;同步处理主要是依据编码帧指示信息来实现,该编码帧指示信息包括与视频序列组(groupofpicture,gop)对应的编码帧索引(codingindex),根据该编码帧索引实现从基本层到增强层的轮询编码处理,使得相同时间戳下视频帧的所有层位流均编码完成,再进行同步输出。

与上述实施例的方法相对应的,本申请还提供了一种实现分层视频编码的装置,参见图6可知,该装置可以包括:

采样参数确定单元61,用于根据编码输入参数确定采样参数;所述编码输入参数包括:空间域的解析度、至少两个输出帧率和对应的码率;所述采样参数包括:待配置的采样器个数、待配置的采样器对应的解析度和输出帧率;

编码参数确定单元62,用于根据编码输入参数确定编码参数;所述编码参数包括:待配置的单层编码器个数、待配置的单层编码器对应的解析度、输出帧率和对应的码率;

配置单元63,用于按照所述采样参数和所述编码参数配置编码器群组中的采样器和单层编码器,将解析度相同的采样器和单层编码器进行绑定;所述编码器群组包括至少一个采样器和至少两个单层编码器;

控制单元64,用于控制所述编码器群组中的采样器对初始视频流进行采样得到样本视频流,将所述样本视频流输出给单层编码器,并控制单层编码器对所述样本视频流进行编码得到层位流。

可选的,所述采样参数确定单元,包括:

采样器个数确定子单元,用于确定待配置的采样器个数与所述编码输入参数中空间域的个数相同;

采样器参数确定子单元,用于确定待配置的采样器对应的解析度与空间域的解析度相同,以及确定待配置的采样器对应的输出帧率与所述编码输入参数中最大的输出帧率相同。

可选的,所述编码参数确定单元,包括:

编码器个数确定子单元,用于根据所述编码输入参数中空间域的个数以及单层编码器的时域分层特性确定待配置的单层编码器个数;

编码器参数确定子单元,用于根据预设的码表和所述编码输入参数确定待配置的单层编码器对应的解析度、输出帧率以及码率;所述预设的码表包括特定解析度下不同输出帧率对应的码率值。

可选的,所述编码器个数确定子单元,包括:

第一确定模块,用于当单层编码器支持时域分层特性时,确定待配置的单层编码器个数与所述编码输入参数中空间域的个数相同;以及,

第二确定模块,用于当单层编码器不支持时域分层特性时,确定待配置的单层编码器个数与所述编码输入参数中所有空间域的可分层数目总和相同。

可选的,所述装置还包括:

同步单元,用于根据编码帧指示信息对所述编码器群组中单层编码器生成的层位流进行同步处理,将同步后的层位流发送给终端;所述编码帧指示信息包括与视频序列组对应的编码帧索引。

可选的,所述装置还包括:

转换单元,用于按照单层视频编码到多层视频编码的转换协议,对所述编码器群组中单层编码器生成的层位流进行编码处理得到多层视频编码层位流。

另外,本申请还提供了一种实现分层视频编码的系统,如图7所示,该系统包括:

编码器群组,所述编码器群组包括至少一个采样器和至少两个单层编码器;以及上述实现分层视频编码装置,所述装置用于配置和控制所述编码器群组实现分层视频编码。

这里需要说明的是,图7所示的编码器群组中采样器采用的是串联结构,在实际应用中,该编码器群组中采样器也可以采用并联结构。另外,该编码器群组中的采样器和单层编码器以软件形式实现,也可以以硬件元件实现。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本申请方法实施例是从系统角度描述的,与系统实施例基本相似,方法实施例描述的比较简单,相关之处参见系统实施例的部分说明。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本申请所提供的一种实现分层视频编码的方法、装置及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1