一种码流传输控制方法和装置转让专利

申请号 : CN201110433312.8

文献号 : CN102572516B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 牛长锋韩坚

申请人 : 北京视博云科技有限公司

摘要 :

本发明实施例提供一种码流传输控制方法和装置,所述方法包括:接收终端视频解码设备发送的解码器的运行状态;判断所述解码器的运行状态是否满足第一预设条件,如果满足所述第一预设条件,则针对当前待编码的至少一帧利用当前帧的信息进行编码并发送,否则,针对待编码的每帧利用当前帧和其他帧的信息进行编码并发送。通过本发明实施例的方法和装置,可以根据终端视频解码设备解码器的运行状态确定相应的编码方式,使得终端视频解码设备的解码器的运行状态满足第一预设条件时,可以使解码器从错误中很快的恢复正常,并且也不会因为利用当前帧的信息进行编码的视频帧加入的过多造成视频传输的延时。

权利要求 :

1.一种码流传输控制方法,其特征在于,所述方法包括:

在有线数字电视网络中,接收终端视频解码设备发送的解码器的运行状态;

判断所述解码器的运行状态是否满足第一预设条件,如果满足所述第一预设条件,则针对当前待编码的至少一帧利用当前帧的信息进行编码并发送,否则,针对待编码的每帧利用当前帧和其他帧的信息进行编码并发送;

当针对当前待编码的至少一帧利用当前帧的信息进行编码时包括:

跳过n帧不进行编码,其中, framesize为利用当前帧的信息进行编码后数据帧的大小,bitrate为设定的平均码率或发送带宽,fps为编码器预设帧率。

2.根据权利要求1所述的一种码流传输控制方法,其特征在于,所述第一预设条件包括,所述解码器的运行状态为出错停止状态或者为启动状态。

3.根据权利要求1所述的一种码流传输控制方法,其特征在于还包括,接收终端视频解码设备发送的网络状态信息,所述网络状态信息包括丢包率信息和/或错包率信息;如果所述网络状态信息满足第二预设条件,则针对当前待编码的至少一帧利用当前帧的信息进行编码并发送,否则,针对待编码的每帧利用当前帧和其他帧的信息进行编码并发送。

4.根据权利要求3所述的一种码流传输控制方法,其特征在于,如果所述网络状态信息满足第二预设条件,则针对当前待编码的至少一帧利用当前帧的信息进行编码并发送包括,当所述丢包率大于第一阈值时,则针对当前待编码的至少一帧利用当前帧的信息进行编码并发送;或者当所述错包率大于第二阈值时,则针对当前待编码的至少一帧利用当前帧的信息进行编码并发送。

5.一种服务端设备,包括编码器,所述编码器用于生成视频帧,其特征在于所述服务端设备应用于有线数字电视网络中,该服务端设备还包括:第一接收单元,用于接收终端视频解码设备发送的解码器的运行状态;

第一控制单元,判断所述解码器的运行状态是否满足第一预设条件,如果满足所述第一预设条件,则针对当前待编码的至少一帧利用当前帧的信息进行编码并发送,否则,针对待编码的每帧利用当前帧和其他帧的信息进行编码并发送;

所述第一控制单元还用于在针对当前待编码的至少一帧利用当前帧的信息进行编码后,跳过n帧不进行编码,其中, framesize为利用当前帧的信息进行编码后数据帧的大小,bitrate为设定的平均码率或发送带宽,fps为编码器预设帧率。

6.根据权利要求5所述的一种服务端设备,其特征在于所述第一控制单元,具体用于判断所述解码器的运行状态是否为出错停止状态或者为启动状态,如果所述解码器的运行状态为出错停止状态或启动状态,则针对当前待编码的至少一帧利用当前帧的信息进行编码并发送,否则,针对待编码的每帧利用当前帧和其他帧的信息进行编码并发送。

7.根据权利要求5所述的一种服务端设备,其特征在于还包括,

第二接收单元,用于接收终端视频解码设备发送的网络状态信息,所述网络状态信息包括丢包率信息和/或错包率信息;

