一种视频帧补偿方法、装置、以及视频处理芯片与流程

文档序号:25132786发布日期:2021-05-21 08:50阅读:128来源:国知局
一种视频帧补偿方法、装置、以及视频处理芯片与流程

本申请涉及视频传输,尤其涉及一种视频帧补偿方法、装置以及视频处理芯片。



背景技术:

serdes(serializer串行器/deserializer解串器),是一种串行通信技术。

在serdes技术中,第一视频设备中的串行器将并行的视频序列进行串行处理,并将串行处理的视频序列通过serdes链路发送给第二视频设备。第二视频设备中的解串器对接收到的串行处理后的视频序列进行解串处理,恢复出该视频序列,并将视频序列发送给视频处理芯片。视频处理芯片可以对接收到的视频序列执行视频业务处理。

然而,若serdes链路异常,会引起通过该serdes链路的视频序列发生丢帧,使得第二视频设备中的视频处理芯片无法接收到完整的视频序列,严重影响视频业务。



技术实现要素:

有鉴于此,本申请提供一种视频帧补偿方法、装置以及视频处理芯片,用以实现对serdes链路异常而造成的丢帧的补偿。

具体地,本申请是通过如下技术方案实现的:

根据本申请的第一方面,提供一种视频帧补偿方法,所述方法应用于视频设备中的视频处理芯片,所述方法包括:

在通过串行器解串器serdes链路接收视频帧过程中,若检测到所述serdes链路异常,则将所述视频处理芯片的工作模式切换为第一模式;所述第一模式用于视频帧补偿;

在所述第一模式下,检测每个视频帧接收时刻是否接收到完整的视频帧,得到检测结果;

根据所述检测结果生成所述视频帧接收时刻对应的目标视频帧,所述目标视频帧用于进行视频帧补偿。

可选的,所述根据所述检测结果生成所述视频帧接收时刻对应的目标视频帧,包括:

针对每一个视频帧接收时刻,若该视频帧接收时刻未接收到视频帧或者该视频帧接收时刻接收到的视频帧不完整,则依据在所述serdes链路异常前已接收到的至少一个视频帧生成所述视频帧接收时刻对应的目标视频帧并缓存;

若该视频帧接收时刻接收到完整的视频帧,则丢弃在所述第一模式下接收的该完整的视频帧,并依据在所述serdes链路异常前已接收到的至少一个视频帧生成所述视频帧接收时刻对应的目标视频帧并缓存,并将所述视频处理芯片的工作模式从所述第一模式切换为第二模式,以继续在视频帧接收时刻到达时接收并缓存视频帧;所述第二模式用于接收并缓存接收的视频帧。

可选的,所述视频设备还包括与所述视频处理芯片连接的解串器,所述解串器包括:监控模块、时钟数据恢复cdr模块和解串模块;

所述检测到所述serdes链路异常,包括:

接收所述监控模块发送的异常信号;所述异常信号是所述监控模块在监控到所述cdr模块处于时钟失锁状态时发送的、和/或所述异常信号是所述监控模块在接收到来自于所述解串模块的误码信息时发送的;所述cdr模块处于时钟失锁状态、和/或所述误码信息用于表示所述serdes链路异常;

依据所述异常信号确定所述serdes链路异常。

可选的,所述依据在所述serdes链路异常前已接收到的至少一个视频帧生成所述视频帧接收时刻对应的目标视频帧包括:

从已缓存的在所述serdes链路异常前接收的所有视频帧中,确定所述serdes链路异常前最后接收到的一个视频帧;

依据所述serdes链路异常前最后接收到的一个视频帧,生成所述目标视频帧。

可选的,所述依据所述serdes链路异常前最后接收到的一个视频帧,生成所述目标视频帧包括:

将所述serdes链路异常前最后接收到的一个视频帧确定为所述目标视频帧。

根据本申请的第二方面,提供一种视频帧补偿装置,所述装置应用于视频设备中的视频处理芯片,所述装置包括:

切换单元,用于在通过serdes链路接收视频帧过程中,若检测到所述serdes链路异常,则将所述视频处理芯片的工作模式切换为第一模式;所述第一模式用于视频帧补偿;

