本申请涉及网络上的数据的分布式处理,其中在客户端网络节点执行的处理至少部分地根据网络传输特征或约束而确定,更具体地地,本申请涉及当数据为图像或视频数据时的这种分布式处理。
背景技术:
处理图片(图像)和/或视频数字数据可能既是计算密集的、又消耗大量数据存储空间。对于许多具有生成数字图像(照片)和/或视频的能力的通信设备(例如,移动电话),这些设备具有处理和/或存储能力,所述能力不足以适当地完整驻留于所述设备上。因此,期望在通信网络上的一个或多个中心站点上存储或在某些情况下至少部分地处理这种图像/视频数据,其中这种站点具有相对大的数据处理及存储能力。然而,当大量网络用户向这些网络中心站点传输图像/视频数据时,由于可能在网络上传输的对应的高数据量图像/视频数据,网络可能显著恶化。因此,一个解决方案是限制用户例如在一天、一周或一个月期间在网络上传输的图像/视频数据量。这个解决方案的显著缺点在于,网络用户越来越相信“智能”的电信网络应该“智能地”尽可能地执行用户的网络请求,并且应该在不需要用户具备相对详细的网络通信知识的情况下执行这样的请求。
因此,为了解决上述问题,期望提供更“智能”的技术来管理及传输电信网络上的图像/视频数据。特别地,将期望根据当前网络传输特征而动态改变用户在网络上传输的图像/视频数据量,其中,这种网络传输的动态改变被基本上对用户透明地执行,并且其中,可以基本上保持这种图像/视频数据的展示/显示质量。
技术实现要素:
在此公开了一种分布式图像/视频处理系统,其中一个或多个(优选地为多个)数字图像或视频记录器(每个记录器例如是数字照相机、视频记录器、或诸如智能电话或膝上型计算机的多功能设备)与网络中心站点进行网络通信以向网络中心站点传输图像或视频数据。记录器基本上依赖于对可用于将图像或视频数据(或其一个版本)传输到网络中心站点的网络带宽的测量或估计量,来处理它们的图像或视频数据。更特别地,记录器适当地对这样捕获的图像/视频数据执行图像或视频处理以保持经记录器处理的图像/视频数据到网络中心站点的可接受的高效(快速)的传输时间。特别地,每个这样的记录器以根据对当前可用的网络带宽的测量而改变在网络上传输的结果图像/视频的数据量的方式,执行图像/视频增强处理及图像/视频压缩技术。
在一个实施例中,词组“当前可用的网络带宽”及诸如“可用网络带宽”的类似等同词组是指两个预定网络连接点之间的网络的合理估计的最大数据速率或吞吐量、与在特定时间或在时间间隔中所述两个预定网络连接点之间的网络的当前实际数据速率或吞吐量的估计值之间的差。假设存在至少对两个预定网络连接点之间的网络的数据速率或吞吐量的总体估计值,其中,该总体估计值被看作是合理最大值(考虑到可能会发生改变的网络配置及网络业务量(traffic)均衡),则可通过测量在一个或多个特定网络站点(例如,所述两个预定网络连接点的一个或两个)的一个或多个当前网络数据传输速率或数据吞吐量,从中确定综合的(composite)(例如,平均的)当前网络数据传输速率或数据吞吐量,然后从总体(最大)估计值中减去综合的当前数据传输速率或数据吞吐量,来估计“可用网络带宽”。替代地,可以通过使用例如在两个网络连接点之间的网络传输时间延迟来确定网络带宽的这样的合理最大估计值。举例来说,本领域技术人员可以理解,可以通过测量用于例如所述两个预定网络连接点之间的一个或多个ping的时间延迟来确定这样的最大带宽估计值。例如,如果确定了两个网络连接点之间的最大可接受时间延迟,则可通过从最大可接受时间延迟中减去所述两个网络连接点之间的网络时间延迟的当前(或最近)测量值来确定可用网络带宽的指示,以估计“可用网络带宽”。注意,尽管基于数据传输速率或吞吐量的“可用网络带宽”的测量值随着上述数据传输速率或吞吐量的差而单调增加,然而对应的基于网络时间延迟的“可用网络带宽”的测量值与上述网络传输时间延迟的差成相反关系。
在一个实施例中,可通过分析网络数据速率和/或(ping)时间延迟的历史测量值而确定可用网络带宽的测量值,并确定应当将哪个测量值作为网络带宽的合理最大估计值。例如,本领域技术人员可以理解,可将历史测量值的第一和第二标准偏差之间的边界值作为这样的合理最大估计值。
因此,当可用网络带宽较低(例如,相对于待传送的数据的类型、尺寸或数据速率)时,这样的图像/视频记录器将以如下方式执行图像/视频增强处理:减少(或不明显增加)数据量,然后使用可充分减少待在网络上传送到网络中心站点的结果图像/视频数据量的积极压缩(aggressive compression)技术来压缩增强后的图像/视频数据,从而比例如不进行或只进行很少的压缩的情况而更加减少了对可用网络带宽的影响。而且,为了保持图像/视频数据的显示质量,在向中心站点的网络传输之前,记录器以依赖于将应用的数据压缩量的方式,也将减噪技术应用至图像/视频数据。例如,当记录器确定将要应用更积极的数据压缩技术时,也将更健壮的(robust)减噪(这里也称为“消噪”)技术应用至图像数据。这样,增强的消噪将至少抵消增强的数据压缩的部分影响,从而可以在减少网络业务量的同时保持针对可接受的图像显示质量的数据。
在至少一个实施例中,在此公开的图像/视频处理系统获得或读取指示用于在网络上传送的图像数据的优选尺寸的第一网络参数数据。由于记录器初始捕获的图像的尺寸通常对记录器可用,因此可计算压缩因子(即,捕获的图像的尺寸除以优选图像尺寸)。此外/可选地,可通过从网络传输读取而提供(例如,从预定网络站点传输)指示要执行的数据压缩类型的第二参数数据,或者,替代地,压缩类型可由记录器确定(例如,记录器可确定提供了期望的压缩因子并具有最低损耗的可用压缩类型)。给定这样的压缩因子及压缩类型(例如,无损压缩(Loss Less)、或JPEG),可访问驻留在记录器的表(或其他数据结构)来确定对应的要执行的增强处理(及用于此的参数),诸如消噪及锐化处理。
注意,可以为视频数据进行类似的确定。例如,如果网络提供了优选数据传输速率,那么,假设记录器有权访问由该记录器接收到的视频数据速率(例如,Kbps),则可确定视频压缩因子用于对应的网络传输。此外,压缩类型可通过从网络(或网络站点)传输而读取来确定,或者,替代地,压缩类型可由记录器确定,其中记录器可确定提供了期望的压缩因子并具有最低损耗的可用压缩类型。
因此,假设(i)记录器有权访问提供了捕获的图像尺寸和/或视频数据速率的信息的一个或多个表(或对应的数据结构),并假设(ii)所述记录器还有权访问期望的或优选的图像/视频网络传输属性(例如,尺寸或数据速率),则所述记录器可访问这样的表以至少确定将要应用的消噪、锐化及压缩处理的类型、以及用于可操作地配置每个这些处理的参数。因此,尽管这里的大部分描述说明了这样的处理依赖于可用网络带宽,但是其他已知的或未知的约束/条件(例如,与可用网络带宽充分无关的)可用于确定期望的或优选的图像/视频网络传输属性。
在一个实施例中,这里公开的所述图像/视频处理系统执行下列步骤:
(a)在通过电信网络可操作地与网络站点通信的第一设备获得第一数据,所述第一数据为图像或视频数据;
(b)获得所述第一数据的第一特征,其中所述特征包括所述第一数据的尺寸或数据速率;
(c)获得用于在网络上传输所述第一数据或从所述第一数据衍生的数据的优选尺寸或数据速率的第二特征;
(d)将所述第一特征与所述第二特征关联,用于可操作地配置数据压缩技术、消噪技术及锐化技术中的至少两个,以用于将所述第一数据或从所述第一数据衍生的数据变换变换为用于在网络上传输的对应的处理过的数据;
(e)应用所述至少两个技术来变换所述第一数据;
(f)获得历史信息,其指示变换所述第一数据以获得所述处理过的数据,其中所述历史信息包括与用于变换所述第一数据的至少两个技术相关的描述信息;以及
(g)通过网络将所述处理过的数据及历史信息传输到预定网络站点;
其中,在传输之后,访问所传输的历史信息,以在所传输的处理过的数据被压缩时至少解压缩所传输的处理过的数据。
在一个实施例中,这里公开的图像/视频处理系统执行下列步骤(a)到(g):
(a)获得与电信网络的传输特征相关的网络数据;
(b)在通过电信网络可操作地与网络站点通信的第一设备获得第一数据;
(c)获得用于压缩所述第一数据的数据,用于压缩的数据用于识别第一数据压缩和第二数据压缩中的一个;
其中,对于指示所述传输特征的第一结果的网络数据,用于压缩的数据用于识别所述第一数据压缩,并且,对于指示所述传输特征的更受约束的第二结果的网络数据,用于压缩的数据用于识别所述第二数据压缩,其中,所述第一数据压缩对数据的压缩少于所述第二数据压缩;
(d)增强所述第一数据或从所述第一数据衍生的数据,以获得增强数据;
其中,增强的步骤包括当用于压缩的数据用于识别所述第一数据压缩时执行第一减噪,以产生经第一噪声内容减少的增强数据,以及
其中,增强的步骤包括当用于压缩的数据用于识别所述第二数据压缩时执行第二减噪,以产生经第一噪声内容减少的增强数据;
其中,对于包括视频数据的第一数据,所述第一减噪比所述第二减噪减少所述增强数据中的更多噪声;
(e)根据所述网络数据使用第一数据压缩或第二数据压缩来压缩所述增强数据,由此获得处理过的数据;
(f)获得历史信息,其指示用以获得所述处理数据的对所述第一数据的处理,其中,历史信息包括与用于压缩的数据相关的压缩描述信息、以及指示为了获得增强数据而对所述第一数据执行的增强的增强描述信息;以及
(g)通过网络将所述处理过的数据及所述历史信息传输到网络站点;
其中,在传输之后,访问所传输的历史信息,用于当所传输的处理过的数据被压缩时解压缩所传输的处理过的数据。
在一个实施例中,这里公开的图像/视频处理系统可以被表征为用于处理图像或视频数据的系统,其包括:
图像或视频记录器,包括下列(a)到(e):
(a)用于生成图像或视频数据的图像或视频生成器;
(b)一个或多个增强处理,用于增强所述图像或视频数据、或从所述图像或视频数据衍生的版本,以产生增强数据,其中,所述增强处理包括至少一个减噪处理;
(c)压缩器,用于压缩所述增强数据的,以产生经记录器处理的数据;
(d)评估器,用于确定(i)与用于可操作地与所述记录器通信的网络的传输特征相关的网络数据是否指示(ii)所述传输特征的第一规范、或所述传输特征的第二规范;
其中,所述第一规范指示用于执行在网络上传输的更受约束的操作条件;
其中,所述第一规范对应于第一数据压缩,而所述第二规范对应于第二数据压缩;
其中,所述第一数据压缩对数据的压缩少于所述第二数据压缩;
其中,在对所述增强数据执行所述第一数据压缩之前,通过至少一个减噪处理执行第一减噪,以获得经第一噪声内容减少的增强数据;以及
其中,在对所述增强数据执行所述第二数据压缩之前,通过至少一个减噪处理执行第二减噪,以获得经第二噪声内容减少的增强数据;
其中,所述第一减噪和第二减噪减少不同量的噪声;
其中,获得历史信息,该历史信息指示用以产生经所述记录器处理的数据的对图像或视频数据的处理,其中,所述历史信息包括压缩描述信息,该压缩描述信息与执行第一和第二数据压缩中的哪一个相关,并且,所述历史信息还包括增强描述信息,该增强描述信息指示为了获得增强数据而执行的增强处理;以及
(e)向网络的接口,用于通过网络将经所述记录器处理的数据及所述历史信息传输到预定网络站点;
其中,在所述网络传输之后,访问所传输的历史信息,用于解压缩所传输的经记录器处理的数据。
根据下文的描述及附图,本公开的优点、益处及可专利性方面的进一步描述将变得明显。本公开的所有新颖性方面,无论是在本发明内容部分被明确提及还是被另外提及(例如,在下文中),都单独地或与本公开的其他方面结合地被视为应专利保护的主题。相应地,可能在此发明内容部分中省略或未充分描述的、下文中和/或所述附图中公开的这样的新颖性方面,通过参考此发明内容而被完整合并于此。特别地,所附权利要求部分的所有权利要求通过参考此发明内容部分而被完整合并于此。
附图说明
图1是示出在此公开的分布式图像/视频处理系统10的实施例的高级别(level)计算组件的框图。
图2是图示在此公开的分布式图像/视频处理系统10执行的步骤的实施例的流程图。
具体实施方式
引言
为促进理解本公开提出的原理,现在将参考示例性实施例。相关领域中的且了解本公开的技术人员将想到的、对这里描述的创造性特征的任何变更或进一步的修改、以及对这里描述的原理的任何附加应用,被认为在所附权利要求中所描述的发明的范围内。这里描述的特征、功能等被认为能够全部或部分地与权利要求和/或技术领域直接或间接、明确或隐含地涉及的另一特征、功能等相结合。
贯穿本说明书的对“实施例”、“示例”或类似用语的引用表示这里描述的、特定特征、结构、特征或其组合可以(但不一定)指同一实施例、不同实施例、或一个或多个附图中公开的实施例。
本说明书中描述的多个功能单元可被标记或标识为模块或计算组件,以便更特别地强调它们的实施独立性。例如,模块可基本上独立于其他这样的模块或计算组件而实施为硬件及对应软件的组合。
如下文描述的由图1中的方框所标识的模块或计算组件(例如,计算机器、设备、装置等)可包括计算机指令的一个或多个物理或逻辑块,其例如可被组织为对象、过程或函数。但是,这样的模块或计算组件的可执行版本不需要在物理上被定位在一起(除非另有声明或暗示),而是可包括存储于不同位置的完全不同的指令,所述指令当在逻辑上结合在一起时,组成用于达到特定声明目的的更高级别的模块或计算组件。
而且,模块、计算组件和/或可执行代码程序可以是单独指令、或很多指令,并且甚至可以分布到几个不同的代码片段上、在不同程序之中、及跨越几个非暂时性存储设备。类似地,这里可以为这样的模块或计算组件识别并描述操作数据,并且,操作数据可被体现为任何适当的形式及被组织在任何合适类型的数据结构内。这样的操作数据可被收集作为单个数据集,或者可以被分布到不同位置上(包括在不同的非暂时性存储设备上),并且可以仅仅作为电信号而临时存在于系统或网络上。
在此讨论的各种计算组件和/或模块可包括通信网主机服务器或其他计算系统中的一个或多个,其可包括:(i)用于处理数字数据的机器处理器;(ii)耦合到所述处理器的非暂时性存储器,用于存储数字数据;耦合到所述处理器的输入数字转换器(digitizer),用于输入数字数据;(iii)存储于所述存储器中且可被所述处理器访问的应用程序,用于指示处理器对数字数据的处理;(iv)耦合到所述处理器及存储器的显示设备,用于显示源自由处理器处理的数字数据的信息;以及(v)多个数据库,包括对应的数据库管理系统。如本领域技术人员所熟知的,这里讨论的任何计算机或计算机器可包括操作系统(例如,Windows7、Windows Vista、NT、95/98/2000、OS2;UNIX;Linux;Solaris;MacOS、Snow Leopard;等等)以及各种通常与计算机和/或计算机网络关联的传统支持软件。所述计算机或计算机器可位于能接入网络的家庭及商业环境中,或者,这样的机器可以是移动的,诸如移动电话或其他便携式电信设备。在示例性实施例中,可通过商业可用的网络浏览器软件包通过因特网接入。
这里可以在功能块组件、屏幕截图、用户交互、可选选择、各种处理步骤等方面说明本公开。应当理解,这样的功能块可实现为任意数目的硬件和/或软件组件,其配置用于执行指定的功能。相应地,在此公开的实施例可使用各种集成电路组件,例如,存储器元件、处理元件、逻辑元件、查找表等,它们可在一个或多个微处理器或其他控制设备的控制下实现多种功能。类似地,本公开的软件元素可用任何编程或脚本语言实现,诸如,C、C++、Java、COBOL、汇编、PERL、Visual Basic、SQL存储过程、AJAX、可扩展标记语言(XML)、和/或SOAP,通过数据结构、对象、进程、例程或其他编程元素的组合来实现各种算法。此外,应当注意,本公开可使用任意数目的传统技术,用于数据传输、信令、数据处理、网络控制等。另外,在此主张权利的发明的实施例可检测或阻止破坏客户端侧或主机侧脚本语言(诸如JavaScript、VBScript等)的安全。
此外,这里的很多功能单元和/或模块可描述为与其他功能单元和/或模块“通信”或“可操作地通信”(或这样的词组的变体)。“通信”或“可操作地通信”(或其变体)是指如下任何方式或方法:其中,功能单元和/或模块(诸如但不限于计算机、膝上型计算机、PDA、模块、网络服务器、路由器、网关及其他类型的硬件和/或软件)可彼此通信。一些非限制性的示例包括:(i)激活或调用另一这样的功能单元或模块,以及(ii)通过以下项发送、和/或接收数据或元数据:网络、无线网络、软件、指令、电路、电话线路、因特网线路、卫星信号、电信号、光信号、电磁场和/或脉冲,等等。
除非另外声明或清楚地暗示,根据本公开的网络通信可通过任何合适的通信信道(例如,电话网络、外联网、内联网、因特网、交互点设备(销售点设备、个人数字助理、蜂窝电话、信息亭,等等)、在线网络通信、无线通信、局域网(LAN)、广域网(WAN)、联网或链接的设备,等等)完成。而且,尽管网络通信可利用TCP/IP通信协议实现,但是这样的通信也可使用IPX、Appletalk、IP-6、NetBIOS、OSI或其他数量的现有的或未来的协议实现。与连同因特网一起使用的协议、标准、及应用软件相关的特定信息通常是本领域技术人员已知的,并且同样不需在此详细描述。例如可参考DILIPNAIK,INTERNET STANDARDS AND PROTOCOLS(1998);JAVA2COMPLETE,不同作者(Sybex1999);DEBORAH RAY AND ERIC RAY,MASTERING HTML4.0(1997);及LOSHIN,TCP/IP CLEARLY EXPLAINED(1997),以引用方式将它们的内容合并在这里。
对于由于在此描述的功能单元或模块而公开或要求的计算指令(例如,软件、脚本、固件,等等)和/或关联数据,其在本公开范围内明确地包括存储介质,用于存储在使能这里公开的系统或方法时使用的这样的指令和/或数据。例如,这样的存储介质可以是:计算机可读磁盘或磁带、光盘、以及其他非易失性或非暂时性便携式存储器(例如,USB记忆棒,等等)。
在此使用的“包含”、“包括”、“含有”、“是”、“特征是”及其语法等同成分是包含性的或开放式的用语,其不排除额外的未列举的元素或方法步骤,除非另外明确声明。“包含”被解释为包括更受限的用语“由...组成”及“主要由...组成”。
附图及分布式图像/视频处理系统的操作的描述
图1示出分布式图像/视频处理系统10,其包括多个照相机/视频记录器20,其操作地连接到通信网络24(例如,因特网),用于将图像/视频相关数据传输到图像/视频捕获站点28。每个照相机/视频记录器20可以是基本上单一功能的设备(诸如单独的照相机或视频记录器),或者可以是多功能设备,其包括移动(无线)电话(诸如智能电话)、膝上型/平板式计算机、或其他联网的通信计算设备(例如,用于从机器人传输图像的专用无线通信设备)。此外,本领域技术人员可以理解,照照机/视频记录器20通常生成、存储及处理图像/视频作为数字数据。代替网络24是因特网的情况,其他通信网络也在本公开的范围内,诸如,局域(无线)网(如例如在医院及高等教育机构提供的)或私有广域虚拟网。图像/视频捕获网络站点28可以是因特网网络站点、或照相机/视频记录器20能够访问且已知的其他任意网络站点。
图1左上角的照相机/视频记录器20示出了每个照相机/视频记录器20的典型的高级别内部结构。特别地,每个这样的记录器20包括图像/视频生成器32,其例如生成对应于图像被捕获的场景的数字图像数据。这样的生成器32可以是电荷耦合设备、数字照相机或视频记录器、或CMOS传感器、蜂窝电话、PC照相机、CMOS照相机及平板式照相机。每个照相机/视频记录器20进一步包括压缩器36,其可以用于压缩生成器32生成的这样的数字图像数据。存在大量的可在压缩器36中实施的图像数据压缩技术,包括有损和无损数据压缩技术两者。如本领域技术人员理解的,下列数据压缩技术是代表性的:
对于数字图像(照片):
·笛卡尔感知压缩:也被称为CPC,是专有图像文件格式。它被设计用于档案扫描的黑白光栅文档成像的高压缩。
·DjVu:这是计算机文件格式,主要被设计用于存储扫描的文档,特别是包含文本、素描及照片的组合的文档。该格式使用诸如文本及背景/图像的图像层分离、逐步加载、算术编码及二值(单色)图像的有损压缩的技术。这允许在最小空间中存储高质量的可读图像,以使所述图像可用于网络。
·分形(fractal)压缩:这是用于数字图像的基于分形的有损压缩方法。基于图像的部分常常与同一图像的其他部分类似的事实,该方法最适合用于纹理及自然图像。分形算法将这些部分转换为称为“分形码”的数学数据,其用于重建经编码的图像。
·HAM:这是Amiga计算机中使用的颜色信息的硬件压缩。
·ICER:这是Mars Rovers使用的压缩方法:与其使用小波时的JPEG2000相关。
·JPEG:在计算中,JPEG是用于数字摄影(图像)的常用有损压缩方法。可以调整压缩的程度,从而允许在存储尺寸及图像质量之间可选择的权衡。JPEG通常达到10∶1压缩并且具有很少的可察觉的图像质量损失。在大量的图像文件格式中使用JPEG压缩。JPEG/Exif是数字照相机及其他摄影图像捕获设备最常用的图像格式;连同JPEG/JEIF一起,其是用于在万维网上存储及传输摄影图像的最常用的格式。这些格式的变化常常不被区分,并且被简称为JPEG。
·JPEG2000:这是图像压缩标准及编码系统。其由联合摄影专家组委员会于2000年创建,其目的在于用新设计的基于小波的方法取代他们最初的基于离散余弦变换的JPEG标准(创建于1992年)。JPEG2000格式可用于有损及无损压缩两者。
·JBIG2:这是用于双层图像的图像压缩标准,其由联合双层图像专家组开发。其适用于无损及有损压缩两者。
·PGF(渐进式图形文件):此压缩方法可以是无损或有损的。PGF是使用无损及有损数据压缩的基于小波的位图图像格式。创建PGF以改进及取代JPEG格式。
·小波压缩:这是非常适用于图像压缩(有时也适用于视频压缩及音频压缩)的数据压缩形式。众所周知的实施方式是用于静态图像的JPEG2000及ECW、及用于视频的REDCODE、BBC的Dirac和Ogg Tarkin。目的是在文件中的尽可能消的空间中存储图像数据。小波压缩可以是无损或有损的。
·S3纹理压缩(S3TC)(有时也称为DXTn或DXTC):这是一组相关的有损纹理压缩算法,它们最初由S3Graphics有限公司[1]的Iourcha等人开发,用于他们的Savage3D计算机图形加速器。该压缩方法显著地类似于之前公布的颜色元素压缩[2],其又是二十世纪七十年代晚期公布的块截断编码的改编。与一些图像压缩算法(例如,JPEG)不同,S3TC的固定比率数据压缩结合单一存储器访问(参见颜色元素压缩及一些基于VQ的方案)使得其完美地适合用于压缩硬件加速的3D计算机图形中的纹理。随后其包含于Microsoft的DirectX6.0及OpenGL1.3(GL_ARB_texture_compression),从而使该技术在硬件及软件制造商中得到广泛采用。尽管S3Graphics不再是图形加速器市场中的主要竞争者,但由于S3TC技术的使用仍然征收并收取许可费,例如,在游戏控制台及图形卡中。将授予专利的技术包含在OpenGL中以及其在软件中的广泛使用导致需要驱动器支持它并在Linux上的开源AMD及Intel驱动堆栈内呈现为主块。
对于视频数据:
·DV:DV是帧内视频压缩方案,其使用离散余弦变换(DCT)以逐帧地压缩视频。声频被无压缩地存储。
·H.263:这是最初被设计为用于视频会议的低比特率压缩格式的视频压缩标准。它由ITU-T视频编码专家组(VCEG)在于1995/1996年结束的项目中开发,作为ITU-T领域中视频编码标准的H.26x族的一个成员。
尽管众多站点目前使用VP6或H.264编码,但H.263已在因特网上发现大量应用:大量Flash视频内容(用在例如YouTube、Google Video、MySpace等站点上),其用于以Sorenson Spark格式(H.263[1][2][3]的不完整实施)编码。直到RealVideo8的发布之前,RealVideo编解码器的最初版本都基于H.263。
H.263是ETSI3GPP技术规范中所需的用于IP多媒体子系统(IMS)、多媒体消息服务(MMS)及透明端到端分组交换流服务(PSS)的视频编解码器。在3GPP规范中,H.263视频通常用于3GPP容器格式中。
所述编解码器首先被设计使用在基于H.324的系统(PSTN及其他电路交换网络视频会议及视频电话)中,但是从那以后已经诶发现也用于H.323(基于RTP/IP的视频会议)、H.320(基于ISDN的视频会议)、RTSP(流媒体)及SIP(因特网会议)的解决方案中。
H.263被开发为基于来自之前的ITU-T视频压缩标准H.261、和MPEG-1及MPEG-2标准的经验的进展性的改进。H.263的第一版本在1995年完成并提供对H.261在所有比特率的合适替换。其在被称为H.263v2(也被称为H.263+或H.2631998)、MPEG-4Part2及H.263v3(也称为H.263++或H.2632000)的项目中得到进一步增强。在基本H.263比特流被MPEG-4视频解码器正确解码的意义上,MPEG-4Part2是可与H.263兼容的。
在H.263之后由ITU-T VCEG(MPEG的合作伙伴)开发的下个增强的编解码器是H.264标准,也称为AVC及MPEG-4Part10。由于H.264提供了在能力上超过H.263的显著改进,因此现在H.263标准被认为是过时的(legacy)设计。现在,大多数新的视频会议产品包括H.264、以及H.263及H.261的能力。
·H.264/MPEG-4Part10或AVC(高级视频编码):这是视频压缩标准,并且目前是用于高清视频的录制、压缩及分发(distribution)的最常用的格式之一。该标准的第一版本的最终草案工作在2003年5月完成。
H.264/MPEG-4AVC是面向块的基于运动补偿的编解码器标准,其由ITU-T视频编码专家组(VCEG)与国际标准化组织(ISO)/国际电工委员会(IEC)运动图像专家组(MPEG)一起开发。它是称作联合视频组(JVT)的合伙努力的结果。共同地维护ITU-T H.264标准及ISO/IEC MPEG-4AVC标准(正式地,ISO/IEC14496-10-MPEG-4Part10,高级视频编码),从而它们具有一致的技术内容。
H.264或许作为蓝光光盘的编解码器标准之一而是最知名的;所有蓝光光盘播放器必须能够解码H.264。它也被广泛用于流式因特网源,诸如来自Vimeo、YouTube及iTunes Store的视频、诸如Adobe Flash Player及MicrosoftSilverlight的网络软件,用于DVB及SBTVD的广播服务、直播卫星电视服务、有线电视服务及实时视频会议。
·运动JPEG(其变体):这是使用基于离散余弦变换(DCT)的帧内压缩的有损形式的压缩方法。该数学运算将视频源的每帧/场(field)从时域转换为频域(aka变换域)。松散地基于人类心理视觉系统的感知模型丢弃了高频信息,即,强度及色调的尖锐转变。在变换域中,减少信息的处理称为量化。在非专业术语中,量化是最优地将大数量规模(其中每个数量不同地出现)减少为较小数量规模的方法,并且,变换域是图像的方便表示,因为对图片的贡献比其他系数小的高频系数在特征上是具有高压缩性的小值。量化的系数然后被排序并被无损地打包为输出比特流。M-JPEG的几乎所有软件实现都允许用户控制压缩比率(以及其他可选参数),从而允许用户为更小的文件尺寸权衡图像质量。在嵌入式应用(诸如miniDV,其使用类似DCT-压缩方案)中,预先选择参数并将参数固定用于应用。
M-JPEG是仅帧内压缩的方案(与计算更密集的帧间预测技术相比)。虽然现代的帧间视频格式(诸如MPEG1、MPEG2及H.264/MPEG-4AVC)实际达到1∶50或更高的压缩比,但是,依赖于对压缩输出中空间人工痕迹的容忍度,M-JPEG的缺乏帧间预测将其效率限制为1∶20或更低。由于帧被彼此独立地压缩,M-JPEG对硬件设备施加较低的处理及存储需求。
作为纯帧内压缩方案,M-JPEG的图像质量直接是每个视频帧的静态(空间)复杂度的函数。具有较大平滑转变度或单调表面的帧压缩得好,并且更有可能保持原始细节,并且具有很少的可见的压缩人工痕迹。显现复杂纹理、细曲线和线条(诸如报纸上的文字)的帧容易显现出DCT人工痕迹,诸如圆环(ringing),污迹及宏块。M-JPEG压缩视频也对运动复杂度(即,随时间的变化)不敏感。它既不受高度随机的运动(诸如大瀑布中的表面水湍流)阻碍,也不会因没有运动(诸如借由三脚架的静态风景照)而获得帮助,这两种情况是两个相反的极端,其一般用于测试帧间视频格式。
对于QuickTime格式,Apple已经定义了两种类型的编码:MJPEG-A及MJPEG-B。MJPEG-B不再在其中保留有效JPEG交换文件;因此,不可能在不稍微修改数据头的情况下将帧加入JPEG文件中。
·Ogg Theora:这是由Xiph.Org基金会维护的免费、开放的容器格式。Ogg被设计用来提供高质量数字多媒体的有效流化和操纵。
Ogg容器格式能够为音频、视频、文本(诸如子标题)及元数据复用多个独立流。
在Ogg多媒体框架中,Theora提供了有损视频层。音频层最通常由面向音乐的Vorbis格式提供,但是,其他选择包括人类语音压缩编解码器Speex、无损音频压缩编解码器FLAC及OggPCM。
·Dirac:Dirac采用小波压缩,而不是较老的压缩格式中使用的离散余弦变换。Dirac将小波应用到视频压缩中。
·VC-1:这是SMPTE421M视频编解码器标准的非正式名称,其在2006年4月3日被发布为正式SMPTE标准视频格式之前,最初被Microsoft开发为专有视频格式。今天,它是在HD DVD、蓝光光盘、Windows Media、Slingbox及Microsoft的Silverlight框架中发现得到广泛支持的标准。
注意,压缩器36在本公开的范围内包括及使用多个数字图像/视频数据压缩技术。
照相机/视频记录器20也包括各种图像/视频增强处理,所述处理由管理器40适当激活/控制。本领域技术人员能够理解,图像/视频增强处理管理器40用于管理对从生成器32获得的数字图像/视频数据的增强。例如,所述图像/视频增强处理管理器40管理可由不同消噪技术(如图1中的消噪42所示)执行的处理,所述消噪技术可用于减少图像/视频数据中被确定为噪声的要素。诸如:
·椒盐噪声(稀疏光线及黑暗干扰),其中,图像/视频中的像素在颜色或强度上与其周围的像素非常不同;定义的特征为噪声像素的值与周围像素的颜色没有关系。通常,这种类型的噪声将仅影响少数图像像素。当观看时,图像包括黑白点,因此称为椒盐噪声。典型的源包括照相机内的灰尘粒、及CCD元件过热或故障。
·高斯噪声,其中,图像/视频中的像素可能从其原始值改变了(通常)较小量。在高斯噪声中,假设相对于发生时的频率而绘出的像素值的畸变量显示出噪声的正态分布。
注意,不同像素处的噪声可能是相关或不相关的;在很多情况下,不同像素处的噪声值被建模为独立的且同分布的,因此是不相关的。
此外,本领域技术人员可以理解,各种锐化及反锐化掩膜技术(如图1中的锐化44处理所示)可由图像/视频增强处理管理器40管理(例如,适当激活)。下文将讨论这样的锐化及消噪技术。本领域技术人员可以理解,其他增强例如包括白平衡。
照相机/视频记录器20也包括网络接口46,用于与网络24上的各种站点(诸如图像/视频捕获网络站点28)通信。此外,该照相机/视频记录器20包括传输评估器48,其确定与用于将图像/视频数据传输到该图像/视频捕获站点28的网络24的一个或多个传输特征(例如,可用带宽)相关的数据。该网络传输评估器48可通过接收用于一个或多个网络传输特征的信息而确定这样的与可用网络带宽相关的数据,其中,这样的特征可以是例如指示当与一个或多个网络站点通信时的时间延迟的网络传输时间延迟、指示当与一个或多个网络站点通信时的一个或多个数据速率的网络数据速率、以及当与预定网络站点(例如,站点28)通信时的最大传输时间延迟阈值。为了获得这样的网络传输特征,可以使用各种技术,包括:
(i)ping图像/视频捕获站点28并比较例如ping的时间延迟的运行平均数、与数据表(未示出)中的条目,该数据表将这样的ping时间延迟信息与指示网络24的可用带宽的值相关联;特别的,这样的ping时间延迟与可用网络带宽成相反关系;和/或
(ii)确定记录器20处的网络的数据传输速率、或请求来自图像/视频捕获站点28的数据传输速率测量,其中,测量的数据传输速率越大,可用网络带宽越大;和/或
(iii)请求来自网络站点28的最大传输延迟时间阈值,其中,该阈值是站点28在从记录器20的用于传输数字图像/视频数据的初始对应网络接触超时之前将要等待这样的数据被接收的最大传输时间延迟阈值。
在替代/附加实施例中,网络传输评估器48可ping多个不同网络24站点,以确定网络业务量的程度,由此推出指示可用网络带宽的值。在另一实施例中,网络传输评估器48可请求来自图像/视频捕获站点28的网络业务量测量,其中,这样的测量可以例如与图像/视频捕获站点28和/或一个或多个其他预定网络站点的网络接口50接收的数据速率相关。
照相机/视频记录器20还包括控制器52,其确定在所述照相机/视频记录器中如何处理图像/视频数据。特别地(以及如下文中通过参考图2而更详细描述的),该控制器确定在照相机/视频记录器20处对图像/视频数据执行的图像/视频处理,其中,这样的处理依赖于当前网络24的用于将这样的图像/视频数据传送到图像/视频捕获站点28的一个或多个传输特征(例如,可用带宽)。特别地,当至少存在网络24的可用带宽的第一阈值,并且随着网络带宽的估计值减少而逐渐减少这样的数据的量时,控制器52设置用于捕获、处理及传输(通过网络24)大量这样的数据(例如,包括更多信息内容)的成像/视频参数。在至少一个实施例中,控制器52可选择由压缩器36提供的压缩技术,并随之确定要执行的与该压缩技术兼容的图像/视频处理技术。例如,一旦网络传输评估器48已经向控制器52提供了与可用网络带宽相关的信息,该控制器就可以首先确定由压缩器36提供的压缩技术。但是,由于某些图像/视频增强技术与某些压缩技术(下文将进一步讨论)不兼容,所以控制器52也可以确定在数据压缩(通过所确定的压缩技术)前执行的一个或多个图像/视频处理技术,其中,这样的图像/视频处理技术与所述压缩技术兼容。
参考图像/视频捕获网络站点28,除了网络接口44之外,该站点还包括解压缩器模块60,用于解压缩从照相机/视频记录器20接收的压缩的图像/视频数据。解压缩器60包括一个或多个(在至少某些实施例中,优选多个)补充模块,其提供对于在照相机/视频记录器20可用且使用的压缩技术的数据解压缩技术,如本领域技术人员将理解的。网络站点28还包括一个或多个(通常是多个)图像/视频增强处理(例如,消噪68及锐化72)、以及用于管理用于增强压缩的图像/视频数据的处理的管理器64。例如,管理器64可顺序地激活增强处理(用于例如由从控制器76接收的指令所确定的其之间的流水线化),并将作为结果的增强的图像/视频数据存储在图像/视频存档库84中。
所述记录器20及网络站点28两者上驻留的增强处理的示例如下:
(a)一个或多个消噪(减噪)处理42及68,用于对解压缩的数据消噪。消噪非常有利于使数字图像/视频数据更同质(例如,更少的像素与周围像素相比具有极端离群值)。举例来说,消噪去除了高频像素数据(即,作为使用浅灰色图表(0.44中性麦克白(Macrobeth))的亮缺陷像素-DN数(110-140)的像素数据)。在结果图像/视频中或许期望、或者或许不期望使用深黑图表(1.5黑色麦克白)的暗缺陷像素-DN数(0-10)。此外,消噪也提供了用于在本领域称为“缺陷像素校正”的校正,其中,这样的消噪去除仅仅由于数字图像/视频数据生成处理(例如,在生成器32中)而不好的坏点/弱像素/强像素。这样的消噪处理可使用各种消噪技术,其中一些如下所述。
о色度和亮度噪声分离:
在实际照片中,最高空间频率细节主要由亮度变化(“亮度细节”)而不是色调变化(“色度细节”)组成。由于任何减噪算法应当试图在不牺牲拍摄的场景中的真实细节的情况下去除噪声,所以,将冒着在亮度减噪时比色度减噪时丢失更多细节的风险,这仅仅因为多数场景开始时具有很少的高频色度细节。此外,多数人发现图像中的色度噪声比亮度噪声更让人不愉快;与被一些人比喻为胶片颗粒的亮度噪声的粒状外观相比,彩色斑点被认为是“数字样子”且不自然。由于这两个原因,多数照片减噪算法将图像细节分为色度及亮度成分,并且对前者应用更多的减噪。多数专门的减噪计算机软件允许用户分开地控制色度及亮度减噪。
о线性平滑滤波器:
一种通过使用掩码对原始图像卷积而去除噪声的方法,其表示低通滤波器或平滑操作,如本领域技术人员可以理解的。这样的卷积使每个像素的值与其邻居像素的值更加一致。通常,平滑滤波器将每个像素设置为其自身及其邻近邻居的平均值或加权平均值;高斯滤波器只是一个可能的权重集合。
平滑滤波器倾向于模糊图像,因为明显高于或低于周围邻居的像素强度值在该区域“弄脏”。因为这种模糊,实际中很少将线性滤波器用于减噪;但是,线性滤波器常作为非线性减噪滤波器的基础使用。
о各向异性扩散:
各向异性扩散是噪声去除方法,该方法基于类似于热方程的平滑偏微分方程推出图像/视频,称为各向异性扩散。通过空间上恒定的扩散系数,这等价于热方程或线性高斯滤波,但通过被设计用于检测边缘的扩散系数,可在不模糊图像边缘的情况下去除噪声。
о非线性滤波器:
中值滤波器是非线性滤波器的示例,如果设计合理,则擅长保持图像细节。为了运行中值滤波器:
1.考虑图像中的每个像素;
2.基于邻居像素的强度而排序整理邻居像素;以及
3.使用来自列表的中间值替换像素的原始值。
中值滤波器是秩选择(RS)滤波器,是秩条件秩选择(RCRS)滤波器族中特别严格的成员;该族中温和得多的成员(例如,当像素的值在其邻近之外时选择邻居值中最接近的一个并另外保持其不变的一个成员)有时是优选的,特别是在照相应用中。
中值及其他RCRS滤波器擅长从图像中去除椒盐噪声,并也导致相对小的边缘模糊,因此常用于计算机视觉应用中。
在选择减噪技术68(也称为“消噪技术”)时,可考虑几个因素:
·可用计算机功率及可用时间:数字照相机必须使用微型板上的CPU在几分之一秒内应用减噪,而桌上型计算机具有多得多的功率及时间
·如果允许去除更多噪声,则是否可接受牺牲一些真实的图像/视频细节(如何积极地决定图像的变化是否是噪声)
·噪声的特征及图像/视频的细节,以便更好地做出这些决定。
(b)一个或多个锐化及反锐化掩膜处理44及72,用于锐化解压缩的数据,其中,这样的处理可利用各种技术,现在描述其中一些。
о去卷积:
在光学及成像中,术语“去卷积”特别用于指逆转(reverse)光学显微镜、电子显微镜、望远镜或其他成像器材中发生的光学畸变以创建更清晰的图像的处理。其通常在数字域中由软件算法完成而作为显微镜图像处理技术包的部分。去卷积对于在捕获期间遭受快速运动或抖动的锐化图像也是实用的。
通常的方法是假设通过所述器材的光学路径是光学理想的,与点扩展函数(PSF)(即,描述在理论点光源(或其他波)在所述器材内通过的路径方面的畸变的数学函数)卷积。通常,这样的点源为最终的图像带来小区域的失真。如果能够确定该函数,则之后计算其反函数或余函数,并将所捕获的图像与其卷积。结果是原始的、未畸变的图像。
实践中,找到真正的PSF是不可能的,通常使用其的近似,其在理论上被计算出或基于一些使用已知探测器的实验估计。实际光学器件也可能在不同焦距及空间位置具有不同的PSF,并且PSF可能是非线性的。PSF的近似的准确性将决定最终结果。以增加计算密集性为代价,可使用不同算法以给出更好的结果。由于原始卷积丢弃数据,所以一些算法使用在附近焦点处获取的附加数据以弥补一些丢失信息。可应用迭代算法(如在期望最大化算法中)的正则化来避免不切实际的解决方案。
当不知道PSF时,可通过系统性地尝试不同可能的PSF并评价图像是否有改善来推导出该函数。该过程称为盲去卷积。盲去卷积是天文学中已被广泛接受的图像修复技术,其中,拍摄的对象的点性质揭示了PSF,因此使其更可行。该方法也用于荧光显微镜中以用于图像修复,以及用于荧光光谱成像中以用于多个未知荧光团的光谱分离。为此目的的最常用的迭代算法是Richardson-Lucy去卷积算法;Wiener去卷积(及其近似)是最常用的非迭代算法。
о数字反锐化掩膜:
反锐化掩膜对原始图像的拷贝应用高斯模糊,然后将其与原始图像进行数字上的比较。如果差大于用户指定的阈值设定,则(有效)减去所述图像。阈值控制约束了对彼此的不同大于某一尺寸阈值的图像元素进行锐化,因此小的图像细节(诸如照相颗粒)的锐化可被抑制。
数字反锐化掩膜是增加锐度的灵活且强大的方式,尤其是在扫描的图像中。但是,容易创建多余且明显的边缘效果,或增加图像噪声。另一方面,可创造性地使用这些效果,特别是在锐化RGB或Lab图像的单通道的情况下。可使用掩码-特别是边缘检测所创建的掩码-以仅对期望区域应用锐化(有时称之为“智能锐化”),来减少不期望的效果。
典型地,三种设置(称为“量”、“半径”及“阈值”)控制数字反锐化掩码:
·量被作为百分比列出,并控制每一过限的量值(边缘边界变暗多少以及变亮多少)。这也可认为是在边缘出增加了多少对比度。其不影响边缘框的宽度。
·半径影响边缘要增强的尺寸、或边缘框要变成多宽,因此较小的半径增强较小规模的细节。较大半径值会在边缘产生晕圈,其是可发觉的在物体周围的微弱光圈。精致的细节需要更小的半径。半径与量相互作用;减小一个则允许增大另一个。
·阈值控制将被锐化的最小亮度变化、或在滤波器动作之前相邻亮度值需要相隔多远。不进行该动作对防止平滑区域变得斑点化是很重要的。阈值设定可用于锐化更明显的边缘,而不改变较细边缘。低的值会锐化更多,因为排除的区域较少。较高阈值排除对比度更低的区域。
对于这些参数的良好的初值,存在不同的推荐。通常0.5至2个像素的半径以及50-150%的量是合理的开始。
对于照相机/视频记录器20,图像/视频捕获网络站点28也包括控制器(76),用于控制对来自多个照相机/视频记录器20之一的图像/视频数据(压缩、增强和/或其他技术)的处理。特别地,控制器76控制这样的图像/视频数据的处理以(按照需要由解压缩器60)适当地解压缩及(按照需要由图像/视频增强处理管理器64)适当地增强。此外,站点28也可包括临时(非暂时性)图像/视频数据存储库(storage)80,用于在处理之前临时存储。注意,对于图像/视频数据的每个传输(无论是否压缩、增强等),这样的数据在数据存储库80中与下列关联:(i)这样的数据的也传输到站点28的对应历史处理数据;及(ii)标识符,其标识生成原始图像/视频数据的照相机/视频记录器20的所有者或用户。因此,对于图像/视频数据的每个传输,控制器76可从数据存储库80检索对应的处理历史数据,用于确定例如如何解压缩该图像/视频数据、及如何增强该图像/视频数据。在指示这样的处理时,控制器76可检查对应的处理历史数据中的质量字段和/或一个或多个指令字段,用于确定要对图像/视频数据执行什么增强。接下来,一旦图像/视频数据的实例被完全处理,结果图像/视频数据就被存储在图像/视频存档库84中,其中,例如,该数据可由身份与该实例关联的对应用户检索及显示。
系统操作
在下文描述中,各个术语被加粗或斜体显示以标识在后面提供的附录中更完整描述/定义的这样的术语。
在操作期间,当由生成器32生成数字图像/视频数据时,控制器52确定(在将这样的数字图像/视频数据传输到图像/视频捕获站点28之前):(i)应用到所述数字图像数据的图像/视频增强处理40(如果有);及(ii)在应用增强处理之后,随后由压缩器36如何处理这样的数据(如果有)。特别地,当控制器52从网络传输评估器48接收到指示可用于传输所述数字图像数据(或其压缩和/或增强版本)的(当前)网络24带宽的数据时,该控制器确定要激活的图像/视频增强处理,诸如消噪处理42或锐化处理44(如上文对这样的增强处理的描述)。因此,可用网络带宽越大,应用的压缩越少,并且,当可用网络带宽减少时,更多的数据压缩可应用到数字图像/视频数据(或其增强版本)。此外,如上所述,可由控制器52选择/确定数据压缩技术及图像/视频增强处理,以使它们互相兼容,例如在作为结果的压缩的数据一旦在网络站点28处理了就将提供合适的图像/视频展示的意义上(例如,如本领域技术人员可以理解的,不期望最终的图像/视频中具有诸如“绿屏”的空白场景)。
随后,当图像/视频捕获网络站点28从照相机/视频记录器20接收到(在网络接口50)压缩的图像/视频数据时,该网络接口通知控制器76,以使控制器76能够提供用于考虑到对应的处理历史数据而处理所述数据的指令。
通常,对于视频数据,如果网络24可用带宽高(例如,下面用于视频数据的表1B及1C中的“高带宽”),则可优选执行:(i)及(ii)对应的这是由于如下事实:当去除视频数据中的高频像素数据时,消噪及压缩技术执行很多次相似的函数。例如,如MPEG(及其变体,例如,MPEG1、MPEG2及MPEG4)、H.264、VC-1、Flash等的基于帧间阻断的压缩算法去除高频像素数据以获得更多的压缩,如本领域技术人员可以理解的。此外,消噪通常还去除这样的高频像素数据,由此使视频如上所述更同质。从而,如果将消噪的数据提供给这样的基于帧间阻断的压缩算法,这样的算法很可能会去除下一最高像素频率数据。在某些情况下,结果视频可呈现出褪色,或最坏情况下是完全没有任何图片的空白。因此,当应用到视频数据时(例如,当存在高的网络24可用带宽时),对于至少去除高频像素,可能是优选的。
但是,当网络24可用带宽低(例如,下面用于视频数据的表1B及1C中的“低带宽”),并且激活(压缩器36的)潜在的高压缩处理以执行(或)时,则由于这样的压缩将既高度压缩视频数据也去除高频像素数据,所以,在压缩之前优选从而在视频数据中留下噪声(及高频像素数据)。
关于锐化,如果对图像/视频执行则很可能创建高频像素数据。当经过积极锐化的视频数据随后由例如基于帧间阻断的算法进行压缩时,这样的高频像素数据是有益的,因为这样的算法将去除高频像素数据。特别地,在这方面,锐化及压缩处理有效地彼此抵消,但是,结果也具有减小了的图像/视频尺寸。从而,锐化和压缩可在记录器20中直接彼此相关,并且,控制器52在确定数据压缩与图像/视频处理技术的组合时必须考虑到这种相互作用。因此,在至少某些情况下,数字图像/视频数据的锐化可基于已选的要使用的压缩技术。替代地,压缩技术可基于已选的要使用的锐化技术。
举例来说,对于M-JPEG压缩技术,过度锐利的图像(即,如上所述,当出现圆环时图像是“过度锐利”)可能有问题,因为这样的圆环可能不被此压缩技术去除,甚至在执行或时也是如此。但是,对于H.264/MPEG4/VC-1压缩技术,当执行或时,由于这样的积极压缩技术去除了高频像素,因此过度锐利的图像可以是优选的。
在不同实施例中,当网络24可用带宽对于图像大于例如536Kbps(每秒千比特,下表1A中的“高带宽”),并且对于视频大于例如50000Kbps(下表1C中的“高带宽”)时,可以在网络24传输前对数字图像/视频数据执行并且可在照相机/视频记录器20执行但是,对于较少的网络24可用带宽,执行更多的压缩(例如,或),以及(i)为图像(照片)数据执行更多消噪,及(ii)为视频数据执行更少消噪。另外,当可用网络带宽减少时,无论视频或图像数据是否在记录器20生成,都执行更少的其他增强处理,诸如锐化及白平衡。
下面的表1A到表1F示出可用网络带宽的典型范围或限度(最左边两列),并且,对每个这样的范围或限度,表中的行显示出在将经记录器处理的图像/视频数据传输到网络站点28之前可在记录器20执行的对应的压缩、消噪及锐化。注意,表1A-1F的最左边两列中的带宽范围或限度表示一个或多个(a)如上所述描述传输评估器48的网络ping值或网络数据传输速率、和/或(b)图像/视频数据传送到网络子系统(例如,网站)的最大时间。关于这样的用于数据传送的最大时间,在一个实施例中,该最大时间越长,假定可用的网络24可用带宽越少。因此,这样的最大延迟时间和可用网络可以是成相反关系的。因此,在确定在记录器20执行什么图像/视频处理时,可用网络24带宽的当前(或最近获得的)测量值(或指示其的信息)可与评估器48知道的各种预定带宽相关信息(例如,带宽范围或限度、或最大传输时间)(例如,表1A-1F的最左列)进行比较。例如,评估器48可确定网络24可用带宽的当前测量值应当分类到哪一个带宽范围或限度(由如下面表1A-1F的最左边两列中的至少一列提供的)。随后,控制器52可使用这样的对所述测量值的分类来确定要执行的数据压缩及图像/视频增强处理的程度,如在表1A-1F中标识该测量值的分类的同一行中所标识的。
注意,也可能存在传递至记录器20的最小时间延迟。特别地,当网络24(或网络站点28)处于超载状态时,可将这样的最小时间延迟传递到记录器20,以故意延迟数字图像/视频数据的传输。当这样的最小时间延迟提供给记录器20时,记录器20可在通过压缩器36的数据压缩之前执行附加的图像/视频增强处理64。
对于图像数据(不是视频),下列表1A是代表性的,其中存在60秒的最大网络24传送延迟时间,并且像素是未压缩的3字节(RGB)。
表1A
对于每帧具有640×480像素的视频数据(通过MPEG-4/H.264/VC-1/Flash及其他基于帧间阻断的压缩算法压缩),下表1B是典型的。注意,目前因特网视频通常以每帧约640×480像素(VGA)传输,但可以扩展到例如每帧1920×1080像素(1080P)。
表1B
对于每帧具有640×480像素的M-JPEG视频数据、及VGA图像,下表1C是典型的。
表1C
对于如下这样的实施例,下表1D显示出可用带宽、压缩、消噪及锐化之间的典型关系:生成器32输出5兆像素图像,并且对应图像要在20秒内通过因特网传输,使得由用户手动执行白平衡,曝光是自动的(具有例如1/15秒的限制),并且聚焦及变焦可以是任意适合的用户期望值。注意,“压缩因子”列的每个单元格中的数值“x”表示结果数据尺寸是原始尺寸的1/x。
表1D
对于如下这样的实施例,下表1E显示出可用带宽、压缩、消噪及锐化之间的典型关系:640×480视频通过因特网实时传输,使得由用户手动执行白平衡,曝光是自动的(具有例如1/30秒的限制),聚焦关闭,变焦是手动的。注意,“压缩因子”列的每个单元格中的数值“x”表示结果数据尺寸是原始尺寸的1/x。
表1E
对于如下这样的实施例,下表1F显示出可用带宽、压缩、消噪及锐化之间的典型关系:720P视频通过因特网实时传输,使得由用户手动执行白平衡,曝光是自动的(具有例如1/60秒的限制),聚焦关闭,变焦是手动的。注意,“压缩因子”列的每个单元格中的数值“x”表示结果数据尺寸是原始尺寸的1/x。
表1F
图2示出图示本公开的捕获系统10中的图像/视频处理的至少一个实施例所执行的高级别步骤的流程图。在步骤204中,控制器52接收(在请求时或周期性地)数据,该数据指示当前可用的网络24带宽(或对图像/视频数据的传输的一个或多个约束,例如,诸如最小传输延迟时间的约束)。相应地,下文使用术语“网络传输数据”(及在图2中将其简写为“NTWK_TRANSMN-DATA”)以表示这样的网络或网络站点相关传输属性(更具体地是约束),所述属性用于影响记录器20处的数字图像/视频数据处理,使得这样的数字图像/视频数据到特定网络站点(28)的网络传输更有效。相应地,控制器52可维护(在内部数据储存库中,未示出)这样的网络传输数据。在一个实施例中,该数据可包括估计的能够及时传输到网络站点28的可用千字节数/秒。替代地/附加地,这样的数据可包括网络24的用于传输到网络站点28的时间延迟。其他可能性包括用于网络传输的指定时间窗口等。在步骤208中,控制器52接收记录器20将要接收图像/视频数据的信号或通知(例如,记录器的用户激活记录器以获得图像或视频)。注意,当控制器52被通知(例如,通过这样的用户输入)时,在网络传输数据包括可用网络带宽数据的情况下,控制器确定最近获得的可用网络24带宽的测量值是例如低于还是高于至少一个预定的网络带宽阈值。如果该测量值高于这样的阈值,则例如在记录器20的图像/视频初始捕获期间,图像/视频增强处理(例如自动曝光、自动白平衡及自动聚焦)可用于激活。替代地,如果该测量值低于这样的阈值,则阻止激活一个或多个图像/视频增强处理(诸如自动曝光、自动白平衡及自动聚焦)。特别地,在步骤212中,控制器52访问例如内部数据表(图1中没有示出),以确定是否已经获得了可能影响图像/视频初始捕获的网络传输数据。举例来说,该内部数据表可包括信息,该信息表明网络24具有目前充分减少(或增加)的可用带宽以保证改变由记录器20执行的图像/视频处理。因此,如果网络24可用带宽减少(例如,根据上述表1A至1F中适用的表中最后1行的带宽描述及测量范围),则可执行步骤216,其中,在一个实施例中,控制器52确定要减少或完全禁止哪个图像/视频能力(例如,自动曝光、自动白平衡、自动聚焦等),并将所确定信息传递给生成器32,以降低捕获的图像/视频数据量。
无论是否执行步骤216,在步骤220中,图像/视频生成器32都生成并存储从例如操作所述照相机/视频记录器20的用户获得的图像/视频数据。注意,在一个实施例中,照相机/视频记录器20可无需手动操作而运行,诸如,当这样的记录器20用于监督或监视时。还要注意,生成器32可包括用于所生成的图像/视频数据的非暂时性数据存储库(图1未示出)。替代地,如本领域技术人员能够理解的,这样的非暂时性数据存储库可在该生成器32外部。
一旦获得图像/视频数据(例如,存储在记录器20的非暂时性数据存储库中),就执行步骤224,其中,控制器52确定数据压缩的量(如果有)及类型以应用到图像/视频数据,用以在将该图像/视频数据(或其对应版本)传递到图像/视频捕获站点28时降低在网络24上传输的数据量。特别地,如上述表1A到1F所描述的,当诸如可用网络带宽的网络约束减少(增加)时,所述图像/视频数据将被压缩更多(更少)量。
在至少一个实施例中,在对于图像数据而执行步骤224时,评估器48获得或读取第一网络24相关参数数据,其指示用于在网络24上传送的图像数据的优选尺寸。由于生成器32输出的图像的尺寸对记录器20是可得的(例如,如上述表1D中的5兆像素),因此可计算压缩因子(即,生成器输出的图像的尺寸除以优选图像尺寸)。附加地/可选地,可通过从网络24传输读取(例如,从站点28传输)而提供第二参数数据,其指示要执行的数据压缩类型,或,替代地,压缩类型可由记录器20确定(例如,该记录器可确定可用压缩类型,其提供期望的压缩因子并且是损耗最低的)。给定这样的压缩因子及压缩类型(例如,无损(Loss Less),或JPEG),可访问驻留于记录器20的表(诸如表1D)来确定要执行的对应的增强处理(及其参数),诸如消噪及锐化处理。
注意,类似的确定可用于视频数据。例如,如果网络24提供优选数据传输速率,则假设记录器20有权访问生成器32输出的视频数据速率(例如,Kbps),能够确定视频压缩因子,用于网络上的对应传输。此外,压缩类型可以从网络24(或站点28)传输读取而确定,或者,替代地,压缩类型可由记录器20确定,其中,记录器可确定可用压缩类型,该压缩类型提供期望的压缩因子并且是损耗最低的。
因此,假设(i)记录器20有权访问一个或多个提供例如一个或多个表1D至1F(或用于其他图像尺寸和/或视频网络传输数据速率的类似表)的信息的表(或对应数据结构),并假设(ii)记录器20也有权访问期望的或优选的图像/视频网络传输属性(例如,尺寸或数据速率),则该记录器能够访问这样的表以至少确定要应用的消噪、锐化及压缩处理的类型、以及用于可操作地配置每个这些处理的参数。从而,尽管大部分这里的描述以及图2的流程图说明了依赖于可用网络带宽的这样的处理,但是其他已知/未知的约束/条件(例如,基本上与可用网络带宽无关的)可用于确定期望的或优选的图像/视频网络传输属性。
随后,在步骤228中,控制器52确定要对图像/视频数据执行的消噪的量或程度(如果有)及类型,其中,对于图像(例如,照片)数据,当要对图像/视频数据执行的压缩的量越大时,执行的消噪的量越大,并且其中,对于视频数据,消噪的量或程度与要执行的压缩的量或程度成相反关系。因此,例如对于图像数据,如果控制器52确定要执行的是无或很少的数据压缩,则可以执行最小量的减噪。
随后,在步骤232中,控制器52确定要锐化的图像/视频数据的量或程度(如果有)及类型,其中,锐化的量或程度与图像/视频数据的压缩的量或程度直接相关。从而,例如,如果控制器52确定要对图像/视频数据执行最小量的数据压缩,则可以执行最小量的锐化。
在步骤236中,控制器52向图像/视频增强处理40发出指令,用以根据步骤228及232中进行的确定而数字上增强图像/视频数据。特别地,可根据步骤228及232中进行的确定,激活消噪模块42和/或锐化模块44,以将它们各自的处理应用到图像/视频数据。注意,在一个实施例中,首先执行图像/视频数据的消噪处理(如果有),并且,对从消噪处理输出的图像/视频数据执行锐化处理(如果有)。此外,在记录器20的一个实施例中,自动曝光、自动白平衡及自动聚焦中一个或多个也可以是增强处理40中提供的图像/视频处理增强功能,并且可在步骤232及236中类似地进行处理。例如,控制器52可根据当前可用的网络40带宽而确定应用这样的功能的量或程度,其中,这样的功能被与当前可用网络带宽成相反关系地应用。
在步骤240中,假设要执行数据压缩,根据图2中步骤224中的确定“COMPRSSION_INFO”,控制器52向压缩器60发出指令,以压缩从图像/视频增强处理40输出的图像/视频数据的结果版本。注意,在某些程度上,可以不对图像/视频数据执行压缩,因为可能存在例如足够的网络24带宽、传输时间,或者传输窗口可能足够宽以传输图像/视频数据而不压缩其。此外,在某些程度上,如果网络24带宽(传输时间或传输窗口)充分减小,则不能执行任何图像/视频增强处理40,相应地,压缩器模块60可接收原始获得的图像/视频数据。注意,如本领域技术人员能够理解的,从控制器52至压缩器60的指令能够指示压缩器从哪里获得其输入。如本领域技术人员能够理解的,压缩器60可将压缩的数据输出到预定的数据存储库(图1未示出)。
在步骤244中,控制器52准备已对在记录器20获得的原始图像/视频数据执行的处理的处理历史,其中该历史标识下列项:
(i)图像/视频数据是否已被压缩;
(ii)如果图像/视频数据已被压缩,则标识使用的压缩技术及使用的压缩参数;
(iii)应用到图像/视频数据的图像/视频增强功能及它们的对应参数,包括:(a)应用的消噪的类型(如果有)及使用的参数,(b)应用的锐化的类型(如果有)及使用的对应参数,(c)是否执行了自动曝光、及其(任何)对应参数,(d)是否执行了自动白平衡、及其(任何)对应参数,及(e)是否执行了自动聚焦、手动聚焦和/或变焦距、及其(任何)对应参数;
(iv)期望的或优选已经应用的图像/视频增强功能(例如,在高可用带宽的最佳网络24带宽条件下,诸如,到站点28的小于0.5秒的ping往返延迟)。
此外,这样的历史信息也可包括记录器20的标识、和/或该记录器的用户、订户或所有者的标识,用以例如标识在执行了任何进一步的图像/视频处理并且将结果存储在图像/视频存档库84中之后,谁拥有或有权访问存储在网络站点28上的对应图像/视频数据。注意,在网络传输之前,所述历史信息可由控制器52输出到预定的数据存储位置,例如图1未示出的数据存储库。
为便于描述,从上述步骤得到的图像/视频将被称为“经记录器处理的图像/视频数据”。相应地,在步骤248中,控制器52发出指令,用以将经记录器处理的图像/视频数据及其对应历史信息两者均传输到视频/图像捕获网络站点28。这样的指令通过网络接口46接收,以指示该接口访问用于每个经记录器处理的图像/视频数据及其对应历史信息的数据存储库,并将其各自传输到网络站点28。特别地,该历史信息可在也传输经记录器处理的图像/视频数据的比特流中传输,或者,替代地,如本领域技术人员理解的,可通过单独的RTP/RTSP传输来传输该历史信息。在替代实施例中,控制器52可访问存储的经记录器处理的图像/视频数据及其对应历史信息两者,以将它们连同用于向站点28的传输的网络24地址(该地址标识该站点)一起,输入到网络接口46。
随后,在步骤252中,图像/视频捕获站点28的网络接口50接收从照相机/视频记录器20传输的经记录器处理的图像/视频数据及其对应历史信息两者。当接收到并识别出每个经记录器处理的图像/视频数据及其对应历史信息时,网络接口50可将它们输出到临时图像/视频数据存储库80,该存储库由数据库管理系统(诸如如本领域技术人员理解的关系数据库管理系统)管理。注意,这样的数据库管理系统可保持多种上下文值,用以在已经将经记录器处理的图像/视频数据及其对应历史信息两者存储其中时进行标识。
在网络接口50(或上述数据库管理系统)通知控制器76接收到经记录器处理的图像/视频数据及其对应历史信息两者之后,在步骤256中,该控制器根据所述历史信息确定该经记录器处理的图像/视频数据是否需要解压缩。如果需要解压缩,则在步骤260中,控制器76向解压缩器60发出指令,以解压缩存储在临时图像/视频数据存储库80中的经记录器处理的图像/视频数据。在一个实施例中,控制器76通过解压缩指令提供下列信息:
(a)用于访问临时图像/视频数据存储库80中的经记录器处理的图像/视频数据的数据。
(b)用于访问对应历史信息的字段的数据,所述字段标识用于压缩经记录器处理的图像/视频数据的压缩类型及参数。
如本领域技术人员理解的,除了上述(a)和(b)之外,也可提供其他信息给解压缩器60。而且,在一个实施例中,控制器76可仅通知解压缩器60新接收(并存储)的经记录器处理的图像/视频数据及其对应历史信息,接下来,解压缩器确定是否应用解压缩、解压缩类型及其参数。注意,由解压缩器60输出的解压缩的图像/视频数据可连同将其标识为解压缩的描述符数据一起存储在数据存储库80中。
为便于描述,无论所述图像/视频数据是否在步骤260中解压缩,其结果图像/视频数据在下文中都将被称为“解压缩的图像/视频数据”。
在对经记录器处理的图像/视频数据的(任意)解压缩之后,在步骤264中,控制器76根据对应存储的历史数据而确定要对解压缩的图像/视频数据执行的(任意)增强,并发出对应指令到图像/视频增强处理管理器64以执行任何确定的增强。特别地,控制器76确定是否要将消噪处理68及锐化处理72应用到解压缩的图像/视频数据(及应用到何种程度)。此外,控制器76(或图像/视频增强处理管理器64)可确定是否对解压缩的图像/视频数据应用进一步的增强,诸如自动曝光、自动白平衡及自动聚焦中的一个或多个。在一个实施例中,首先应用消噪(如果有),接下来应用(任意)自动曝光、自动白平衡及自动聚焦中的一个或多个,最后应用锐化。更特别地,可根据历史信息执行下列增强:
(i)增加图像的对比度或亮度,以恢复或增大已被减小太多的原始图像/视频的动态范围;例如,补偿由于减少的可用网络带宽(或其相关参数)而执行的记录器20的处理。例如,当已经在记录器20应用了一个或多个消噪及锐化处理技术、并且这样的处理已经去除了高频及低频两者以减少网络带宽量时,图像/视频结果可以是本质上柔和的。例如,当在记录器20对图像/视频进行处理以适应对于640×480的视频图像的具有低于1500Kbps的比特率的网络传输时,会发生这种情况。
(ii)去除随机彩色点;例如,这样的点可能特别在至少一部分图像/视频数据被无线传输时出现。注意,在某些实施例中,该历史信息可包括标识来自记录器20的传输是否包括无线传输的数据。
(iii)如本领域技术人员理解的,可以通过获知历史信息中指示的处理来增强图像/视频数据的升级。
(iv)如本领域技术人员理解的,检测图像/视频数据中出现的圆环或块效应(blockness),然后应用对应的缓解增强。
随后,在步骤268,在图像/视频增强处理管理器64接收到来自控制器76的指令时,增强处理管理器64顺序激活增强处理,用于例如按照指令所确定的对所述解压缩的图像/视频数据进行流水线化以通过那里,并将作为结果的增强的图像/视频数据存储在图像/视频存档库84中。应当注意,可以将信息与作为结果的图像/视频数据关联地存储,用于确定谁或什么可以访问作为结果的增强的图像/视频数据。在不同实施例中,将一个或多个下列数据与作为结果的增强的图像/视频数据关联地存储,用以标识那些有权访问的:记录器20的标识、记录器的用户、订户或所有者的标识,对应的经记录器处理的数据从所述标识获得。
一旦将作为结果的增强的图像/视频数据存储在图像/视频存档库84中,如本领域技术人员理解,授权的用户就可请求访问或传输这样的增强的图像/视频数据以进行观看。
已经为了描述及说明的目的给出了本公开。此外,这里的描述不意图将本公开限制于这里公开的形式。特别地,在具有相关领域的普通技术的人员的技能和知识范围内,根据上述教导而进行的变动或改变在本公开的范围内。本公开还意图如权利要求中所述的那样解释目前已知的实践本发明的最佳方式,并且使本领域其他技术人员能够使用本公开或从其衍生的其他实施例(例如,通过它们对本公开特别应用或使用所需要的各种更改)。
附录
消噪
为了简化,在下文的描述中,下面的描述及表A1提供进一步细节。
·积极消噪:如本领域技术人员理解的,该消噪包括与高程度的掩码系数结合的低通滤波及中值滤波,其中,“高程度的掩码系数”意味着其中k=32-47。
·适度消噪:如本领域技术人员理解的,该消噪包括具有较小程度的掩码系数(例如,在8-31的范围内)的低通滤波,并且在某些情况下激活中值滤波。
·很少/无消噪:如本领域技术人员理解,该术语包括无消噪、不使用低通滤波或使用非常小的低通滤波(例如,“小”意味着其中k=0-7)的消噪、以及无中值滤波。
注意,在上面对术语的描述中,“积极消噪”比“适度消噪”提供消噪,而“适度消噪”又比“很少/无消噪”提供消噪。在一个实施例中,如本领域技术人员理解的,上述对消噪的描述可被更具体地标识如下:
表A1
消噪往往使结果图像或视频呈现为更平滑或更同质。可认为这样的消噪有益于未显示出很多需要细节清楚的小对象的图像/照片。
锐化
关于锐化,在下文的描述中,下面的描述及表A2提供进一步细节。
·积极锐化:本领域技术人员可理解,由锐化模块44激活大高斯模糊技术,以处理数字图像/视频数据,其中,这里的“大高斯模糊”指均值1.6及方差5。
·适度锐化:本领域技术人员可理解,通过执行较小的去卷积而锐化数字图像/视频数据,其中,“较小的去卷积”指均值0且方差0.05。
注意,术语“积极锐化”比“适度锐化”提供锐化,而“适度锐化”又比“很少/无锐化”提供锐化。在一个实施例中,本领域技术人员可以理解,上述对锐化的描述可被更具体地标识如下:
表A2
压缩
关于压缩,在下文的描述中,下面的描述及表A3提供进一步细节。
·积极压缩:由压缩器模块36激活高压缩技术,以处理数字图像/视频数据。
表A3