第二控制单元,用于判断如果所述网络状态信息满足第二预设条件,则针对当前待编码的至少一帧利用当前帧的信息进行编码并发送,否则,针对待编码的每帧利用当前帧和其他帧的信息进行编码并发送。

8.根据权利要求7所述的一种服务端设备,其特征在于,所述第二控制单元,用于进一步判断,当所述丢包率大于第一阈值时,则针对当前待编码的至少一帧利用当前帧的信息进行编码并发送;或者当所述错包率大于第二阈值时,则针对当前待编码的至少一帧利用当前帧的信息进行编码并发送。

9.根据权利要求8所述的一种服务端设备,其特征在于,所述第二控制单元还用于在针对当前待编码的一帧利用当前帧的信息进行编码后,跳过n帧不进行编码,其中,framesize为利用当前帧的信息进行编码后数据帧的大小,bitrate为设定的平均码率或发送带宽,fps为编码器预设帧率。

说明书 :

一种码流传输控制方法和装置

技术领域

[0001] 本发明涉及数字电视领域,尤其涉及一种码流传输控制方法和装置。

背景技术

[0002] 现有的视频编码标准包括MPEG-2、MPEG-4以及H.264等,编码后的视频帧包括I、P和B三种主要的类型,其中I帧为帧内编码帧,即利用当前帧信息进行编码的视频帧,P帧和B帧采用帧间编码方式进行编码,即在编码时利用了当前帧和其他帧的信息进行编码的视频帧。
[0003] 在目前的数字电视领域中,可以通过周期性插入I帧的方法,保证终端视频解码设备能随机接入视频信号,并立即开始解码显示,如图1所示在P帧中周期性插入I帧。在这种编码方式中,I帧采用帧内编码方式,在解码时,不需要相邻帧的信息,可独立解码;P帧(预测帧)或B帧(反向预测帧)采用帧间编码方式,解码该帧时,需要利用相邻帧的信息,均不可独立解码。
[0004] 尽管这种周期性插入I帧的方法可增加码流的通用性和容错性,但是,如果I帧插入的过多,由于通常情况下I帧的大小远远大于平均帧大小,例如I帧大小是相邻P帧大小的3到5倍,因此将会增加时延或丢包的概率,但是I帧插入的太少,又无法保证码流的通用性和容错性,对于其他的利用当前帧信息进行编码的视频帧也同样存在上述问题。

发明内容

[0005] 本发明实施例提供一种码流传输控制方法和装置,用于解决现有技术中利用当前帧信息进行编码的视频帧加入过多造成的视频传输延时,或者加入过少造成的码流通用性和容错性较差的问题。
[0006] 本发明实施例提供了一种码流传输控制方法,所述方法包括:
[0007] 接收终端视频解码设备发送的解码器的运行状态;
[0008] 判断所述解码器的运行状态是否满足第一预设条件,如果满足所述第一预设条件,则针对当前待编码的至少一帧利用当前帧的信息进行编码并发送,否则,针对待编码的每帧利用当前帧和其他帧的信息进行编码并发送。
[0009] 本发明实施例还提供了一种服务端设备,包括编码器,所述编码器用于生成视频帧,所述服务端设备还包括:
[0010] 第一接收单元,用于接收终端视频解码设备发送的解码器的运行状态;
[0011] 第一控制单元,判断所述解码器的运行状态是否满足第一预设条件,如果满足所述第一预设条件,则针对当前待编码的至少一帧利用当前帧的信息进行编码并发送,否则,针对待编码的每帧利用当前帧和其他帧的信息进行编码并发送。
[0012] 通过本发明实施例的方法和装置,服务端设备可以根据终端视频解码设备解码器的运行状态确定相应的编码方式,使得终端视频解码设备的解码器的运行状态满足第一预设条件时,可以使解码器从错误中很快的恢复正常,并且也不会因为利用当前帧的信息进行编码的视频帧加入的过多造成视频传输的延时。

附图说明