检测单元,用于在所述第一模式下,检测每个视频帧接收时刻是否接收到完整的视频帧,得到检测结果;

补偿单元,用于根据所述检测结果生成所述视频帧接收时刻对应的目标视频帧,所述目标视频帧用于进行视频帧补偿。

可选的,所述补偿单元,在根据所述检测结果生成所述视频帧接收时刻对应的目标视频帧,所述目标视频帧用于进行视频帧补偿时,具体用于针对每一个视频帧接收时刻,若该视频帧接收时刻未接收到视频帧或者该视频帧接收时刻接收到的视频帧不完整,则依据在所述serdes链路异常前已接收到的至少一个视频帧生成所述视频帧接收时刻对应的目标视频帧并缓存;若该视频帧接收时刻接收到完整的视频帧,则丢弃在所述第一模式下接收的该完整的视频帧,并依据在所述serdes链路异常前已接收到的至少一个视频帧生成所述视频帧接收时刻对应的目标视频帧并缓存,并将所述视频处理芯片的工作模式从所述第一模式切换为第二模式,以继续在视频帧接收时刻到达时接收并缓存视频帧;所述第二模式用于接收并缓存接收的视频帧。

可选的,所述视频设备还包括与所述视频处理芯片连接的解串器,所述解串器包括:监控模块、cdr模块和解串模块;

所述切换单元,在检测到所述serdes链路异常时,具体用于接收所述监控模块发送的异常信号;所述异常信号是所述监控模块在监控到所述cdr模块处于时钟失锁状态时发送的、和/或所述异常信号是所述监控模块在接收到来自于所述解串模块的误码信息时发送的;所述cdr模块处于时钟失锁状态、和/或所述误码信息用于表示所述serdes链路异常;依据所述异常信号确定所述serdes链路异常。

可选的,所述补偿单元,在所述依据在所述serdes链路异常前已接收到的至少一个视频帧生成所述视频帧接收时刻对应的目标视频帧时,具体用于从已缓存的在所述serdes链路异常前接收的所有视频帧中,确定所述serdes链路异常前最后接收到的一个视频帧;依据所述serdes链路异常前最后接收到的一个视频帧,生成所述目标视频帧。

可选的,所述补偿单元,在所述依据所述serdes链路异常前最后接收到的一个视频帧,生成所述目标视频帧时,具体用于将所述serdes链路异常前最后接收到的一个视频帧确定为所述目标视频帧。

根据本申请提供的第三方面,提供一种视频处理芯片,所述视频处理芯片用于实现所述视频帧补偿方法。

由上述描述可知,由于视频处理芯片在检测到serdes链路异常后,可以将工作模式转切至第一模式。在所述第一模式下,视频处理芯片可检测每个视频帧接收时刻是否接收到完整的视频帧,得到检测结果,并根据所述检测结果生成所述视频帧接收时刻对应的用于进行视频帧补偿的目标视频帧,从而使得即使serdes链路异常而造成丢帧,视频处理芯片仍可以得到完整的视频序列,并可以对视频序列中的每一帧执行视频业务。所以可以有效地减少由于serdes链路异常而造成的视频业务受损的问题的发生。

附图说明

图1是本申请一示例性实施例示出的一种serdes技术的组网示意图;

图2是本申请一示例性实施例示出的一种视频帧补偿方法的流程图;

图3是本申请一示例性实施例示出的一种作为视频接收方的视频设备的结构图;

图4a是本申请一示例性实施例示出的一种视频序列的示意图;

图4b是本申请一示例性实施例示出的一种拼接帧的示意图;

图5是本申请一示例性实施例示出的一种视频帧补偿装置的框图。

具体实施方式

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

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

参见图1,图1是本申请一示例性实施例示出的一种serdes技术的组网示意图。

该组网中包括:视频设备101和视频设备102。

其中,视频设备101与视频设备102通过serdes链路相连。

1)视频设备101

视频设备101包括:串行器1011等。视频设备101中的串行器1011可将并行的视频序列进行串行处理,并将串行处理后的视频序列通过serdes链路发送给视频设备102。

