视频通信中的视频标注技术转让专利

申请号 : CN201910496475.7

文献号 : CN110620892B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 钟声冯越

申请人 : 达音网络科技(上海)有限公司

摘要 :

本发明提出了一种在视频通信中标注视频的方法、设备和系统,包括:设备一通过网络将用户甲的视频流一发送至用户乙的设备二,其中用户乙与用户甲在进行视频通信;通过网络接收从设备二发送的用户乙的视频流二;处理器使用视频流二获知用户乙对视频流一所采取的反应;并将用户乙的反应与视频流一相关联。设备包含一个处理器以及耦合到处理器的存储器。配置存储器使其用于存储指令,处理器执行该指令后可运行处理操作以实现该方法。

权利要求 :

1.一种在视频通信中标注视频的方法,包括:设备一通过网络将用户甲的视频流一发送至用户乙的设备二,其中用户乙与用户甲在进行视频通信;

通过网络接收从设备二处发送的用户乙的视频流二;

处理器使用视频流二获知用户乙对视频流一所采取的反应,其中用户乙对视频流一所采取的反应是通过视频流二中解码得到的信息中得出来的;并且将用户乙的反应与视频流一相关联;

根据用户乙对视频流一所采取的反应,在设备一处更新用于对视频流一进行编码的参数;

其中该参数包括比特率、帧速率、分辨率和前向纠错率中至少之一。

2.根据权利要求1所述的方法,其中是由设备一和/或在网络上与设备一相连的服务器来获得用户乙对视频流一所采取的反应。

3.根据权利要求1所述的方法,其中获知用户乙对视频流一所采取的反应包括:通过分析下列两者至少其中之一来获知用户乙的反应:从视频流二的解码图像中选择的解码图像和从视频流二中解码的音频。

4. 根据权利要求3所述的方法,其中将用户乙的反应与视频流一相关联包括:根据与解码图像相关联的时间戳一,找到与时间戳二相关联的视频流一的其中一段,其中时间戳一与时间戳二之间的时间差小于预定阈值;以及将用户乙的反应与视频流一的这一段相关联。

5.根据权利要求3所述的方法,其中根据用户乙的面部表情、用户乙的情绪、用户乙的姿势、用户乙的语音特征以及用户乙的话语含义等至少其中之一来获知用户乙的反应,通过分析解码的图像来获知面部表情、情绪和姿势,并且通过分析音频来获知语音特征和话语的语义。

6.根据权利要求5所述的方法,其中采用卷积神经网络技术、k近邻技术、支持向量机技术等其中之一从视频流二的解码图像中获知用户乙的面部表情和情绪;

在与视频流二相关联的音频中获知用户乙的语音特征;以及采用自动语音识别技术从音频中获知用户乙的话语的语义。

7.一台用于在视频通信中标注视频的设备,包括一个处理器;以及

一个耦合至处理器的存储器,配置存储器为可存储指令,处理器执行指令后可运行处理操作以用于:

设备一通过网络将用户甲的视频流一发送至用户乙的设备二,其中用户乙与用户甲在进行视频通信;

通过网络接收从设备二处发送的用户乙的视频流二;

通过视频流二来获知用户乙对视频流一所采取的反应,其中用户乙对视频流一所采取的反应是通过视频流二中解码得到的信息中得出来的;并且将用户乙的反应与视频流一相关联;

根据用户乙对视频流一所采取的反应,在设备一处更新用于对视频流一进行编码的参数,

其中该参数包括比特率、帧速率、分辨率和前向纠错率中至少之一。

8.根据权利要求7所述的设备,其中存储器中包含由处理器执行的操作指令以获知用户乙对视频流一所采取的反应还包含由处理器执行的操作指令以用于:使用视频流二来获知用户乙对视频流一中的多段内容分别采取的各个反应。

9.根据权利要求7所述的设备,其中存储器中包含由处理器执行的操作指令以获知用户乙对视频流一所采取的反应还包含由处理器执行的操作指令以用于:通过分析从视频流二的解码图像中选择的解码图像和/或从视频流二中解码的音频来获知用户乙的反应。

10.根据权利要求9所述的设备,其中存储器中包含由处理器执行的操作指令以获知用户乙对视频流一所采取的反应还包含由处理器执行的操作指令以用于:根据与解码图像相关联的时间戳一,找到与时间戳二相关联的视频流一的其中一段,其中时间戳一与时间戳二之间的时间差小于预定阈值;以及将用户乙的反应与视频流一的这一段相关联。

11.根据权利要求9所述的设备,其中根据用户乙的面部表情、用户乙的情绪、用户乙的姿势、用户乙的语音特征以及用户乙的话语含义等至少其中之一来获知用户乙的反应,通过分析解码图像来获知面部表情、情绪和姿势,并且通过分析音频来获知语音特征和话语的语义。

12.根据权利要求11所述的设备,其中采用卷积神经网络技术、k近邻技术、支持向量机技术等其中之一从视频流二的解码图像中获知用户乙的面部表情和情绪;

在与视频流二相关联的音频中获知用户乙的语音特征;以及采用自动语音识别技术从音频中获知用户乙的话语的语义。

13.一个用于在视频通信中标注视频的系统,包括:网络中的设备一,设备一与用户甲相关联;

网络中的设备二,设备二与用户乙相关联,并且用户乙与用户甲在进行视频通信;以及一台网络中的服务器,与设备一相连接,服务器包括一个处理器和一个耦合到处理器的存储器,配置存储器存储操作指令,当由处理器执行指令时可用于:设备一通过网络向用户乙的设备二发送用户甲的视频流一;

通过网络接收从用户乙的设备二发送的视频流二;

通过视频流二来获知用户乙对视频流一所采取的反应,其中用户乙对视频流一所采取的反应是通过视频流二中解码得到的信息中得出来的;并且将用户乙的反应与视频流一的这一段相关联;

根据用户乙对视频流一所采取的反应,在设备一处更新用于对视频流一进行编码的参数,

其中该参数包括比特率、帧速率、分辨率和前向纠错率中至少之一。

14.根据权利要求13所述的系统,其中存储器中包含由处理器执行的操作指令以获知用户乙对视频流一所采取的反应还包含由处理器执行的操作指令以用于:根据视频流二来获知用户乙对视频流一的多段内容分别采取的各个反应。

15.根据权利要求13所述的系统,其中存储器中包含由处理器执行的操作指令以获知用户乙对视频流一所采取的反应还包含由处理器执行的操作指令以用于:通过分析从视频流二的解码图像中选择的解码图像和/或从视频流二中解码的音频来获知用户乙的反应,其中

根据用户乙的面部表情、用户乙的情绪、用户乙的姿势、用户乙的语音特征以及用户乙的话语含义等至少其中之一来获知用户乙的反应,通过分析解码的图像来获知面部表情、情绪和姿势,并且通过分析音频来获知语音特征和话语的语义。

16.根据权利要求15所述的系统,其中存储器中包含由处理器执行的操作指令以获知用户乙对视频流一所采取的反应还包含由处理器执行的操作指令以用于:根据与解码图像相关联的时间戳一,找到与时间戳二相关联的视频流一中的其中一段,其中时间戳一与时间戳二之间的时间差小于预定阈值;以及将用户乙的反应与视频流一的这一段相关联。

17.根据权利要求15所述的系统,其中采用卷积神经网络技术、k近邻技术、支持向量机技术等其中之一从视频流二的解码图像中获知用户乙的面部表情和情绪;

在与视频流二相关联的音频中获知用户乙的语音特征;以及将用户乙的反应与视频流一的这一段相关联。

说明书 :

视频通信中的视频标注技术

