用于增强内容的系统的制作方法

文档序号:6497031阅读:208来源:国知局
用于增强内容的系统的制作方法
【专利摘要】公开了一种用于增强内容文件的系统和方法。该系统包括直方图模块、对比度扩展模块和亮度模块。直方图模块生成直方图,其包括描述用于包括在内容文件中的一个或多个通道的一个或多个像素强度的数据。对比度扩展模块至少部分地基于直方图来调整用于包括在内容文件中的一个或多个通道的一个或多个像素强度。亮度模块被通信耦合到对比度扩展模块,用于确定用于内容文件的亮度水平是否在描述一个或多个可接受亮度水平的范围内。亮度模块响应于确定用于内容文件的亮度水平在该范围之外而调整用于内容文件的亮度水平。
【专利说明】用于增强内容的系统
[0001]相关申请的交叉引用
[0002]根据美国法典第35条第119(e)款,本申请要求于2011年9月12日提交的题为“System for Enhancing Content”的美国专利N0.61/533,758的优先权,其全部内容通过引用被合并到本文中。
【技术领域】
[0003]本说明书涉及数据管理系统。更具体地,本申请涉及一种用于增强内容的系统。【背景技术】
[0004]越来越多的用户使用一个或多个视频托管站点在线观看诸如视频数据之类的内容。另外,许多视频托管站点允许用户向视频托管站点视频内容。通常,观看内容的用户希望修改内容的图像质量。然而,修改图像质量的现有方法难以实现。许多用户并不拥有修改内容的图像质量所需的技术专长。现有方法还花费过多时间,使得大多数用户不尝试修改内容。

【发明内容】

[0005]根据实施例,描述了一种用于增强内容文件的图像的系统,其包括视频托管站点。内容托管站点管理诸如被客户端访问的视频之类的内容。发布者向视频托管站点上载视频内容。内容托管站点将由发布者上载的视频推到客户端。在一个实施例中,客户端上载视频内容。
[0006]在一个实施例中,内容托管站点管理被客户端访问的图片。发布者向视频托管站点上载图片内容。内容托管站点将由发布者上载的图片推到客户端。在一个实施例中,客户端上载图片内容。
[0007]具体地,在此公开的实施例提供了一种用于增强内容文件的系统和方法。该系统包括直方图模块、对比度扩展模块和亮度模块。直方图模块生成直方图,其包括描述用于包括在内容文件中的一个或多个通道的一个或多个像素强度的数据。对比度扩展模块至少部分地基于直方图来调整用于包括在内容文件中的一个或多个通道的一个或多个像素强度。亮度模块确定用于内容文件的亮度水平是否在描述一个或多个可接受亮度水平的范围内。亮度模块响应于确定用于内容文件的亮度水平在该范围之外而调整用于内容文件的亮度水平。
[0008]在一个实施例中,该系统响应于用户输入包括指示用户想要增强图像的数据而增强内容文件的图像。在另一实施例中,系统在内容文件被上载到内容托管站点时增强图像。例如,用户上载内容文件且内容托管站点向用户发射消息,问他们其是否想要增强图像。在另一示例中,用户上载内容文件且内容托管站点在不要求来自用户的输入的情况下增强图像。
[0009]在此所述的特征和优点并不是包括一切的,并且鉴于附图和描述,许多附加特征和优点对于本领域的普通技术人员而言将是显而易见的。此外,应注意的是本说明书中所使用的语言主要是出于易读性和指导的目的而提供的,并且并不限制在此公开的主题的范围。
【专利附图】