当然,该视频设备101还可包括其他硬件,比如视频采集硬件等。这里只是对视频设备进行示例性地说明,不进行具体地限定。

2)视频设备102

视频设备102包括:解串器1021、视频处理芯片1022等。当然,在实际应用中,视频设备102还可包括其他硬件,比如视频存储模块、视频输出模块等,这里只是对视频设备进行示例性地说明,不进行具体地限定。

其中,上述视频处理芯片可以是soc/dsp芯片。当然,该视频处理芯片也可以是其他芯片,这里只是对视频处理芯片进行示例性地说明,不进行具体地限定。

在上述组网中,视频设备101中的串行器1011将并行的视频序列进行串行处理,并通过serdes链路发送给视频设备102。视频设备102中的解串器1021对接收到的串行处理后的视频序列进行解串处理,恢复出视频序列,并将视频序列发送给视频处理芯片1022。视频处理芯片1022可以对接收到的视频序列执行视频业务处理。

然而,若serdes链路异常,会引起通过该serdes链路的视频序列发生丢帧,使得视频设备102中的视频处理芯片1022无法接收到完整的视频序列,严重影响视频业务。

有鉴于此,本申请提供一种视频帧补偿方法,在本申请实施例中,视频设备中的视频处理芯片被设置了两种工作模式,分别为第一模式和第二模式。其中第一模式用于视频帧补偿。第二模式用于正常接收并缓存接收到的视频帧。

当视频处理芯片检测到serdes链路异常时,将视频处理芯片的工作模式切换为第一模式。在第一模式下,视频处理芯片在每一视频帧接收时刻到达时,检测该视频帧接收时刻是否接收到完整的视频帧;若否,则依据在所述serdes链路异常前已接收到的至少一个视频帧生成所述视频帧接收时刻对应的目标视频帧并缓存(简称补帧处理);若是,则丢弃接收的视频帧,并依据在所述serdes链路异常前已接收到的至少一个视频帧生成所述视频帧接收时刻对应的目标视频帧并缓存,并将所述视频处理芯片的工作模式从所述第一模式切换为第二模式,以继续在视频帧接收时刻到达时接收并缓存视频帧。

由于视频处理芯片在检测到serdes链路异常后,可以将工作模式转切至第一模式,对视频帧接收时刻到达时未接收到的视频帧进行补帧处理,对视频帧接收时刻到达时接收到的视频帧进行丢弃处理,在丢弃后再进行补帧处理,使得即使serdes链路异常而造成丢帧,视频处理芯片仍可以得到完整的视频序列,并可以对视频序列中的每一帧执行视频业务,所以可以有效地减少由于serdes链路异常而造成的视频业务受损的问题的发生。

下面对本申请提供的视频帧补偿方法进行详细地说明。

参见图2,图2是本申请一示例性实施例示出的一种视频帧补偿方法的流程图,该方法可应用在图1所示的视频处理芯片1022上,可包括如下所示步骤。

步骤201:视频处理芯片在通过serdes链路接收视频帧过程中,若检测到所述serdes链路异常,则将所述视频处理芯片的工作模式切换为第一模式;所述第一模式用于视频帧补偿。

下面通过步骤2011至步骤2012对步骤201进行详细地说明。

步骤2011:视频处理芯片检测到serdes链路异常。

在本申请实施例中,预先在视频设备的解串器中新配置了监控模块。视频处理芯片通过监控模块发送的异常信号,确定serdes链路异常。

具体地,如图3所示,本申请中的解串器包括:均衡器、cdr(clockdatarecovery,时钟数据恢复)模块、解串模块、视频缓存(videobuffer)模块、数据输出(dataoutput)模块、监控模块、时钟源(clocksource)等。当然,在实际应用中,解串器还可包括其他硬件,这里只是示例性地说明,不进行具体地限定。

其中,解串模块可包括:解串电路和解码器等。这里只是对解串模块所包含的内容进行示例性地说明,不进行具体地限定。

cdr模块的状态通常包括:时钟锁定状态(lock状态)、时钟失锁状态(unlock状态)。当视频设备接收到正常的视频序列时,cdr模块处于锁定状态。当视频设备接收到的视频序列受损时,cdr模块处于时钟失锁状态。