技术领域

[0001] 本发明涉及视频通信技术,具体领域为视频通信系统中的视频标注技术。

背景技术

[0002] 视频质量是人们在实时多媒体通信系统中的一个主要关注点。在此类系统中,视频数据可通过网络(如互联网)在发送方和接收方(如移动电话或个人计算机)之间传输。采
用一些基于客观测量的方法可以评估和控制视频质量,该客观测量可包括峰值信噪比
(PSNR)和结构相似性(SSIM)等。
[0003] 编码和压缩的视频数据可被打包成数据包用于网络传输。在出现网络抖动的情况下,来自发送方的数据包可能在传输过程中丢失,并且可能无法到达接收方。在一些情况
下,接收的数据包可能包含损坏的数据而无法在接收器处恢复。在数据包丢失或损坏的情
况下,接收器可能无法完全解码相关视频。影响视频质量的另一个因素是网络带宽不稳定
(或“网络拥塞”)。现代视频编码器可以根据网络条件的变化调整编码方案和参数(如视频
编码比特率、帧速率和/或帧分辨率),这可能导致视频质量上下波动。实时多媒体通信系统
中发生的所有这些情况都会影响用户体验。

发明内容

[0004] 下文将阐述在视频通信系统中采用视频标注技术的方法、设备和系统。
[0005] 一方面,本文公开了一种在视频通信中使用视频标注的方法。该方法包括设备一通过网络将用户甲的视频流一发送至用户乙的设备二,其中用户乙与用户甲在进行视频通
信;通过网络接收从设备二发送的用户乙的视频流二;处理器通过视频流二获知用户乙对
视频流一所采取的反应;并将用户乙的反应与视频流一相关联。
[0006] 另一方面,本文也公开了一种视频通信中对视频进行标注的设备。该设备包括处理器以及耦合到处理器的存储器。存储器被配置为可存储指令,当处理器运行该指令时可
以从用户设备一将用户甲的视频流一通过网络发送到用户乙的设备二,其中用户乙与用户
甲在进行视频通信;通过网络接收从设备二发送的用户乙的视频流二;通过视频流二来获
知用户乙对视频流一所采取的反应;并将用户乙的反应与视频流一相关联。
[0007] 再一方面,本文还公开了一种在视频通信中标注视频的系统。该系统包括网络中的设备一,设备一与用户甲相关联;网络中的设备二,设备二与用户乙相关联,其中用户乙
与用户甲在进行视频通信;以及网络中与设备一相连的服务器。该服务器包括处理器和耦
合到处理器的存储器。存储器被配置为可存储指令,当处理器执行该指令时,可从用户设备
一将用户甲的视频流一通过网络发送至与用户甲进行视频通信的用户乙的用户设备二;通
过网络接收从用户设备二处发送的用户乙的视频流二;使用视频流二获知用户乙对视频流
一所采取的反应;并将用户乙的反应与视频流一相关联。

附图说明

[0008] 在阅读以下详细描述时参考附图将有助于更好地理解本发明的内容。需要强调的是,根据惯例,图示中各个部分并不是按比例绘制的。相反,为表述清楚起见,已对各个不同
部分的尺寸进行任意扩大或缩小。
[0009] 图1是根据本发明实施例所绘制的媒体传输系统的示例图。
[0010] 图2是一个视频流中的多帧帧的示例图。
[0011] 图3是根据本发明实施例所绘制的编码流程示例图。
[0012] 图4是根据本发明实施例所绘制的解码流程示例图。
[0013] 图5是根据本发明实施例所绘制的标注视频的示例流程图。
[0014] 图6是根据本发明实施例所绘制的用于标注视频的系统的示例图。
[0015] 图7是根据本发明实施例所绘制的另一个用于标注视频的系统的示例图。
[0016] 图8是根据本发明实施例所绘制的用于标注视频的模块的示例图。
[0017] 图9是根据本发明实施例所绘制的另一个用于标注视频的模块的示例图。

具体实施方式

