CN103024460A - 多码流自适应的方法及系统 - Google Patents

多码流自适应的方法及系统 Download PDF

Info

Publication number
CN103024460A
CN103024460A CN2012105368754A CN201210536875A CN103024460A CN 103024460 A CN103024460 A CN 103024460A CN 2012105368754 A CN2012105368754 A CN 2012105368754A CN 201210536875 A CN201210536875 A CN 201210536875A CN 103024460 A CN103024460 A CN 103024460A
Authority
CN
China
Prior art keywords
code
tabulation
code check
bit rate
numbering
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012105368754A
Other languages
English (en)
Other versions
CN103024460B (zh
Inventor
荆建营
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vtron Technologies Ltd
Original Assignee
Vtron Technologies Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vtron Technologies Ltd filed Critical Vtron Technologies Ltd
Priority to CN201210536875.4A priority Critical patent/CN103024460B/zh
Publication of CN103024460A publication Critical patent/CN103024460A/zh
Application granted granted Critical
Publication of CN103024460B publication Critical patent/CN103024460B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种多码流自适应的方法,包括步骤:接收期望分辨率;将每个所述期望分辨率与预设码率列表中各码率相减,确定每个所述期望分辨率的差值绝对值的最小值,根据各所述最小值确定各个所述期望分辨率对应的码率;根据各个所述期望分辨率对应的码率和预设码流路数,确定输出码率列表。本发明还提供了对应的装置,包括多码流视频编码服务器、接收模块、处理模块。本发明通过确定输出码流列表,能够根据期望分辨率,动态提供合适分辨率的码流,既能尽力保证整体码流较低,又能节省网络传输带宽,并降低码流请求节点解码的负载,提高性能指标。

Description

多码流自适应的方法及系统
技术领域
本发明涉及视频多码流编码传输技术领域,特别是涉及多码流自适应的方法及系统。
背景技术
多码流视频编码服务器是一种可以将一路视频图像编码成多个码率码流进行输出的服务器。例如可以将一个原始分辨率为FullHD(1920x1080)的视频图像编码输出为HD(1280x720)、D1(720x576)2路不同分辨率(码率)的码流进行输出。码流请求节点是一种向多码流视频编码服务器请求码流的主机,请求到码流后,一般会将码流进行解码并显示。
目前的多码流视频编码服务器大多为固定码率码流输出,例如,固定输出D1码流和HD两种码流,由码流请求节点负责申请合适的码流。但是当视频窗口的实际显示分辨率远小于D1时,例如码流请求节点的信号显示分辨率为176x144时,如果请求D1的分辨率,那么将造成带宽的浪费,如果该码流请求节点有100个这样的码流显示窗口,网络带宽会被严重浪费,并且码流请求节点的CPU会被浪费,系统性能指标被降低。
发明内容
基于此,有必要针对节省网络传输带宽,降低码流请求节点解码的负载的问题,提供一种多码流自适应的方法及系统。
一种多码流自适应的方法,包括步骤:
接收期望分辨率;
将每个所述期望分辨率与预设码率列表中各码率相减,确定每个所述期望分辨率的差值绝对值的最小值,根据各所述最小值确定各个所述期望分辨率对应的码率;
根据各个所述期望分辨率对应的码率和预设码流路数,确定输出码率列表。
上述多码流自适应的方法,通过确定输出码流列表,能够根据期望分辨率,动态提供合适分辨率的码流,既能尽力保证整体码流较低,又能节省网络传输带宽,并降低码流请求节点解码的负载,提高性能指标。
一种多码流自适应系统,包括多码流视频编码服务器,所述多码流视频编码服务器包括:
接收模块,用于接收期望分辨率;
处理模块,用于将每个所述期望分辨率与预设码率列表中各码率相减,确定每个所述期望分辨率的差值绝对值的最小值,根据各所述最小值确定各个所述期望分辨率对应的码率;根据各个所述期望分辨率对应的码率和预设码流路数,确定输出码率列表。
上述多码流自适应系统,通过多码流视频编码服务器确定输出码流列表,能够根据码流请求节点对码流的期望分辨率,动态提供合适分辨率的码流,既能尽力保证整体码流较低,又能节省网络传输带宽,并降低码流请求节点解码的负载,提高性能指标。
附图说明
图1为本发明多码流自适应的方法实施例一的流程示意图;
图2为本发明多码流自适应的方法实施例二的流程示意图;
图3为本发明多码流自适应系统实施例一的结构示意图;
图4为本发明多码流自适应系统实施例二的结构示意图。
具体实施方式
以下针对本发明多码流自适应的方法及系统的各实施例进行详细的描述。
首先针对多码流自适应的方法的各实施例进行描述。
实施例一
参见图1,为本发明多码流自适应的方法实施例一的流程示意图,包括步骤:
步骤S101:接收期望分辨率;
步骤S102:将每个期望分辨率与预设码率列表中各码率相减,确定每个期望分辨率的差值绝对值的最小值,根据各最小值确定各个期望分辨率对应的码率;
步骤S103:根据各个期望分辨率对应的码率和预设码流路数,确定输出码率列表。
其中,确定输出码率列表包括步骤:
根据各个期望分辨率对应的码率,确定使用码率列表;
当预设码流路数大于使用码率列表中码率个数时,输出码率列表为使用码率列表,
当预设码流路数小于或等于使用码率列表中码率个数时,从使用码率列表中取出至少包括最大使用码率的码率作为输出码率,输出码率个数为预设码流路数。
在其中一个实施例中,一路视频图像S的分辨率为1920x1080;有3个码流请求节点Node1、Node2和Node3,它们对信号S的期望分辨率依次为150x140、360x290、700x570;多码流视频编码服务器能够编码输出信号S的FullHD(1920x1080)、D1(720x576)、CIF(352x288)、QCIF(176x144)分辨率码流的图像,即预设码率列表为[FullHD、D1、CIF、QCIF]。能够同时输出2路码率码流,即预设码流路数为2。
那么,本例中的期望分辨率为150x140、360x290、700x570;预设码率列表bitsList为(FullHD、D1、CIF、QCIF);预设码流路数outCount为2。
接收期望分辨率150x140、360x290、700x570,在一个具体实施例中,可以生成期望分辨率列表resolList:(150x140、360x290、700x570);
将resolList中的每一个期望分辨率映射到bitList的相应码率。在一个具体实施例中,可以将预设码率列表中的码率按从小到大排列,那么期望分辨率对应的码率就是预设码率列表中与期望分辨率的差值绝对值最小的那个。求差值时,先将分辨率进行乘积,再将乘积后的期望分辨率和码率相减。
按照这个方法,排序后的预设码率列表bitsList为(QCIF、CIF、D1、FullHD),resolList中的每一个期望分辨率都能在预设码率列表bitsList找到对应的码流,我们把这种对应关系记录为map<expectResol,bit>,其中bit为bitsList中与expectResol对应的那个码率。在一个具体实施例中,将那些用到的码率记录为使用码率列表bitusedList,很显然,bitusedList就是map<expectResol,bit>的所有bit。
则expectResol(150x140)对应bitList(QCIF),expectResol(360x290)对应bitList(CIF),expectResol(700x570)对应bitList(D1)。这种对应关系被记录在map<expectResol,bit>中。使用码率列表bitusedList为(QCIF,CIF,D 1)。
根据预设码流路数2和使用码率列表(QCIF,CIF,D1),确定输出码率列表bitOutList,采用如下步骤进行选择:
当N>m时,所述使用码率列表作为所述输出码率列表;
当1=N≤m时,所述使用码率列表中的最大码率作为第N次查找的输出码率,即f(1)=bitused(m);
当2=N≤m时,所述使用码率列表中的最小码率作为第N次查找的输出码率,具体为f(2)=bitused(1);
当3≤N≤m时,对所述使用码率列表中的码率从小到大进行1到m的编号,所述使用码率列表中的最大码率和最小码率分别作为输出码率,分别标记所述最大码率和最小码率对应的编号;
从标记编号中取出最大值编号和第二大值编号,将所述最大值编号和第二大值编号及1求和,对求和结果的一半向下取整,确定新编号,所述新编号对应的使用码率作为输出码率,对所述最大值编号去标记;
判断是否完成第N次查找,若是,根据各个所述输出码率确定输出码率列表;
判断所述第二大值是否为1,若是,则对去标记的编号恢复标记,标记各个所述新编号,返回从标记编号中取出最大值编号和第二大值编号,若否,返回从标记编号中取出最大值编号和第二大值编号;
用公式表示如下:
Figure BDA00002567511300041
Figure BDA00002567511300042
Figure BDA00002567511300051
Figure BDA00002567511300052
Figure BDA00002567511300053
Figure BDA00002567511300054
......
以此类推,得到所有bitoutList中的节点。
其中,N表示预设码流路数,m表示所述使用码率列表中码率个数。定义bitusedList中第N个编号码率为bitused(N),第n次查找的码率为f(n),记f(n)在bitusedList中的索引为Index(f(n)),索引即为使用码率列表中使用码率的编号,其中,1<=n<=min(outCount,bitusedCount)。
公式中“+1”的目的是为了优先选择右侧的较高码率的码流,以保证码流请求节点显示图像时足够清晰。
因为预设码率路数为2,则
f(1)=bitused(m)=(D1);
f(2)=bitused(1)=(QCIF)。
从而输出码率列表为(D1、QCIF)。
实施例二
参见图2,为本发明多码流自适应的方法实施例二的流程示意图,本方法采用对中间值向上取整的方法确定输出码率列表,同时对每个期望分辨率分配了确定的输出码率,包括步骤:
步骤S201:接收期望分辨率;
步骤S202:将每个期望分辨率与预设码率列表中各码率相减,确定每个期望分辨率的差值绝对值的最小值,根据各最小值确定各个期望分辨率对应的码率;
步骤S203:根据各个期望分辨率对应的码率和预设码流路数,确定输出码率列表;
步骤S204:将每个期望分辨率与输出码率列表中各输出码率相减,确定每个期望分辨率与输出码率的差值绝对值的最小值,根据各差值绝对值的最小值确定各个期望分辨率对应的输出码率。
其中,确定输出码率列表包括步骤:
根据各个期望分辨率对应的码率,确定使用码率列表;
当预设码流路数大于使用码率列表中码率个数时,输出码率列表为使用码率列表,
当预设码流路数小于或等于使用码率列表中码率个数时,从使用码率列表中取出至少包括最大使用码率的码率作为输出码率,输出码率个数为预设码流路数。
在其中一个实施例中,一路视频图像S的分辨率为1920x1080;有4个码流请求节点Node1、Node2、Node3和Node4,它们对信号S的期望分辨率依次为150x140、360x290、700x570、2560x1600;多码流视频编码服务器能够编码输出信号S的FullHD(1920x1080)、D1(720x576)、HalfD1(720x288)、CIF(352x288)、QCIF(176x144)、SubQCIF(128x96)分辨率码流的图像,即预设码率列表为[FullHD、D1、HalfD1、CIF、QCIF、SubQCIF]。能够同时输出3路码率码流,即预设码流路数为3。
那么,本例中的期望分辨率为150x140、360x290、700x570、2560x1600,预设码率列表bitsList为(FullHD、D1、HalfD1、CIF、QCIF、SubQCIF),预设码流路数outCount为3.
接收期望分辨率150x140、360x290、700x570、2560x1600,在一个具体实施例中,可以生成期望分辨率列表resolList:(150x140、360x290、700x570、2560x 1600);
将resolList中的每一个期望分辨率映射到bitList的相应码率。在一个具体实施例中,可以将预设码率列表中的码率按从小到大排列,那么期望分辨率对应的码率就是预设码率列表中与期望分辨率的差值绝对值最小的那个。求差值时,先将分辨率进行乘积,再将乘积后的期望分辨率和码率相减。
按照这个方法,排序后的预设码率列表bitsList为(SubQCIF、QCIF、CIF、HalfD1、D1、FullHD),resolList中的每一个期望分辨率都能在预设码率列表bitsList找到对应的码流,我们把这种对应关系记录为map<expectResol,bit>,其中bit为bitsList中与expectResol对应的那个码率。在一个具体实施例中,将那些用到的码率记录为使用码率列表bitusedList,很显然,bitusedList就是map<expectResol,bit>的所有bit。
则expectResol(150x140)对应bitList(QCIF),expectResol(360x290)对应bitList(CIF),expectResol(700x570)对应bitList(D1),expectResol(2560x1600)对应bitList(FullHD)。这种对应关系被记录在map<expectResol,bit>中。使用码率列表bitusedList为(QCIF、CIF、D1、FullHD)。
根据预设码流路数3和使用码率列表(QCIF、CIF、D1、FullHD),确定输出码率列表bitOutList,采用如下步骤进行选择:
当N>m时,所述使用码率列表作为所述输出码率列表;
当1=N≤m时,所述使用码率列表中的最大码率作为第N次查找的输出码率,即f(1)=bitused(m)
当2=N≤m时,所述使用码率列表中的最小码率作为第N次查找的输出码率,具体为f(2)=bitused(1);
当3≤N≤m时,对所述使用码率列表中的码率从小到大进行1到m的编号,所述使用码率列表中的最大码率和最小码率分别作为输出码率,分别标记所述最大码率和最小码率对应的编号;
从标记编号中取出最大值编号和第二大值编号,将所述最大值编号和第二大值编号求和,对求和结果的一半向上取整,确定新编号,所述新编号对应的使用码率作为输出码率,对所述最大值编号去标记;
判断是否完成第N次查找,若是,根据各个所述输出码率确定输出码率列表;
判断所述第二大值是否为1,若是,则对去标记的编号恢复标记,标记各个所述新编号,返回从标记编号中取出最大值编号和第二大值编号,若否,返回从标记编号中取出最大值编号和第二大值编号;
用公式表示如下:
Figure BDA00002567511300081
Figure BDA00002567511300082
Figure BDA00002567511300084
Figure BDA00002567511300086
Figure BDA00002567511300087
Figure BDA00002567511300088
......
以此类推,得到所有bitoutList中的节点。
其中,N表示预设码流路数,m表示所述使用码率列表中码率个数。定义bitusedList中第N个编号码率为bitused(N),第n次查找的码率为f(n),记f(n)在bitusedList中的索引为Index(f(n)),索引即为使用码率列表中使用码率的编号,其中,1<=n<=min(outCount,bitusedCount)。
公式中“+1”的目的是为了优先选择右侧的较高码率的码流,以保证码流请求节点显示图像时足够清晰。
因为预设码率路数为3,则
f(1)=bitused(m)=(FullHD);
f(2)=bitused(1)=(QCIF);
Figure BDA00002567511300089
从而输出码率列表为(FullHD、QCIF、D1)。
在一个具体实施例中,将bitusedList的每一个节点映射到bitoutList的相应节点;映射的方法为:将bitusedList中的每一个节点映射为在bitoutList中与它差值的绝对值最小的那个节点。将得到的bitusedList映射后的列表,叫做map<bit,bitOut>。其中bit为上述map<expectResol,bit>中的bit,bitOut为该bit对应的输出码率。即bitusedList(QCIF)对应bitoutList(QCIF),bitusedList(CIF)对应bitoutList(QCIF),bitusedList(D1)对应bitoutList(D1),bitusedList(FullHD)对应bitoutList(FullHD)。这种对应关系被记录在map<bit,bitOut>中。
依据map<expectResol,bit>和map<bit,bitOut>,得到每一个期望分辨率expectResol对应的输出码率bitOut,我们这个对应关系叫做map<expectResol,bitOut>。其中expectResol为码流请求节点的期望分辨率,bitOut为其对应的码率码流。即expectResol(150x140)对应bitoutList(QCIF),expectResol(360x290)对应bitoutList(QCIF),expectResol(700x570)对应bitoutList(D1),expectResol(2560x1600)对应bitoutList(FullHD)。
其中,具体确定输出码率列表不限于上述实施例给出的方法,可以不加1直接取中间值的向下取整,也可以是加1向上取整,还可以是取包括最大码率的任意码率等,具体根据需要设定,在此不再赘述。
根据上述多码流自适应的方法,本发明提供一种多码流自适应系统。
实施例一
参见图3,为本发明多码流自适应系统实施例一的结构示意图,包括多码流视频编码服务器30,所述多码流视频编码服务器30包括:
接收模块301,用于接收期望分辨率;
处理模块302,用于将每个所述期望分辨率与预设码率列表中各码率相减,确定每个所述期望分辨率的差值绝对值的最小值,根据各所述最小值确定各个所述期望分辨率对应的码率;根据各个所述期望分辨率对应的码率和预设码流路数,确定输出码率列表。
在一个实施例中,还包括:
码流请求节点31,用于向多码流视频编码服务器发送期望分辨率,接收多码流视频编码服务器发送的输出码率列表,根据期望分辨率、输出码率列表选择输出码率;
多码流视频编码服务器30还用于向码流请求节点31发送输出码率列表。其中,处理模块还用于:
根据各个期望分辨率对应的码率,确定使用码率列表;
当预设码流路数大于使用码率列表中码率个数时,输出码率列表为使用码率列表,
当预设码流路数小于或等于使用码率列表中码率个数时,从使用码率列表中取出至少包括最大使用码率的码率作为输出码率,输出码率个数为预设码流路数。
在其中一个实施例中,一路视频图像S的分辨率为1920x1080;有3个码流请求节点Node1、Node2和Node3,它们对信号S的期望分辨率依次为150x140、360x290、700x570;多码流视频编码服务器30能够编码输出信号S的FullHD(1920x1080)、D1(720x576)、CIF(352x288)、QCIF(176x144)分辨率码流的图像,即预设码率列表为[FullHD、D1、CIF、QCIF]。能够同时输出2路码率码流,即预设码流路数为2。
码流请求节点Node1、Node2和Node3通过TCP/IP网络向多码流视频编码服务器注册,使请求节点和多码流视频编码服务器之间存在通信链路。码流请求节点Node1、Node2和Node3将对视频S的期望分辨率expectResol:150x140、360x290、700x570发送给多码流视频编码服务器。多码流视频编码服务器接收各码流请求节点的expectResol,形成视频S的期望分辨率列表resolList:(150x140、360x290、700x570)。
那么,本例中的期望分辨率为150x140、360x290、700x570,预设码率列表bitsList为(FullHD、D1、CIF、QCIF),预设码流路数outCount为2.
接收期望分辨率150x140、360x290、700x570,在一个具体实施例中,可以生成期望分辨率列表resolList:(150x140、360x290、700x570);
将resolList中的每一个期望分辨率映射到bitList的相应码率。在一个具体实施例中,可以将预设码率列表中的码率按从小到大排列,那么期望分辨率对应的码率就是预设码率列表中与期望分辨率的差值绝对值最小的那个。求差值时,先将分辨率进行乘积,再将乘积后的期望分辨率和码率相减。
因此,排序后的预设码率列表bitsList为(QCIF、CIF、D1、FullHD),resolList中的每一个期望分辨率都能在预设码率列表bitsList找到对应的码流,我们把这种对应关系记录为map<expectResol,bit>,其中bit为bitsList中与expectResol对应的那个码率。在一个具体实施例中,将那些用到的码率记录为使用码率列表bitusedList,很显然,bitusedList就是map<expectResol,bit>的所有bit。
则expectResol(150x140)对应bitList(QCIF),expectResol(360x290)对应bitList(CIF),expectResol(700x570)对应bitList(D1)。这种对应关系被记录在map<expectResol,bit>中。使用码率列表bitusedList为(QCIF,CIF,D1)。
根据预设码流路数2和使用码率列表(QCIF,CIF,D1),确定输出码率列表bitOutList,采用如下步骤进行选择:
当N>m时,使用码率列表作为输出码率列表;
当1=N≤m时,所述使用码率列表中的最大码率作为第N次查找的输出码率,即f(1)=bitused(m);
当2=N≤m时,所述使用码率列表中的最小码率作为第N次查找的输出码率,具体为f(2)=bitused(1);
当3≤N≤m时,对所述使用码率列表中的码率从小到大进行1到m的编号,所述使用码率列表中的最大码率和最小码率分别作为输出码率,分别标记所述最大码率和最小码率对应的编号;
从标记编号中取出最大值编号和第二大值编号,将所述最大值编号和第二大值编号及1求和,对求和结果的一半向下取整,确定新编号,所述新编号对应的使用码率作为输出码率,对所述最大值编号去标记;
判断是否完成第N次查找,若是,根据各个所述输出码率确定输出码率列表;
判断所述第二大值是否为1,若是,则对去标记的编号恢复标记,标记各个所述新编号,返回从标记编号中取出最大值编号和第二大值编号,若否,返回从标记编号中取出最大值编号和第二大值编号;
用公式表示如下:
Figure BDA00002567511300111
Figure BDA00002567511300112
Figure BDA00002567511300113
Figure BDA00002567511300114
Figure BDA00002567511300115
Figure BDA00002567511300116
Figure BDA00002567511300121
Figure BDA00002567511300122
.......
以此类推,得到所有bitoutList中的节点。
其中,N表示预设码流路数,m表示所述使用码率列表中码率个数。定义bitusedList中第N个编号码率为bitused(N),第n次查找的码率为f(n),记f(n)在bitusedList中的索引为Index(f(n)),索引即为使用码率列表中使用码率的编号,其中,1<=n<=min(outCount,bitusedCount)。
公式中“+1”的目的是为了优先选择右侧的较高码率的码流,以保证码流请求节点显示图像时足够清晰。
因为预设码率路数为2,则
f(1)=bitused(m)=(D1);
f(2)=bitused(1)=(QCIF)。
从而输出码率列表为(D1、QCIF)。
多码流视频编码服务器30还用于向所述码流请求节点发送所述输出码率列表。码流请求节点31,接收所述多码流视频编码服务器30发送的输出码率列表,根据期望分辨率、输出码率列表选择输出码率。
实施例二
参见图4,为本发明多码流自适应系统实施例二的结构示意图,本系统采用对中间值向上取整的方法确定输出码率列表,同时对每个码率请求节点分配了确定的输出码率,该系统包括多码流视频编码服务器40,所述多码流视频编码服务器40包括:
接收模块401,用于接收期望分辨率;
处理模块402,用于将每个所述期望分辨率与预设码率列表中各码率相减,确定每个所述期望分辨率的差值绝对值的最小值,根据各所述最小值确定各个所述期望分辨率对应的码率;根据各个所述期望分辨率对应的码率和预设码流路数,确定输出码率列表。
在其中一个实施例中,一路视频图像S的分辨率为1920x1080;有4个码流请求节点Node1、Node2、Node3和Node4,它们对信号S的期望分辨率依次为150x140、360x290、700x570、2560x1600;多码流视频编码服务器能够编码输出信号S的FullHD(1920x1080)、D1(720x576)、HalfD1(720x288)、CIF(352x288)、QCIF(176x144)、SubQCIF(128x96)分辨率码流的图像,即预设码率列表为[FullHD、D1、HalfD1、CIF、QCIF、SubQCIF]。能够同时输出3路码率码流,即预设码流路数为3。
码流请求节点Node1、Node2、Node3和Node4通过TCP/IP网络向多码流视频编码服务器注册,使请求节点和多码流视频编码服务器之间存在通信链路。码流请求节点Node1、Node2、Node3和Node4将对视频S的期望分辨率expectReso1:150x140、360x290、700x570、2560x1600发送给多码流视频编码服务器。多码流视频编码服务器接收各码流请求节点的expectResol,形成视频S的期望分辨率列表resolList:(150x140、360x290、700x570、2560x1600)。
那么,本例中的期望分辨率为150x140、360x290、700x570、2560x1600,预设码率列表bitsList为(FullHD、D1、HalfD1、CIF、QCIF、SubQCIF),预设码流路数outCount为3.
接收期望分辨率150x140、360x290、700x570、2560x1600,在一个具体实施例中,可以生成期望分辨率列表resolList:(150x140、360x290、700x570、2560x1600);
将resolList中的每一个期望分辨率映射到bitList的相应码率。在一个具体实施例中,可以将预设码率列表中的码率按从小到大排列,那么期望分辨率对应的码率就是预设码率列表中与期望分辨率的差值绝对值最小的那个。求差值时,先将分辨率进行乘积,再将乘积后的期望分辨率和码率相减。
因此,排序后的预设码率列表bitsList为(SubQCIF、QCIF、CIF、HalfD1、D1、FullHD),resolList中的每一个期望分辨率都能在预设码率列表bitsList找到对应的码流,我们把这种对应关系记录为map<expectResol,bit>,其中bit为bitsList中与expectResol对应的那个码率。在一个具体实施例中,将那些用到的码率记录为使用码率列表bitusedList,很显然,bitusedList就是map<expectResol,bit>的所有bit。
则expectResol(150x140)对应bitList(QCIF),expectResol(360x290)对应bitList(CIF),expectResol(700x570)对应bitList(D1),expectResol(2560x1600)对应bitList(FullHD)。这种对应关系被记录在map<expectResol,bit>中。使用码率列表bitusedList为(QCIF、CIF、D1、FullHD)。
根据预设码流路数3和使用码率列表(QCIF、CIF、D1、FullHD),确定输出码率列表bitOutList,采用如下步骤进行选择:
当N>m时,所述使用码率列表作为所述输出码率列表;
当1=N≤m时,所述使用码率列表中的最大码率作为第N次查找的输出码率,即f(1)=bitused(m)
当2=N≤m时,所述使用码率列表中的最小码率作为第N次查找的输出码率,具体为f(2)=bitused(1);
当3≤N≤m时,对所述使用码率列表中的码率从小到大进行1到m的编号,所述使用码率列表中的最大码率和最小码率分别作为输出码率,分别标记所述最大码率和最小码率对应的编号;
从标记编号中取出最大值编号和第二大值编号,将所述最大值编号和第二大值编号求和,对求和结果的一半向上取整,确定新编号,所述新编号对应的使用码率作为输出码率,对所述最大值编号去标记;
判断是否完成第N次查找,若是,根据各个所述输出码率确定输出码率列表;
判断所述第二大值是否为1,若是,则对去标记的编号恢复标记,标记各个所述新编号,返回从标记编号中取出最大值编号和第二大值编号,若否,返回从标记编号中取出最大值编号和第二大值编号;
用公式表示如下:
Figure BDA00002567511300142
Figure BDA00002567511300143
Figure BDA00002567511300144
Figure BDA00002567511300151
Figure BDA00002567511300152
Figure BDA00002567511300153
.......
以此类推,得到所有bitoutList中的节点。
其中,N表示预设码流路数,m表示所述使用码率列表中码率个数。定义bitusedList中第N个编号码率为bitused(N),第n次查找的码率为f(n),记f(n)在bitusedList中的索引为Index(f(n)),索引即为使用码率列表中使用码率的编号,其中,1<=n<=min(outCount,bitusedCount)。
公式中“+1”的目的是为了优先选择右侧的较高码率的码流,以保证码流请求节点显示图像时足够清晰。
因为预设码率路数为3,则
f(1)=bitused(m)=(FullHD);
f(2)=bitused(1)=(QCIF);
Figure BDA00002567511300155
从而输出码率列表为(FullHD、QCIF、D1)。
在一个具体实施例中,将bitusedList的每一个节点映射到bitoutList的相应节点;映射的方法为:将bitusedList中的每一个节点映射为在bitoutList中与它差值的绝对值最小的那个节点。将得到的bitusedList映射后的列表,叫做map<bit,bitOut>。其中bit为上述map<expectResol,bit>中的bit,bitOut为该bit对应的输出码率。即bitusedList(QCIF)对应bitoutList(QCIF),bitusedList(CIF)对应bitoutList(QCIF),bitusedList(D1)对应bitoutList(D1),bitusedList(FullHD)对应bitoutList(FullHD)。这种对应关系被记录在map<bit,bitOut>中。
依据map<expectResol,bit>和map<bit,bitOut>,得到每一个期望分辨率expectResol对应的输出码率bitOut,我们这个对应关系叫做map<expectResol,bitOut>。其中expectResol为码流请求节点的期望分辨率,bitOut为其对应的码率码流。即expectResol(150x140)对应bitoutList(QCIF),expectResol(360x290)对应bitoutList(QCIF),expectResol(700x570)对应bitoutList(D1),expectResol(2560x1600)对应bitoutList(FullHD)。
多码流视频编码服务器40根据map<expectResol,bitOut>,通过之前建立的通信链路通知每一个码流请求节点其对应的码率码流。
很显然,此处将告诉Node1它的码率码流为QCIF,Node2它的码率码流为QCIF,Node3它的码率码流为D1,Node4它的码率码流为FullHD。
其中,具体确定输出码率列表不限于上述实施例给出的方法,可以不加1直接取中间值的向下取整,也可以是加1向上取整,还可以是取包括最大码率的任意码率等,具体根据需要设定,在此不再赘述。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (9)

1.一种多码流自适应的方法,其特征在于,包括步骤:
接收期望分辨率;
将每个所述期望分辨率与预设码率列表中各码率相减,确定每个所述期望分辨率的差值绝对值的最小值,根据各所述最小值确定各个所述期望分辨率对应的码率;
根据各个所述期望分辨率对应的码率和预设码流路数,确定输出码率列表。
2.根据权利要求1所述的多码流自适应的方法,其特征在于,所述确定输出码率列表包括步骤:
根据各个所述期望分辨率对应的码率,确定使用码率列表;
当所述预设码流路数大于所述使用码率列表中码率个数时,所述使用码率列表作为所述输出码率列表,
当所述预设码流路数小于或等于所述使用码率列表中码率个数时,从所述使用码率列表中取出至少包括最大使用码率的码率作为输出码率,输出码率个数为预设码流路数。
3.根据权利要求2所述的多码流自适应的方法,其特征在于,所述确定输出码率列表包括步骤:
根据各个所述期望分辨率对应的码率,确定使用码率列表;
当N>m时,所述使用码率列表作为所述输出码率列表,
当1=N≤m时,所述使用码率列表中的最大码率作为第N次查找的输出码率;
当2=N≤m时,所述使用码率列表中的最小码率作为第N次查找的输出码率;
当3≤N≤m时,对所述使用码率列表中的码率从小到大进行1到m的编号,所述使用码率列表中的最大码率和最小码率分别作为输出码率,分别标记所述最大码率和最小码率对应的编号;
从标记编号中取出最大值编号和第二大值编号,将所述最大值编号和第二大值编号及1求和,对求和结果的一半向下取整,确定新编号,所述新编号对应的使用码率作为输出码率,对所述最大值编号去标记;
判断是否完成第N次查找,若是,根据各个所述输出码率确定输出码率列表;
判断所述第二大值是否为1,若是,则对去标记的编号恢复标记,标记各个所述新编号,返回从标记编号中取出最大值编号和第二大值编号,若否,返回从标记编号中取出最大值编号和第二大值编号;
其中,N表示预设码流路数,m表示所述使用码率列表中码率个数。
4.根据权利要求2所述的多码流自适应的方法,其特征在于,所述确定输出码率列表包括步骤:
根据各个所述期望分辨率对应的码率,确定使用码率列表;
当N>m时,所述使用码率列表作为所述输出码率列表,
当1=N≤m时,所述使用码率列表中的最大码率作为第N次查找的输出码率;
当2=N≤m时,所述使用码率列表中的最小码率作为第N次查找的输出码率;
当3≤N≤m时,对所述使用码率列表中的码率从小到大进行1到m的编号,所述使用码率列表中的最大码率和最小码率分别作为输出码率,分别标记所述最大码率和最小码率对应的编号;
从标记编号中取出最大值编号和第二大值编号,将所述最大值编号和第二大值编号求和,对求和结果的一半向上取整,确定新编号,所述新编号对应的使用码率作为输出码率,对所述最大值编号去标记;
判断是否完成第N次查找,若是,根据各个所述输出码率确定输出码率列表;
判断所述第二大值编号是否为1,若是,则对去标记的编号恢复标记,标记各个所述新编号,返回从标记编号中取出最大值编号和第二大值编号,若否,返回从标记编号中取出最大值编号和第二大值编号;
其中,N表示预设码流路数,m表示所述使用码率列表中码率个数。
5.根据权利要求1至4任意一项所述的多码流自适应的方法,其特征在于,所述确定输出码率列表后还包括步骤:
将每个所述期望分辨率与所述输出码率列表中各输出码率相减,确定每个所述期望分辨率与输出码率的差值绝对值的最小值,根据各所述差值绝对值的最小值确定各个所述期望分辨率对应的输出码率。
6.根据权利要求1至4任意一项所述的多码流自适应的方法,其特征在于,所述预设码率列表按升序进行排序。
7.一种多码流自适应系统,其特征在于,包括多码流视频编码服务器,所述多码流视频编码服务器包括:
接收模块,用于接收期望分辨率;
处理模块,用于将每个所述期望分辨率与预设码率列表中各码率相减,确定每个所述期望分辨率的差值绝对值的最小值,根据各所述最小值确定各个所述期望分辨率对应的码率;根据各个所述期望分辨率对应的码率和预设码流路数,确定输出码率列表。
8.根据权利要求7所述的多码流自适应系统,其特征在于,还包括:
码流请求节点,用于向所述多码流视频编码服务器发送期望分辨率,接收所述多码流视频编码服务器发送的所述输出码率列表,根据所述期望分辨率、所述输出码率列表选择输出码率;
所述多码流视频编码服务器还用于向所述码流请求节点发送所述输出码率列表。
9.根据权利要求7或8所述的多码流自适应系统,其特征在于,所述多码流视频编码服务器与所述码流请求节点通过TCP/IP网络连接。
CN201210536875.4A 2012-12-11 2012-12-11 多码流自适应的方法及系统 Expired - Fee Related CN103024460B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210536875.4A CN103024460B (zh) 2012-12-11 2012-12-11 多码流自适应的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210536875.4A CN103024460B (zh) 2012-12-11 2012-12-11 多码流自适应的方法及系统

Publications (2)

Publication Number Publication Date
CN103024460A true CN103024460A (zh) 2013-04-03
CN103024460B CN103024460B (zh) 2015-12-23

Family

ID=47972520

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210536875.4A Expired - Fee Related CN103024460B (zh) 2012-12-11 2012-12-11 多码流自适应的方法及系统

Country Status (1)

Country Link
CN (1) CN103024460B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104639953A (zh) * 2013-11-15 2015-05-20 成都鼎桥通信技术有限公司 音视频分发链路的码率自适应方法和音视频分发设备
CN105611315A (zh) * 2016-01-06 2016-05-25 阔地教育科技有限公司 控制装置、发送装置、接收装置和多码流自适应处理系统
CN107155093A (zh) * 2017-06-21 2017-09-12 普联技术有限公司 一种视频预览方法、装置及设备
CN109819333A (zh) * 2019-01-10 2019-05-28 广州视源电子科技股份有限公司 视频流码率分配方法、装置及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1568620A (zh) * 2001-10-12 2005-01-19 皇家飞利浦电子股份有限公司 使用可变速率调制的视频传送
CN1989770A (zh) * 2004-07-26 2007-06-27 皇家飞利浦电子股份有限公司 一种视频流分级压缩方法及装置
US20100128604A1 (en) * 2007-04-02 2010-05-27 Appleby Stephen C Video streaming
CN202587199U (zh) * 2012-03-16 2012-12-05 安凯(广州)微电子技术有限公司 一种多路录像装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1568620A (zh) * 2001-10-12 2005-01-19 皇家飞利浦电子股份有限公司 使用可变速率调制的视频传送
CN1989770A (zh) * 2004-07-26 2007-06-27 皇家飞利浦电子股份有限公司 一种视频流分级压缩方法及装置
US20100128604A1 (en) * 2007-04-02 2010-05-27 Appleby Stephen C Video streaming
CN202587199U (zh) * 2012-03-16 2012-12-05 安凯(广州)微电子技术有限公司 一种多路录像装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104639953A (zh) * 2013-11-15 2015-05-20 成都鼎桥通信技术有限公司 音视频分发链路的码率自适应方法和音视频分发设备
CN104639953B (zh) * 2013-11-15 2017-11-03 成都鼎桥通信技术有限公司 音视频分发链路的码率自适应方法和音视频分发设备
CN105611315A (zh) * 2016-01-06 2016-05-25 阔地教育科技有限公司 控制装置、发送装置、接收装置和多码流自适应处理系统
CN107155093A (zh) * 2017-06-21 2017-09-12 普联技术有限公司 一种视频预览方法、装置及设备
CN109819333A (zh) * 2019-01-10 2019-05-28 广州视源电子科技股份有限公司 视频流码率分配方法、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN103024460B (zh) 2015-12-23

Similar Documents

Publication Publication Date Title
CN107196746B (zh) 实时通信中的抗丢包方法、装置和系统
CN104394484A (zh) 一种无线实时流媒体传输方法
WO2010037310A1 (zh) 多路视频通信方法与系统
RU2011149387A (ru) Система многоканальной видеосвязи и способ обработки многоканальной видеосвязи
CN103493481A (zh) 基于场景的适应性比特率控制
WO2014035833A2 (en) Device and method for adaptive rate multimedia communications on a wireless network
CN103795996B (zh) 3d视频传递方法和设备
CN102457728B (zh) 一种视频图像编码方法和装置
CN103024460B (zh) 多码流自适应的方法及系统
US20170251038A1 (en) Failure detection manager
WO2014035896A2 (en) Device and method for adaptive rate multimedia communications on a wireless network
JPWO2009075245A1 (ja) 画質評価システム、それに用いる装置、方法およびプログラム
EP2730093A1 (en) Techniques for dynamic switching between coded bitstreams
CN103024342A (zh) 视频会议系统中的带宽控制方法及系统
CN106162174B (zh) 一种视频多分辨率编码方法和装置
CN101931799A (zh) 一种视频码流的平滑方法及装置
CN103650502A (zh) 用于参考画面管理的编码器、解码器及其方法
EP2667536B1 (en) Method and system for adaptive streaming in a multipath environment.
CN102547259A (zh) 一种基于码率控制的视频编码方法和装置
CN104378651A (zh) 基于带宽检测的动态编码装置和方法
US8644138B2 (en) Method, computer program product, and apparatus for deriving intelligence from format change requests
CN104205852A (zh) 信息处理装置和方法以及程序
CN104994407A (zh) 一种集中自适应视频转码的方法
CN111225238A (zh) 信息处理方法及相关设备
SG190978A1 (en) Method and system for controlling data packet transmissions over lossy protocols

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20151223

Termination date: 20211211

CF01 Termination of patent right due to non-payment of annual fee