而对于解串模块来说,当视频设备接收到的视频序列受损时,解串器中的解串模块在在对视频序列中的各视频帧进行校验时就会出现误码,会产生误码信息。

所以,上述cdr模块处于时钟失锁状态,和/或上述误码信息均可以表征接收到的视频序列受损,进一步可以表征用于接收视频序列的serdes链路异常。

在本申请中,视频设备的解串器中的监控模块监测到cdr模块的状态为时钟失锁状态,和/或接收到上述解串模块发送的误码信息时,监控模块确定serdes链路异常,监控模块可以向视频处理芯片发送用于指示serdes链路异常的异常信号。

当视频处理芯片接收到该异常信号时,确定serdes链路异常。

步骤2012:若serdes链路异常,视频处理芯片则将所述视频处理芯片的工作模式切换为第一模式;所述第一模式用于视频帧补偿。

在本申请实施中,视频处理芯片包括两种工作模式,分别为第一模式和第二模式。

第一模式为新配置在视频处理芯片中的模式。第一模式用于视频帧补偿。

第二模式为视频处理芯片内置的一种模式,第二模式用于接收并缓存接收的视频帧。

在视频处理芯片上电后,视频处理芯片会默认进入第二模式,在第二模式下接收并缓存接收到的每一个视频帧。

而当视频处理芯片检测到serdes链路异常后,视频处理芯片才将工作模式从第二模式切换为第一模式,在第一模式下开启视频帧的补偿操作。

步骤202:视频处理芯片在所述第一模式下,检测该视频帧接收时刻是否接收到完整的视频帧,得到检测结果。

在实现时,作为视频发送方的视频设备在发送视频序列时会按照预设的频率进行发送。比如,以50帧/秒的速率来发送视频序列中的视频帧。

相应地,作为视频接收方的视频设备也会以预设的接收频率接收视频设备发送的视频帧。比如,以50帧/秒接收视频设备发送的视频帧。

由于视频处理芯片上配置有该接收频率,所以当视频处理芯片接收到第一个视频帧后,视频处理芯片可基于接收第一个视频帧的视频帧接收时刻以及预配置的接收频率,计算出接收该视频序列中各个视频帧的视频帧接收时刻。基于此,视频处理芯片可以获知接收该视频序列中各视频帧的视频帧接收时刻。

当视频处理芯片的工作模式切换为第一模式时,视频处理芯片可在第一模式下,检测该视频帧接收时刻是否接收到完整的视频帧。

可选的,视频处理芯片可通过如下方式来“检测该视频帧接收时刻是否接收到完整的视频帧”。

通常一个完整的视频帧会包含首、尾标志位。例如,视频帧的sof(startofframe,视频帧头)视频帧的首标志,视频帧的eof(endofframe,视频帧尾)为视频帧的尾标志位。

因此,视频处理芯片在检测该视频帧接收时刻是否接收到完整的视频帧时,可检测是否在该视频帧接收时刻接收到视频帧。

若未在视频帧接收时刻接收到视频帧,则确定视频处理芯片未在该视频帧接收时刻接收到完整的视频帧,此时可执行步骤203。

若在视频帧接收时刻接收到视频帧,视频处理芯片可进一步检测该视频帧是否同时包含sof和eof。

若该视频帧同时包含sof和eof,视频处理芯片可确定在视频帧接收时刻接收到完整的视频帧。此时可执行步骤204。

若该视频帧仅包含了sof,或者仅包含了eof,或者该视频帧既不包含eof也不包含sof,视频处理芯片可确定该接收到的视频帧不完整,此时可执行步骤203。

此外,还需要说明的是,本文所述的“检测是否在视频帧接收时刻接收到完整的视频帧”是指在视频帧接收时刻的误差时间范围内是否接收到完整的视频帧。

比如,视频帧接收时刻是t1时刻,该视频帧接收时刻的误差时间范围为(t1±误差时间),比如为(t1±0.1ms)。

“检测是否在视频帧接收时刻接收到完整的视频帧”是指在(t1±0.1ms)这个时间范围内是否完成了完整的视频帧的接收。