【附图说明】
[0010]在附图的图中以示例的方式且并不以限制的方式图示出实施例,在附图中相同的附图标记用来指示类似元件。
[0011]图1是根据实施例的用于增强内容的系统的高级框图。
[0012]图2是根据实施例的内容增强器的框图。
[0013]图3是根据实施例的用于增强内容的方法的流程图。
[0014]图4是根据实施例的用于增强内容的方法的流程图。
[0015]图5是根据实施例的包括边界的图像的图形表示。
[0016]图6是根据实施例的包括隐藏字幕的图像的图形表示。
[0017]图7是根据实施例的在客户端设备上显示的用户界面的图形表示。
[0018]图8是根据另一实施例的在客户端设备上显示的用户界面的图形表示。
【具体实施方式】
[0019]下面描述用于增强内容的系统和方法。在实施例的以下描述中,出于说明目的,阐述了许多特定细节以提供各种实施例的透彻理解。然而,对于本领域的技术人员而言将显而易见的是能够在没有这些特定细节的情况下实践各种实施例。在其他情况下,以框图形式示出了结构和设备以便避免使某些细节含糊难懂。例如,下面参考用户界面和特定硬件来描述实施例。然而,能够参考能够接收数据和命令的任何类型的计算设备以及提供服务的任何外围设备来描述其他实施例。
[0020]对“一个实施例”或“实施例”的引用意指结合该实施例所述的特定特征、结构或特性被包括在至少一个实施例中。短语“在一个实施例中”在本描述中的不同位置上的出现不一定全部引用同一实施例。
[0021]以下描述的某些部分是在对计算机存储器内的数据位的操作的算法和符号表示方面提出的。这些算法描述和表示是数据处理领域的技术人员用来向本领域的其他人员更有效地传达其工作的实质的方法。算法在这里且一般地可设想成是导致期望结果的步骤的自相一致序列。该步骤是要求物理量的物理操纵的那些。通常,但不一定必须,这些量采取能够被存储、传输、组合、比较或操纵另外的电或磁信号的形式。主要由于一般使用的原因,有时将这些信号称为位、值、元素、符号、字符、项、数字等已证明是方便的。
[0022]然而,应记住的是所有这些和类似术语将与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非另外具体地说明,如从以下描述显而易见的那样,应认识到遍及本描述,诸如“处理”、“计算”、“确定”、“显示”等术语指的是基于处理器的计算机系统或类似电子计算设备的动作和过程,操纵在计算机系统的寄存器和存储器内表示为物理(电子)量的数据并将该数据变换成在计算机系统的存储器或寄存器或其他此类信息存储、传输或显示设备内类似地表示为物理量的其他数据。
[0023]本实施例还涉及用于执行在此的操作的设备。此装置可出于所需目的特殊地构造,或者其可以是被存储于计算机中的计算机程序选择性地激活或重配置的通用计算机。公开的实施例可采取全硬件实施例、全软件实施例或包括硬件和软件元件两者的实施例。一个实施例是用包括存储于计算机可读存储介质上的指令或数据的软件实现的,其包括但不限于固件、常驻软件、微代码或用于存储指令以便由处理器执行的另一方法。
[0024]此外,实施例能够采取计算机程序产品的形式,其可从提供程序代码以供计算机或任何指令执行系统或与之相结合地使用的计算机可用或计算机可读存储介质访问。出于本描述的目的,计算机可用或计算机可读存储介质可以是能够包含、存储或传输程序以供指令执行系统、装置或设备或与之相结合地使用的任何装置。计算机可读存储介质可以是电子、磁、光、电磁、红外或半导体系统(或装置或设备)或传播介质。有形计算机可读存储介质的示例包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘、光盘、EPR0M、EEPR0M、磁卡或光卡。光盘的示例包括紧凑式磁盘——只读存储器(CD-ROM)、紧凑式磁盘一读/写(CD-R/W)和数字视频磁盘(DVD)。
[0025]存储器元件可包括在程序代码的实际执行期间所采用的本地存储器、大容量存储以及高速缓冲存储器,其提供至少某些程序代码的临时存储以便减少在执行期间必须从大容量存储检索代码的次数。在某些实施例中,输入/输出(I/o)设备(如键盘、显示器、指示设备或被配置成接收数据或呈现数据的其他设备)被直接地或通过中间I/o控制器耦合到系统。
[0026]还可将网络适配器耦合到数据处理系统以允许通过中间私用或公共网络耦合到其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅仅是当前可用类型的网络适配器的示例。
[0027]最后,在此提出的算法和显示并非固有地与任何特定的计算机或其他装置有关。可将各种通用系统与根据在此的公开的程序一起使用,或者将更特殊化的装置构造成执行所需方法步骤可证明是方便的。根据以下描述将清楚用于多种此类系统的所需结构。将认识到的是可使用多种编程语言来实现如在此所述的实施例的公开。
[0028]系统概述
[0029]图1是图示用于增强内容的系统130的实施例的高级框图。如在此所使用的内容包括由内容托管站点100托管的视频和图片。系统130的所示实施例包括:客户端设备115a、115η (共同地或单独地称为客户端设备115),其被用户125a、125η (共同地或单独地称为用户125)、内容提供商118以及内容托管站点100访问。除下面描述的其他元件之外,内容托管站点100包括内容增强器191。
[0030]虽然在图1中仅示出了一个内容提供商118、两个客户端设备115和一个内容托管站点100,但本领域的普通技术人员将认识到能够将任何数目的内容提供商118、客户端设备115和内容托管站点100通信耦合到网络105。此外,虽然仅一个网络105被耦合到客户端设备115、内容提供商118和内容托管站点100,但本领域的普通技术人员将认识到能够将任何数目的网络105连接到客户端设备115、内容提供商118和内容托管站点100。
[0031]网络105是常规类型的网络,有线的或无线的,并且可具有任何数目的配置,诸如星形配置、令牌环配置或本领域的技术人员已知的其他配置。在一个实施例中,网络105包括局域网(LAN)、广域网(WAN)(例如因特网)和/或多个设备跨越其进行通信的任何其他互连数据路径中的一个或多个。在另一实施例中,网络105是端对端网络。网络105被耦合到或包括电信网络的各部分以便在多种不同的通信协议中发送数据。例如,网络105是3G网络或4G网络。在又另一实施例中,网络105包括蓝牙通信网络或蜂窝通信网络以便发送和接收数据,诸如经由短消息服务(SMS)、多媒体消息服务(MMS)、超文本传输协议(HTTP)、直接数据连接、无线应用协议(WAP)、电子邮件等。在又另一实施例中,使用诸如安全套接字层(SSL)、安全HTTP和/或虚拟专用网络(VPN)之类的常规加密技术将网络105中的所有或某些链路加密。
[0032]在所示实施例中,内容托管站点100经由信号线113被通信耦合到网络105。内容提供商118经由信号线181被通信耦合到网络105。客户端115a经由信号线183被通信耦合到网络105。用户125a如信号线197所表示的那样与客户端设备115a交互。客户端设备115η和用户125被以类似方式耦合和进行交互。
[0033]内容托管站点100是允许用户经由搜索和/或浏览界面来访问知识产权内容的任何系统。将理解的是术语“网站”表示适于使用任何因特网工作协议而派发内容的任何计算机系统,并且其并不意图限于经由因特网或HTTP协议上载或下载的内容。
[0034]在一个实施例中,内容托管站点100被配置成接收并共享诸如视频或图片之类的任何内容的全部或一部分。本领域的普通技术人员还将认识到能够用任何介质类型和/或文件类型来表示内容。例如,内容托管站点100共享内容,诸如视频文件和图像文件(诸如JPEG或GIF文件)中的一个或多个。
[0035]在一个实施例中,由内容托管站点100提供的内容的源来自由操作客户端设备115的用户125进行的内容上载、内容的其他网站或数据库的搜索或爬行等或其任何组合。例如,在一个实施例中,内容托管站点100被配置成允许由用户125进行的内容上载。在另一实施例中,内容托管站点100被配置成通过在此类源上爬行并实时地搜索此类源而仅从其他源获得内容。
[0036]内容托管站点100被通信耦合到网络105。在所示实施例中,内容托管站点100包括:前端接口 102 ;内容派发模块104 ;内容搜索模块106 ;上载服务器108 ;呈现模块108 ;缩略图生成器112 ;用户数据库114 ;内容数据库116 ;以及内容增强器191。在一个实施例中,内容托管站点100的组件被相互通信耦合。例如,其经由总线(未示出)被相互通信耦合。未示出诸如防火墙、负载平衡器、认证服务器、应用服务器、故障恢复服务器、站点管理工具等其他常规特征以免使系统的特征含糊难懂。
[0037]在一个实施例中,内容托管网站100的所示组件被实现为单件的软件或硬件或者作为多件的软件或硬件。一般地,在一个实施例中被描述为由一个组件执行的功能在其他实施例中也能够由其他组件或者由组件的组合来执行。此外,在一个实施例中被描述为由内容托管站点100的组件执行的功能在适当的情况下在其他实施例中由一个或多个客户端设备115执行。在一个实施例中,由一起操作的不同或多个组件来执行归于特定组件的功能。
[0038]在一个实施例中,各种模块中的每一个被实现为服务器程序,其在服务器类计算机上执行,包括一个或多个中央处理单元(一个或多个“CPU”)、存储器、网络接口、外围接口及其他众所周知的组件。计算机本身优选地运行诸如LINUX之类的开放源操作系统,具有一般地高性能CPU、I千兆字节或以上的存储器以及100千兆字节或以上的磁盘存储。在一个实施例中,使用其他类型的计算机,并且可预期随着将来开发更强大的计算机,根据在此公开的教导对其进行配置。在另一实施例中,从计算机程序产品提供由任何元件实现的功能,所述计算机程序产品被存储在有形的计算机可访问存储介质(例如随机存取存储器(“RAM”)、闪存、硬盘、光/磁介质或固态驱动器(“SSD”)等)中。
[0039]前端接口 102是处理经由网络105与内容提供商118和客户端设备115中的一个或多个的通信的接口。例如,前端接口 102接收从内容提供商118上载的内容文件并将该内容传送至上载服务器108。在一个实施例中,前端接口 102从客户端设备115的用户125接收请求,并将该请求传送至内容托管站点100的其他组件(例如,内容搜索模块106或内容派发模块104)。例如,内容是视频且前端接口 102从用户接收视频搜索查询并将视频搜索查询发送到内容搜索模块106。
[0040]上载服务器108经由前端接口 102从内容提供商118接收一个或多个内容文件。例如,上载服务器108从内容提供商118接收视频文件和诸如JPEG或GIF之类的图像文件中的一个或多个。在一个实施例中,上载服务器108处理该一个或多个内容并将已处理的内容存储在内容数据库116中。上载服务器108向存储的内容文件分配内容标识(“内容ID”)。内容ID包括用于视频的标识符(“视频ID”)和图片的标识符(“图像ID”)。例如,上载服务器108向视频分配视频ID并将该视频与视频ID —起存储在内容数据库116中。在其他实施例中,上载服务器108执行以下中的一个或多个:将内容格式化;将内容压缩;对内容加元数据标签;内容分析等。
[0041]内容数据库116是存储被内容托管站点100与用户125共享的内容的存储系统。在一个实施例中,内容数据库116存储上载服务器108处理的内容文件。在另一实施例中,内容数据库116还存储与内容文件相关联的元数据。该元数据包括以下中的一个或多个:标题;描述;标签信息;时间长度等。在一个实施例中,内容文件的某些或所有元数据由内容提供商118提供。例如,内容提供商118的用户在将内容上载到内容托管站点100时提供内容的标题和描述。
[0042]内容搜索模块106包括代码和例程,其在被处理器(未示出)执行时处理前端接口 102从用户125接收到的任何搜索查询。由前端接口 102从用户125接收到的搜索查询包括诸如识别用户感兴趣的内容的关键字之类的搜索标准。内容搜索模块106使用搜索标准来查询存储在内容数据库116中的内容文件的元数据。用于查询的搜索结果被返回到前端接口 102以便呈现给用户125。例如,如果用户125为前端接口 102提供关键字搜索查询,则内容搜索模块106识别与该关键字有关的内容数据库116中所存储的内容文件并向前端接口 102返回搜索结果(例如,内容ID和/或元数据,诸如所识别的内容文件的标题、描述、缩略图)。
[0043]内容派发模块104包括在被处理器(未示出)执行时处理对内容(例如视频、书、图片、音乐文件等)的请求并将内容提供给用户的代码和例程。例如,内容派发模块104经由前端接口 102从用户接收查询、至少部分地基于该查询而从内容数据库116检索一组视频并经由前端接口 102将该组视频呈现给用户。
[0044]在一个实施例中,内容派发模块104在用户点击到内容的链接时从用户接收用以访问内容的请求。从用户接收到的请求包括用户希望访问的内容的内容ID。在一个实施例中,一旦用户点击用于内容的链接,内容ID被自动地包括在请求中。内容派发模块104使用内容ID来对内容数据库116中的内容进行搜索和定位。一旦对所请求内容进行定位,内容派发模块104经由前端接口 102将内容发射给用户。内容在网页上被呈现给用户。还将与内容相关联的元数据与内容一起呈现,诸如内容的标题和描述。在一个实施例中,内容派发模块104在将内容发送给用户之后将内容的内容ID存储在用户数据库114中,使得用户的内容历史被存储在用户数据库114中。
[0045]用户数据库114是存储与用户相关联的数据和/或信息的存储系统。例如,用户数据库114存储由用户上载到内容托管站点100的内容文件的内容ID和用户已从内容数据库116访问的内容文件的内容ID。在一个实施例中,通过使用登录名和密码和/或使用用户的网际协议地址来识别用户。
[0046]缩略图生成器112包括生成用于内容的缩略图的代码和例程。缩略图是表示内容托管站点100中的内容的图片。例如,假设内容是视频。缩略图生成器112分析视频并将视频的帧选作缩略图。在一个实施例中,缩略图生成器112提供用于视频的一个或多个图片,并且将视频上载到内容托管站点100的用户将一个图片选作缩略图。
[0047]呈现模块110包括在被处理器(未示出)执行时向诸如客户端设备115之类的相应客户端设备呈现意图用于用户的任何信息的代码和例程。例如,呈现模块110生成与存储在内容数据库116中的内容或存储在所有权数据库128中的所有权信息相关联的图形,并经由前端接口 102和网络105将该图形发送到安装在客户端设备115中的web浏览器(未示出)。
[0048]内容增强器191包括被配置成提供下面参考图2— 8描述的功能的代码和例程。
[0049]内容提供商118是向内容托管站点100提供内容的任何设备。例如,内容提供商118是向内容托管站点100上载内容的计算设备。内容提供商118被通信耦合到网络105。在一个实施例中,内容提供商118也是客户端设备115。在一个实施例中,内容提供商118是操作内容托管站点100的同一实体。
[0050]在一个实施例中,内容提供商118被配置成操作客户端设备以执行各种内容提供商功能。内容提供商功能的示例包括但不限于:向内容托管站点100上载内容;编辑由内容托管站点100存储的内容;从内容托管站点100移除内容;以及编辑与内容相关联的内容提供商偏好。
[0051]客户端设备115是任何基于处理器的计算设备。客户端设备115执行诸如web浏览器或内置客户端应用之类的客户端软件并经由网络105连接到内容托管站点100。在一个实施例中,客户端设备115包括多种不同的计算设备。客户端设备115的示例包括但不限于:个人计算机;个人数字助理;电视机顶盒;平板计算机;智能电话;以及膝上型计算机。客户端设备115包括处理器(未示出)、存储器(未示出)和计算设备常规的其他组件。在一个实施例中,客户端设备115被通信耦合到网络105。
[0052]在一个实施例中,客户端设备115被配置为内容提供商118以向内容托管站点100提供内容。在一个实施例中,客户端设备115被配置成检索由内容托管站点100存储的内容。例如,客户端设备115包括嵌入式视频播放器(例如,来自Adobe System公司的FlashTM播放器),其适于在视频托管网站100中使用的视频内容格式,使得用户能够使用嵌入式视频播放器观看来自内容托管站点100的视频。
[0053]内容增强器191
[0054]现在参考图2,更详细地示出了内容增强器191。图2是描述内容托管站点100的实施例的框图。图2中所描述的是内容增强器191、处理器235、存储器237、呈现模块110和增强器存储199。在一个实施例中,图2中未描述的内容托管站点100的组件(例如,内容派发模块104、内容搜索模块106、上载服务器108、缩略图生成器112等)被存储在存储器237中。
[0055]在一个实施例中,处理器235是内容托管站点100的计算机处理器,并且能够用来执行包括内容派发模块104、内容搜索模块106、上载服务器108、缩略图生成器112以及内容增强器191中的一个或多个的代码和例程。处理器235包括算术逻辑单元、微处理器、通用控制器或某个其他处理器阵列以执行计算并执行内容派发模块104、内容搜索模块106、上载服务器108、缩略图生成器112和内容增强器191。处理器235被耦合到总线220以便与内容托管站点100的其他组件通信。
[0056]处理器235处理数据信号并且可包括各种计算架构,包括复杂指令集计算机(CISC)架构、精简指令集计算机(RISC)架构或实现指令集的组合的架构。虽然在图2中仅示出了单个处理器,但可包括多个处理器。处理能力可限于支持图像的显示和图像的捕捉和传输。处理能力可能足以执行更复杂的任务,包括各种类型的特征提取和采样。对于本领域的技术人员将显而易见的是可以有其他处理器、操作系统、传感器、显示器和物理配置。处理器235经由信号线236被通信耦合到总线220。
[0057]存储器237是非临时存储介质。存储器237存储可由处理器235执行的指令和/或数据。例如,存储器237存储上文参考图1所述的内容托管站点100的模块中的一个或多个。存储器237被通信耦合到总线220以便与内容托管站点100的其他组件通信。在一个实施例中,存储在存储器237上的指令和/或数据包括用于执行在此所述的任何和/或所有技术的代码。存储器237是动态随机存取存储器(DRAM)器件、静态随机存取存储器(SRAM)器件、闪速存储器或本领域中已知的某个其他存储器件。在一个实施例中,存储器237还包括非易失性存储器或类似永久存储器件和介质,诸如硬盘驱动器、软盘驱动器、CD-ROM器件、DVD-ROM器件、DVD-RAM器件、DVD-Rff器件、闪速存储器件或在本领域中已知的某个其他非易失性存储器件。存储器237经由信号线238被通信耦合到总线220。在一个实施例中,存储器237存储内容增强器191和包括在内容增强器191中的子模块202、204、206、208、210。
[0058]呈现模块110经由信号线240被通信耦合到总线220。增强器存储119经由信号线242被通信耦合到总线220。
[0059]在一个实施例中,内容增强器191包括通信模块202、边缘排除模块204、直方图模块206、对比度扩展模块208和亮度模块210。
[0060]通信模块202包括在被处理器235执行时管理内容增强器191的元件与内容托管站点100之间的通信的代码和例程。通信模块202经由信号线222被通信耦合到总线220。
[0061]在一个实施例中,通信模块202从用户125接收输入以便请求内容文件的增强。例如,响应于用户125点击在客户端设备115上显示的用户界面上的图形按钮,指示用户125期望增强内容文件(例如视频文件),通信模块202经由网络105和前端接口 102从客户端设备115接收用于增强内容文件的请求。在一个实施例中,通信模块202向边缘排除模块204和/或直方图模块206传送用于请求内容文件的增强的输入。在另一实施例中,通信模块202从对比度扩展模块208和/或亮度模块210接收增强的内容文件,并将该增强的内容文件传送至生成用于显示增强的内容文件的用户界面的呈现模块110。
[0062]边缘排除模块204包括在被处理器235执行时向内容文件施加边缘排除值使得视频的一部分不被内容增强器191的其他模块206、208、210考虑的代码和例程。例如,假设帧包括边界或隐藏字幕。下面将参考图5— 6来更详细地描述包括边界的第一帧和包括隐藏字幕的第二帧的示例。
[0063]在一个实施例中,边缘排除值指定将从由内容增强器191的其他元件进行的分析中排除的帧(或图片)的边缘的固定百分比量。相应地,对于第一帧(在图5中示出)而言,由于未分析帧的边缘,所以在帧的任一侧的黑色边缘不被内容增强器191的其他元件考虑。类似地,对于第二帧(在图6中示出)而言,由于未分析帧的边缘,所以包括用于隐藏字幕的文本的帧的底部部分不被内容增强器191的其他元件考虑。
[0064]在一个实施例中,边缘排除值至少部分地基于从内容托管站点100的管理者接收到的输入。例如,边缘排除值被配置成使得沿着每个边缘的帧的25%被从由内容增强器191提供的分析排除。换言之,帧的高度的50%被从分析排除,并且帧的宽度的50%被从分析排除。这样,内容增强器191仅分析帧的中心。
[0065]边缘排除数据292是存储在增强器存储199上的数据。边缘排除数据292包括边缘排除值。在一个实施例中,边缘排除数据292包括内容增强器191提供其功能所需的任何其他数据。
[0066]边缘排除模块204至少部分地基于边缘排除值来处理视频文件(或图像文件),使得视频中的帧的部分(或图片的部分)被从由直方图模块206、对比度扩展模块208和亮度模块210进行的处理排除。边缘排除模块204经由信号线224被通信耦合到总线220。
[0067]直方图模块206包括在被处理器235执行时基于内容文件和分析间隔290来确定一个或多个直方图的代码和例程。内容文件包括用于生成诸如视频或图片之类的内容的图形表示的数据。该图形表示由许多像素形成。像素由颜色红色、绿色和蓝色中的一个或多个形成。下面将颜色红色、绿色和蓝色描述为通道。例如,对于给定图像而言,图像具有红色通道、绿色通道和蓝色通道。在一个实施例中,通道包括除红色、绿色和蓝色之外的不同和/或附加的颜色。直方图描述在一段时间内从视频采样的用于一个或多个通道(即,红色、绿色或蓝色)的像素值。在一个实施例中,直方图描述例如由管理者定义的一段时间内的通道的加权平均。分析间隔290包括描述该时间段的数据。在一个实施例中,直方图模块205生成用于红色通道的第一直方图、用于绿色通道的第二直方图和用于蓝色通道的第三直方图。因此,在一个实施例中,直方图模块206生成用于视频中的图像的超过一个直方图。直方图模块206经由信号线226被通信耦合到总线220。
[0068]在一个实施例中,直方图模块206确定分析间隔290。在另一实施例中,直方图模块206从内容托管站点100的管理者接收指示分析间隔290的输入。直方图模块206至少部分地基于分析间隔290和描述边缘排除值的边缘排除数据292来生成用于内容文件的一个或多个直方图。例如,直方图模块206生成在分析间隔内从内容文件(例如视频文件)的帧采样的像素值(例如,用于红色、绿色或蓝色通道的像素强度)的直方图。该分析间隔以视频文件的当前输入帧为中心。在一个实施例中,根据其有多接近于当前帧而经由高斯分布对分析间隔内的每个帧中的像素值进行加权。这样,视频帧的贡献随着其进入分析间隔而逐渐地增加,使得可避免任何突然移位。在一个实施例中,分析间隔默认为10秒。例如,分析间隔在当前帧的任一侧默认为5秒。
[0069]对比度扩展模块208包括在被处理器235执行时确定用于至少部分地基于由直方图模块206生成的一个或多个直方图来调整通道中的一个或多个的强度的对比度乘数的代码和例程。在一个实施例中,对比度扩展模块208确定用于红色通道的第一对比度乘数、用于绿色通道的第二对比度乘数和用于蓝色通道的第三对比度乘数。例如,对比度扩展模块208基于所述一个或多个直方图来生成一个或多个对比度乘数。在一个实施例中,对比度乘数是用来乘以用于帧中的一个或多个像素的一个或多个像素强度以便调整用于一个或多个像素的强度的因数。
[0070]在一个实施例中,对比度扩展模块208确定用于红色、绿色和蓝色通道中的每一个的对比度乘数,并通过将像素强度乘以用于每个通道的对比度乘数而单独地扩展用于视频的红色、绿色和蓝色通道的对比度。这样做提供某个水平的色彩平衡等。
[0071]在一个实施例中,对比度扩展模块208确定水平阈值。例如,水平阈值默认为0.005。在一个实施例中,对比度扩展模块208通过将水平阈值应用于直方图来确定对比度乘数。例如,对比度扩展模块208确定由水平阈值指定的某个百分数。假设水平阈值是0.005。对比度扩展模块208将所述某个百分数确定为百分之0.5。对比度扩展模块208然后通过找到通道的直方图中的百分之0.5和100-百分之0.5 (例如百分之99.5)来确定对比度乘数。对比度扩展模块208排除最高和最低像素的某个百分数(例如百分之0.5)以允许有界外值。这样做的好处包括例如但不限于排除促使不发生对比度扩展的图像(或帧)中的任何位置处的单个白色或黑色像素。对比度扩展模块208然后在应用排除之后乘以像素值,使得最高和最低点之间的范围将占据颜色强度的范围中的像素值的总范围,例如从0—255,0—1或用于颜色强度范围的任何其他方案。
[0072]在一个实施例中,对比度扩展模块208应用如下所述的对比度限制。对比度限制是有益的,例如当视频或图片中的一个或多个帧包括几乎完全黑色的图像时。例如,假设在对在颜色方面主要为黑色的图像应用对比度乘数以将其对比度扩展至O — 255的范围之后,从过度扩展产生一个或多个伪像。对比度限制定义由对比度扩展模块208执行多少对比度扩展的最大量。例如,对比度限制默认为值5。在一个实施例中,对比度限制设立用于对比度扩展的上界和下界。
[0073]在一个实施例中,存在一个或多个对比度限制。例如,每个通道具有单独对比度限制。在一个实施例中,对比度限制是由从内容托管站点100的管理者接收到的输入指定的值。在另一实施例中,存在用于三个不同通道(即,红色、绿色和蓝色通道)的一个对比度限制。
[0074]在一个实施例中,对比度扩展模块208应用如下所述的色移限制。例如,假设帧的图像描述日落。帧的图像包括一个或多个颜色(即、红色、绿色和蓝色通道)相对于其他颜色的减少的量。在这里,例如,日落的图像由于在日落时存在的颜色而包含增加量的红色。对比度扩展模块208分析图像以确定图像包含颜色中的一个或多个相对于其他颜色的减少的量(例如,在这里,图像包含相对于红色的量而言减少量的蓝色和绿色)。
[0075]在一个实施例中,对比度扩展模块208至少部分地基于来自内容托管站点100的管理者的指定色移限制的输入来确定色移限制。该色移限制是指定用于红色、绿色和蓝色通道中的一个或多个的对比度乘数之间的增量的最大量的值。例如,色移限制默认为1.0。色移限制确保在对红色、绿色和蓝色通道进行的对比度调整之间平衡。这样,在不同通道之间具有某个颜色比的图像将在由对比度扩展模块208应用的调整之后保持该平衡(或近似类似的平衡)。
[0076]在一个实施例中,对比度扩展模块208计算用于三个通道的三个对比度乘数的平均值。对比度扩展模块208然后将三个对比度乘数的值调整至由平均值和色移限制指定的范围。例如,该范围以具有由色移限制指定的上界和下界的平均值为中心。在一个实施例中,如果达到色移限制,则对比度扩展模块208调整对比度乘数使得将不会超过该色移限制。在涉及到日落图像的以上示例中,色移限制被对比度扩展模块208配置成使得用于红色通道的像素强度减小以创建红色、绿色和蓝色通道之间的更加平衡。在一个实施例中,对比度扩展模块208基于色移限制来调整对比度乘数,使得红色、绿色和蓝色通道是至少基本上平衡的。例如,如上所述,在应用对比度乘数之后,红色、绿色和蓝色通道之间的平衡保持相同或近似相同。
[0077]在涉及到色移限制的一个实施例中,不要求红色、绿色和蓝色通道是完美地平衡的。相反,色移限制的目的是减小红色、绿色和蓝色通道之间的像素强度的增量,使得实现更大的平衡。
[0078]对比度扩展模块208经由信号线228被通信耦合到总线220。
[0079]亮度模块210包括在被处理器235执行时调整用于一个或多个像素的亮度的代码和例程。在一个实施例中,亮度模块210确定图像或视频是否在可接受亮度的目标窗口内,并调整图像或视频的亮度,使得该亮度在目标窗口内。例如,假设按O至100的标度测量亮度,并且可接受亮度的目标窗口默认为50-70的范围。
[0080]在一个实施例中,内容托管站点100的管理者向内容托管站点100提供存储在诸如增强器存储199之类的存储器中的亮度输入。该亮度输入定义可接受亮度水平的目标窗口。假设按1-100的标度来测量亮度。进一步假设亮度输入定义目标窗口 50-70。具有55的亮度(例如,55的平均亮度)的视频不要求调整亮度,因为55在目标窗口内。相反,具有76的亮度的视频要求亮度调整,使得其变暗(即等于70或在其以下)。亮度模块210分析视频以确定亮度是76,并且然后采取步骤以使视频变暗。类似地,具有32的亮度的视频要求亮度调整,使得其变亮(即等于或大于50)。亮度模块210分析视频以确定亮度是32,并且然后采取步骤以使视频变亮。
[0081]本领域的普通技术人员将认识到在一个实施例中,作为指定目标范围的替代,管理者指定所有视频必须匹配或者由亮度模块210针对其进行调整的目标值(例如65)。
[0082]在一个实施例中,亮度模块210限制其向图像或视频的帧添加的亮度的总量。例如,通过在三个通道(例如,红色、绿色和蓝色通道)之间均分来计算其添加的亮度的总量。亮度模块210使添加亮度的总量限于亮度加法限制以便使过暗的图像或视频帧变亮。例如,假设按0-100的标度测量亮度,并且亮度添加限制默认为15。在另一实施例中,亮度模块210使其从图像或视频的帧减去的亮度的量限于亮度减法限制。例如,假设按0-100的标度来测量亮度。亮度减法限制默认为5。
[0083]亮度模块210经由信号线230被通信耦合到总线220。
[0084]在一个实施例中,内容增强器191被存储在客户端设备115的非临时存储器中。在一个实施例中,内容增强器是存储在客户端设备115的非临时存储器中的媒体播放器应用(例如,Java媒体播放器)或浏览器应用(例如,Google Chrome)的组件。
[0085]在一个实施例中,内容增强器191响应于包括指示用户125想要增强图像的数据的用户输入而增强内容文件的图像。在另一实施例中,内容增强器191在内容文件被上载到内容托管站点100时增强图像。例如,用户125上载内容文件,并且内容托管站点100向用户125发射消息,问他们其是否想要增强图像。在另一示例中,用户125上载内容文件,并且内容增强器191在不要求来自用户125的输入的情况下增强图像。
[0086]方法
[0087]图3-4描述了由上面参考图1-2所述的系统执行的各种方法300和400。
[0088]图3是描述用于增强内容的方法300的一个实施例的流程图。在一个实施例中,内容增强器191响应于接收输入而开始方法300,该输入指示客户端设备115的用户125已点击图形按钮以指示用户125期望增强内容文件。在步骤302处,内容增强器191生成直方图。在步骤304处,内容增强器191对于内容文件的全部或一部分(例如视频或图片)调整用于通道中的一个或多个的对比度。例如,内容增强器191对于内容文件中的一个或多个像素调整用于一个或多个通道(例如红色、绿色或蓝色)的对比度。在步骤306处,内容增强器191调整用于内容文件的全部或一部分的亮度。例如,内容增强器191对于内容文件中的一个或多个像素调整用于一个或多个通道(例如红色、绿色或蓝色)的亮度。
[0089]图4是描述由内容增强器191实现以便增强内容文件的图像的方法400的一个实施例的流程图。在步骤402处,内容托管站点100接收请求用于内容文件的图像增强的用户输入。在步骤404处,直方图模块206确定用于生成一个或多个直方图的分析间隔290。在步骤406处,边缘排除模块204确定边缘排除值。例如,边缘排除模块204基于边缘排除数据292来确定边缘排除值。在步骤408处,直方图模块206至少部分地基于分析间隔290和边缘排除数据292来生成用于内容文件的一个或多个直方图。例如,直方图模块206生成用于三个通道(红色、绿色和蓝色)中的每一个的一个直方图。在步骤410处,对比度扩展模块208至少部分地基于由直方图模块206生成的一个或多个直方图来调整包括在内容文件中的一个或多个通道的一个或多个像素强度。例如,对比度扩展模块208至少部分地基于一个或多个直方图来确定对比度乘数,并且然后至少部分地基于对比度乘数来调整用于包括在内容文件中的一个或多个通道的像素中的一个或多个的强度。
[0090]在一个实施例中,存在用于红色通道、蓝色通道和绿色通道的不同直方图以及用于不同通道的不同对比度乘数。红色对比度乘数由对比度扩展模块208至少部分地基于红色直方图对于图像的红色通道来确定。蓝色对比度乘数由对比度扩展模块208至少部分地基于蓝色直方图对于图像的蓝色通道来确定。绿色对比度乘数由对比度扩展模块208至少部分地基于绿色直方图对于图像的绿色通道来确定。对比度扩展模块208至少部分地基于不同的相应对比度乘数来确定用于图像的不同通道的像素强度(例如,基于红色对比度乘数来调整用于图像的红色通道的像素强度)。
[0091]在步骤414处,亮度模块210分析在应用一个或多个对比度乘数之后生成的图像以确定是否需要亮度校正。如果亮度校正未被亮度模块210确定为是需要的,则方法400移动至步骤416,并且向客户端设备115发射增强图像。如果图像增强被亮度模块210确定为是需要的,则方法400前进至步骤418。在步骤418处,亮度模块210调整在步骤414处被确定为需要亮度修整的图像的亮度。在步骤420处,将增强图像发射到客户端设备115。[0092]在一个实施例中,内容增强器191被存储在客户端设备115的非临时存储器中。在本实施例中,由客户端设备115上的内容增强器191来实现上述方法300、400。在一个实施例中,内容增强器是浏览器应用(例如Google Chrome)或媒体播放器应用(例如Java媒体播放器)的组件。
[0093]图像的示例
[0094]图5描述了包括边界的第一帧500的示例。元素502a、502b描述在第一帧的任一侧的当增强帧时未考虑的黑色边缘。元素504描述排除边界502a、502b的第一帧的中心部分。例如,当进行第一帧500的增强时分析帧504的中心部分。
[0095]图6描述了包括隐藏字幕的第二帧600的示例。元素602描述了当增强第二帧600时未考虑的用于隐藏字幕的文本。
[0096]图形用户界面(“⑶I”)的示例
[0097]图7描述了用于在客户端设备115上执行的媒体播放器的第一⑶1700的不例。兀素702是可被用户125点击以请求用于可在媒体播放器上播放的视频的图像增强的图形按钮。例如,用户125点击按钮702以促使内容增强器191开始实现上述方法300、400中的一个或多个。在本示例中,用文本“我感到幸运”来标记按钮702。
[0098]元素704描述内容增强之前的第一图像(“原始”图像)的示例。元素706描述了如在此所述的由内容增强器191进行的图像增强之后的第一图像的预览。例如,内容增强器191实现上述方法300、400中的一个或多个以输出在元素706中描述的图像。
[0099]元素708是指示视频被暂停的图形。元素710是指示用于视频的时间计数的图形。在本示例中,时间计数指示视频在长度上为18秒。时间计数还指示已发生2秒的视频播放。
[0100]图8描述了用于在客户端设备115上执行的媒体播放器的第二⑶1800的示例。元素802是可被用户125点击以请求用于可在媒体播放器上播放的视频的图像增强的图形按钮。在本示例中,用文本“我感到幸运”来标记按钮802。
[0101]元素804描述内容增强之前的第一图像(“原始”图像)的示例。元素806描述了如在此所述的由内容增强器191进行的图像增强之后的第一图像的预览。例如,内容增强器191实现上述方法300、400中的一个或多个以输出在元素806中描述的图像。
[0102]元素808是指示视频正在播放的图形。在一个实施例中,内容增强器191在正在播放视频的同时提供图像增强。在图8中描述了其示例。在另一实施例中,内容增强器191在视频被暂停时提供内容增强。在图7中描述了其示例。
[0103]元素810是指示用于视频的时间计数的图形。在本示例中,时间计数指示视频在长度上为13秒。时间计数还指示已发生13秒的视频播放。
[0104]本说明书的实施例的先前描述是出于说明和描述的目的提出的。其并不意图是穷尽的或使本说明书限于所公开的精确形式。鉴于上述教导,可以有许多修改和变更。意图在于不是由本详细描述、而是由本申请的权利要求来限制本公开的范围。如本领域的技术人员将理解的是,在不脱离其精神或本质特性的情况下可以其他特定形式来体现本说明书。类似地,模块、例程、特征、属性、方法及其他方面的特定命名和划分并不是强制性或显著的,并且实现本说明书或其特征的机制可具有不同的名称、划分和/或格式。此外,如对于相关领域的普通技术人员而言将显而易见的,能够将本公开的模块、例程、特征、属性、方法及其他方面实现为软件、硬件、固件或三者的任何组合。而且,在本说明书的其示例是模块的组件被实现为软件的任何情况下,能够将该组件实现为独立程序、作为较大程序的一部分、作为多个单独程序、作为静态或动态链接库、作为核心可加载模块、作为设备驱动器和/或以对于计算机编程领域中的技术人员而言现在或将来所知的每个和任何其他方式。另外,本公开不以任何方式限于用任何特定编程语言或者针对任何特定操作系统或环境的实现。相应地,本公开意图是说明而不是限制本说明书的范围。
【权利要求】
1.一种在一个或多个计算设备上执行的用于增强内容文件的计算机实现的方法,所述方法包括: 使用一个或多个计算设备来生成直方图,所述直方图包括描述用于包括在内容文件中的一个或多个通道的一个或多个像素强度的数据; 使用所述一个或多个计算设备至少部分地基于所述直方图来调整用于包括在所述内容文件中的所述一个或多个通道的所述一个或多个像素强度; 使用所述一个或多个计算设备来确定用于所述内容文件的亮度水平是否在描述一个或多个可接受亮度水平的范围内;以及 使用所述一个或多个计算设备响应于确定用于所述内容文件的亮度水平在所述范围之外而调整用于所述内容文件的亮度水平。
2.权利要求1所述的方法,其中,生成所述直方图进一步包括使用所述一个或多个计算设备来确定分析间隔,在所述分析间隔期间从所述内容文件采样所述一个或多个像素强度。
3.权利要求1所述的方法,其中,生成所述直方图进一步包括: 使用所述一个或多个计算设备来确定描述由所述内容文件描述的帧的一个或多个边缘的固定百分数量的边缘排除 值; 使用所述一个或多个计算设备至少部分地基于所述边缘排除值来确定由所述内容文件描述的所述帧的一个或多个部分;以及 使用所述一个或多个计算设备来将所述一个或多个部分从由所述内容文件描述的所述帧排除。
4.权利要求1所述的方法,其中,调整所述一个或多个像素强度进一步包括: 使用所述一个或多个计算设备至少部分地基于所述直方图来确定对比度乘数;以及使用所述一个或多个计算设备将所述一个或多个像素强度乘以所述对比度乘数以调整所述一个或多个像素强度。
5.权利要求4所述的方法,其中,确定所述对比度乘数进一步包括: 使用所述一个或多个计算设备来确定水平阈值; 使用所述一个或多个计算设备至少部分地基于所述水平阈值来确定所述直方图中的特定百分数的最高和最低像素强度;以及 使用所述一个或多个计算设备将所述特定百分数的最高和最低像素强度从所述直方图排除。
6.权利要求4所述的方法,其中,确定所述对比度乘数进一步包括使用所述一个或多个计算设备至少部分地基于限制来调整所述对比度乘数,使得所述内容文件的红色通道、绿色通道和蓝色通道至少基本上是平衡的。
7.权利要求1所述的方法,其中,调整用于所述内容文件的亮度水平进一步包括使用所述一个或多个计算设备来限制向所述内容文件添加或从内容文件减去的亮度的量。
8.一种用于增强内容文件的系统,所述系统包括: 直方图模块,所述直方图模块用于生成直方图,所述直方图包括描述用于包括在内容文件中的一个或多个通道的一个或多个像素强度的数据; 对比度扩展模块,所述对比度扩展模块被通信耦合到所述直方图模块,用于至少部分地基于所述直方图来调整用于包括在所述内容文件中的所述一个或多个通道的所述一个或多个像素强度;以及 亮度模块,所述亮度模块被通信耦合到所述对比度扩展模块,用于确定用于所述内容文件的亮度水平是否在描述一个或多个可接受亮度水平的范围内,所述亮度模块进一步被配置成响应于确定用于所述内容文件的亮度水平在所述范围之外而调整用于所述内容文件的亮度水平。
9.权利要求8所述的系统,其中,生成所述直方图进一步包括确定分析间隔,在所述分析间隔期间从所述内容文件采样所述一个或多个像素强度。
10.权利要求8所述的系统,进一步包括边缘排除模块,所述边缘排除模块被通信耦合到直方图模块,用于确定描述由所述内容文件描述的帧的一个或多个边缘的固定百分量的边缘排除值,所述边缘排除模块进一步被配置成至少部分地基于所述边缘排除值来确定由所述内容文件描述的所述帧的一个或多个部分并将所述一个或多个部分从由所述内容文件描述的所述帧排除。
11.权利要求8所述的系统,其中,调整所述一个或多个像素强度进一步包括: 至少部分地基于所述直方图来确定对比度乘数;以及 将所述一个或多个像素强度乘以所述对比度乘数以调整所述一个或多个像素强度。
12.权利要求11所述的系统,其中,确定所述对比度乘数进一步包括: 确定水平阈值; 至少部分地基于所述水平阈值来确定所述直方图中的特定百分数的最高和最低像素强度;以及 将所述特定百分数的最高和最低像素强度从所述直方图排除。
13.权利要求11所述的系统,其中,确定所述对比度乘数进一步包括至少部分地基于限制来调整所述对比度乘数,使得所述内容文件的红色通道、绿色通道和蓝色通道至少基本上是平衡的。
14.权利要求8所述的系统,其中,调整用于所述内容文件的亮度水平进一步包括限制向所述内容文件添加或从所述内容文件减去的亮度的量。
15.一种包括包含计算机可读程序的计算机可用介质的计算机程序产品,其中,所述计算机可读程序当在计算机上执行时促使所述计算机执行包括以下的步骤: 生成直方图,所述直方图包括描述用于包括在内容文件中的一个或多个通道的所述一个或多个像素强度的数据; 至少部分地基于所述直方图来调整用于包括在所述内容文件中的所述一个或多个通道的一个或多个像素强度; 确定用于所述内容文件的亮度水平是否在描述一个或多个可接受亮度水平的范围内;以及 响应于确定用于所述内容文件的亮度水平在所述范围之外而调整用于所述内容文件的亮度水平。
16.权利要求15所述的计算机程序产品,其中,生成所述直方图进一步包括确定分析间隔,在所述分析间隔期间从所述内容文件采样所述一个或多个像素强度。
17.权利要求15所述的计算机程序产品,其中,生成所述直方图进一步包括:确定描述由所述内容文件描述的帧的一个或多个边缘的固定百分数量的边缘排除值; 至少部分地基于所述边缘排除值来确定由所述内容文件描述的所述帧的一个或多个部分;以及 将所述一个或多个部分从由所述内容文件描述的所述帧排除。
18.权利要求15所述的计算机程序产品,其中,调整所述一个或多个像素强度进一步包括: 至少部分地基于所述直方图来确定对比度乘数;以及 将所述一个或多个像素强度乘以所述对比度乘数以调整所述一个或多个像素强度。
19.权利要求18所述的计算机程序产品,其中,确定所述对比度乘数进一步包括: 确定水平阈值; 至少部分地基于所述水平阈值来确定所述直方图中的特定百分数的最高和最低像素强度;以及 将所述特定百分数的最高和最低像素强度从所述直方图排除。
20.权利要求18所述的计算机程序产品,其中,确定所述对比度乘数进一步包括至少部分地基于限制来调整所述对比度乘数,使得所述内容文件的红色通道、绿色通道和蓝色通道至少基本上是平衡的。
21.权利要求15所述的计算机程序产品,其中,调整用于所述内容文件的亮度水平进一步包括限制向所述内容文件添加或从所述内容文件减去的亮度的量。
【文档编号】G06K9/00GK103917988SQ201280054746
【公开日】2014年7月9日 申请日期:2012年9月12日 优先权日:2011年9月12日
【发明者】蒂莫西·翁, 加万·克万, 埃龙·塞缪尔·斯特格 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1