[0018] 网上多媒体通信如视频会议、实时流视频广播或互联网电话服务等,都需要高保真且高效率的媒体数据传输。媒体数据可包括音频数据、视频数据或包含音频序列或视频
序列的任何多媒体数据。通常,媒体数据可以以其原始形式存储或者转换视频流。视频流可
包括时间序列数据(例如:包括多个音频样本的音频序列或者包括多个图像或帧的视频序
列)、视频流的特征提取的残差(例如:视频序列中当前帧经帧间预测之后的残差图像)或者
变换域中视频流的等效量(例如:变换和/或量化系数)。可将视频流编码(或“压缩”)成视频
流(如视频比特流)以便在网络中传输。压缩视频流可以通过网络(如互联网)以数据包(或
简称为“包”)的形式进行传输。
[0019] 在为视频流(也称为“视频序列”)进行编码时,可以使用同一帧内的信息或不同帧之间的信息进行预测从而为视频流的每一帧进行编码,这种预测分别被称为“图像帧内预
测”(或“帧内预测”)和“图像帧间预测”(或“帧间预测”)。在帧间预测中,在至少两个不同帧
之间可以执行运动估计(ME)和运动补偿(MC)。使用帧内预测编码的帧可以被称为“I帧”,而
使用帧间预测编码的帧可以被称为“P帧”。在解码时,可以在不参考其他帧的情况下解码I
帧。解码P帧则可以将其他帧作为参考(称为“参考帧”或“参考帧”)。参考帧可以是I帧或其
他P帧。编码器可以为被编码的图像(称为“当前帧”)确定预测模式。当图像被解码时(也称
为“当前帧”),解码器可以根据从当前帧的报头处接收和提取的信息来确定使用哪种预测
模式。关于视频编码和解码的过程详见图3‑4的相关描述。
[0020] 在实时视频通信系统中,监视和测量用户的观看体验具有多方面的意义。利用对用户体验的准确测量可以调整视频编码和传输策略以改善用户体验。测量可以包括客观测
量如延迟时间、丢包率、分辨率变化、帧速率变化或比特率变化等。但是这些客观测量通常
并不能反映主观用户的观看体验。此外,如果仅基于此类客观测量来调整视频编码和传输
策略可能反而会在某些情况下加剧问题。例如,减轻网络阻塞的一种解决方案是重新发送
被丢失的关键帧(如I帧)数据包。但是,重新发送丢失的数据包可能会导致网络流量增加,
反而可能会进一步加剧网络堵塞。
[0021] 考虑到视频通信所承载的交互式社交内容,采用对视频质量的主观测量对于评估视频质量和相应调整视频编码和传输策略是至关重要的。利用用户对视频质量的认知以及
在相互通信的用户之间的用户观看体验的方法来评估视频质量并改进视频编码和传输策
略有利于改善用户体验。这其中有一些方法采用对大量的视频数据进行标注或注释来反映
用户的反馈。例如,此类标注(也称为“标签”或“注释”)可以包括“快乐”、“惊喜”、“悲伤”、
“厌恶”,、愤怒”等等。又如,此类标注也可以包括用户的面部表情。标注可以代表对视频质
量的正面、负面或中性评价。根据这样的带标注的视频数据,可以训练视频编码器(如使用
机器学习技术)自动根据视频质量的主观和客观测量来调整编码参数。
[0022] 但是,筹备大量这种标注的视频数据可能比较困难且成本较高。在一些实现中,可以通过让用户为刚结束的视频通信选择评级(如五星级评价)来收集标注。但这种评级是对
整个视频通信的整体评估,并不能实时反映用户对视频中各个不同部分的评估。整体评估
对于评估视频质量的上下波动作用有限。另外,让用户提供评级是在视频通信结束之后的
额外交互,并非所有用户都愿意主动参与。因此,收集的用户评级并不能准确地反映视频质
量。
[0023] 在一些实现中,可以通过使用机器学习技术来获得标注。例如,一个人可以在相机前面做出设计好的反应、姿势、表情和情绪等。可以为多人记录此类视频数据。这种视频数
据可被称为“演示视频数据”。演示视频数据可以用作在监督学习技术(如卷积神经网络
(CNN)技术)中的真值标签。经训练的模型可用于在实时视频通信中对反应做出判断。然而,
演示视频数据可能会不准确,因为设计的模拟情况可能无法反映真实的反应或发生此类反
应的现实场景。最好能使用在实际场景的视频中所获得的标注,这可被称为“自然视频数
据”。
[0024] 根据本发明的实施方案,所公开的方法、设备和系统可在实时视频通信系统中收集自然视频数据以用于改善用户体验。所公开的方法可用于解码相互通信的用户之间的视
频流,将用户对于视频流的质量所作的反应进行分析和识别。在基于网络的实时视频通信
系统中,可以对用户甲的视频流一进行编码并将其发送给用户乙,然后可以对用户乙的视
频流二进行编码并将其发送回用户甲。用户甲和用户乙可以彼此进行视频或声频交互。当
发生网络抖动时,视频流一和/或视频流二的视频质量可能产生波动。用户甲和用户乙可以
对这种视频质量波动产生自然反应。当视频质量恶化或改善时,上述反应可以包括面部表
情(如皱眉或微笑)、姿势(如点头或耸肩)、语音特征(如讲话的方式、声调提高或语气放
缓)、或话语中的语义(如口头抱怨或口头表扬)。通过对这些反应进行分析,还可以根据反
应推断的用户的情绪,如高兴、冷静、关注、惊讶、沮丧、悲伤、厌恶或愤怒等。例如,当用户甲
接收到视频流二时,在视频流二的图像和音频中可以包括用户乙对于视频流一的视频质量
所作的反应。
[0025] 从解码的视频流中可以分析和获知上述这些反应。例如,通过对视频流二中解码的图像和音频进行分析,可以提取和推断出用户乙的反应。可以将已知的用户乙的反应标
注到视频流一中,从而得到自然视频数据。在标注之前,可将用户乙的反应在时间上与其所
针对的视频流一的那部分视频同步,以保证准确。标注的视频数据可用于在用户甲和用户
乙之间进行的实时视频通信中调整视频编码和传输方案。也可以存储带标注的视频数据以
供之后用于训练视频编码器。
[0026] 图1是根据本发明实施例所绘制的媒体传输系统的示例图。如图1所示,系统100可包括多个设备和网络,诸如设备102、设备104和网络106。该设备可以是微型计算机、大型计
算机、超级计算机、通用计算机、特殊用途或专用计算机、集成计算机、数据库计算机、远程
服务器计算机、个人计算机、笔记本电脑、平板电脑、手机、个人数据助理(PDA)、可穿戴计算
设备等一台或多台计算机的任何配置,或由计算服务提供商提供的计算服务(例如web主机
或云服务)来实现。在一些实现中,计算设备可以由多组计算机的形式来实现,各个计算设
备可位于不同地理位置,并通过网络等进行彼此间的通信。虽然某些操作可以由多台计算
机共同完成,但在一些实现中,不同的计算机会被分配不同的操作。在一些实现中,系统100
可以使用具有计算机程序的通用计算机或处理器来实现,在运行计算机程序时可执行本文
描述的相应的方法、算法和/或指令。另外,也可以使用专用计算机或处理器,配备专用硬件
设备用以执行本文描述的任何方法、算法或指令。
[0027] 设备102可以包括处理器108和存储器110。处理器108可以是能够操作或处理信息的任何类型的一个或多个设备。“信号”、“数据”和“信息”等术语可互换使用。处理器108可
以包括中央处理器(如中央处理器CPU)、图形处理器(如图形处理器GPU)、知识产权(IP)内
核、专用集成电路(ASIC)、可编程逻辑阵列、光处理器、可编程逻辑控制器、微控制器、微处
理器、数字信号处理器等一个或多个的任意组合或任何其他适用的电路。处理器108还可分
布在多个机器或设备(每个机器或设备带有一个或多个处理器)上,这些机器或设备可以直
接耦合或通过网络(如局域网)实现互联。存储器110可以是能够存储代码和数据的任何暂
时或非暂时性的设备,这些代码和数据可由处理器(通过诸如总线)访问。本文所述的存储
器110可以是随机存取存储器设备(RAM)、只读存储器设备(ROM)、光盘或磁盘、硬盘驱动器、
固态驱动器,闪存驱动器、安全数字(SD)卡、记忆棒、紧凑型闪存(CF)卡或任何合适类型的
存储设备的任意组合。在一些实现中,存储器110也可以分布在多个机器或设备上,诸如基
于网络的存储器或基于云的存储器。存储器110可以包括数据(未示出)、操作系统(未示出)
和应用程序(未示出)。数据可以是用于处理的任何数据(如音频流、视频流或多媒体流),应
用程序可以是允许处理器108执行指令以生成控制信号的程序,这些控制信号可用于执行
下文描述的方法中所述的各项功能。
[0028] 在一些实现中,设备102除了包括处理器108和存储器110之外,还可以包括辅助存储设备(如外接存储设备)。如使用辅助存储设备,则可在高处理需求时提供额外的存储空
间。辅助存储设备可以是任何合适的非暂时性计算机可读介质形式的存储设备,如存储卡、
硬盘驱动器、固态驱动器,闪存驱动器、光驱等。此外,辅助存储设备既可以是设备102的组
件,也可以是通过网络访问的共享设备。在一些实现中,存储器110中的应用程序可以全部
或部分地存储在辅助存储设备中,并根据处理需要加载到存储器110中。
[0029] 设备102除了包括处理器108和存储器110之外,还可以包括输入/输出(I/O)设备,例如设备102可包括I/O设备112。I/O设备112可通过多种方式实现,比如它可以是耦合到设
备102的显示器,并被配置为可以显示图形数据的图像。I/O设备112可以是向用户传输视
觉、听觉或触觉信号的任何设备,如显示器、触敏设备(例如触摸屏)、扬声器、耳机、发光二
极管(LED)指示灯或振动电机等。I/O设备112也可以是任何类型的需要或不需要用户干预
的输入设备,如键盘、数字小键盘、鼠标、轨迹球、麦克风、触敏设备(如触摸屏幕)、传感器或
手势感应输入设备。如果I/O设备112是显示器,则其可以是液晶显示器(LCD)、阴极射线管
(CRT)或能够向个人提供可见输出的任何其他输出设备。在一些情况下,输出设备也可以作
为输入设备,例如接收触摸式输入的触摸屏显示器。
[0030] 此外,I/O设备112也可以由传输信号(和/或数据)的通信设备组成。例如,I/O设备112可包含一个从设备102向另一个设备发送信号或数据的有线装置。又例如,I/O设备112
也可包含使用兼容协议的无线发射器或接收器,用于将信号从设备102发送到另一设备,或
者将来自另一设备的信号接收到设备102。
[0031] 设备102除了配备处理器108和存储器110之外,还可以额外包括通信设备114来与另一个设备进行通信。或者也可以采用网络106进行通信。网络106可以是任何组合的任何
合适类型的一个或多个通信网络,包括但不限于使用蓝牙通信、红外通信、近场通信(NFC)、
无线网络、有线网络、局域网(LAN)、广域网(WAN)、虚拟专用网络(VPN)、蜂窝数据网络和互
联网。通信设备114可以通过多种方式实现,诸如应答器或收发器设备、调制解调器、路由
器、网关、电路、芯片、有线网络适配器、无线网络适配器、蓝牙适配器、红外适配器、NFC适配
器、蜂窝网络芯片,或耦合到设备102的任何组合的任何适当类型的设备,以提供与网络106
的通信功能。
[0032] 设备104与设备102类似,配备了处理器116、存储器118、I/O设备120和通信设备122。设备104的元件116‑122的实现可类似于设备102中的108‑114。设备102和104可分别执
行多媒体传输的不同功能。例如,设备102可以用作解码器设备(简称为“解码器”),而设备
104可以用作编码器设备(简称为“编码器),反之亦然。设备102可通过网络106与设备104通
信。设备102和104还可与连接到网络106的其他设备(未示出)进行通信。
[0033] 网络106可以包括多个服务器计算机(或简称为“服务器”)。服务器之间可以相互连接。服务器也可以连接到终端用户设备,如设备102和设备104。直接与用户终端设备相连
的服务器可被称为“边缘服务器”。如图1所示,服务器124是将设备102直接连接到网络106
(如互联网)的边缘服务器,服务器126是将设备104直接连接到网络106的边缘服务器。网络
106可以包括多个边缘服务器和非边缘服务器。应注意的是,边缘服务器可以在网络106中
彼此直接或间接连接。例如,服务器124和126可以彼此间接相接(即在网络106中至少有一
个第三方服务器连接在服务器124和126之间)。还应注意的是,多个用户终端设备或专用网
络可以连接到同一台边缘服务器。例如,服务器124可以是直接连接到设备102和设备104的
边缘服务器。
[0034] 设备102和104(以及存储在其上和/或由此执行的算法、方法、指令等)可以在硬件上实现,硬件包括如知识产权(IP)内核、专用集成电路(ASIC)、可编程逻辑阵列、光处理器、
可编程逻辑控制器、微代码、固件、微控制器、服务器、微处理器、数字信号处理器等或任何
其他适用的电路。在本公开中,“处理器”一词应理解为包含任何上述内容中的一项或多项
的组合。“信号”、“数据”和“信息”等术语可互换使用。此外,设备102和104的部分功能并不
必以相同的方式来实现。
[0035] 应注意的是,采用视频标注技术的编解码设备(如设备102和104)的部件或组件并不局限于图1中所示的那些的元件。在不脱离本公开的范围的情况下,采用视频标注技术的
编解码设备可以包括更多或更少的部件、组件、硬件或软件模块,用于实现编码和解码相关
或其他各项功能。
[0036] 图2是视频流200的示例图。视频流200可以是用于编码的视频源流,或是视频比特流解码而成的视频流。时间线如图2所示,其中箭头表示时间的方向。视频流200可以包括沿
时间线的一系列帧,其中包括帧202‑208。例如帧208可以是当前帧。如果使用帧间预测对帧
208进行编码或解码(即帧208是P帧),则其参考帧是在时间上早于该帧的某一帧。也就是
说,作为P帧的帧208的参考帧可以是帧206、204、202,或者在时间线上先于帧208的任何帧。
[0037] 视频流200的每一帧都可以被划分为多个处理单元。可在处理单元上执行运动预估和运动补偿。在一些视频编码标准中,处理单元可被称为“宏块”或“编码树块”(CTB)。在
一些实现中,每个处理单元可以再进一步划分为一个或多个处理子单元,用于执行运动预
估和运动补偿,根据不同的编码标准采用不同的名称,其中处理子单元可被称为“预测块”
或“编码单元”(CU)。处理单元和子单元可以是任何尺寸,例如8×8、8×16、16×16、32×32、
64×64,或适合于编码区域的任何形状的任何尺寸。通常,一个区域包括的细节越多,处理
单元和子单元的尺寸就越小。为便于解释而不引起歧义,处理单元和子单元在下文中均称
为“块”,除非另有明确说明。例如在图2中,帧206显示有4×4块,其中包括块210。块的边界
以虚线表示。
[0038] 在一些实现中,可以对块进行分组,从而形成图像的特殊区域或分区。换句话说,图像可以被划分为一个或多个区域或分区,并且每个区域或分区可以包含一个或多个块。
这样的区域或分区可被称为“切片”、“层片”或某一视频编码标准所特定的其他名称。为便
于解释而不引起歧义,这些区域或分区在下文中称为“切片”,除非另有明确说明。例如,帧
206可以被分成四个切片212‑218,每个切片中有四个块。切片212‑218之间可以具有边界
220‑226,以实线表示。
[0039] 可对多个切片执行并行处理。可针对一个切片中的多个块执行运动预估和运动补偿(即不对该切片之外的块执行运动预估和运动补偿),并且可以同时对多个切片进行独立
编码。例如,可以并行处理切片212‑218,这可以提高视频编码的效率。类似地,也可以在解
码器处对多个切片并行解码。I帧的切片可被称为I切片,而P帧的切片可以被称为P切片。
[0040] 应注意的是,本文所述的切片可以包括任何形式的任意数量的任意块,而并不限于上述示例(如切片212‑218)。例如,切片可以是非矩形的,比如包括几行中的多个块(未示
出)。又如,切片可包括以非连续方式组合的块,例如两个或多个非连续块组。再如,切片一
的一部分可以包含在切片二的一部分之内。再例如,切片一也可以被切片二包围(如切片一
可以在切片二之内)。
[0041] 还应注意的是,切片的划分或分段在视频流中可以改变,也可以不变。换句话说,切片之间的边界可以改变也可以不改变。在一些实现中,视频流的图像可以被划分为相同
形式的切片。在一些实现中,视频流中切片的划分模式可以随着图像的更迭而改变。
[0042] 图3是根据本发明实施例所绘制的对视频流302进行编码的编码流程300的流程图。视频流302可包含一个视频序列。流程300可以实现为图1系统100中的软件和/或硬件模
块。例如,流程300可以被实现为包含在编码器(如图1中的设备104)中的模块。流程300包括
操作304‑308以从视频流302产生压缩视频流314作为输出。在实现图5所述的编码中的视频
标注技术时,还可以对示例编码流程300(整个过程或其中一些阶段)做进一步修改。在一些
实现中,实现视频标注技术编码也可能并不需要流程300。
[0043] 如图3中的流程300所示,编码器接收了视频流302。本文所指的“接收”一词可以指以任何方式接收、输入、获取、检索、获得、读取、访问或采用任何操作以输入信息或数据。例
如,视频流302可以是视频流并且包括一系列视频图像(如当前帧)。
[0044] 通常,编码过程可包括以下阶段或操作中的一个或多个:预测阶段(如用于帧内预测或帧间预测)、变换阶段(量化或非量化)和熵编码阶段。上述阶段可用于在编码处理的正
向路径中将视频流302输出为压缩视频流314,如图3中的实线连接线所示:帧内/帧间预测
阶段304、变换和/或量化阶段306以及熵编码阶段308。
[0045] 在帧内/帧间预测阶段304,对于帧内预测,可以使用当前帧中先前编码的块来预测当前帧的当前块。对于帧间预测,可以使用先前编码的帧作为参考数据来预测当前帧的
当前块。先前编码的帧可以包括例如先前编码和重建的图像(也称为参考帧)。例如,可以使
用当前帧和一个或多个参考帧来执行运动预估和运动补偿以生成运动数据。然后可再对残
差数据(即预测块和当前块之间的差)执行变换、量化和/或熵编码操作。
[0046] 在一些实现中,也可以在熵编码阶段308之前附加应用一个环路滤波器。环路滤波器可减少由视频压缩导致的失真(如“块效应”)。其他用于对视频比特流进行解码的信息也
可被熵编码,这些信息包括:预测模式、变换类型、量化级别和环路滤波器参数(如滤波器强
度)等。
[0047] 在一些实现中,流程300还可以包括重建路径对参考数据进行重建,用于预测未来帧。例如,重建路径(图3中表示为虚线连接线)可以包括以下阶段:去量化和/或逆变换阶段
310和重建阶段312。阶段310和312可确保编码器(如图1中的设备104)和解码器(如图1中的
设备102)使用相同的参考数据进行预测。在一些实现中,可以在重建阶段312之后附加应用
一个环路滤波器(未示出);而在另一些实现中,也可以在不使用环路滤波器的情况下使用
重建的图像。重建可以类似于解码流程中的重建阶段(如图4中的阶段410)。
[0048] 应注意的是,对视频序列进行编码也可以使用编码过程的其他变体形式。编码过程可以按照不同的顺序进行处理,也可组合为更少的阶段,或者是分成更多的阶段。例如在
一些实现中,量化或变换可以是非必需的。比如说,基于非变换的编码器可以在不进行变换
的情况下量化残差数据。
[0049] 图4是根据本发明实施例所绘制的对压缩视频流进行解码的流程400示例图。流程400可以实现为图1系统100中的软件和/或硬件模块。例如,流程400的部分或所有阶段可以
由解码器(如设备102)实现为包含在系统100中的软件或硬件模块。解码器可由存储在存储
器(如存储器110)中的程序代码实现。程序代码可包括计算机可读指令,当由处理器(如处
理器108)执行时使得解码器以图4中描述的方式解码压缩视频流。解码器还可以实现为包
含在设备(如设备102)中的专用硬件。例如,解码器可以是硬件解码器。流程400包括操作
404‑410,用于将压缩视频流402重建为视频流412。此外,在使用图6中所述的视频标注方法
进行解码时,可以对示例流程400的整个过程或部分阶段进行修改。
[0050] 通常在解码压缩媒体流时,解码过程类似于视频编码过程的重建路径。流程400类似于上述流程300的重建路径,可以包括以下阶段:熵解码阶段404、去量化和/或逆变换阶
段406、帧内/帧间预测阶段408和重建阶段410。重建的图像可以用作未来的参考数据,用于
处理当前帧之后的后续帧。重建的图像不仅可在媒体流412中输出,还可以存储在缓冲器中
(如图1中的存储器110)以用作未来的参考数据。在一些实现中,可以使用环路滤波器(未示
出)对重建的图像进行滤波。也可采用流程400的其他结构变体对压缩视频流402进行解压。
[0051] 图5是根据本发明实施例所绘制的对视频做标注的示例流程500的流程图。流程500可以实现为图1中系统100中的软件和/或硬件模块。例如,流程500可以实现为服务器
(如服务器124)中的软件模块。又如,流程500可以实现为存储在存储器110中的软件模块,
作为可由终端用户设备(如设备102)的处理器108执行的指令和/或数据。再如,流程500也
可以在硬件中实现为专用芯片,可存储由专用芯片执行的指令。例如,该专用芯片可包含特
定的硬件加速模块。
[0052] 在操作502处,将用户甲的视频流一从设备一发送到用户乙的设备二处。用户乙可与用户甲正在进行视频通信。可以通过网络(如图1中的网络106)发送视频流一。例如,设备
一可以是设备102,设备二可以是设备104。设备一可以包括用于编码视频流一的编码器一。
设备二可以包括用于解码视频流一的解码器二。
[0053] 在操作504处,可以通过网络接收用户乙从设备二发送的视频流二。设备二可以包括用于编码视频流二的编码器二。设备一可以包括用于解码视频流二的解码器一。视频二
中可以包括用于判断用户乙针对视频一所做出的反应的信息(如针对视频一的视频质量)。
[0054] 在操作506处,根据视频流二来判断用户乙对视频流一做出的反应。例如,用户乙的反应可以由设备一来判断。又如,用户乙的反应也可以由连接(如直接连接)到设备一的
服务器(如服务器124)来判断。对该反应做出判断的具体内容详见与图6和图7相关的描述。
[0055] 在一些实现中,可从视频流二的解码图像中获得一幅解码图像。例如,设备一的解码器一可以解码视频流二以获得解码图像。可有一个或多个解码图像中包含用户乙的信息
(如包括用户乙的头像和/或身体某部分的图像或包括用户乙的语音的音频)。当视频流一
在设备二的解码器二处出现视频的质量波动情况(如视频质量得到改善或恶化)时,比如由
于网络状况改变(如网络带宽的增加或减少),用户乙可以对视频流一做出反应(如正面、负
面或中性反应)。根据解码图像中所包括的用户乙的信息,可以从视频流二的解码图像找到
与视频流一的图像相对应的图像。通过分析该解码图像可以获知用户乙的反应。
[0056] 在一些实现中,可以通过分析从视频流二解码的解码图像和/或音频来获知用户乙的反应。例如,通过对解码的图像进行分析,可以从解码图像中获知用户乙的直观反应
(如面部表情或姿势)。又如,通过对解码音频进行分析,可以从解码的音频中获知用户乙的
言语反应(如语音的特征)。通过对视觉和言语反应进行分析,可以推断出用户乙的行为反
应(如姿势、面部表情、言语表达或语音特征)和/或情绪反应(如情绪或心情)。关于如何获
得视觉、言语和推断反应的内容详见图8和图9的相关描述。
[0057] 在操作508处,用户乙的反应与视频流一相关联。例如,该反应可以与设备一发送的视频流一相关联。又如,该反应可以与连接(如直接连接)到设备一的服务器(如服务器
124)发送的视频流一相关联。关于反应的更多内容详见图6和图7的相关描述。
[0058] 可以将该反应保存为与视频流一相关联的标注。换句话说,视频流一可以保存为带标注的视频数据(如自然视频数据)。可以获知用户乙的多个反应并将其与视频流一的各
个部分相关联,并在此实现根据主观测量对视频质量进行实时监视和测量。
[0059] 在一些实现中,可以根据时间戳将用户乙的反应与视频流一的其中一段相关联。解码的图像可以与时间戳一(如设备二处的本地时间)相关联。例如,当视频流一的其中一
段显示在设备二的屏幕上时,用户乙可以对这一显示做出反应。可以由设备二的时钟生成
时间戳一并且与视频流二的某一帧相关联。该帧可指示用户乙有此反应。换句话说,时间戳
一反映的是用户乙在看到视频流一的解码部分之后作出反应的时间。
[0060] 在一些情况下,可以假设用户乙对改变的视频质量会做出即时反应(称为“即时反应假设”)。在即时反应假设下,时间戳一可以与视频流二的某一帧相关联,该时间戳反映的
是视频流一的其中一段内容被解码并显示给用户乙的时间。在一些情况下,可以假设用户
乙需花费一小段时间(称为“反应时间”)来发现视频质量的改变(称为“非即时反应假设”)。
在非即时反应假设下,时间戳一可以与视频流二的某一帧相关联,该时间戳反映用户乙反
应的时间,该时间是在视频一显示给用户乙后再加上反应时间。反应时间可以是一个预定
的时间间隔。
[0061] 在一些实现中,时间戳一可以被编码到视频流二中并被发送。在一些实现中,如果时间戳一未被编码到视频流二中,则可以通过带外消息将其发送至设备一或连接到设备一
的服务器(如直接连接到设备一的边缘服务器)。
[0062] 视频流一的其中一段还可以与时间戳二(如在设备一处的本地时间)相关联。在编码器一对视频流一进行编码时,可以由设备一的时钟生成时间戳二,并且由编码器一将其
与视频流一的该部分相关联。在一些实现中,时间戳二可以是包含在视频流一的其中一段
中的某一帧(如第一帧、中间帧或最后一帧)的时间戳。在一些实现中,时间戳二可以是包括
在视频流一的该部分中的多帧图像(如第一帧和最后一帧)的时间戳的平均值。在一些实现
中,时间戳二可以被编码到视频流一中并被发送。在一些实现中,如果时间戳二未被编码到
视频流一中,则可以通过带外消息将其发送至设备二或连接(如直接连接)到设备二的服务
器(如边缘服务器)。
[0063] 根据时间戳一和时间戳二,用户乙的反应可以与视频流一的其中一段相关联。例如,为找到用户乙的反应,可以假设从设备一发送视频流一并在设备二解码它的时间为零
(称为“即时传输假设”)。在即时传输假设下,可以假设设备一的编码器一的时钟与设备二
的解码器二的时钟是同步的。换句话说,假设在设备一处对视频流一的其中一段进行编码
的时间小于一个预订的阈值,或与视频流一的该段在设备二上解码和显示的时间相同。
[0064] 例如,在即时传输假设和即时反应假设下,假设用户乙的反应与视频流一的其中一段的解码和显示是同时发生的。当设备一或设备一的边缘服务器获取(如通过解码视频
流二)或接收(如从与视频流二相关联的带外消息中接收)时间戳一时,可以对视频流一进
行搜索来找到包含与时间戳二对应的时间戳(即小于预定阈值或与时间戳二相同)的那一
个部分。换句话说,如果已知视频流一的其中一段包含一个与时间戳二对应的时间戳一(即
小于预定阈值或与之相同),则用户乙的反应可以与视频流一的这一段相关联。也就是说,
表明用户乙的反应的一个或多个标注可以与视频流一的这一段相关联。
[0065] 又如,在即时传输假设和非即时反应假设下,用户乙的反应发生在解码和显示视频流一的其中一段之后再加上反应时间。换句话说,当获取或接收到时间戳二时,可以对视
频流一进行搜索,找到其中的一段所包含的时间戳与时间戳二相差在一定的时间差值范围
之内。时间范围可以是预定的,并且可以是大于、等于或小于反应时间的一段持续时间。例
如,可以将时间范围设置为小于预定阈值(如反应时间的三倍)。如果视频流一的其中一段
(如多帧图像)具有的时间戳在该时间范围之内,则可将其与该反应相关联。
[0066] 再如,可以假设从设备一发送视频流一并在设备二处对其进行解码的时间是非零的(称为“非即时传输假设”)。在非即时传输假设下,设备一的编码器一的时钟与设备二的
解码器二的时钟之间的同步可以通过多种方式实现。例如,设备一和设备二共同使用的时
间服务(如互联网时间服务器)可以用于同步时钟。在非即时传输假设下,无论是否采用即
时反应假设,用户乙的反应发生在解码和显示视频流一的其中一段之后再加上一段时间间
隔。时间间隔可以是预定的,并且可以与反应所需的时间相同或不同。类似地,可以识别具
有时间间隔内的时间戳的视频流一的一段(如多帧图像)并将其与反应相关联。如果视频流
一的其中一段(如多帧图像)具有的时间戳在该时间范围之内,则可将其与该反应相关联。
[0067] 在一些实现中,也可在操作508之后,将标注的视频数据用于改善用户体验。又如,可以周期性地获取用户乙的反应。周期可以是灵活的也可以是固定的。根据监控的用户乙
的反应,可以实时获知视频流一的视频质量是得到改善还是恶化。因此,可以在设备一处
(如在编码器一处)更新用于编码视频流一的参数。该参数可以包括比特率、帧速率、图像分
辨率、前向纠错(FEC)比率或用于视频编码和传输的任何合适的参数的任何组合。
[0068] 在一些实现中,标注的视频数据可以存储在数据库(如网络106中的一个服务器)中。数据库可以存储从许多用户处收集的大量标注视频数据。这些标注的视频数据的标注
内容可以包括用户对于视频质量提出的正面、负面或中性反馈。
[0069] 例如,标注的视频数据可用于训练视频编码器,例如能够根据网络状况的客观测量和/或实时监测的主观测量(如用户对与其通信对方的视频流的视频质量做出的反应)来
自动调整编码参数以优化视频质量的自适应编码器。对这种视频编码器的训练可以使用机
器学习技术(如监督式学习技术),比如神经网络技术。例如,标注的视频数据可以用作监督
学习技术中的基准数据标注。应当注意的是,标注的视频数据可以有各种应用方式用于改
善用户体验,而并不限于上述示例。
[0070] 图6是根据本发明实施例所绘制的用于标注视频的系统的示例图。系统600包括设备602和边缘服务器610。设备602可以是终端用户设备,如图1中的设备102或设备104。边缘
服务器610(如服务器124或服务器126)与设备602直接互连。边缘服务器610可以通过网络
(如网络106)连接到设备602。
[0071] 设备602可以包括各种软件和/或硬件模块,包括视频解码器604、分析模块606和视频编码器608。在一些实现中,这些模块可以作为软件实现,如存储在存储器(如存储器
110或存储器118)中的指令,当处理器(如处理器108或处理器116)执行该指令时,可用于执
行相关操作(如操作502‑508)。在一些实现中,这些模块也可以作为硬件实现,如可以执行
预定操作(如操作502‑508)的专用芯片(如ASIC)。应注意的是,图6的示例仅用于解释说明,
而实际应用并不限于所示的示例。例如,视频解码器604、分析模块606和视频编码器608可
以采用现成技术以任何合适的方式组合、分离或关联,以实现相同或相似的功能。
[0072] 可配置视频编码器608使其接收和编码用户甲的视频源流614。例如,视频源流614可以是视频序列。视频序列可以从视频输入模块(未示出)处获取,如相机。相机可以集成到
设备602(如智能手机或平板电脑)中。相机也可以是独立的,但是与设备602相连接(如连接
到PC的网络摄像头)。视频编码器608可将视频源流614编码为比特流一,且设备602可通过
网络将比特流一传输至用户乙,比如通过执行流程500中的操作502。在一些实现中,比特流
一可以被发送至边缘服务器610然后再由边缘服务器610转发(如使用通信设备114或通信
设备122)至用户乙。
[0073] 可配置视频解码器604使其接收和解码用户乙的压缩比特流612,比如通过执行流程500中的操作504。用户甲和用户乙可以是在进行实时视频通信(如视频呼叫、视频会议或
直播事件)。在一些实现中,从终端用户设备二(未示出)处发送的压缩比特流612可以由边
缘服务器610转发。在一些实现中,从终端用户设备二处发送的压缩比特流也可以通过网络
中的另一个服务器(未示出)转发。视频解码器604可以对压缩比特流612中的图像和/或音
频进行解码。解码的图像和/或音频可以被显示和播放给用户甲以进行实时视频通信,并且
可以用作分析模块606的输入数据。
[0074] 可配置分析模块606使其从压缩比特流612的解码图像和/或音频中获知或提取用户乙的自然数据(如反应),比如通过执行流程500中的操作506。用户乙的自然数据可以反
映用户乙的反应或情绪,该反应针对的是先前已经发送并显示给用户乙的比特流一的其中
一段视频的质量。分析模块606可以对该自然数据进行周期性的(如固定周期或灵活周期)
分析和获取。关于分析模块606的更多内容详见图8和图9的相关描述。可将自然数据(如通
过通信设备114或通信设备122)发送至边缘服务器610。
[0075] 可配置边缘服务器610使其将用户乙的自然数据与向用户乙发送的比特流一相关联,比如通过执行流程500的操作508。边缘服务器610可以传输从设备602处向外发送的数
据包,并为设备602收集发送过来的数据包。因为边缘服务器610可以同时负责发送过来的
数据包(如压缩比特流612)和发送出去的数据包(如比特流一),因此执行关联操作不会导
致额外的网络流量。
[0076] 在边缘服务器610中,自然数据可以与比特流一同步或保持一致。例如,可以利用时间戳来完成这种同步或一致。根据实施方案的不同,可以选择在同步中采用或不采用即
时传输假设和即时反应假设。在同步之后,自然数据可以与比特流一相关联以形成带标注
的视频数据。带标注的视频数据可以存储在网络上的边缘服务器610中(如存储在数据库
中)或另一个服务器(未示出)中。
[0077] 在一些实现中,根据标注的视频数据,可以更新视频编码器608的参数以改善用户体验。例如,如果网络流量情况变糟,则可能在终端用户设备二处发生比特流一的其中一段
的丢包现象。在压缩比特流612中可能记录了用户乙的负面反应。分析模块606可以提取并
得到包含用户乙对比特流一的该段产生负面反应的自然数据。获知的负面反应可以被发送
到边缘服务器610,在此负面反应可以被同步并且与已经存储在其中的比特流一的其中一
段相关联。并且根据该负面反应,可以更新视频编码器的参数以使比特流一的视频编码适
应变糟的网络情况,例如通过降低比特率、帧速率或分辨率,或者通过增加FEC比率等。
[0078] 图7是根据本发明实施例所绘制的另一个用于标注视频的系统的示例图。系统700包括设备702和边缘服务器610。设备702可以是终端用户设备,如图1中的设备102或设备
104。设备702可以包括各种软件和/或硬件模块,包括视频解码器604、分析模块606和关联
模块704。设备702中模块的实现方式可以与设备602的模块实现方式相类似。
[0079] 可配置视频解码器604使其接收用户乙的压缩比特流612,并将其解码为图像和音频。可配置分析模块606来将解码的图像和音频作为输入数据以获知用户乙的自然数据。但
是,自然数据不会被发送到系统700中的边缘服务器610。自然数据可以被发送至关联模块
704处。
[0080] 可配置关联模块704使其接收用户甲的自然数据和压缩比特流706。压缩比特流706可以由编码器进行编码。编码器可以实现为设备702的软件或硬件模块,如视频编码器
608。编码器可以接收用户甲的视频序列(如视频源流614)并将其编码为压缩比特流706。在
关联模块704中,自然数据可以与压缩比特流706同步或保持一致。在同步之后,自然数据可
以与比特流一相关联以形成标注视频数据,比如通过执行流程500中的操作508。标注的视
频数据可以被发送至边缘服务器610。在一些实现中,标注的视频数据可以存储在网络中的
边缘服务器610(如存储在数据库中)或另一个服务器(未示出)中。可以根据标注的视频数
据来更新编码器的参数以改善用户体验。
[0081] 图8是根据本发明实施例所绘制的用于标注视频的模块800的示例图。在一些实现中,模块800可实现为图6和图7中的分析模块606。模块800还可以包括各种软件和/或硬件
模块,包括人脸识别模块802、情绪推断模块804和客观测量模块806。在一些实现中,这些模
块可以作为软件实现,如存储在存储器(如存储器110或存储器118)中的指令,当处理器(如
处理器108或处理器116)执行该指令时可用于执行相关操作(如操作502‑508)。在一些实现
中,这些模块也可以作为硬件实现,如可以执行预定操作(如操作502‑508)的专用芯片(如
ASIC)。应注意的是,图8的示例仅用于解释说明,而实际应用并不限于所示的示例。例如,人
脸识别模块802、情绪推断模块804和客观测量模块806可以采用现成技术以任何合适的方
式组合、分离或关联,以实现相同或相似的功能。
[0082] 如图8所示,可配置人脸识别模块802使其接收用户乙的解码帧808作为输入以识别用户乙的面部。在一些实现中,可配置人脸识别模块802以使其进一步从所识别的面部获
知面部表情。从解码器(如视频解码器604)处可输出解码图像808。配置情绪推断模块804可
使其推断用户乙的情绪。在一些实现中,情绪推断模块804的输入数据可以包括解码图像
808、人脸识别模块802所识别的面部和情绪推断模块804所识别的面部表情这三者的任意
组合。
[0083] 在一些实现中,人脸识别模块802和情绪推断模块804可使用机器学习技术(如监督式学习技术)实现为软件或硬件模块。例如,监督式学习技术可以包括卷积神经网络
(CNN)技术、k近邻(k‑NN)技术、支持向量机(SVM)技术或其任意组合。
[0084] 在一些实现中,人脸识别模块802和情绪推断模块804可以使用CNN分类器实现为软件模块。CNN分类器可以经过预先训练。CNN分类器可以将解码图像808作为输入,并输出
识别出的面部、识别出的面部表情和/或推断出的情绪。在一些实现中,人脸识别模块802和
情绪推断模块804可以使用不同的CNN分类器。在一些实现中,如果人脸识别模块802和情绪
推断模块804使用不同的CNN分类器,CNN分类器的卷积层一仍可以由两个模块共享。在一些
实现中,人脸识别模块802和情绪推断模块804可以使用相同的CNN分类器。
[0085] 可配置客观测量模块806使其获得网络状况的客观测量,如传输延迟时间、丢包率、图像分辨率和编码比特率。
[0086] 人脸识别模块802、情绪推断模块804和客观测量模块806的一个或多个输出数据可以作为标注810输出。标注810可以与用户甲的视频流(如视频比特流一或压缩比特流
706)相关联(如通过图6中的边缘服务器610或图7中的关联模块704进行关联)。应注意的
是,标注810可以包括主观测量(如人脸识别模块802和情绪推断模块804的输出数据)和/或
客观测量(如客观测量模块806的输出数据)用以生成标注视频数据。
[0087] 图9是根据本发明实施例所绘制的用于标注视频的模块900的示例图。在一些实现中,模块900可实施为图6和图7中的分析模块606。模块800还可以包括各种软件和/或硬件
模块,包括姿势分析模块902和语音分析模块904。在一些实现中,这些模块可以作为软件实
现,如存储在存储器(如存储器110或存储器118)中的指令,当处理器(如处理器108或处理
器116)执行该指令时可用于执行相关操作(如操作502‑508)。在一些实现中,这些模块也可
以作为硬件实现,如可以执行预定操作(如操作502‑508)的专用芯片(如ASIC)。应注意的
是,图9的示例仅用于解释说明,而实际并不限于所示的示例。例如,姿势分析模块902和语
音分析模块904可以采用现成技术以任何合适的方式组合、分离或关联,以实现相同或相似
的功能。
[0088] 可配置姿势分析模块902使其用于检测和分析用户乙的姿势。姿势分析模块902可以将解码图像808作为输入。姿势可以包括挥手、摇头、点头、耸肩或任何表示正面或负面反
馈的姿势。在一些实现中,姿势分析模块902可以使用机器学习技术(如监督式学习技术)实
现为软件或硬件模块。例如,监督式学习技术可以包括卷积神经网络(CNN)技术、k近邻(k‑
NN)技术、支持向量机(SVM)技术或其任意组合。
[0089] 语音分析模块904可以被配置为检测和分析用户乙的语音的特征和含义。语音分析模块904可以将用户乙的解码音频906作为输入。可以对用户乙的视频流(如图6‑7中的压
缩比特流612)进行解码得到解码音频906并将其与解码图像808相关联。用户乙的语音的特
征可以包括音调、音调、语速、音量或任何表示正面或负面反馈的信号特征。在一些实现中,
可以对语音分析模块904的输出数据做进一步分析,以推断出用户乙的情绪,比如通过使用
情绪推断模块804或其他情绪推断技术或模块。
[0090] 在一些实现中,语音分析模块904还可以获知用户乙的言语中的语义。语义可以是明确的含义或隐含的含义。在一些实现中,语音分析模块904可以使用自动语音识别(ASR)
技术、自然语言处理(NLP)技术、人工智能(AI)技术或其任意组合来实现为软件或硬件模
块。
[0091] 姿势分析模块902和语音分析模块904的一个或多个输出数据可以作为标注908输出。标注908可以与用户甲的视频流(如视频比特流一或压缩比特流706)相关联(如通过图6
中的边缘服务器610或图7中的关联模块704)。
[0092] 如上所述,本领域专业人士应该会注意,本文所述的本发明的全部或部分内容可以使用具有计算机程序的通用计算机或处理器来实现,其计算机程序在被运行时可执行本
文所述的任何相应的技术、算法和/或指令。另外,也可以有选择地使用专用计算机或处理
器,配备专用硬件设备用以执行本文描述的任何方法、算法或指令。
[0093] 本文所述的计算设备(以及存储在其上和/或由此执行的算法、方法、指令等)可以通过硬件、软件或其任何组合来实现。硬件可包括计算机、知识产权(IP)内核、专用集成电
路(ASIC),可编程逻辑阵列、光处理器、可编程逻辑控制器、微代码、微控制器、服务器、微处
理器、数字信号处理器或其他任何适用的电路。在权利要求中,“处理器”一词应理解为包含
任何上述内容中的一个或其多个组合。
[0094] 本文所述各方面内容可通过功能块组件和各种处理操作来描述。本文的流程和序列可以单独或以任何组合形式来执行。功能块可以通过执行任意数量的可运行特定功能的
硬件和/或软件组件来实现。例如,所述的内容可以采用各种集成电路组件,例如存储器元
件、处理元件、逻辑元件、查找表等,在一个或多个微处理器或其他控制设备的控制下执行
各种功能。类似地,实现所述内容各个功能时如需采用软件编程或软件元件,都可以采用诸
如C、C++、Java、汇编程序等的任何编程或脚本语言来实现本发明,且可以采用任何数据结
构、对象、进程、例程或其他编程元素的任意组合来执行各种算法。各项功能可以在一个或
多个处理器上通过执行算法来实现。此外,本发明所述各功能可以采用任意数量的常规技
术来进行电子配置、信号处理和/或控制、数据处理等。本文广泛使用“机制”和“元素”这些
词语,并不限于机械或物理实现,而是可以包括与处理器结合的软件例程等。
[0095] 以上发明的实施方式或部分实施方式可以采取计算机程序产品的形式,该程序产品可通过计算机使用或可由计算机可读介质进行访问等。计算机可用或计算机可读介质可
以是任何设备,该设备可以具体包含、存储、传送或传输供任何处理器使用或与其结合使用
的程序或数据结构。该介质可以是电子的、磁的、光学的、电磁的或半导体设备等等。也可包
含其他适用的介质。上述计算机可用或计算机可读介质可以被称为非暂时性存储器或介
质,并且可以包括RAM或其他易失性存储器或存储设备,它们可以随时间变化而发生改变。
本文所述的设备存储器并非必须物理上配备于设备中,而是可以由设备远程访问,并且不
必与设备中其他物理上配备的存储器相邻,特别说明除外。
[0096] 本文所述作为本发明的示例执行的一项或多项功能均可使用机器可读指令来实现,该指令用于操作前述一个或多个组合的硬件。计算代码可以以一个或多个模块的形式
实现,通过该模块可以将一个或多个组合的功能作为计算工具来执行,在运行本文所述方
法和系统时,输入和输出数据在每个模块与一个或多个其他模块之间进行相互传输。
[0097] “信号”和“数据”两词在本文中可以互换使用。此外,计算设备各部分功能并非必须以相同的方式来实现。信息、数据和信号可以使用各种不同的技术和方法来表示。例如,
本文中提到的任何数据、指令、命令、信息、信号、比特、符号和芯片可以用电压、电流、电磁
波、磁场或粒子、光学场或粒子等一项或多项组合来表示。
[0098] 本文采用“示例”一词来表示举例、实例或说明。本文所述用于“示例”的任何功能或设计不一定表示其优于或胜于其他功能或设计。相反,使用“示例”一词是为了以具体的
方式呈现概念。另外,“一个功能”或“一项功能”这两个短语在全文中多次用到,但并不意味
着同一个实施方式或同一功能。
[0099] 本文中所使用的“或”字旨在表示包含性的“或”而不是排他性的“或”。也就是说,“X包括A或B”意在表示任何自然的包含性排列,除非另有说明,或者从上下文可明确判断则
另当别论。换句话说,如果X包含A,X包含B,或X包含A和B,那么在任何前述实例下“X包含A或
B”都成立。以此类推,“X包括A和B中的一个”是指“X包括A或B”。本公开中使用的“和/或”一
词旨在表示“和”或不排他性的“或”。也就是说,“X包括A、B和/或C”旨在表示X可包括A、B和C
的任何组合,除非另有说明或上下文另有明确指示。换句话说,如果X包括A,X包括B,X包括
C,X包括A和B,X包括B和C,X包括A和C,或者X包括A、B和C中的全部,那么上述情况中的每一
种或多种都满足“X包括A、B和/或C”的描述。以此类推,“X包括A、B和C中的至少一个”是指“X
包括A、B和/或C”。
[0100] 本文中“包含”或“具有”及其同义词旨在表示包括其后列出的项目及其等同物以及附加项目。根据上下文语境,本文中的“如果”一词可以被解释为“当”“当……时”或“假
设”等意思。
[0101] 在本发明所述内容(特别是下文的权利要求书)中,“一”、“一个”和“该”以及类似的指示代词应理解为包含一个和多个的单数和复数形式。此外,本文中对数值范围的描述
只是一种简便的描述方式,旨在表示包含在该范围之内的每一个单独数值,并且每个单独
值并入规格范围中,等效于在本文中单独列举。最后,本文所述的所有方法的步骤可以以任
何合适的顺序执行,除非本文另有说明或者与上下文明显矛盾。本文提供的示例或示例性
语言(例如“诸如”)的使用旨在更好地说明本发明,并无意于限制本发明的范围,除非另有
说明。
[0102] 本文使用各种标题和小标题列出列举条目。包含这些内容是为了增强可读性并简化查找和引用材料的过程。这些标题和小标题无意于、也不会用来影响对权利要求的解释
或以任何方式限制权利要求的范围。本文示出和描述的具体实现是本发明的说明性示例,
且无意于以任何方式限制本发明的范围。
[0103] 本文引用的所有参考文献(包括出版物、专利申请和专利)均通过引用纳入本文,等效于单独且明确地指明将每个参考文献通过引用纳入本文,且涵盖参考文献的全部相关
内容。
[0104] 虽然已经结合某些实施例和实施方式对本发明进行描述说明,但应理解为,本发明并不限于所公开的实施方式,与之相反,本公开旨在覆盖权利要求范围之内所涵盖的各
种变体和等同设置,该范围应被赋予最宽泛的解释以涵盖法律允许的所有上述变体和等同
设置。