步骤203:视频处理芯片根据所述检测结果生成所述视频帧接收时刻对应的目标视频帧,所述目标视频帧用于进行视频帧补偿。

1)针对每一个视频帧接收时刻,若在该视频帧接收时刻未接收到视频帧,或者在该视频帧接收时刻接收到视频帧但视频帧不完整,视频处理芯片则依据在所述serdes链路异常前已接收到的至少一个视频帧生成所述视频帧接收时刻对应的目标视频帧并缓存。

可选的,为了保证用户可以观看到流畅的视频画面,在生成目标视频帧时,视频处理芯片可从已缓存的在所述serdes链路异常前接收的所有视频帧中,确定所述serdes链路异常前最后接收到的一个视频帧,并依据所述serdes链路异常前最后接收到的一个视频帧,生成所述目标视频帧。

例如,假设视频处理芯片已经接收并缓存了视频序列1中的第1个视频帧至第10个视频帧。

假设视频处理芯片在缓存第10个视频帧后,检测到serdes链路异常,而在serdes链路异常后,视频处理芯片在第11个视频接收时刻并未接收到第11个视频帧,则视频处理芯片基于已接收到的第10个视频帧,生成第11个视频帧,并缓存生成的该第11个视频帧。

由于第10个视频帧与第11个视频帧相连,所以10个视频帧所展示的画面与第11个视频帧所展示的画面具有连续性,所以基于第10个视频帧生成第11个视频帧,可以得到更为流畅的视频画面。

可选的,在“依据所述serdes链路异常前最后接收到的一个视频帧生成所述目标视频帧”时,视频处理芯片可将serdes链路异常前最后接收到的一个视频帧,确定为目标视频帧。当然,视频处理芯片也可以基于预设的预测模型(比如神经网络等),基于serdes链路异常前最后接收到的一个视频帧预测出目标视频帧。

仍以上述例子为例,视频处理芯片在基于已接收到的第10个视频帧,生成第11个视频帧时,可以复制第10个视频帧,并将第10个视频帧直接作为第11个视频帧。当然,视频处理芯片也可以基于预设的预测模型,基于第10个视频帧预测出第11个视频帧。

需要说明的是,这里所述的“视频处理芯片则依据在所述serdes链路异常前已接收到的至少一个视频帧生成所述视频帧接收时刻对应的目标视频帧并缓存”即为本文所述的“补帧处理”,以后不再赘述。

2)针对每一个视频帧接收时刻,若视频帧接收时刻接收到完整的视频帧,视频处理芯片则丢弃在第一模式下接收的该完整的视频帧,并依据在所述serdes链路异常前已接收到的至少一个视频帧生成所述视频帧接收时刻对应的目标视频帧并缓存,并将所述视频处理芯片的工作模式从所述第一模式切换为第二模式,以继续在视频帧接收时刻到达时接收并缓存视频帧。

下面通过步骤a1至步骤a2对“2)”中的方式进行说明。

步骤a1:若在该视频帧接收时刻接收到完整的视频帧,视频处理芯片则丢弃在第一模式下接收的该完整的视频帧,并依据在所述serdes链路异常前已接收到的至少一个视频帧生成所述视频帧接收时刻对应的目标视频帧并缓存。

在“依据在所述serdes链路异常前已接收到的至少一个视频帧生成所述视频帧接收时刻对应的目标视频帧并缓存”可参见上述“1)”中的描述,这里不再赘述。

下面说明下“丢弃接收的视频帧”的原因:

通常,解串器将视频帧发送给视频处理芯片时,解串器会将视频帧发送到视频处理芯片的接口缓存中,当视频处理芯片处理完当前视频帧后,才从该接口缓存中获取下一个视频帧进行处理。

假设,serdes链路在传输视频序列中的第2个视频帧后出现异常,serdes链路引起的视频序列的丢帧如图4a所示。由图4a可以看出,视频序列从第3帧的后半帧开始出现连续丢帧,直至第6帧前半帧结束丢帧。

假设,解串器将图4a所示的视频序列逐帧发送给视频处理芯片的接口缓存。

