用于带宽受限视频传输的系统和方法与流程

文档序号:16811258发布日期:2019-02-10 13:40阅读:192来源:国知局
用于带宽受限视频传输的系统和方法与流程

本申请要求于2017年5月31日提交的题为“systemsandmethodsforbandwidth-limitedvideotransport(用于带宽受限视频传输的系统和方法)”的美国专利申请序号15/610,056和于2016年6月2日提交的题为“systemsandmethodsforbandwidth-limitedvideotransport(用于带宽受限视频传输的系统和方法)”美国临时专利申请序号62/344,600的优先权,所述申请的全部公开内容通过引用结合于此用于所有目的。

本公开涉及用于带宽受限视频传输的系统和方法。



背景技术:

视频会议、流媒体和广播通常包括通过诸如专用电缆、无线连接或因特网之类的通信信道的数字视频传输。特别是对于视频会议、流媒体和广播,视频传输系统被配置为基本上“实况”或实时地提供所传输的视频流,而不会显著中断视频流。视频传输系统可以被配置为传输视频、音频和其他媒体(例如,图形、数据、元数据),并且可以被称为媒体传输系统。

通信信道具有有限的带宽,并且带宽限制可能影响视频的传输,尤其是在期望多个高质量视频信道的情况下。用于管理带宽的传统解决方案包括限制传输的视频流的数量和/或限制视频流的类型和/或质量。通常,通过拒绝具有太高带宽需求的视频流和/或将高需求视频流调整到较低带宽流来限制带宽。诸如图像分辨率(图像高度、图像宽度和像素数)、帧速率、压缩、颜色深度和颜色编码格式之类的视频参数影响视频流的带宽需求。较低的图像分辨率、较低的帧速率、较高的压缩、较低的颜色深度和较简单的颜色编码(例如,4:2:0y':cb:cr编码或仅灰度)可以降低视频流的带宽要求。但是,通过这些参数减少带宽也会降低视频流的质量。

传统上,用户基于每个视频源来配置视频传输系统以在带宽需求和视频质量之间取得平衡。如果视频源改变(呈现不同的视频参数),则可能扰乱平衡并且可能需要重新配置视频传输系统。对于具有可变视频源和/或熟练视频路由的动态系统,用户可能需要设置视频参数以适应最高需求的视频流,代价是任何其他视频流的视频质量。为最高需求流设置参数可能会浪费其他(可能不太关键)流的带宽。设置最低需求(或甚至典型需求)的参数可能会影响较高需求流的质量。另外,视频传输系统的用户可能无法识别在调整特定视频流或一系列视频流类型的视频参数的同时保持视频质量的最佳方式。



技术实现要素:

用于带宽受限视频传输的系统和方法被配置为从用户接收对应于带宽限制的视频参数限制的选择,并将视频参数限制应用于输入视频流以在保持视频质量的同时强制执行带宽限制。附加地或替代地,系统和方法可以被配置为在没有用户指示的情况下辨别带宽限制和/或视频参数限制。

用于在视频传输系统中实施带宽限制的方法可以包括确定输入视频流是否需要调整以满足带宽限制。如果输入视频流超过带宽限制,则可以一次一个参数地调整视频流,直到调整后的视频流等于或小于带宽限制。要调整的参数可以包括图像分辨率、帧速率、图像压缩、颜色深度、每像素位数和/或颜色编码。在一些实施例中,首先降低图像分辨率,然后降低帧速率,并且最后增加图像压缩。用户可以基于视频流的内容和/或基于带宽限制来选择参数调整的范围和/或顺序。

附图说明

图1是根据本公开的视频传输系统的示意图。

图2是根据本公开的视频传输系统中的视频输入设备的示意图。

图3是根据本公开的视频传输方法的示意图。

图4是根据本公开的视频传输系统中的视频输出设备的示意图。

图5是根据本公开的计算机化系统的示意图。

具体实施方式

图1-5示出了用于带宽受限的视频传输的系统和方法。通常,在附图中,可能包括在给定实施例中的元件以实线示出,而可选的元件或替代元件以虚线示出。然而,以实线示出的元件对于本公开的所有实施例不是必需的,并且在不脱离本公开的范围的情况下,可以从特定实施例中省略以实线示出的元件。用于相似或至少基本相似的目的的元件用各图中一致的数字标记。可以不参考每个附图在此详细讨论在每个附图中相同的数字和相应的元件。类似地,可以不在每个图中标记或示出所有元件,但是可以使用与其相关联的附图标记来保持一致性。在不脱离本公开的范围的情况下,参考一个或多个附图讨论的元件、组件和/或特征可以包括在任何附图中和/或与任何附图一起使用。

图1是视频传输系统10(也称为带宽受限视频传输系统)的示意图。视频传输系统10包括视频源20、视频输入设备22、带宽受限链路24、视频输出设备26和视频目的地28。视频传输系统10可以是媒体传输系统的一部分和/或与媒体传输系统集成(媒体传输系统传输视频和其他形式的媒体,如音频)。在视频传输系统10中,视频源20生成(或源送)视频流32,其被称为输入视频流34。输入视频流34连接到视频输入设备22,视频输入设备22调整输入视频流以形成另一视频流32,另一视频流32是带宽受限视频流36。带宽受限视频流36经由带宽受限链路24连接到视频输出设备26。视频输出设备26接收带宽受限视频流36并且形成另一视频流32,另一视频流32是输出视频流38。输出视频流38连接到视频目的地28,视频目的地28接收(或消耗)输出视频流38。

视频传输系统10可以包括多个视频源20、多个视频输入设备22、多个带宽受限链路24、多个视频输出设备26和/或多个视频目的地28。单个视频源20可以发送一个或多个视频流32到多个视频输入设备22(例如,一个视频流32到许多设备或每个设备的不同视频流32)。单个视频输入设备22可以从多个视频源20接收视频流32,并且可以将一个或多个视频流32发送到一个或多个视频输出设备26。视频流32可以通过一个或多个带宽受限链路24传输(例如,用于所有带宽受限视频流36的一个带宽受限链路24或用于不同带宽受限视频流36的不同带宽受限链路24)。单个视频输出设备26可以从多个视频输入设备22接收视频流32,并且可以将一个或多个视频流32发送到一个或多个视频目的地28(例如,一个视频流32到许多视频目的地28或每个视频目的地28的不同的视频流32)。单个视频目的地20可以从多个视频输出设备26接收一个或多个视频流32。

视频源20是生成,再现,存储和/或传输输入视频流34到视频输入设备22的设备。例如,视频源20可以包括,并且可选地可以是相机、接收器(例如,音频-视频接收器、卫星接收器)、视频解码器、媒体服务器(例如,视频服务器)、媒体播放器(例如,视频播放器、dvd播放器)和/或流媒体设备(例如,流式视频设备)。

视频流32通常是传送视频内容的数字视频信号。视频流32可以包括其他内容,诸如关联音频、隐藏字幕、时间码、次要视频内容和/或与视频内容相关的元数据。如果视频流32包括视频内容和其他内容,则视频流32可以被称为复合视频流。可以使用数字通信协议和/或接口(例如,hdmi(高清晰度多媒体接口)、sdi(串行数字接口)、displayport、usb(通用串行总线)、firewire(ieee1394)、ip(因特网协议)、udp(用户数据报协议)、tcp(传输控制协议)、rtp(实时传输协议)、aes67(音频工程协会)和avb(音频视频桥接))在设备之间传送视频流32。输入视频流34和/或输出视频流38可以包括和/或可以是由相应视频源20和/或视频目的地28来源和/或接收的模拟视频信号。模拟信号可以通过模数转换器(反之亦然,数模转换器)转换为数字信号。

可以通过物理通信信道(例如,有线或无线连接)在视频源20、视频输入设备22、视频输出设备26和/或视频目的地28之间引导视频流32。附加地或替代地,视频流32可以经由物理通信信道内的逻辑信道(也称为端口)来传输。例如,通信信道可以是根据诸如tcp/ip和/或avb的各种通信协议配置的数字网络信道和/或端口。

视频输入设备22是被配置为从视频源20接收输入视频流34并且被配置为调整输入视频流34以适应由用户12指定的带宽限制和/或带宽受限链路24的带宽限制的设备。针对带宽限制调整的输入视频流34是带宽受限视频流36。如果输入视频流34与带宽限制兼容,则视频输入设备22可以发送输入视频流34作为带宽受限视频流36。视频输入设备22还被配置为经由带宽受限链路24将带宽受限视频流36发送到视频输出设备26。如果视频输入设备22接收到多个输入视频流34,视频输入设备22可以在输入视频流34中选择活动的(或选定的)视频流32以进行处理以产生带宽受限视频流36。视频输入设备22可以包括视频选择器、视频开关和/或视频混合器以选择活动的输入视频流34。如果输入视频流34是复合视频流,则视频输入设备22可以从复合视频流提取和/或分离视频内容用于处理以产生带宽受限视频流36。

带宽受限链路24是视频输入设备22与视频输出设备26之间的物理和/或逻辑通信信道。通常,带宽受限链路24是具有视频能力的网络的一部分。带宽受限链路可以是固定或动态拓扑。例如,带宽受限链路24可以是连接视频输入设备22和视频输出设备26的直接电缆。作为另一示例,带宽受限链路24可以是一个或多个视频输入设备22与一个或多个视频输出设备26之间的数字通信网络。带宽受限链路24可以是avb网络、cobranet网络和/或aes67网络的全部或一部分。

通信信道(无论是物理的还是逻辑的),例如带宽受限链路24,具有带宽限制(最大容量),超过该带宽限制,通信不可能或者显著降低。逻辑端口可以具有独立的带宽限制和/或通信信道内的所有逻辑端口可以具有共享带宽限制。带宽受限链路24是通信信道,其带宽限制通常小于视频传输系统10中其他通信信道的带宽限制。用户12可能希望通过带宽受限链路24来将视频流32的带宽限制到低于带宽受限链路24的最大容量的值。可以限制要通过单个带宽受限链路24传输的多个视频流32的带宽,使得视频流32消耗的总带宽小于带宽受限链路24的最大容量。另外或可选地,一个或多个视频流32的带宽可以被限制为允许相同带宽受限链路24中的其他业务(和/或保留其容量)。使用本公开的系统和方法,用户12可以为每个带宽受限视频流36分配不同的带宽限制(例如,带宽限制可以在每个视频流的基础上分配)。具有较高带宽的视频流32可以是较高质量的视频流32和/或较高带宽限制可以支持较高质量的视频流32。

视频输出设备26是被配置为从视频输入设备22接收带宽受限视频流36并且被配置为调整带宽受限视频流36以从带宽受限视频流36基本上重建输入视频流34的设备。被调整以重建输入视频流34的带宽受限视频流36是输出视频流38。视频输出设备26可以为视频目的地28配置输出视频流38。例如,输出视频流38可以用固定的一组视频参数(例如,图像分辨率、帧速率、颜色深度、颜色编码格式等)和/或与视频目的地28相关联和/或视频目的地28优选的一个或多个视频参数来输出。

视频目的地28是从视频输出设备26接收,呈现(例如,显示),存储和/或传输输出视频流38的设备。例如,视频目的地28可以包括并且可选地可以是,视频监视器、个人计算机、移动电话、视频投影仪、接收器(例如,音频-视频接收器)、视频编码器和/或媒体服务器(例如,视频服务器)。视频目的地28可以接收与输出视频流38的视频内容有关的内容(例如,音频)。相关内容可以在输出视频流38中发送或者经由备用通信信道发送到视频目的地28。

图2是视频传输系统10的视频输入设备22的示意图。视频输入设备22包括视频输入端口42、视频输出端口44和接受来自用户12的输入的设施。例如,视频输入设备22可以包括用户界面以与用户12和/或通信信道交互以接收视频参数和/或带宽限制的选择。在视频输入设备22中,到达视频输入端口42的视频流32被传送(如可选地处理)到视频输出端口44。视频输入设备22可包括一个或多个视频输入端口42和/或一个或多个视频输出端口44。可以在任何视频输入端口42与任何视频输出端口44之间引导视频流32。可以在视频输入设备22内处理视频流32,可以合并多个视频流32,和/或可以复制视频流32。每个视频输入端口42和每个视频输出端口44可以独立地是物理信道(例如,有线或无线连接),或者可以是利用物理信道的通信信道内的逻辑端口。例如,所有视频输入端口42可以是单个通信信道中的逻辑端口。作为另一示例,一些视频输出端口44可以是单个通信信道中的逻辑端口,并且不同的视频输出端口44可以连接到不同的通信信道。

视频输入设备22的传入的、活动的或选定的输入视频流34可以在视频传输系统10的操作期间改变。例如,可以连接具有不同视频参数的两个视频源20,使得每个视频源将相应的输入视频流34提供给视频输入设备22。可以根据需要选择输入视频流34中的任何一个(例如,通过视频输入设备22或通过视频输入设备22上游的开关),导致呈现给视频输入设备22的视频参数变化。因此,视频输入设备22操作的输入视频流34可以在视频传输系统10运行时改变视频参数。本公开的系统和方法被配置为自动调整带宽受限视频流34的视频参数,以在保持带宽限制的同时实现用户定义的最小视频质量。可以选择性地和/或达到实现带宽限制所需的程度来调整视频参数。因此,本公开的系统和方法被配置为在实施带宽限制的同时以最佳或接近最佳的方式基本上保持视频质量。

本公开的系统和方法不依赖于输入视频流的内容类型的先验知识。然而,本公开的系统和方法可以被配置为确定和/或使用输入视频流的内容类型(例如,直播体育、视频会议、演示图形等)以进一步优化图像质量,同时保持在输出带宽限制下输出视频流。

在图2的示例中,视频输入设备22包括若干模块以自动调整输入视频流34的带宽并从视频输出端口44发送带宽受限视频流36。模块包括配置模块60、带宽限制模块62以及至少一个视频调整模块64,用于调整视频流的视频参数。此外,视频输入设备22可以包括视频调整模块64上游的输入调节模块72,其被配置为在输入视频流34由视频调整模块64处理之前调节输入视频流34。

如图2的示例中所示,视频调整模块64可以包括专用于对输入视频流34的视频内容执行独立调整的模块,例如,用于缩放图像分辨率的视频缩放模块66,用于变换帧速率的视频帧速率变换模块68(也称为图像重复率),和/或用于压缩视频流的视频压缩模块70。视频调整模块64可以调整一个或多个视频参数。不同的视频调整模块64可以各自调整不同的视频参数。附加地或替代地,两个视频调整模块64可以调整相同的视频参数(通常以不同的方式或结合视频参数的不同组合)。

每个视频调整模块64对输入到该模块的视频流进行操作,该视频流可以被称为模块操作数视频流和模块输入视频流。模块之一的模块操作数视频流可以是输入视频流34(或(经调节的)输入视频流34,如本文进一步描述的)。这样的视频调整模块64将是视频调整模块64的最上游。例如,图2的示例中的视频缩放模块66是调整模块64的最上游,即使视频缩放模块66可以在输入调节模块72的下游(视频缩放模块66的模块操作数视频流将是从输入调节模块72输出的(经调节的)输入视频流34,如本文中进一步描述的)。

输入调节模块72(如果存在的话)位于视频调整模块64的上游。输入调节模块72接收输入视频流34并产生输入到视频调整模块64的最上游的输入的(经调节的)输入视频流34。在示例配置中,输入调节模块72可以是输入解压缩模块,其被配置为解压缩输入视频流34以产生(未压缩的)输入视频流34。作为另一示例,输入调节模块72可以是输入选择模块,其被配置为选择一个或多个输入视频流34以产生(活动的)输入视频流34(例如,输入选择模块包括视频开关和/或视频混合器)。在关于视频调整模块64使用并且如果存在输入调节模块72的情况下,输入视频流34参考(经调节的)输入视频流34。

级联视频调整模块64,使得视频调整模块64在输入视频流34上串行操作(如果需要)以产生带宽受限视频流36。因此,模块可被称为在其他模块的上游或下游,其中上游模块更靠近视频输入端口42,下游模块更靠近视频输出端口44。尽管视频调整模块64的最上游可以在输入视频流34上操作,但是输入视频流34可以在传输到视频调整模块64的最上游之前,由输入调节模块72进行调节(例如,调整,缓冲,滤波,解压缩,选择,混合,或以其他方式操作)(视频输入端口42与最上游模块之间不需要直接连接)。尽管视频调整模块64的最下游可以产生带宽受限视频流36,但是可以在视频输出端口44呈现之前调整、缓冲、滤波或以其他方式操作从视频调整模块64的最下游输出的视频流(视频输出端口44与视频调整模块64的最下游之间不需要直接连接)。

视频缩放模块66被配置为将图像缩放因子应用于输入到模块的视频流(其可以被称为缩放操作数视频流和缩放输入视频流)以在模块的输出处产生缩放的视频流。缩放的视频流具有通过图像缩放因子缩放的图像分辨率。也就是说,经缩放的输入视频流的图像分辨率是图像缩放因子乘以缩放操作数视频流的图像分辨率。视频缩放模块66通常被配置为在视频流通过模块时降低视频流的图像分辨率。因此,图像缩放因子通常是小于1的值。降低图像分辨率的算法包括下采样(通常周期性地消除像素)和抽取(应用抗混叠滤波器和/或低通滤波器然后下采样)。对于处理速度,图像缩放因子可以限于(和/或应用为)逆整数或整数分数。如果缩放操作数视频流被压缩,则视频缩放模块66可在应用图像缩放因子之前解压缩视频流。视频缩放模块66通常不重新压缩已经解压缩的视频流以应用图像缩放因子。

图像分辨率是单个视频帧中像素数的度量。图像分辨率可以表示为视频帧的高度和宽度(即,图像高度和图像宽度)。附加地或替代地,图像分辨率可以表示为每个视频帧中的像素数,像素的数量是高度乘以宽度。如这里所使用的,因子乘以图像分辨率是因子乘以宽度以及因子乘以高度。因此,相应的像素数是因子平方乘以原始像素数。

如这里所使用的,当比较图像分辨率时,比较是相应高度和宽度的比较的连接(即,逻辑'与'功能)。因此,如果第一图像分辨率的高度小于第二图像分辨率的高度并且第一图像分辨率的宽度小于第二图像分辨率的宽度,则第一图像分辨率小于第二图像分辨率。除非另有说明,否则本公开的系统和方法包括(另外或替代地)通过对应的像素数的其他比较和/或对应的高度和/或宽度的比较来比较图像分辨率(即,单独地,非排他性地分离(即,逻辑'或'功能),或完全分离(即,逻辑'xor(异或)'功能))。例如,表达“第一图像分辨率小于第二图像分辨率”可以用'第一图像分辨率的像素数小于第二图像分辨率的像素数'来代替。作为其他示例,相同的表达可以表示为第一图像分辨率的高度和/或宽度小于第二图像分辨率的相应高度和/或宽度,例如,'第一图像分辨率的高度小于第二图像分辨率的高度'或'第一图像分辨率的高度小于第二图像分辨率的高度或(即,逻辑'或'功能)第一图像分辨率的宽度小于第二图像分辨率的宽度'。

视频帧率变换模块68被配置成将帧率变换因子应用于输入到模块的视频流(可以称为帧变换操作数视频流和帧变换输入视频流),以产生模块输出处的帧缩减视频流。帧缩减视频流具有变换帧速率,该变换帧速率是帧速率变换因子乘以帧变换操作数视频流的帧速率。帧速率变换因子是小于或等于1的值。降低帧速率的算法包括下采样(通常周期性地消除帧)和抽取(应用纠错滤波器和/或低通滤波器然后下采样)。对于处理速度,帧速率变换因子可以限于(和/或应用为)逆整数或整数分数。对于处理速度,由帧速率变换因子引起的变换帧速率可以限于(和/或应用为)整数或整数分数。如果帧变换操作数视频流被压缩,则视频帧速率变换模块68可在应用帧速率变换因子之前解压缩视频流。视频帧速率变换模块68通常不重新压缩已经解压缩的视频流以应用帧速率变换因子。

视频压缩模块70被配置为将压缩因子转换应用于输入到模块的视频流(其可以被称为压缩操作数视频流和压缩输入视频流)以在模块的输出处产生压缩视频流。压缩视频流具有压缩因子,该压缩因子是压缩因子转换乘以压缩操作数视频流的压缩因子。如图2的示例中所示,输入到视频压缩模块70的视频流可以是另一(上游)视频调整模块64的输出。如果上游视频调整模块64已经调整了视频流,则视频流可以是未压缩的(压缩因子为1)。因此,压缩视频流的压缩因子将等于压缩因子转换。

如这里所使用的,压缩因子是输入位流的大小与输出位流的大小的比率。当不存在压缩或未实现压缩时,输入位流与输出位流的大小相同,并且压缩因子是单位(1)。当存在或实现压缩时,输出位流的大小小于输入位流的大小并且压缩因子大于1,较大的值表示更多压缩。对于视频位流,常见的压缩算法可以实现至少2,5,10,20或50的压缩因子。相关参数是压缩比。压缩比是压缩因子的倒数,并且是输出位流的大小与输入位流的大小的比率。本公开的系统和方法可以通过考虑替换的数学逆来使用压缩比来代替压缩因子。

压缩视频流的压缩算法包括(但不限于)h.265/hevc(itu-t和iso/iec),h.264/avc(itu-t和iso/iec),h.263(itu-t),h.261(itu-t),m-jpeg(iso/iec),mpeg-4(iso/iec),mpeg-2(iso/iec),mpeg-1(iso/iec),vp9(谷歌)和vp8(谷歌)。压缩和解压缩视频流的压缩算法可以称为视频编解码器。本领域技术人员认识到如何应用压缩算法来实现给定的压缩因子(例如通过指定目标输出位率)。

压缩算法可以是可变位率算法或恒定位率算法。可变位率算法生成输出位流,其大小取决于输入位流的内容。通常,更复杂的视频图像或片段将导致比不太复杂的视频图像或片段更大的压缩位流。恒定位率算法产生具有基本恒定位率的输出位流。位率不会根据输入的复杂性有实质性变化。然而,恒定位率算法不一定产生精确恒定的位率。帧与帧之间的位率可以变化,但是由于恒定位率算法,方差可能受到限制。一些恒定位率算法可能具有小于50%,20%,10%或5%的帧到帧位率方差。一些恒定位率算法可以将最大位率限制为比标称(或平均)位率小50%,20%,10%或5%。

关于带宽要求的规划,可以将可变位率算法和恒定位率算法的位率估计为算法的最大预期位率。估计的位率和实际位率之间的差异是未被利用的带宽(通过压缩视频;带宽通常仍被媒体流消耗)。因此,通过使用恒定位率算法,特别是具有低位率方差(例如,小于10%)的恒定位率算法,可以促进分配带宽的效率。

视频输入设备22的配置模块60可以被配置为接收对应于带宽限制的目标视频参数的选择。配置模块60可以被配置为基于目标视频参数确定带宽限制和/或可以被配置为接收带宽限制作为目标视频参数的选择的一部分或全部。通常,目标视频参数是对应于视频质量的视频参数。例如,目标视频参数可以包括图像分辨率限制(例如,高度限制、宽度限制和/或像素数限制)、帧速率限制和/或压缩因子限制。目标视频参数可以附加地或替代地包括其他参数,诸如颜色深度,每像素位数和/或颜色编码。此外,配置模块60可以被配置为基于用户对视频类型和/或源的选择来估计和/或确定任何或所有目标视频参数。配置模块60可以包括用户界面以与用户12交互。

图像分辨率限制是最大允许值,并且是由用户12指定、传输或以其他方式提供的值。图像分辨率限制基本上也是用于质量目的的最小可接受图像分辨率。然而,如本文所公开的,如果输入视频流34具有小于图像分辨率限制的图像分辨率(其原始图像分辨率),则本公开的系统和方法将以输入视频流34的原始图像分辨率(小于图像分辨率限制)发送经调整的视频流。也就是说,低分辨率输入视频通常不会在视频输入设备22的输出处被缩放到更高的分辨率。

类似地,如果输入视频流34具有大于图像分辨率限制的图像分辨率,但输入视频流34消耗的带宽(由任何先前视频参数调整(例如,帧速率调整)小于在带宽限制,本公开的系统和方法通常将使用输入视频流34的原始图像分辨率(大于图像分辨率限制)来发送调整后的视频流。也就是说,如果在视频输入设备22的输入处(例如,在视频输入端口42处)和/或视频缩放模块66的输入处超过带宽限制,则高分辨率输入视频可以仅缩放到较低分辨率。在一些实施例中,可能需要在视频输出端口44处维持带宽受限视频流36的图像分辨率(例如,以避免在视频输入设备22下游的呈现设备(例如,视频输出设备26和/或视频目的地28)中的过度模式改变)。在这种情况下,视频缩放模块66可以缩放该缩放操作数视频流,即使不必满足带宽限制也是如此。附加地或替代地,带宽受限视频流36在从视频输出端口44退出之后并且在通过带宽受限链路24传输之后可以被缩放到期望的分辨率。

帧速率限制是最小允许值,并且是由用户12指定、发送或以其他方式提供的值。帧速率限制也基本上是用于质量目的的最小可接受帧速率。然而,如本文所公开的,如果输入视频流34具有小于帧速率限制的帧速率(其原始帧速率),则本公开的系统和方法将以输入视频流34的原始帧速率发送调整后的视频流(小于帧速率限制)。也就是说,低帧率输入视频通常不会在视频输入设备22的输出处被变换为更高的帧速率。

类似地,如果输入视频流34具有大于帧速率限制的帧速率,但输入视频流34消耗的带宽(由任何先前视频参数调整(例如,图像缩放)调整)小于带宽限制,本公开的系统和方法通常将以输入视频流34的原始帧速率(大于帧速率限制)发送调整后的视频流。也就是说,如果在视频输入设备22的输入处(例如,在视频输入端口42处)超过带宽限制,并且在其被转换的情况下,则高帧速率输入视频可以仅被变换为较低帧速率,较低帧速率不低于帧速率限制。在一些实施例中,可能需要在视频输出端口44处维持带宽受限视频流36的帧速率(例如,以避免在视频输入设备22下游的呈现设备(例如视频输出设备26和/或视频目的地28)中的过度模式改变)。在这种情况下,即使不必要满足带宽限制,视频帧速率变换模块68也可以变换帧变换操作数视频流的帧速率。附加地或替代地,带宽受限视频流36在从视频输出端口44退出并通过带宽受限链路24传输之后,可以是变换为期望的帧速率的帧速率。

压缩因子限制是最大允许值,并且是由用户12指定、传输或以其他方式提供的值。压缩因子也基本上是用于质量目的的最大可接受压缩。通常,输入视频流34是未压缩的或者在视频输入设备22和/或第一视频调整模块64的上游经历解压缩。在图2的示例中,视频输入设备22的输入调节模块72可以包括和/或可以是输入解压缩模块,其被配置为如果输入视频流34被压缩则对其进行解压缩。在该示例中输入调节模块72的输出将是(未压缩的)输入视频流34。(未压缩的)输入视频流34是视频输入设备22的视频调整模块64的操作数输入(第一视频调整模块64是视频缩放模块66)。

相对于评估带宽限制和其他视频调整参数(例如,图像分辨率、帧速率等),(未压缩的)输入视频流34消耗的带宽是输入视频流34的相关带宽。例外的是,如果输入视频流34被压缩(大于,等于或小于压缩因子限制)并且视频输入端口42处的输入视频流34具有小于或等于带宽限制的带宽(因此,不需要视频参数调整),则输入视频流34可以从视频输入设备22以原始形式作为带宽受限视频流36发送。如果在视频处输入端口42的输入视频流34(无论是否初始压缩)超过带宽限制,输入视频流34通常在必要时(在到达视频输入端口42之前或之后)被解压缩,并且(未压缩的)输入视频流34是由视频调整模块64(可选地包括视频压缩模块70)操作以实现带宽受限视频流36中的带宽限制。

在计算或估计视频流的带宽(或带宽限制)的情况下,带宽是与图像分辨率对应的像素数、帧速率、与颜色深度和颜色编码格式对应的每像素的位数和压缩比(反压缩因子)的乘积。计算或估计的带宽可以进一步包括考虑开销(例如,传输协议开销、加密开销等)、净空(例如,未填充带宽的预留)和/或共同传输的数据(例如,对应的音频或元数据)的因子或加数。在计算带宽所需的一个或多个值不可用的情况下,可以使用估计值。估计值可以是最坏情况估计值(导致计算和/或估计关于该参数的最大带宽),基于期望的值(例如,特定图像分辨率和帧速率通常可以与特定每像素位数的相关联)或基于先前使用的值。例如,连续色调图像(真实场景和高质量渲染)通常以4:2:0(y':cb:cr)采样以每个分量8位发送,从而产生每像素平均12位,或者以4:2:2(y':cb:cr)采样以每个分量10位发送,导致每像素平均20位。

视频输入设备22的带宽限制模块62被配置成通过视频输入设备22控制视频调整模块64的操作和视频流的路由。带宽限制模块62被配置成确定视频输入设备22的输入视频流的输入带宽是否大于带宽限制(例如,如用户12所定义的)。如果输入带宽小于或等于带宽限制,则带宽限制模块62可以被配置为将输入视频流从视频输入端口42发送到不受影响的视频输出端口44(没有视频参数改变)。附加地或替代地,如果输入带宽小于或等于带宽限制,则带宽限制模块62可以指示视频调整模块64在每个模块上发送视频流而没有任何视频参数改变。如果输入带宽大于带宽限制,则带宽限制模块62指示视频调整模块64选择性地调整视频流的视频参数以实现带宽限制。

带宽限制模块62可确定输入视频流34(或(经调节的)输入视频流34)的视频参数,并从视频输入设备22向视频输出设备26发送所确定的视频参数(和/或诸如输入质量或子集的代理)。例如,所确定的视频参数可以作为元数据嵌入在带宽受限视频流36中。作为另一示例,所确定的视频参数可以通过备用通信信道传送到视频输出设备26。视频参数(和/或诸如视频质量或参数子集的代理)的传输可以促进视频输出设备26处的输入视频流34的恢复。

带宽限制模块62可以被配置为控制输入调节模块72的操作(例如,选择(活动的)输入视频流34,以解压缩输入视频流34来产生(未压缩的)输入视频流34)。如果输入视频流34的输入带宽小于或等于带宽限制,则带宽限制模块62可以指示输入调节模块72使输入视频流34不受影响。

带宽限制模块62结合视频调整模块64的操作通常遵循图3中所示的方法100。带宽限制模块62的一般操作可以表示为while(当)循环:当视频流32的带宽108(bw)大于带宽限制(bwmax)时,计算102一个或多个视频属性110,当应用于视频流时(通过调整视频104的步骤),将使视频流实现带宽限制或将减少(至少不增加)视频流的带宽,同时符合视频参数限制(例如,图像分辨率限制、帧速率限制和/或压缩因子限制)。在图3中,左侧示出了到while循环的输入,右侧示出了输出。在循环内修改的对象(即,视频流32和带宽108)具有水平对齐的输入和输出。尽管图3的示例示出了在同一循环内发生的计算102和调整104,但是方法100可以包括执行计算102以识别对于所有视频参数112要调整的视频参数112和调整量(通过计算102相应的属性110),然后根据由计算102计算的视频参数112和属性110来调整104视频流。

计算102包括接收与一个或多个视频参数相关联的限制、对应视频参数112的当前值以及带宽108的当前值(bw)作为输入。计算102包括确定视频参数112的当前值是否符合相关联的视频参数限制。如果当前值不符合限制,则计算102包括确定减小带宽108的属性110。如果当前值符合限制,则计算102指示while循环传递到下一次迭代或以其他方式引导和/或者指示主题视频参数值(以及关于主题视频参数的视频流32)没有变化。

通常,每遍通过while循环寻址不同的视频参数或视频参数的组合。例如,第一遍可以分析图像分辨率,第二遍可以分析帧速率,第三遍可以分析压缩因子。

作为说明方法100的具体示例,以下讨论详述了方法100,其中分析图像分辨率,然后分析帧速率,然后分析压缩因子。这些方法可以包括接收输入视频流(videoin),输入视频流消耗的带宽(bwin),源自用户的带宽限制(bwmax),以及源自用户的视频参数限制(limits)。对于此示例,视频参数限制包括图像分辨率限制、帧速率限制和压缩因子限制。出于示例的目的,输入视频流具有大于带宽限制的带宽,并且输入视频参数中的至少一个不符合相应的限制。具体地,输入图像分辨率大于图像分辨率限制,输入帧速率大于帧速率限制,和/或输入压缩因子小于压缩因子限制。并非所有到视频传输系统的输入视频流都需要超过带宽限制。本公开的系统和方法适于在不修改视频流的情况下发送符合带宽限制的输入视频流。

输入while循环是因为输入视频流的带宽大于带宽限制。在while循环的第一遍中(也称为该方法的第一级),计算102将输入视频流的输入图像分辨率与图像分辨率限制进行比较。如果输入图像分辨率小于或等于图像分辨率限制,则计算102可以提供等于输入图像分辨率的第一级图像分辨率,或者可以以其他方式使得while循环迭代和/或指示视频流32的图像分辨率不需要调整。例如,计算102可以包括确定第一级图像分辨率并提供第一级图像分辨率作为其输出(属性110)。确定的第一级图像分辨率小于或等于图像分辨率限制,并且等于输入图像分辨率(因为输入图像分辨率小于或等于图像分辨率限制),或者,如果输入图像分辨率大于图像分辨率限制,则等于缩放的图像分辨率。

缩放的图像分辨率是图像缩放因子(小于1的值)乘以输入图像分辨率。可以使用对应于输入图像分辨率的输入宽度、输入高度和/或输入像素数以及对应于图像分辨率限制的相应宽度限制、高度限制和/或像素数限制来计算图像缩放因子。例如,图像缩放因子可以是宽度限制与输入宽度的比率以及图像高度限制与输入图像高度的比率中的最小值。作为另一示例,图像缩放因子可以是像素数限制与输入像素数的比率的平方根。通过选择小于或等于初始计算的比例因子的最大允许值,图像缩放因子可以进一步限于几个允许值之一(例如,逆整数)。因此,由第一遍的计算102得到的图像缩放因子(即,第一遍的输出属性110)乘以输入图像分辨率得到至多等于图像分辨率限制的图像分辨率。

一旦确定了第一级图像分辨率,就可以计算将由应用第一级图像分辨率产生或确实产生的视频流32的第一级带宽。基于如本文所述的第一级图像分辨率和输入帧速率来计算第一级带宽。第一级带宽通常基于压缩因子单位(无压缩)来计算,使得可以仅在后续阶段中根据需要应用压缩。然而,可以基于输入的压缩因子来计算第一级带宽。可以基于输入视频流中的每像素的位数来计算第一级带宽。第一级带宽表示为带宽108,并成为while循环的下一遍的输入。

在while循环的下一遍(方法100的第二级)中,将输入带宽(第一级带宽)与带宽限制进行比较。如果第一级带宽大于带宽限制,则计算102将输入视频流的输入帧速率(如果在第一级中调整,则与调整后的视频流32的帧速率相同)与帧速率限制进行比较。如果输入帧速率小于或等于帧速率限制,则计算102可以提供等于输入帧速率的第二级帧速率,或者可以以其他方式使得while循环迭代和/或指示视频流32的帧速率不需要调整。例如,计算可以包括确定第二级帧速率并提供第二级帧速率作为其输出(属性110)。确定的第二级帧速率等于输入帧速率(因为输入帧速率小于或等于帧速率限制),或者如果输入帧速率大于帧速率限制,则确定的第二级帧速率等于变换帧速率,该变换帧速率小于输入帧速率且大于或等于帧速率限制。

变换后的帧速率是帧速率变换因子(小于1的值)乘以输入帧速率。可以使用带宽限制和第一级带宽(其包括第一级图像分辨率)来计算帧速率变换因子。例如,初始帧速率变换因子可以是带宽限制与第一级带宽的比率。作为另一示例,初始帧速率变换因子可以是带宽限制与对应于第一级图像分辨率的像素数、输入帧速率和输入视频流中的每像素位数的乘积之比。最小变换帧速率是帧速率限制。因此,帧速率变换因子是初步帧速率变换因子以及帧速率限制与输入帧速率的比率中的最大值(例如,如上所述)。通过选择小于或等于初始计算的变换帧速率并且大于或等于帧速率限制的最大允许值,变换后的帧速率可以进一步限制为几个允许值之一(例如,每秒整数帧数)。因此,由第二遍的计算102(即,第二遍的输出属性110)产生的第二级帧速率至少与帧速率限制一样大,除非输入帧速率小于帧速率限制。

一旦确定了第二级帧速率,就可以计算将由应用第二级帧速率产生或者确实由应用第二级帧速率产生的视频流32的第二级带宽。基于如本文所述的第二级帧速率和第一级图像分辨率来计算第二级带宽。通常基于压缩因子单位(无压缩)来计算第二级带宽,使得可以仅在后续阶段中根据需要应用压缩。然而,可以基于输入的压缩因子来计算第二级带宽。可以基于输入视频流中的每像素的位数来计算第二级带宽。第二级带宽表示为带宽108,并成为while循环的下一遍的输入。

在while循环的下一遍(方法100的第三级)中,将输入带宽(第二级带宽)与带宽限制进行比较。如果第二级带宽大于带宽限制,则计算102将输入压缩因子(或者如果视频流未压缩或在先前步骤中已经解压缩,则为1)与压缩因子限制进行比较。如果输入压缩因子(或单位)小于或等于压缩因子限制(通常将在方法100不包括任何其他阶段来调整其他视频参数的情况下如此),则计算102可以提供第三级压缩因子,该第三级压缩因子大于或等于第二级带宽与带宽限制的比率并且小于或等于压缩因子限制。附加地或替代地,计算102可以提供第三级压缩因子转换,其是第三级压缩因子与输入压缩因子(或单位)的比率。通过选择小于或等于初始计算的压缩比(并且因此小于或等于压缩系数限制)的最大允许值,压缩因子可以进一步限于几个允许值之一(例如,选择用于压缩视频流的算法的可获得的压缩因子)。

在经过这三个阶段之后,该示例的方法100产生视频参数(图像分辨率、帧速率和压缩因子),当应用于输入视频流时,产生带宽受限视频流,其带宽近似等于或小于带宽限制。

方法100可以包括通过应用利用计算102计算的视频参数来调整104输入视频流以产生带宽受限视频流(videoout)。调整104可以包括操作和/或使用图2的视频调整模块64,例如视频缩放模块66、视频帧速率变换模块68和/或视频压缩模块70。

在先前示例的术语中,调整104可以包括根据第一级图像分辨率进行缩放,根据第二级帧速率变换帧速率(如果第一级带宽大于带宽限制),以及根据第三级压缩因子压缩(如果第二级带宽大于带宽限制)。调整104可以包括将输入视频流缩放到第一级图像分辨率以形成具有第一级图像分辨率的缩放视频流。如果不需要更多调整来满足带宽限制,则可以将经缩放的视频流作为带宽受限视频流来发送。调整104可以包括将经缩放的视频流变换为第二级帧速率以形成具有第一级图像分辨率和第二级帧速率的变换视频流。如果不需要更多调整来满足带宽限制,则可以将经变换的视频流作为带宽受限视频流来发送。调整104可以包括将变换后的视频流压缩为第三级压缩因子,以形成具有第一级图像分辨率、第二级帧速率和第三级压缩因子的带宽受限视频流。

图4是视频传输系统10的视频输出设备26的示意图。视频输出设备26包括视频输入端口52和视频输出端口54,并且可以包括接受来自用户12的输入的设施。例如,视频输出设备26可以包括用户界面以与用户12和/或通信信道交互以接收指定的输出视频参数。附加地或替代地,视频输出设备26可以与视频目的地28通信以接收指定的输出视频参数(例如,用于视频目的地28的操作的优选的,兼容的和/或强制的视频参数)。在视频输出设备26中,到达视频输入端口52的带宽受限视频流36被传送(如可选地处理)到视频输出端口54。视频输出设备26可包括一个或多个视频输入端口52和/或一个或多个视频输出端口54。视频流32可以被引导在任何视频输入端口52和任何视频输出端口54之间。可以在视频输出设备26内处理视频流32,可以合并多个视频流32,和/或视频流32可以被复制。每个视频输入端口52和每个视频输出端口54可以独立地是物理信道(例如,有线或无线连接),或者可以是利用物理信道的通信信道内的逻辑端口。例如,所有视频输入端口52可以是单个通信信道中的逻辑端口。作为另一示例,一些视频输出端口54可以是单个通信信道中的逻辑端口,并且不同的视频输出端口54可以连接到不同的通信信道。

视频输出设备26的输出的、活动的或选定的输出视频流38(例如,连接到活动或选择的视频目的地28)可以在视频传输系统10的操作期间改变。例如,具有不同视频参数的两个视频目的地28可以连接,使得每个可以接收相应的输出视频流38。可以根据需要选择输出视频流38中的任一个(例如,通过视频输出设备26或通过视频输出设备26下游的开关),导致用于兼容输出视频流38的变化的优选、兼容和/或强制的视频参数。通常,视频输出设备26被配置为向输出视频流38呈现视频参数的固定集合(或子集)(例如,对于特定的一个或多个视频目的地28优选的、兼容的和/或强制的视频参数)。

输出视频流38的视频参数通常基于视频目的地28和/或输入视频流34的视频参数来确定。输出视频流38的视频参数可能不受带宽受限视频36的视频参数的影响。视频输出设备26通常将视频变换应用于带宽受限视频流36,以基本上利用与视频目的地28兼容的视频参数重建(或基本上恢复)输入视频流34。在输出视频流38的上下文中基本上重建或者恢复意味着以适合于视频目的地28的方式再现输入视频流34的视频内容(例如,具有对于视频目的地28优选、兼容和/或强制的视频参数)。在一些实施例中,基本上重建或恢复的输入视频流34(即,由视频输出设备26产生的输出视频流38)可以具有与输入视频流34相同的视频参数。输出视频流38可以具有比输入视频流34较低的质量,特别是如果视频输入设备22的变换不是无损的和/或视觉上无损的。

视频输出设备26包括若干模块以自动调整带宽受限视频流36的视频参数并从视频输出端口54发送输出视频流38。模块包括输出配置模块80、输出恢复模块82,以及至少一个输出视频调整模块84,用于调整视频流的视频参数。

如图4的示例中所示,输出视频调整模块84可以包括专用于对带宽受限视频流36的视频内容执行独立调整的模块,例如,用于解压缩视频流的输出视频解压缩模块86,用于变换帧速率的输出视频帧速率变换模块88,和/或用于缩放图像分辨率的输出视频缩放模块90。输出视频调整模块84可以调整一个或多个视频参数。不同的输出视频调整模块84可以各自调整不同的视频参数。附加地或替代地,两个输出视频调整模块84可以调整相同的视频参数(通常以不同的方式或结合视频参数的不同组合)。

通常,输出视频调整模块84用于变换视频输入设备22可以操作的相同视频参数。此外,输出视频调整模块84被配置和操作以通常反转由视频输入设备22施加的变换。例如,图4中的输出视频调整模块84被布置为解压缩,帧速率变换和缩放视频内容(由图2的视频输入设备22的视频调整模块64应用的相同变换)。另外,图4的输出视频调整模块84以与图2的视频调整模块64相反的顺序布置。因此,通过首先缩放(如果需要),接着帧速率变换(如果需要),然后压缩(如果需要),视频传输系统10可以被配置为将输入视频流34变换为带宽受限视频流36。然后,视频传输系统10可以通过首先解压缩(如果需要),接着帧速率变换(如果需要),然后缩放(如果需要),将带宽受限视频流36变换成输出视频流38。与视频调整模块64类似,每个输出视频调整模块84对输入到该模块的视频流进行操作,该视频流可以被称为模块操作数视频流和模块输入视频流。

输出视频调整模块84级联,使得输出视频调整模块84在带宽受限视频流36上串行操作(如果需要)以产生输出视频流38。因此,模块可被称为在其他模块的上游或者下游,其中上游模块更靠近视频输入端口52,下游模块更靠近视频输出端口54。尽管输出视频调整模块84的最上游可以在带宽受限视频流36上操作,在传输到输出视频调整模块84的最上游之前,可以调整、缓冲,滤波或以其他方式操作带宽受限视频流36(视频输入端口52和最上游模块之间不需要直接连接)。尽管输出视频调整模块84的最下游可以产生输出视频流38,但是输出视频调整模块84的最下游输出的视频流可以在视频输出端口54处呈现之前被调整、缓冲、滤波、压缩或以其他方式操作(视频输出端口54与输出视频调节模块84的最下游之间不需要直接连接)。

输出视频解压缩模块86被配置成解压缩输入到模块的操作数视频流,以在模块的输出端产生未压缩的视频流。如图4的示例中所示,输入到视频压缩模块86的视频流通常是带宽受限视频流36。解压缩操作数视频流的算法包括与压缩算法的示例相关联的解压缩算法。本领域技术人员认识到如何选择和应用合适的解压缩算法来解压缩给定的压缩视频流。

输出视频帧速率变换模块88被配置为将帧速率变换因子应用于输入到模块的操作数视频流,以在模块的输出处产生帧扩展视频流。帧扩展视频流具有变换的帧速率,其通常大于操作数视频流的帧速率。变换的帧速率可以是输入视频流34的帧速率和/或视频目的地28的优选的、兼容的和/或强制的帧速率。用于增加帧速率的算法包括复制帧和帧之间的内插。输出视频帧速率变换模块88可以被配置为在模块的输出处产生帧缩减视频流。

输出视频缩放模块90被配置为将图像缩放因子应用于输入到模块的操作数视频流,以在模块的输出处产生经缩放的视频流。输出视频缩放模块90通常被配置为在视频流通过模块时增加视频流的图像分辨率。因此,图像缩放因子通常是大于1的值。增加图像分辨率的算法包括复制,内插(例如,双线性,双三次等),重采样(例如,lanczos重采样)。

视频输出设备26的输出配置模块80可以被配置为接收对输出视频流38和/或视频目的地28优选、兼容和/或强制(或以其他方式适合)的目标输出视频参数的选择。输出配置模块80可以被配置为基于输入视频流34的视频参数、质量和/或内容类型来确定目标输出视频参数(如由视频输入设备22传送的,例如,在带宽受限视频流36和/或通过备用通信信道,和/或由用户12)。附加地或替代地,输出配置模块80可以被配置为基于与视频目的地28的通信来确定目标视频参数。输出配置模块80可以包括用户界面以与用户12交互。

视频输出设备26的输出恢复模块82被配置成控制输出视频调整模块84的操作和视频流通过视频输出设备26的路由。输出恢复模块82被配置成确定是否需要调整带宽受限视频流36以满足输出视频流38的目标输出视频参数。输出恢复模块82可以被配置为按顺序应用输出视频调整模块84并且使用适当的变换参数来基本上由带宽受限视频流36重建输入视频流34。如果视频输入设备22的变换是无损或视觉无损的,则重建可以产生与输入视频流34相同的视频内容,或者可以产生在视觉上与输入视频流34的视频内容无法区分的视频内容。

图5示意性地表示可用于实现和/或实例化视频传输系统10及其组件的计算机化系统200,例如视频源20、视频输入设备22、视频输出设备26、视频目的地28、配置模块60、带宽限制模块62、视频调整模块64、视频缩放模块66、视频帧率变换模块68、视频压缩模块70、输入调节模块72、输出配置模块80、输出恢复模块82、输出视频调整模块84、输出视频解压缩模块86、输出视频帧速率变换模块88和输出视频缩放模块90。计算机化系统200包括处理单元202,处理单元202可通过通信基础设施210可操作地耦合到计算机可读存储器206。处理单元202可以包括一个或多个计算机处理器204,并且可以包括分布式计算机处理器组204。处理单元202可以包括可编程的、可重新配置的和/或专用的硬件,或者可以在其上实现,例如现场可编程门阵列、数字信号处理器和/或专用集成电路。

计算机化系统200还可以包括计算机可读存储介质组件212,其例如通过通信基础设施210可操作地耦合到处理单元202和/或计算机可读存储器206。计算机可读存储介质组件212可以包括一个或多个非暂时性计算机可读存储介质214,并且可以包括分布式的非暂时性计算机可读存储介质组214。

通信基础设施210可以包括本地数据总线、通信接口和/或网络接口。通信基础设施210可以被配置为发送和/或接收信号,例如电信号、电磁信号、光信号和/或声信号。通信基础设施210可以包括视频输入端口42和/或视频输出端口44。附加地或替代地,视频输入端口42和/或视频输出端口44可以是通信协议(例如,网络通信协议)内的逻辑端口。

计算机化系统200可以包括可操作地耦合到处理单元202、计算机可读存储器206和/或计算机可读存储介质组件212的一个或多个输入输出设备216。输入输出设备216通常被配置用于用户交互并且可以被配置用于视觉、音频和/或触觉输入和/或输出。每个输入输出设备216可以独立地配置为仅输入、仅输出、主要是输入、主要是输出、和/或输入和输出的组合。输入输出设备216的示例包括监视器(例如,视频监视器)、显示器(例如,字母数字显示器、灯和/或led)、键盘、指示设备(例如,鼠标)、触摸屏、扬声器和蜂鸣器。

计算机化系统200可以包括分布式计算机组、服务器、工作站等,每个可以直接或间接地(包括通过网络连接)互连。因此,计算机化系统200可以包括彼此远离的一个或多个处理单元202、计算机可读存储器206、计算机可读存储介质组件212和/或输入输出设备216。

计算机可读存储器206和计算机可读存储介质组件212中的一个或两个包括控制逻辑220和/或数据222。控制逻辑220(其也可以称为软件、固件、网关和/或硬件)可以包括当由处理单元202执行时使计算机化系统200执行本文描述的一个或多个方法的指令。控制逻辑220可以包括配置模块60、带宽限制模块62、视频调整模块64、视频缩放模块66、视频帧速率变换模块68、视频压缩模块70、输入调节模块72、输出配置模块80、输出恢复模块82、输出视频调整模块84、输出视频解压缩模块86、输出视频帧率变换模块88和输出视频缩放模块90中的一个或多个。数据222可包括视频参数限制、输入视频参数、带宽受限视频参数和/或与本文描述的模块和/或方法相关联的数据。

在将设备、模块和/或方法描述为执行一个或多个功能的情况下,相应的设备和/或模块被配置(例如,编程)以执行功能。相应的设备和/或模块可以包括配置(例如,编程)为当通过处理单元202或由计算机化系统200以其它方式操作程序、代理、服务和/或组件时执行功能的一个或多个程序、代理、服务和/或组件。控制逻辑220和/或数据222可包括与程序、代理、服务和/或组件相对应的指令和/或信息。

根据本公开的发明主题的实例在以下列举的段落中描述。

a1.一种用于在带宽受限视频传输系统中实施带宽限制的方法,该方法包括:

从用户接收图像分辨率限制、帧速率限制和压缩因子限制的选择;

接收带宽限制或可替代地基于图像分辨率限制、帧速率限制和压缩因子限制来计算带宽限制;

接收具有输入图像分辨率、输入帧速率和输入压缩因子的输入视频流,并且其中以下中的至少之一:输入图像分辨率大于图像分辨率限制,输入帧速率大于帧速率限制,输入压缩因子小于压缩因子限制;

确定第一级图像分辨率小于或等于图像分辨率限制,其中第一级图像分辨率等于输入图像分辨率,或者如果输入图像分辨率大于图像分辨率限制,则第一级图像分辨率等于缩放的图像分辨率,所述缩放的图像分辨率是图像缩放因子乘以输入图像分辨率;

基于第一级图像分辨率和输入帧速率并且任选地基于输入压缩因子来计算第一级带宽;

如果第一级带宽大于带宽限制,则:

确定第二级帧速率等于输入帧速率,或者如果输入帧速率大于帧速率限制,则确定第二级帧速率是大于或等于帧速率限制的变换帧速率,所述变换帧速率是帧速率变换因子乘以输入帧速率;

基于第一级图像分辨率和第二级帧速率并且任选地基于输入压缩因子来计算第二级带宽;以及

如果第二级带宽大于带宽限制,则确定第三级压缩因子大于或等于第二级带宽与带宽限制的比率,并且小于或等于压缩因子限制;以及

如果第一级带宽大于带宽限制,则通过根据第一级图像分辨率缩放来调整输入视频流以产生带宽受限视频流,根据第二级帧速率变换帧速率,如果第二级带宽大于带宽限制,则根据第三级压缩因子进行压缩。

a1.1.段落a1的方法,其中接收输入视频流和调整输入视频流是利用带宽受限视频传输系统的视频输入设备来执行的。

a2.段落a1-a1.1中任一段的方法,其中所述输入视频流是输入压缩因子为1的未压缩视频流。

a3.段落a1-a2中任一段的方法,其中接收输入视频流包括接收压缩因子大于1的压缩视频流,并解压缩压缩视频流以形成输入压缩因子为1的输入视频流。

a4.段落a1-a3中任一段的方法,还包括确定输入视频流的输入带宽大于带宽限制。

a5.段落a1-a4中任一段的方法,其中第一级带宽大于带宽限制,并且可选地,其中第二级带宽大于带宽限制。

a6.段落a1-a5中任一段的方法,其中图像分辨率限制包括图像宽度限制和图像高度限制,其中输入图像分辨率包括输入图像宽度和输入图像高度,并且其中确定第一级图像分辨率包括通过计算图像宽度限制与输入图像宽度的比率以及图像高度限制与输入图像高度的比率中的最小值来确定图像缩放因子。

a7.段落a1-a6中任一段的方法,其中图像分辨率限制包括像素数限制并且输入图像分辨率包括输入像素数,并且其中确定第一级图像分辨率包括通过计算像素数限制与输入像素数之比的平方根来确定图像缩放因子。

a8.段落a1-a7中任一段的方法,其中确定第二级帧速率包括通过计算带宽限制与第一级带宽的比率来确定帧速率变换因子。

a9.段落a1-a8中任一段的方法,其中输入视频流具有每像素输入位数,其中第一级图像分辨率包括第一级像素数,其中确定第二级帧速率包括通过计算带宽限制与第一级像素数、输入帧速率和每像素输入位数的乘积之比来确定帧速率变换因子。

a10.段落a1-a9中任一段的方法,其中调整输入视频流包括将输入视频流缩放到第一级图像分辨率以形成具有第一级图像分辨率的缩放视频流,并且可选地其中缩放的视频流是带宽受限视频流。

a10.1.段落a10的方法,其中调整输入视频流包括将缩放的视频流变换为第二级帧速率以形成具有第一级图像分辨率和第二级帧速率的变换后的视频流,并且可选地其中变换后的视频流是带宽受限视频流。

a10.1.1.段落a10.1的方法,其中调整输入视频流包括将变换后的视频流压缩为第三级压缩因子以形成具有第一级图像分辨率、第二级帧速率以及第三级压缩因子的带宽受限视频流。

a11.使用带宽受限视频传输系统的视频输入设备来执行段落a1-a10.1.1中任一段的方法。

a12.带宽受限视频传输系统,包括:

计算机可读存储器;

处理单元,可操作地耦合到计算机可读存储器;以及

计算机可读存储介质组件,其中计算机可读存储介质组件可操作地耦合到计算机可读存储器,并且包括当由处理单元执行时使系统执行段落a1-a10.1.1.中任一段的方法的指令。

b1.一种用于在带宽受限视频传输系统中实施带宽限制的方法,该方法包括:

从用户接收图像分辨率限制、帧速率限制和压缩因子限制的选择;

接收带宽限制或可替代地根据图像分辨率限制、帧速率限制和压缩因子限制计算带宽限制;

接收具有输入图像分辨率、输入帧速率和输入压缩因子的输入视频流,并且其中以下中的至少之一:输入图像分辨率大于图像分辨率限制,输入帧速率大于帧速率限制,输入压缩因子小于压缩因子限制;以及

通过以下至少一个来减小输入视频流的带宽以产生带宽受限视频流:

确定输入视频流的输入带宽大于带宽限制并且输入图像分辨率大于图像分辨率限制,确定小于或等于图像分辨率限制的第一级图像分辨率并且第一级图像分辨率是图像缩放因子乘以输入图像分辨率,基于第一级图像分辨率和输入帧速率并且任选地基于输入压缩因子来计算第一级带宽,并根据第一级图像分辨率缩放输入视频流以产生缩放的视频流;

确定第一级带宽大于带宽限制并且输入帧速率大于帧速率限制,确定小于或等于帧速率限制的第二级帧速率,并且第二级帧速率是帧速率变换因子乘以输入帧速率,基于第一级图像分辨率和第二级帧速率并且任选地基于输入压缩因子来计算第二级带宽,并将缩放的视频流变换为第二级帧速率以产生经缩放的变换视频流;

确定第二级带宽大于带宽限制,确定大于或等于第二级带宽与带宽限制的比率且小于或等于压缩因子限制的第三级压缩因子,并根据第三级压缩因子压缩所述经缩放的变换视频流,以产生带宽小于带宽限制的带宽受限视频流。

b1.1.段落b1的方法,其中利用带宽受限视频传输系统的视频输入设备来执行接收输入视频流并减小输入视频流的带宽。

b2.段落b1-b1.1中任一段的方法,其中所述输入视频流是输入压缩因子为1的未压缩视频流。

b3.段落b1-b2中任一段的方法,其中接收所述输入视频流包括:接收压缩因子大于1的压缩视频流,并解压缩所述压缩视频流以形成所述输入压缩因子为1的输入视频流。

b4.段落b1-b3中任一段的方法,其中所述图像分辨率限制包括图像宽度限制和图像高度限制,其中所述输入图像分辨率包括输入图像宽度和输入图像高度,并且其中确定所述第一级图像分辨率包括通过计算图像宽度限制与输入图像宽度的比率以及图像高度限制与输入图像高度的比率中的最小值来确定图像缩放因子。

b5.段落b1-b4中任一段的方法,其中所述图像分辨率限制包括像素数限制,并且所述输入图像分辨率包括输入像素数,并且其中,确定所述第一级图像分辨率包括通过以下方式确定所述图像缩放因子:计算像素数限制与输入像素数之比的平方根。

b6.段落b1-b5中任一段的方法,其中确定第二级帧速率包括通过计算带宽限制与第一级带宽的比率来确定帧速率变换因子。

b7.段落b1-b6中任一段的方法,其中所述输入视频流具有每像素输入位,其中所述第一级图像分辨率包括第一级像素数,其中所述确定所述第二级帧速率包括通过计算带宽限制与第一级像素数、输入帧速率和每像素输入位的乘积之比来确定帧速率变换因子。

b8.使用带宽受限视频传输系统的视频输入设备来执行段落b1-b7中任一段的方法。

b9.一种带宽受限视频传输系统,包括:

计算机可读存储器;

可操作地耦合到计算机可读存储器的处理单元;以及

计算机可读存储介质组件,其中计算机可读存储介质组件可操作地耦合到计算机可读存储器,并且包括当由处理单元执行时使系统执行段落b1-b7中的任何一个的方法的指令。

c1.一种带宽受限视频传输系统中的视频输入设备,该视频输入设备包括:

视频输入端口,用于接收输入视频流,所述输入视频流具有输入图像分辨率、输入帧速率、输入压缩因子和输入带宽;

视频输出端口,用于传输带宽受限视频流;

配置模块,被编程为接收图像分辨率限制、帧速率限制和压缩因子限制的选择,其中配置模块被编程为执行以下中的至少一个:(a)接收带宽限制的选择,以及(b)根据图像分辨率限制、帧速率限制和压缩因子限制来确定带宽限制;

视频缩放模块,被编程为将图像缩放因子应用于缩放的操作数视频流以产生缩放视频流,其中所述缩放的视频流具有缩放图像分辨率,所述缩放图像分辨率是图像缩放因子乘以缩放操作数视频流的图像分辨率;

视频帧速率变换模块,被编程为将帧速率变换因子应用于帧变换操作数视频流以产生帧缩减视频流,其中帧缩减视频流具有变换帧速率,所述变换帧速率是帧速率变换因子乘以帧变换操作数视频流的帧速率;

视频压缩模块,被编程为将压缩因子转换应用于压缩操作数视频流以产生压缩视频流,其中所述压缩视频流具有压缩后的压缩因子,所述压缩后的压缩因子是压缩因子转换乘以所述压缩操作数视频流的压缩因子;以及

带宽限制模块,被编程为确定输入视频流的输入带宽是否大于带宽限制并且通过以下方式限制输入视频流的输入带宽:

确定小于或等于图像分辨率限制的第一级图像分辨率,其中第一级图像分辨率等于输入图像分辨率,或者如果输入图像分辨率大于图像分辨率限制,则第一级图像分辨率等于缩放图像分辨率,所述缩放图像分辨率是图像缩放因子乘以输入图像分辨率;

基于所述第一级图像分辨率和输入帧速率并且任选地基于输入压缩因子来计算第一级带宽;

如果第一级带宽大于带宽限制,则:

确定第二级帧速率等于输入帧速率,或者,如果输入帧速率大于帧速率限制,则第二级帧速率等于变换后的帧速率,所述变换后的帧速率是帧速率变换因子乘以输入帧速率并且大于或等于帧速率限制;

基于第一级图像分辨率和第二级帧速率并且任选地基于输入压缩因子来计算第二级带宽;以及

如果第二级带宽大于带宽限制,则确定第三级压缩因子大于或等于第二级带宽与带宽限制的比率,并且小于或等于压缩因子限制;以及

如果第一级带宽大于带宽限制,则通过利用视频缩放模块根据第一级图像分辨率缩放来调整输入视频流以产生带宽受限视频流,使用视频帧速率变换模块根据第二级帧速率变换帧速率,如果第二级带宽大于带宽限制,则利用视频压缩模块根据第三级压缩因子进行压缩。

c2.段落c1的视频输入设备被编程以执行段落a1-a10.1.1或段落b1-b7中任一段的方法。

c3.段落c1-c2中任一段的视频输入设备,还包括计算机可读存储器、可操作地耦合到计算机可读存储器的处理单元以及计算机可读存储介质组件,其中计算机可读存储介质组件是可操作地耦合到计算机可读存储器,并且包括配置模块、视频缩放模块、视频帧速率变换模块、视频压缩模块和带宽限制模块。

c4.一种带宽受限视频传输系统,包括:

如段落c1-c3中任一段落所述的视频输入设备;以及

视频输出设备,通过带宽受限链路连接到所述视频输入设备,其中所述视频输出设备包括:

输出设备视频输入端口,用于通过所述带宽受限链路从视频输入设备接收带宽受限视频流;

输出设备视频输出端口,用于发送配置为由视频目的地接收的输出视频流;

输出视频解压缩模块,被编程为解压缩带宽受限视频流以产生未压缩视频流;

输出帧速率变换模块,被编程为将输出帧速率变换因子应用于所述未压缩视频流,以产生未压缩的帧变换视频流;以及

输出视频缩放模块,被编程为将输出图像缩放因子应用于未压缩的帧变换视频流以产生输出视频流。

c4.1.段落c4的系统,其中视频输出设备还包括输出恢复模块,其被编程为基于带宽受限视频流的帧速率和视频目的地的所选帧速率来确定输出帧速率变换因子,并且可选地,其中带宽受限视频流的帧速率是第二级帧速率。

c4.2.段落c4-c4.1中任一段的系统,其中视频输出设备还包括一个/该输出恢复模块,其被编程为基于带宽受限视频流和视频目的地的所选视频流的图像分辨率来确定输出图像缩放因子,并且可选地,其中带宽受限视频流的图像分辨率是第一级图像分辨率。

c4.3.段落c4-c4.2中任一段的系统,其中视频输入设备被编程为将输入质量信息发送到视频输出设备,其中输入质量信息包括输入图像分辨率、输入帧速率、输入压缩因子和输入带宽中的至少一个,其中视频输出设备被编程为从视频输入设备接收输入质量信息。

c4.3.1.段落c4.3的系统,其中视频输出设备还包括一个/该输出恢复模块,其被编程为基于输入帧速率来确定输出帧速率变换因子。

c4.3.2.段落c4.3-c4.3.1中任一段的系统,其中视频输出设备还包括一个/所述输出恢复模块,其被编程为基于输入图像分辨率来确定输出图像缩放因子。

如本文所使用的,术语“适应”和“配置”意味着元件、组件或其他主题被设计和/或旨在执行给定功能。因此,术语“适应”和“配置”的使用不应被解释为意指给定元素、组件或其他主题仅仅“能够”执行给定功能,但是元素、组件和/或其他主题为了执行功能而被具体选择、创建、实现、利用、编程和/或设计。被叙述为适于执行特定功能的元件、组件和/或其他引用的主题可以附加地或替代地被描述为被配置为执行该功能也在本公开的范围内,反之亦然。类似地,被描述为被配置为执行特定功能的主题可以附加地或替代地被描述为可以执行该功能。

如本文所使用的,短语“例如”,短语“作为示例”和/或简称为“示例”,当参考根据本公开的一个或多个组件、特征、细节、结构、实施例和/或方法使用时,旨在表达所描述的组件、特征、细节、结构、实施例和/或方法是根据本公开的组件、特征、细节、结构、实施例和/或方法的示例的说明性的非排他性示例。因此,所描述的组件、特征、细节、结构、实施例和/或方法不旨在限制,要求或排他/穷举;并且其他组件、特征、细节、结构、实施例和/或方法,包括结构上和/或功能上相似和/或等同的组件、特征、细节、结构、实施例和/或方法,也在本公开的范围内。

如本文所使用的,在提到一个以上实体的列表时,短语“至少一个”和“一个或多个”,表示实体列表中的任何一个或多个实体,并且不限于实体列表中具体列出的每个实体中的至少一个。例如,“a和b中的至少一个”(或者等同地,“a或b中的至少一个”,或者等同地,“a和/或b中的至少一个”)可以指单独的a,单独的b,或a和b的组合。

如这里所使用的,单数形式“一”、“一个”和“该”也可以包括复数形式,除非上下文另有明确说明。

如果任何专利、专利申请或其他参考文献通过引用并入本文,并且(1)以与本公开的非并入部分或任何其它并入的参考文献不一致和/或(2)由于其它原因与本公开的非并入部分或任何其它并入的参考文献不一致的方式定义术语,则应当以本公开的非并入部分为准,并且其中的术语或结合的公开内容仅应当以对于定义该术语的参考文献和/或最初存在所结合的公开内容为准。

工业实用性

这里公开的系统和方法适用于通信、娱乐和视频制作行业。

本公开的所有系统和方法不需要本文公开的系统的各种公开元件和方法步骤,并且本公开包括本文公开的各种元件和步骤的所有新颖和非显而易见的组合和子组合。此外,本文公开的各种元件和步骤中的任何元件和步骤或者各种元件和/或步骤的任何组合可以限定独立于整个公开的系统或方法的独立的发明主题。因此,不要求这样的发明主题与本文明确公开的具体系统和方法相关联,并且这样的发明主题可以在本文未明确公开的系统和/或方法中找到用途。

据信,以下权利要求特别指出了针对所公开的发明之一的某些组合和子组合,并且是新颖且非显而易见的。可以通过在本申请或相关申请中修改本权利要求或提出新权利要求来要求在特征、功能、元件和/或属性的其他组合和子组合中体现的发明。这些修改的权利要求或新的权利要求,无论是针对不同的发明还是针对相同的发明,无论是与原始权利要求的范围不同,更宽,更窄还是相同,也被认为包括在本公开的发明的主题内。

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