[0013] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
[0014] 图1为码流传输过程中周期性插入I帧的示意图;
[0015] 图2为本发明一实施例的方法流程图;
[0016] 图3为本发明另一实施例的方法流程图;
[0017] 图4为本发明实施例的方法的应用示意图;
[0018] 图5为图4所示实施例的一个实施方式的示意图;
[0019] 图6为本发明实施例的终端视频解码设备的组成框图;
[0020] 图7为本发明实施例的服务端的组成框图;
[0021] 图8为图6和图7所示实施例的应用示意图。

具体实施方式

[0022] 为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
[0023] 图2为本发明实施例提供的一种码流传输控制方法的流程图,该方法应用于包括解码器的终端视频解码设备,例如机顶盒、手机、个人计算机等。请参照图2,该方法包括:
[0024] 步骤201:监测所述解码器的运行状态。
[0025] 其中,所述解码器将其运行状态向终端视频解码设备的监测单元反馈,或者监测单元可以从解码器获取解码器的运行状态。
[0026] 步骤202:将所述运行状态发送给服务端设备,以便所述服务端设备根据所述解码器的运行状态确定针对当前待编码的至少一帧在编码时利用当前帧的信息进行编码,或者针对待编码的每帧利用当前帧和其他帧的信息进行编码并发送。
[0027] 步骤203,接收所述服务端设备发送的视频帧。
[0028] 步骤204,根据接收到的视频帧进行视频解码。
[0029] 其中,步骤203和204可以使用现有技术中的方式实施,例如终端视频解码设备可以根据服务端设备发送的I帧或者P帧,又或者发送的B帧等视频帧进行识别解码。
[0030] 在本实施例中,解码器的运行状态可以是启动状态、可以是正常运行状态,还可以是出错停止状态。
[0031] 在一个实施例中,当终端视频解码设备开机启动时,其解码器处于启动状态,根据本实施例的方法,该终端视频解码设备将该运行状态发送到服务端设备,服务端设备在收到解码器处于启动状态的信息后,向其编码器发送针对当前待编码的至少一帧在编码时利用当前帧的信息进行编码的命令,其编码器将一个或一定数量的当前待编码的视频帧利用该当前帧的信息进行编码,例如采用I帧方式进行编码,并发送到终端视频解码设备,终端视频解码设备收到该I帧后开始解码。
[0032] 在另外一个实施例中,当终端视频解码设备的解码器在解码过程中,如果码流出错,则解码器会处于出错停止状态,具体的在本实施例中解码器只要不能正常解码,解码器就处于出错停止状态。根据本实施例的方法,该终端视频解码设备将解码器的运行状态发送到服务端设备,服务端设备在收到解码器处于出错停止状态的信息后,向其编码器发送针对当前待编码的至少一帧利用当前帧的信息进行编码的命令,其编码器根据该命令将一个或一定数量的当前待编码的视频帧利用该当前帧的信息进行编码,例如采用I帧方式进行编码,并发送到终端视频解码设备,终端视频解码设备收到该I帧后解码器重新开始解码,由此使得终端视频解码设备的解码器能够迅速从错误状态中恢复过来。
[0033] 在另外一个实施例中,当终端视频解码设备开机启动后,其解码器处于正常运行状态时,或者解码器从出错停止状态进入正常运行状态后,根据本实施例的方法,该终端视频解码设备将其解码器的运行状态发送到服务端设备,服务端设备在收到解码器处于正常运行状态的信息后,向其编码器发送针对待编码的每帧利用当前帧和其他帧的信息进行编码并发送,例如采用P帧或者B帧编码方式进行编码,其编码器利用当前帧和其他帧的信息进行编码,例如按照P帧(B帧)的方式对视频流进行编码并发送到终端视频解码设备。
[0034] 由于在实际的运行过程中,只要终端视频解码设备的解码器从启动状态或出错停止状态进入正常运行状态后,会长时间处于正常运行状态,因此当服务端设备接收到终端视频解码设备发送的解码器的运行状态,并判断该运行状态为正常运行状态,不满足第一预设条件时,服务端设备控制其编码器对待编码的每帧利用当前帧和其他帧的信息进行编码并发送,即服务端设备的编码器会将待编码的每帧编码为P帧或B帧并发送,直到服务端设备接收到满足第一预设条件的解码器的运行状态,才对当前待编码的至少一帧利用当前帧的信息进行编码并发送,即针对当前待编码的至少一帧编码为I帧并发送。
[0035] 在本实施例中,为了保证码流传输的正常,减小码流的丢包率或错包率,本实施例的终端视频解码设备还可以监测网络连接状况,并向服务端设备报告网络状态信息,例如丢包率信息、错包率信息等,以便服务端设备根据该网络状态信息按照预先设定的条件调整其编码器的编码方式,例如向编码器发出迫使I帧命令。其中,预先设定的条件包括设定的阈值,例如,当丢包率大于第一阈值时,则令编码器针对当前待编码的至少一帧在编码时利用当前帧的信息进行编码,以便所述编码器将当前帧或者多个帧编码为I帧并发送到所述终端视频解码设备;再例如,当错包率大于第二阈值时,则令编码器针对当前待编码的至少一帧在编码时利用当前帧的信息进行编码,以便所述编码器将当前帧或者多个帧编码为I帧并发送到所述终端视频解码设备。
[0036] 通过本实施例的方法,终端视频解码设备将解码器的运行状态上传到服务端设备,使得服务端设备可以根据终端视频解码设备的解码器的运行状态确定相应的编码方式,当终端视频解码设备的解码器的运行状态为启动状态或出错停止状态时,服务端设备可以向终端视频解码设备发送利用当前帧的信息进行编码的视频帧,以使终端视频解码设备的解码器可以开始工作,并且能够快速的从错误中恢复。另外,服务器端设备发送的利用当前帧的信息进行编码的视频帧的数量,是根据终端视频解码设备的解码器的运行状态确定的,即发送的利用当前帧的信息进行编码的视频帧是终端视频设备的解码器所必须的,因此不会造成视频传输的延时。
[0037] 在本实施例中还充分考虑了网络状态信息,因为当网络状态较差时,影响解码器解码的视频资源的清晰度,因此在本实施例中终端视频解码设备监控自身的丢包率和错包率中的至少一个网络状态信息,并将该网络状态信息上报服务端设备,使得服务端设备在确定该网络状态信息满足设定的第二预设条件时,向终端视频解码设备发送至少一帧利用当前帧信息进行编码的视频帧,从而可以使终端视频解码设备的解码器能够解码得到清晰的视频帧,提高用户的满意度。
[0038] 图3为本发明实施例提供的一种码流传输控制方法的流程图,该方法应用于包括编码器的服务端设备,与图2所示实施例的方法对应,其中与图2所示实施例相同的内容不再赘述。请参照图3,该方法包括:
[0039] 步骤301:接收终端视频解码设备发送的解码器的运行状态;
[0040] 步骤302:判断所述解码器的运行状态是否满足第一预设条件,如果满足所述第一预设条件,则进入步骤303,否则进入步骤304。
[0041] 步骤303:针对当前待编码的至少一帧在编码时利用当前帧的信息进行编码并发送。
[0042] 步骤304:针对待编码的每帧利用当前帧和其他帧的信息进行编码并发送。
[0043] 其中,该第一预设条件包括:解码器的运行状态为出错停止状态或启动状态,在步骤302中还包括,当所述解码器的运行状态为出错停止状态满足所述第一预设条件时,则在步骤303中向所述编码器发送针对当前待编码的至少一帧在编码时利用当前帧的信息进行编码的命令,例如使用I帧进行编码的命令,以便所述编码器将至少一个当前帧编码为I帧;
[0044] 当所述解码器的运行状态为启动状态满足所述第一预设条件时,则在步骤303中向所述编码器发送针对当前待编码的至少一帧在编码时利用当前帧的信息进行编码的命令,例如使用I帧进行编码的命令,以便所述编码器将至少一个当前帧编码为I帧;
[0045] 当所述解码器的运行状态为正常状态由于不满足所述第一预设条件,因此在步骤304中向所述编码器发送针对待编码的每帧利用当前帧和其他帧的信息进行编码的命令,例如采用P帧或者B帧编码的命令,以便所述编码器将每帧编码为P帧或者B帧。
[0046] 在本实施例中,服务端设备在确定终端视频解码设备的解码器的运行状态为启动状态或出错停止状态时,可以将当前待编码的一帧在编码时利用当前帧的信息进行编码,即将当前一帧编码为I帧,但是为了防止传输过程中的误差,服务端设备可以将当前待编码的两帧或三帧等一定数量的视频帧编码为I帧并发送,保证终端解码设备的解码器可以开始工作或从错误中恢复。
[0047] 其中,与图2所示实施例的方法对应,本实施例的方法还包括:
[0048] S1:接收终端视频解码设备发送的网络状态信息,所述网络状态信息包括丢包率信息和/或错包率信息;
[0049] S2:判断所述网络状态信息是否满足第二预设条件,如果满足则进入步骤S3,否则进入步骤S4。
[0050] S3:针对当前待编码的至少一帧在编码时利用当前帧的信息进行编码并发送。
[0051] S4:针对待编码的每帧利用当前帧和其他帧的信息进行编码并发送。
[0052] 在一个实施例中,所述网络状态信息满足第二预设条件,则针对当前待编码的至少一帧在编码时利用当前帧的信息进行编码并发送包括,当丢包率大于第一阈值时,则针对当前待编码的至少一帧在编码时利用当前帧的信息进行编码并发送,例如采用I帧编码的方式进行编码。在另外一个实施例中,当错包率大于第二阈值时,则针对当前待编码的至少一帧在编码时利用当前帧的信息进行编码并发送,以便所述编码器将当前一帧或者多个帧以I帧的方式进行编码并发送到所述终端视频解码设备。
[0053] 通过本实施例的方法,根据解码器的运行状态控制I帧的发送,当终端视频解码设备的解码器的运行状态为启动状态或出错停止状态时,服务端设备可以向终端视频解码设备发送利用当前帧的信息进行编码的视频帧,以使终端视频解码设备的解码器可以开始工作,并且能够快速的从错误中恢复。另外,服务器端设备发送的利用当前帧的信息进行编码的视频帧的数量,是根据终端视频解码设备的解码器的运行状态确定的,即发送的利用当前帧的信息进行编码的视频帧是终端视频设备的解码器所必须的,因此不会造成视频传输的延时。
[0054] 图4为本发明实施例的方法的应用示意图,请参照图4,终端视频解码设备41可以是机顶盒、手机、个人计算机等包含解码器的终端视频解码设备,该终端视频解码设备41根据图2所示实施例的方法,将解码器的运行状态或者网络状态信息作为反馈信息发送到服务端设备42,服务端设备42根据图3所示实施例的方法,根据终端视频解码设备提供的反馈信息决定其编码方式,例如当终端视频解码设备的解码器出现出错停止状态或者启动状态时,服务端设备采用I帧的方式将至少一个当前待编码的视频帧编码为I帧,并将该编码后的视频帧发送到终端视频解码设备41,从而使得终端视频解码设备41可以随机接入视频信号,并可立即开始解码视频信号,在码流解析出错的情况下,终端视频解码设备41的解码器也可以快速的从错误状态中恢复,在解码器没有出错的情况下减少传送I帧,以减少网络时延和丢包的概率。
[0055] 图5为图4所示实施例的码流传输控制方法的一个具体实施方式的示意图,请参照图5,在本实施方式中,终端视频解码设备以客户端52的机顶盒521为例,图2所示实施例的方法应用于该客户端的机顶盒521,图3所示实施例的方法应用于服务端设备51。其中,服务端设备51包括应用服务器511、视频编码及发送服务器512以及控制服务器513;客户端52包括机顶盒521、显示设备522以及人机交互设备523。
[0056] 请继续参照图5,应用服务器上511运行用户请求的应用程序,包括:电脑游戏、办公软件等等一切适合在计算机上运行的程序。应用服务器511的显示输出直接输出到视频编码器,视频编码器对输入的视频信号进行编码后,以码流的形式发送给机顶盒521。机顶盒521在收到编码后的视频码流后,对其进行解码,并将解码后的视频信号输出到显示设备522。
[0057] 在本实施例中,机顶盒521负责接收用户输入,并将用户输入的内容直接传递给应用服务器,用户输入可以通过鼠标、键盘、游戏杆等等任何人机交互设备523。另外,机顶盒521还会传递网络状态信息及解码器的运行状态,例如将解码器的运行状态发送到服务端设备51的控制服务器513,控制服务器513将判断该运行状态是否满足第一预设条件,根据判断结果决定编码器的编码方式,并控制编码器进行相应方式的编码。
[0058] 在本实施例中,服务端设备51中的应用程序服务器511、视频编码及发送服务器512以及控制服务器513可以运行在不同计算机上,也可以运行在同一计算机上,本实施例并不以此作为限制。
[0059] 下面以利用当前帧信息进行编码的视频帧为I帧为例进行说明。由于目前的机顶盒芯片,包括ST、m-Logic等,都是在收到完整I帧后才开始解码,当解码过程中,码流出错的情况下,也必须等到下一个I帧后,才能开始继续解码。本实施例的方法满足了机顶盒对I帧的需求,当机顶盒上电启动,并与服务端设备建立初始链接后,机顶盒将其解码器的处于启动状态的信息发送到服务端设备,服务端设备开始发送的视频流必包含一个I帧,之后,就只发P帧(或者B帧),当机顶盒的解码器出错时,机顶盒将其解码器处于出错停止状态的信息发送到服务端设备,服务端设备再根据机顶盒的反馈发送一个I帧,使机顶盒的解码器快速恢复解码。
[0060] 在本实施例中,因为I帧尺寸较大,在编码I帧后,为了减小延时,当编码了一个I帧之后,可以跳过n帧再继续发送P帧或者B帧,其中, framesize为编码后的一个I帧的大小,bitrate为设定的平均码率或发送带宽,fps为编码器预设帧率,也就是,在一个I帧之后的n帧将不被编码,而是直接被掠过,以避免在由于传送I帧造成n帧中的内容丢失或者无法被及时解码的问题。
[0061] 图6为本发明实施例提供的一种终端视频解码设备的组成框图,该终端视频解码设备包括码流传输控制装置61以及解码器62,其中,该码流传输控制装置61包括:
[0062] 第一监测单元611,用于监测解码器62的运行状态;
[0063] 其中,所述解码器将其运行状态向终端视频解码设备的第一监测单元反馈,或者第一监测单元可以从解码器获取其运行状态。
[0064] 其中,该第一监测单元611监测到的解码器62的运行状态包括启动状态、正常运行状态以及出错停止状态。
[0065] 第一发送单元612,用于当第一监测单元611监测到解码器62的运行状态,将解码器62的运行状态发送到服务端设备,以便所述服务端设备判断所述运行状态是否满足第一预设条件,如果满足所述第一预设条件则针对当前待编码的至少一帧在编码时利用当前帧的信息进行编码并发送,否则针对当前待编码的每帧利用当前帧和其他帧的信息进行编码并发送。
[0066] 接收单元615,用于接收所述服务端设备发送的视频帧。
[0067] 在一个实施例中,该码流传输控制装置61还包括:
[0068] 第二监测单元613,用于监测网络连接状况获得网络状态信息,所述网络状态信息包括丢包率信息和/或错包率信息;
[0069] 第二发送单元614,用于向所述服务端设备上报所述由所述第二监测单元613获得的网络状态信息,以便所述服务端设备判断所述网络状态信息是否满足第二预设条件,如果满足所述第二预设条件则针对当前待编码的至少一帧在编码时利用当前帧的信息进行编码并发送,否则针对当前待编码的每帧利用当前帧和其他帧的信息进行编码并发送。
[0070] 本实施例的终端视频解码设备的各组成部分分别用于实现图2所示实施例的方法的各步骤,由于在图2所示方法实施例中,已经对各步骤进行了详细说明,在此不再赘述。
[0071] 图7为本发明实施例提供的一种服务端设备的组成框图,该服务端设备包括码流传输控制装置71和编码器72,其中,该码流传输控制装置71包括:
[0072] 第一接收单元711,用于接收终端视频解码设备发送的解码器运行状态;
[0073] 第一控制单元712,判断所述解码器的运行状态是否满足第一预设条件,如果满足所述第一预设条件,则针对当前待编码的至少一帧采用当前帧的信息进行编码并发送(例如编码为I帧),否则针对当前待编码的每帧采用当前帧和其他帧的信息进行编码(例如编码为P帧或者B帧)并发送。其中,第一控制单元712判断如果第一接收单元711接收到的解码器的运行状态为启动状态或者出错停止状态,则向编码器72发送针对当前待编码的至少一帧利用当前帧的信息进行编码的命令,以便编码器72将一个或者多个视频帧利用当前帧的信息进行编码,并发送到终端视频解码设备。
[0074] 在一个实施例中,该码流传输控制装置71还包括:
[0075] 第二接收单元713,用于接收终端视频解码设备发送的网络状态信息,所述网络状态信息包括丢包率信息和/或错包率信息;
[0076] 第二控制单元714,用于判断如果所述网络状态信息满足第二预设条件,则针对当前待编码的至少一帧在编码时采用当前帧的信息进行编码并发送(例如编码为I帧),否则针对当前待编码的每帧采用当前帧和其它帧的信息进行编码(例如编码为P帧或者B帧)并发送。
[0077] 其中,第二控制单元714具体用于:当丢包率大于第一阈值时,则向编码器72发出针对当前待编码的至少一帧在编码时采用当前帧的信息进行编码并发送的命令(例如编码为I帧);或者,当错包率大于第二阈值时,向编码器72发送针对当前至少一帧在编码时采用当前帧的信息进行编码并发送命令(例如编码为I帧),以便编码器72将一个或者多个视频帧利用当前帧的信息进行编码,并发送到终端视频解码设备。
[0078] 本实施例的服务端的各组成部分分别用于实现图3所示实施例的方法的各步骤,由于在图3所示方法实施例中,已经对各步骤进行了详细说明,在此不再赘述。
[0079] 本发明实施例提供的服务端设备在确定终端视频解码设备的解码器的运行状态为启动状态或出错停止状态时,可以将当前待编码的一帧在编码时利用当前帧的信息进行编码,即将当前一帧编码为I帧,但是为了防止传输过程中的误差,服务端设备可以将当前待编码的两帧或三帧等一定数量的视频帧编码为I帧并发送,保证终端解码设备的解码器可以开始工作或从错误中恢复。
[0080] 图8为图6和图7所示实施例的终端视频解码设备和服务端设备的应用示意图,请参照图8,在本实施例中,服务端设备81包括编码器811和监听服务进程812,其中,监听服务进程812用于实现图7所示实施例码流传输控制装置71的功能;机顶盒82包括解码器821和请求服务进程822,其中,请求服务进程822用于实现图6所示实施例码流传输控制装置61的功能。
[0081] 在本实施例中,请求服务进程822将解码器821的运行状态发送到服务端设备81的监听服务进程812,该监听服务进程812根据请求服务进程821发送的解码器821的运行状态,向编码器811发送相应的编码器控制命令,编码器811根据监听服务进程发送的编码器控制命令,采用I帧或P帧(B帧)编码视频流并发送到机顶盒82的解码器821进行解码。具体的处理流程已经在前述实施例中进行了详细说明,在此不再赘述。
[0082] 通过本发明实施例提供的服务端设备和机顶盒,可以在不增加延时的情况下,使得机顶盒随机接入视频信号,并可立即开始解码视频信号;在码流出错的情况下,该机顶盒可快速的从错误状态中恢复。
[0083] 以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。