由于视频序列会出现如图4a所示的丢帧,所以视频处理芯片的接口缓存中储存有解串器发送的该视频序列的第1个视频帧、第2个视频帧、第3个视频帧的前半帧,第6个视频帧的后半帧。

而接口缓存是将完整的一个视频帧发送给视频处理芯片。基于此,接口缓存会将第1个视频帧、第2个视频帧发送给视频处理芯片。由于第3个视频帧不完整,所以接口缓存不会发送第3个视频帧的前半帧。此外由于接口缓存未接收到第4个视频帧、第5个视频帧,所以接口缓存也不会将第4个视频帧和第5个视频帧发送给视频处理芯片。

当接口缓存在接收到第6个视频帧的后半帧时,接口缓存可将储存的第3个视频帧的前半帧和第6个视频帧的后半帧进行拼接得到完整的一个拼接帧(如图4b所示),然后将拼接帧发送给视频处理芯片。

而对于视频处理芯片来说,视频处理芯片只接收到第1个视频帧和第2个视频帧,在接收并缓存第2个视频帧后,确定serdes链路异常,并将工作模式切换为第一模式。在第一模式下视频处理芯片在第3个视频帧接收时刻未接收到第3个视频帧,在第4个视频帧接收时刻未接收到第4个视频帧,在第5个视频帧接收时刻未接收到第5个视频帧,而在第6个视频帧接收时刻接收到了该拼接帧。由于拼接帧是将两帧拼接,所以该拼接帧是异常视频帧。在播放该拼接帧时,会出现闪屏或者花屏,影响视频播放质量。

由此可以看出,视频处理芯片在第一模式下,在视频帧接收时刻接收到的视频帧是异常帧,所以要将该异常帧丢弃,再基于已缓存的视频帧生成该视频帧接收时刻对应的视频帧。

步骤a2:视频处理芯片将所述视频处理芯片的工作模式从所述第一模式切换为第二模式,以继续在视频帧接收时刻到达时接收并缓存视频帧。

需要说明的是,若在该视频帧接收时刻接收到完整的视频帧,则可表明serdes链路恢复了对于视频帧的传输,此时视频处理芯片可将工作模式从第一模式切换为第二模式。

视频处理芯片在第二模式下,视频处理芯片可在每个视频帧接收时刻达到时接收并缓存每一个接收到的视频帧。

下面通过具体地例子对步骤201至步骤203进行说明。

例如,假设视频处理芯片在接收到视频序列1中的第10个视频帧后检测到serdes链路异常,则视频处理芯片将工作模式切换为第一模式,在第一模式下,视频处理芯片可检测在第11个视频帧接收时刻到达时,是否接收到完整的第11个视频帧。若在第11个视频帧接收时刻未接收到完整的第11个视频帧,视频处理芯片则基于已接收到的第10个视频帧生成第11个视频帧并缓存。

然后,视频处理芯片可检测在第12个视频帧接收时刻到达时,是否接收到完整的第12个视频帧。若在第12个视频帧接收时刻未接收到完整的第12个视频帧,视频处理芯片则基于已接收到的第10个视频帧生成第12个视频帧并缓存。

视频处理芯片可检测在第13个视频帧接收时刻到达时,是否接收到完整的第13个视频帧。若在第13个视频帧接收时刻接收到完整的第13个视频帧,视频处理芯片则丢弃第13个视频帧,并基于已接收到的第10个视频帧生成第13个视频帧并缓存。

然后视频处理芯片可将工作模式从第一模式切换为第二模式,在第二模式下,视频处理芯片接收第14个视频帧并缓存、接收第15个视频帧并缓存等等。

由上述描述可知,一方面,由于视频处理芯片在检测到serdes链路异常后,可以将工作模式转切至第一模式,对视频帧接收时刻到达时未接收到的视频帧进行补帧处理,对视频帧接收时刻到达时接收到的视频帧进行丢弃处理,在丢弃后再进行补帧处理,使得即使serdes链路异常而造成丢帧,视频处理芯片仍可以得到完整的视频序列,并可以对视频序列中的每一帧执行视频业务,所以可以有效地减少由于serdes链路异常而造成的视频业务受损的问题的发生。

另一方面,在第一模式下,在视频帧接收时刻接收到完整的视频帧后,视频处理芯可确定serdes链路恢复了视频帧的传输,所以视频处理芯片又可以自动将工作模式从第一模式切换为默认的第二模式,以继续在视频帧接收时刻到达时接收并缓存视频帧,而不影响视频帧的正常接收。

下面通过步骤501至步骤505介绍实现本申请提供的视频帧补偿方法的另一实施例。

在本实施例中,视频设备中的视频处理芯片如图3所示,上述视频处理芯片为soc/dsp芯片。该soc/dsp芯片包括vin(视频输入)模块、缓存模块、编码压缩模块和vout(视频输出)模块。

该视频设备还包括解串器,解串器中包括cdr模块、监控模块和解串模块。

该方法可包括如下所示步骤。

步骤501:vin模块在通过serdes链路接收视频帧的过程中,若接收监控模块发送的异常信号,则确定serdes链路异常。

具体参见上述步骤201,这里不再赘述。

步骤502:在确定serdes链路异常时,vin模块可将工作模式由当前的第二模式切换为第一模式。

步骤503:vin模块在第一模式下,检测该视频帧接收时刻是否接收到完整的视频帧。

步骤504:若在该视频帧接收时刻未接收到视频帧,或者在该视频帧接收时刻接收到了视频帧但接收到的视频帧不完整时,vin模块可从缓存模块中获取已缓存的serdes链路异常前最后接收到的一个视频帧,并基于该最后接收到的一个视频帧生成该视频帧接收时刻对应的目标视频帧,并将生成的目标视频帧发送给缓存模块进行缓存,以使得编码压缩模块可以从缓存模块中获取该目标视频帧并对该目标视频帧进行编码压缩,并将编码压缩后的目标视频帧发送给vout模块进行视频业务处理。

步骤505:若在该视频帧接收时刻接收到完整的视频帧,vin模块可丢弃第一模式下接收的该完整的视频帧,并可从缓存模块中获取已缓存的serdes链路异常前最后接收到的一个视频帧,并基于该最后接收到的一个视频帧生成该视频帧接收时刻对应的目标视频帧,并将生成的目标视频帧发送给缓存模块进行缓存,以使得编码压缩模块可以从缓存模块中获取该目标视频帧并对该视频帧进行编码压缩,并将编码压缩后的目标视频帧发送给vout模块进行视频业务处理。然后,vin模块可将工作模式由第一模式切换为第二模式,以继续在视频帧接收时刻到达时接收并缓存视频帧。

下面通过具体地例子对步骤501至步骤505进行详细地说明。

本例中的tn表示接收视频序列中的第n帧的视频帧接收时刻。例如,t1表示接收视频序列中的第1个视频帧的视频帧接收时刻,t2表示用于接收视频序列中的第2个视频帧的视频帧接收时刻,以此类推。

假设,vin模块在t1和t2均接收到视频帧。假设vin模块在t2后,在t3到来前接收到监控模块发送的异常信号,vin模块确定serdes链路异常。

在确定serdes链路异常后,vin模块可将工作模式切换为第一模式,vin模块可检测在t3是否接收到完整的第3个视频帧。假设在t3未接收到完整的第3个视频帧,vin模块可从缓存模块中获取已缓存的第2个视频帧,并基于第2个视频帧生成第3个视频帧,并将第3个视频帧发送给缓存模块进行缓存,以使得编码压缩模块可以从缓存模块中获取该第3个视频帧并对该第3个视频帧进行编码压缩,并将编码压缩后的视频帧发送给vout模块进行视频业务处理。

然后,vin模块检测在t4是否接收到完整的第4个视频帧。假设在t4未接收到完整的第4个视频帧,vin模块可从缓存模块中获取已缓存的第2个视频帧,并基于第2个视频帧生成第4个视频帧,并将第4个视频帧发送给缓存模块进行缓存,以使得编码压缩模块可以从缓存模块中获取该第4个视频帧并对该第4个视频帧进行编码压缩,并将编码压缩后的视频帧发送给vout模块进行视频业务处理。

vin模块检测在t5是否接收到完整的第5个视频帧。假设在t5接收到完整的第5个视频帧,vin模块可丢弃第5个视频帧,并可从缓存模块中获取已缓存的第2个视频帧,并基于第2个视频帧生成第5个视频帧,并将5第5个视频帧发送给缓存模块进行缓存,以使得编码压缩模块可以从缓存模块中获取该第5个视频帧并对该第5个视频帧进行编码压缩,并将编码压缩后的视频帧发送给vout模块进行视频业务处理。

然后vin模块可将工作模式由第一模式切换为第二模式。在第二模式下vin模块可正常接收第6个视频帧、第7个视频帧、…、第n个视频帧,并将接收到的第6个视频帧、第7个视频帧、…、第n个视频帧依次发送给缓存模块进行缓存,以使得编码压缩模块可以从缓存模块中依次获取该第6个视频帧、第7个视频帧、…、第n个视频帧并进行编码压缩,并将编码压缩后的第6个视频帧、第7个视频帧、…、第n个视频帧依次发送给vout模块进行视频业务处理。

本申请还提供了与上述视频帧补偿方法对应的视频帧补偿装置。

参见图5,图5是本申请一示例性实施例示出的一种视频帧补偿装置的框图。该装置可应用在视频设备中的视频处理芯片上,可包括如下所示单元。

切换单元501,用于在通过serdes链路接收视频帧过程中,若检测到所述serdes链路异常,则将所述视频处理芯片的工作模式切换为第一模式;所述第一模式用于视频帧补偿;

检测单元502,用于在所述第一模式下,检测每个视频帧接收时刻是否接收到完整的视频帧,得到检测结果;

补偿单元503,用于根据所述检测结果生成所述视频帧接收时刻对应的目标视频帧,所述目标视频帧用于进行视频帧补偿。

可选的,所述补偿单元503,在根据所述检测结果生成所述视频帧接收时刻对应的目标视频帧,所述目标视频帧用于进行视频帧补偿时,具体用于针对每一个视频帧接收时刻,若该视频帧接收时刻未接收到视频帧或者该视频帧接收时刻接收到的视频帧不完整,则依据在所述serdes链路异常前已接收到的至少一个视频帧生成所述视频帧接收时刻对应的目标视频帧并缓存;若该视频帧接收时刻接收到完整的视频帧,则丢弃在所述第一模式下接收的该完整的视频帧,并依据在所述serdes链路异常前已接收到的至少一个视频帧生成所述视频帧接收时刻对应的目标视频帧并缓存,并将所述视频处理芯片的工作模式从所述第一模式切换为第二模式,以继续在视频帧接收时刻到达时接收并缓存视频帧;所述第二模式用于接收并缓存接收的视频帧。

可选的,所述视频设备还包括与所述视频处理芯片连接的解串器,所述解串器包括:监控模块、cdr模块和解串模块;

所述切换单元501,在检测到所述serdes链路异常时,具体用于接收所述监控模块发送的异常信号;所述异常信号是所述监控模块在监控到所述cdr模块处于时钟失锁状态时发送的、和/或所述异常信号是所述监控模块在接收到来自于所述解串模块的误码信息时发送的;所述cdr模块处于时钟失锁状态、和/或所述误码信息用于表示所述serdes链路异常;依据所述异常信号确定所述serdes链路异常。

可选的,所述补偿单元503,在所述依据在所述serdes链路异常前已接收到的至少一个视频帧生成所述视频帧接收时刻对应的目标视频帧时,具体用于从已缓存的在所述serdes链路异常前接收的所有视频帧中,确定所述serdes链路异常前最后接收到的一个视频帧;依据所述serdes链路异常前最后接收到的一个视频帧,生成所述目标视频帧。

可选的,所述补偿单元503,在所述依据所述serdes链路异常前最后接收到的一个视频帧,生成所述目标视频帧时,具体用于将所述serdes链路异常前最后接收到的一个视频帧确定为所述目标视频帧。

此外,本申请还提供了一种视频处理芯片,该视频处理芯片可实现上述视频帧补偿方法。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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