首页 / 专利库 / 空中管制 / 许可 / 具有时间平滑和用户超驰的自动视频质量增强

具有时间平滑和用户超驰的自动视频质量增强

阅读:827发布:2020-05-08

专利汇可以提供具有时间平滑和用户超驰的自动视频质量增强专利检索,专利查询,专利分析的服务。并且用于使用时间平滑来增强视频 质量 的单遍过程的技术。该过程可包括提供自动增强的视频/ 帧 特性的用户超驰,并向用户提供增强的 视频帧 的基本上即时的预览。该过程还可包括检测视频的一部分中的抖动程度,以及基于检测到的抖动来执行或推荐 稳定性 。,下面是具有时间平滑和用户超驰的自动视频质量增强专利的具体信息内容。

1.一种在计算设备上执行的方法,所述方法用于增强一系列质量,所述方法包括:
对所述一系列帧中的帧进行解码;
从经解码的帧中导出所述帧的特性的数据;
基于所导出的数据的变化的积分来生成校正参数;以及
平滑所述特性,其中所述平滑包括基于来自所述帧流的其它经解码的帧的校正参数来调整所生成的校正参数,其中所述其它经解码的帧如果有的话,位于在所述系列中的所述经解码的帧之前,
其中所述平滑进一步包括对所述其它经解码的帧的每一个校正参数进行加权,并且所述其它经解码的帧包括在所述经解码的帧之前的至少两个其它帧,并且其中分配给与距离所述经解码的帧更近的帧的校正参数的权重大于分配给距离所述经解码的帧更远的帧的校正参数的权重。
2.如权利要求1所述的方法,其特征在于,进一步包括:
从所导出的数据生成直方图;
根据所述直方图计算最小和最大特性值;
基于所述直方图和所述最小和最大特性值来计算新数据,其中所述新数据由所述最小和最大特性值界定;以及
基于所述新数据生成积分直方图。
3.如权利要求1所述的方法,其特征在于,所述校正参数以查找表来实现。
4.如权利要求1所述的方法,其特征在于,还包括对所述系列中的每个帧执行所述方法。
5.如权利要求4所述的方法,其特征在于,所述系列中的所述每个帧在所述方法的执行中被解码不超过一次。
6.如权利要求1所述的方法,其特征在于,所述平滑还包括基于所述其它经解码的帧的经加权的校正参数来影响所述校正参数。
7.一种包括计算设备和至少一个程序模的系统,所述计算设备和所述程序模块一起被配置用于执行增强一系列帧的质量的方法,所述方法包括:
对所述一系列帧中的帧进行解码;
从经解码的帧中导出所述帧的特性的数据;
基于所导出的数据的变化的积分来生成校正参数;以及
平滑所述特性,其中所述平滑包括基于来自所述帧流的其它经解码的帧的校正参数来调整所生成的校正参数,其中所述其它经解码的帧如果有的话,位于在所述系列中的所述经解码的帧之前,
其中所述平滑进一步包括对所述其它经解码的帧的每一个校正参数进行加权,并且所述其它经解码的帧包括在所述经解码的帧之前的至少两个其它帧,并且其中分配给与距离所述经解码的帧更近的帧的校正参数的权重大于分配给距离所述经解码的帧更远的帧的校正参数的权重。
8.如权利要求7所述的系统,其特征在于,所述方法进一步包括:
从所导出的数据生成直方图;
根据所述直方图计算最小和最大特性值;
基于所述直方图和所述最小和最大特性值来计算新数据,其中所述新数据由所述最小和最大特性值界定;以及
基于所述新数据生成积分直方图。
9.如权利要求7所述的系统,其特征在于,所述校正参数以查找表来实现。
10.如权利要求7所述的系统,其特征在于,所述方法还包括对所述系列中的每个帧执行所述方法。
11.如权利要求10所述的系统,其特征在于,所述系列中的所述每个帧在所述方法的执行中被解码不超过一次。
12.如权利要求7所述的系统,其特征在于,所述平滑还包括基于所述其它经解码的帧的经加权的校正参数来影响所述校正参数。
13.存储计算机可执行指令的至少一个计算机可读介质,所述计算机可执行指令在由计算设备执行时致使所述计算设备执行用于增强一系列帧的质量的方法,所述方法包括:
对所述一系列帧中的帧进行解码;
从经解码的帧中导出所述帧的特性的数据;
基于所导出的数据的变化的积分来生成校正参数;以及
平滑所述特性,其中所述平滑包括基于来自所述帧流的其它经解码的帧的校正参数来调整所生成的校正参数,其中所述其它经解码的帧如果有的话,位于在所述系列中的所述经解码的帧之前,
其中所述平滑进一步包括对所述其它经解码的帧的每一个校正参数进行加权,并且所述其它经解码的帧包括在所述经解码的帧之前的至少两个其它帧,并且其中分配给与距离所述经解码的帧更近的帧的校正参数的权重大于分配给距离所述经解码的帧更远的帧的校正参数的权重。
14.如权利要求13所述的至少一个计算机可读介质,其特征在于,所述方法还包括:
从所导出的数据生成直方图;
根据所述直方图计算最小和最大特性值;
基于所述直方图和所述最小和最大特性值来计算新数据,其中所述新数据由所述最小和最大特性值界定;以及
基于所述新数据生成积分直方图。
15.如权利要求13所述的至少一个计算机可读介质,其特征在于,所述校正参数以查找表来实现。
16.如权利要求13所述的至少一个计算机可读介质,其特征在于,所述方法还包括对所述系列中的每个帧执行所述方法。
17.如权利要求16所述的至少一个计算机可读介质,其特征在于,所述系列中的所述每个帧在所述方法的执行中被解码不超过一次。
18.如权利要求13所述的至少一个计算机可读介质,其特征在于,所述平滑还包括基于所述其它经解码的帧的经加权的校正参数来影响所述校正参数。
19.一种包括用于执行如权利要求1-6中的任一项所述的方法的装置的计算机系统

说明书全文

具有时间平滑和用户超驰的自动视频质量增强

[0001] 背景
[0002] 由于成像技术的进步,人们比以往任何时候拍摄更多的视频和图片。但是由于曝光不足或过度、抖动、各种形式的噪声等,视频和图片中的缺陷是常见的。这些缺陷的原因包括捕捉设备(例如,视频在没有三脚架的相机手机上捕捉)的环境(例如,低光或噪声环境)。这样的缺陷可在事后被校正,但是普通用户可能不熟悉用于校正的方法和工具。此外,常规的视频编辑工具可能受到它们校正这些缺陷的能的限制。例如,与应用于单个相反,许多工具将校正设置应用于视频的所有帧,但是这样的校正在视频的整个持续期间上可能不是最佳的。此外,许多工具需要多遍,每遍都包括耗时和消耗存储器的解码步骤,所有这些都导致不能向用户提供校正帧的即时预览。
[0003] 概述
[0004] 本部分中提供的概述总结了本发明的一个或多个部分或完整的示例实施例,以便向读者提供基本的高级理解。本概述不是本发明的详尽描述,并且可能不标识本发明的关键元素或方面,也不描述本发明的范围。其唯一目的是以简化的形式呈现本发明的各个方面,作为下面提供的详细描述的序言。
[0005] 本发明包括用于使用时间平滑来增强视频质量的单遍过程的技术。该过程可包括提供自动增强的视频/帧特性的用户超驰,并向用户提供增强的视频帧的基本上即时的预览。该过程还可包括检测视频的一部分中的抖动程度,以及基于检测到的抖动来执行或推荐稳定性
[0006] 通过结合附图参考以下提供的详细描述,可易于领会并更好地理解许多附带特征。
[0007] 附图简述
[0008] 当结合附图考虑时,将更好地理解下面提供的详细描述,其中:
[0009] 图1是示出其中可以实现此处所描述的发明的示例计算环境的框图
[0010] 图2是示出被配置用于增强视频质量的示例系统的框图。
[0011] 图3是示出被配置用于分析帧以得到帧的校正数据的示例帧分析器的框图。
[0012] 图4是示出用于自动增强视频质量的示例方法的框图。
[0013] 图5是示出用于为帧的特定特性生成校正曲线的示例方法的框图。
[0014] 图6是示出示例校正曲线的图。
[0015] 图7是示出用于平滑帧的特性的差异的示例方法的框图。
[0016] 图8是示例视频的帧的示例图。
[0017] 图9是示出用于针对“抖动”分析视频的至少一部分的示例方法800的图。
[0018] 不同附图中的相同编号的标记被用来指定附图中的类似或相同的元素或步骤。
[0019] 详细描述
[0020] 在本部分中结合附图提供的详细描述描述了本发明的一个或多个部分或完整的示例实施例,但是不旨在描述本发明的所有可能的实施例。该详细描述给出了本发明的技术、系统和/或方法中的至少一些的各种示例。然而,根据示例也可实现相同或等价的技术、系统和/或方法。
[0021] 虽然本文提供的示例被描述并示出为可在计算环境中实现,但是所描述的环境仅仅是作为示例而非限制来提供的。本领域的技术人员将会明白,所公开的示例适合在各种不同类型的计算环境中的实现。
[0022] 图1是示出其中可以实现此处所描述的发明的示例计算环境100的框图。合适的计算环境可用多种通用或专用系统来实现。公知系统的示例可包括但不限于蜂窝电话、个人数字助理(“PDA”)、个人计算机(“PC”)、手持式或膝上型设备、基于微处理器的系统、多处理器系统、片上系统(“SOC”)、服务器、互联网服务、工作站、消费电子设备、手机、机顶盒等。在所有情况下,这样的系统严格地限于制品等。
[0023] 计算环境100通常包括耦合到诸如外围设备102、103、101等各种组件的计算设备101形式的通用计算系统。这些可包括诸如可经由一个或多个输入/输出(“I/O”)接口112操作的输入设备103的组件,其包括语音识别触摸板、按钮、键盘、和/或诸如鼠标轨迹球的指示设备。计算设备101的组件可包括一个或多个处理器(包括中央处理单元(“CPU”)、图形处理单元(“GPU”)、微处理器(“μP”)等)107、系统存储器109、以及通常耦合各组件的系统总线108。(多个)处理器107通常处理或执行各种计算机可执行指令,并且基于那些指令控制计算设备101的操作。这可包括计算设备101经由诸如网络连接114等的各种通信技术与其他电子和/或计算设备、系统或环境(未示出)通信。系统总线108表示任何数量的总线结构,包括存储器总线或存储器控制器、外围总线、串行总线加速图形端口、使用各种总线体系结构中的任一种的处理器或局部总线等等。
[0024] 系统存储器109可包括诸如随机存取存储器(“RAM”)等易失性存储器形式的和/或诸如只读存储器(“ROM”)或闪存(“FLASH”)等非易失性存储器形式的计算机可读介质。基本输入/输出系统(“BIOS”)可以存储在非易失性等中。系统存储器109通常存储数据、计算机可执行指令和/或包括计算机可执行指令的程序模,包括可由一个或多个处理器107立即访问或目前正在其上操作的计算机可执行指令。
[0025] 大容量存储设备104和110可耦合到计算设备101,或者经由耦合到系统总线而合并到计算设备101中。这些大容量存储设备104和110可包括非易失性RAM;对可移动、非易失性磁盘(例如“软盘”)105进行读和/或写的磁盘驱动器;和/或对诸如CD ROM、DVD ROM 106等非易失性光盘进行读和/或写的光盘驱动器。或者,诸如硬盘110等大容量存储设备可包括不可移动存储介质。其它大容量存储设备可包括存储卡、记忆棒、磁带存储设备等。
[0026] 任何数量的计算机程序、文件、数据结构等可被存储在大容量存储110、其它存储设备104、105、106以及系统存储器109(通常受可用空间限制)上,作为示例而非限制,包括操作系统、应用程序、数据文件、目录结构、计算机可执行指令等。
[0027] 诸如显示设备102等输出组件或设备可通常经由诸如显示适配器111等接口耦合到计算设备101。输出设备102可以是液晶显示器(“LCD”)。其它示例输出设备可包括打印机、音频输出、语音输出、阴极射线管(“CRT”)显示器、触觉设备或其它传感输出机制等等。输出设备可以使计算设备101能够与人类操作员或其他机器、系统、计算环境等进行交互。
用户可以经由诸如触摸垫、按钮、键盘、鼠标、操纵杆、游戏手柄、数据端口等任何数量的不同I/O设备100来与计算环境103进行接口。这些和其它I/O设备可以经由耦合到系统总线
107的I/O接口112来耦合到处理器108,和/或可以经由诸如串行端口、游戏端口、通用串行总线(“USB”)、火线、红外(“IR”)端口等其它接口和总线结构来耦合。
[0028] 计算设备101可以经由通过一个或多个蜂窝网络、无线网络、局域网(“LAN”)、广域网(“WAN”)、存储区域网络(“SAN”)、因特网、无线电链路、光学链路等到一个或多个远程计算设备的通信连接来在网络化环境中操作。计算设备101可经由网络适配器113等,或作为替换,经由调制解调器、数字用户线(“DSL”)链路、综合业务数字网(“ISDN”)链路、因特网链路、无线链路等来耦合到网络。
[0029] 诸如网络连接等通信连接114通常提供到诸如网络等通信介质的耦合。通信介质通常使用诸如载波或其它传输机制等已调制数据信号来提供计算机可读以及计算机可执行指令、数据结构、文件、程序模块和其它数据。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特性的信号。通过示例而非限制,通信介质可包括诸如有线网络或直接有线连接等之类的有线介质、以及诸如声、射频(RF)、红外或其它无线通信机制之类的无线介质。
[0030] 诸如电池或电源等的电源190通常向计算环境100的部分和全部提供电力。在计算环境100是移动设备或便携式设备等的情况下,电源190可以是电池。另选地,在计算环境100是台式计算机或服务器等的情况下,电源190可以是被设计成诸如经由墙上插座连接到交流(“AC”)源的电源。
[0031] 某些移动设备可能不包括结合图1所描述的组合中的多个。例如,电子证件可包括线圈连同简单处理单元107等,该线圈被配置成在其靠近读卡器设备等时用作电源190。这样的线圈还可以被配置成用作耦合到处理单元107等的天线,该线圈天线能够提供电子徽章和读卡器设备之间的通信形式。这样的通信可以不涉及联网,但是可替代地可以是经由遥测、点对点、RF、IR、音频或其他手段的通用或专用通信。电子卡可以不包括显示器102、I/O设备103、或结合图1描述的其它组件中的多个。可能不包括结合图1所描述的组件中的多个的其它移动设备包括电子腕带、电子标签、可移植设备等。
[0032] 本领域技术人员应当认识到,用于提供计算机可读和计算机可执行的指令及数据的存储设备可分布在网络上。例如,远程计算机或存储设备可以以软件应用和数据的形式存储计算机可读和计算机可执行指令。本地计算机可以经由该网络访问远程计算机或存储设备,并下载软件应用程序或数据的部分或全部并且可执行任何计算机可执行指令。另选地,本地计算机可按需下载软件或数据的片断,或者通过在本地机器执行一些指令并且在远程计算机和/或设备执行一些指令来分布式地处理该软件。
[0033] 本领域的技术人员还将认识到,通过利用常规技术,软件的计算机可执行指令的全部或部分可由诸如数字信号处理器(“DSP”)、可编程逻辑阵列(“PLA”)、分立电路等专用电子电路来执行。术语“电子装置”可包括含有任何软件、固件等的计算设备或消费电子设备,或不含有软件、固件等的电子设备或电路。
[0034] 术语“固件”通常指的是在诸如ROM等电子设备中维护的可执行指令、代码、数据、应用、程序、程序模块等。术语“软件”通常指的是保持在任何形式或类型的计算机可读介质中或上的计算机可执行指令、代码、数据、应用、程序、程序模块等,其被配置用于以计算设备可访问的方式存储计算机可执行指令等。如本文所使用的术语“计算机可读介质”等严格地限于不是信号或载波本身的一个或多个装置、制品等。如在权利要求中使用的术语“计算设备”是指诸如计算设备101的一个或多个设备,并且包括客户端设备、移动设备、一个或多个服务器、诸如互联网服务或公司网络服务等的网络服务等以及这些的任何组合。
[0035] 图2是示出被配置用于具有时间平滑和用户超驰的视频质量的增强的示例系统200的框图。在一个示例中,增强基于对视频的帧的一遍扫描。系统200包括若干模块,这些模块包括数据存储210、帧解码器220、(多个)帧分析器230、帧校正器240和帧预览器250。这些模块(包括本文所描述的任何子模块和任何其他模块)中的每一个可以以硬件、固件、软件(例如,作为包括计算机可执行指令的程序模块)或其任何组合来实现。每个这样的模块可以在一个设备(诸如计算设备)上或由一个设备(诸如计算设备)实现,或者跨多个这样的设备和/或服务实现。例如,一个模块可以以分布式方式在多个设备(诸如网络服务的服务器或元件等)上或由多个设备实现。此外,每个这样的模块(包括任何子模块)可包括一个或多个子模块等,并且这些模块可被实现为单独的模块,或者可以全部或部分地组合任何两个或更多模块。本文所描述的模块(包括任何子模块)的划分是非限制性的,并且主要旨在帮助描述本发明的各方面。如本文所使用的术语“视频”通常是指数字视频、视频流等,并且还指代可能类似于视频的单个帧的单个数字图像。换句话说,本文描述的应用于视频帧的过程或者对视频帧进行操作的模块可以附加地或替代地应用于单个图像和/或音频样本或对单个图像和/或音频样本进行操作。
[0036] 总之,系统200包括诸如结合图1描述的计算设备,以及诸如结合图2描述的模块的至少一个程序模块,它们一起被配置用于执行在单遍操作中自动地增强视频质量的动作,以及提供用户超驰并且向用户提供基本上即时的增强的视频帧的预览。视频(和/或图像)(212)通常由一个或多个源210提供。这样的源通常包括相机电话、数字相机、数字视频记录器(“DVR”)、计算机、数字相册、社交媒体应用或网站、视频流网站或任何其他数字视频源。这样的视频可属于一个或多个用户,并且可存储在数据存储210中,数据存储210可以是系统200的一部分或与系统200分离。在一个示例中,系统200自动地增强存储在数据存储210上的视频的质量。
[0037] 帧解码器220是被配置用于对视频帧进行解码的模块。在一个示例中,帧解码器220解码视频帧,如粗箭头222所示提供解码的帧,并且解码的帧由系统200处理。一旦被处理,解码的帧通常就被丢弃以便最小化存储器的使用。一般地,因为系统200通常是单遍系统,所以每个视频帧仅被解码一次。在某些情况下,系统200可以使用多遍操作,诸如当不要求操作速度或即时预览时。帧解码器模块220通常将解码的视频帧提供给帧分析器230和帧校正器240。
[0038] (多个)帧分析器230表示各自被配置用于分析解码的视频帧的一个或多个特性(诸如亮度、曝光、白平衡色度噪声、音频噪声、抖动等)的一个或多个模块。每个帧分析器230可被配置用于分析输入帧的一个或多个特性。一般来说,模块230的分析可包括对作为输入(222)提供的解码的帧的像素进行采样并且生成用于输入帧的一个或多个特性的校正数据,其中校正数据作为输出(232)被提供给帧校正器240。注意到,所提供的校正数据(232)趋向于相比提供的帧或帧数据(212、222、242)需要少得多的存储空间(例如,存储器)。结合图3更详细地描述示例帧分析器。
[0039] 帧校正器240是被配置用于根据作为输入(232)提供的校正数据校正作为输入(222)提供的解码的帧的模块。校正数据(本文也称为校正参数)通常包括被校正的输入帧的每个特性的校正曲线等。帧校正器240通常通过将提供的校正数据(232)应用于输入帧来执行校正,这是每校正一帧通常会发生的过程。在一个示例中,用户可在预览校正的帧的同时手动地调整一个或多个特性。这种用户调整可被重复,导致多次对输入帧应用校正数据。帧校正器240通常向帧预览器250提供校正的帧(242)。
[0040] 帧预览器250是被配置用于使得用户能够预览校正的帧的模块。模块250可结合(多个)用户控件350操作以使用户能够调整帧的特定特性的控制点以基本上立即预览结果。在一个示例中,帧预览模块270经由用户界面向用户呈现原始解码的帧和/或该帧的校正版本。预览帧或任何特定帧可以是可选的(诸如当系统200以完全自动的方式操作时)。帧预览器250可使得用户能够在视频中的帧之间前进或后退以基本上立即预览帧。
[0041] 线252通常指示可选地对帧进行重新编码和/或将帧添加到数据存储210,或用原始视频的一些或所有已处理和重新编码的帧替换原始视频。
[0042] 图3是示出被配置用于导致帧的校正数据的帧的分析的示例帧分析器230的框图。帧分析器230通常包括若干模块,包括校正分析器320、校正生成器330、校正数据存储340、用户控制模块350和时间平滑器360。一些帧分析器230可不包括所有这些模块和/或可包括其他模块。这些模块中的每一个的结构和/或功能可根据被分析的特定的帧特性而变化。
[0043] 总之,每个帧分析器230被配置用于执行输入帧的特性的单遍分析的动作,用于基于分析生成针对该特性的校正数据,并且用于提供用户对校正数据的控制。一般地,为要校正的每个帧特性提供一个帧分析器230。对于每个帧分析器230,通常提供解码的帧作为输入(222)。所生成的校正数据可被保存在存储340中并且被作为输出(232)提供。一般地,一旦帧的分析完成,就不再保留输入帧。存储340对于一些或所有帧分析器230而言可以是公共的。也就是说,可提供由一些或所有帧分析器230使用的一个存储340。
[0044] 校正分析器320是被配置用于分析输入帧的特定特性(诸如亮度、曝光、白平衡、色度噪声、音频噪声、抖动等)的模块。分析通常涉及分析输入帧的一些或所有像素(或者一些或全部音频样本)。通过分析得到的数据通常被提供给校正生成器330。这种所得数据可包括表示被分析的帧特性的直方图等。
[0045] 校正生成器330是被配置用于至少基于对由校正分析器320提供的输入帧的特性的分析产生的数据来生成校正数据的模块。在一个示例中,生成的校正数据包括输入帧的特性的校正曲线(诸如图6中所示的曲线610)。在该示例中,生成的校正曲线是帧的特性的优选校正曲线。
[0046] 一般地,校正曲线描述输入帧的变换。在一个示例中,两个控制点与校正曲线相关联。这些控制点可被用来修改来自最初生成的曲线的形状,诸如用于根据用户输入或用于平滑修改来自优选曲线的曲线的形状。在其他示例中,可使用其他数量的控制点。结合图5描述用于产生校正曲线的示例方法。这种方法可由校正生成器330执行。一条校正曲线通常由每个帧分析器230生成,并且通常针对帧中被分析的每个特性生成一条校正曲线。
[0047] 一旦生成校正曲线,其通常就被提供给并且保留在存储器340中,并且还潜在地连同指示其应用于的特定特性和解码的帧的附加的校正数据一起被提供给用户控制模块350。另外,零校正曲线620也可传递到用户控制模块350。在各种示例中,存储340仅保留来自最近的n个分析的帧中的特定特性的数据。在这样的示例中,一旦生成用于n+1个帧的特性数据,就从存储340丢弃该特性的最旧的数据。因此,当n与帧的大小相比为相对小的数量时,这样的丢弃使每个帧分析器230的数据存储空间需求最小化。在一个示例中,对于单遍操作,n为5,而对于两遍操作,n为9。
[0048] 用户控制模块350是被配置用于使得用户能够操纵(诸如从校正生成器330和/或时间平滑器360接收的)校正曲线的控制点的模块。如本文所使用的术语“用户”是指任何类型的人或系统。在一个示例中,用户可调整用户界面中的滑块以操纵控制点的位置,从而相应地改变校正曲线的形状。结合图6描述这样的控制点。用户控制模块350还可将通过的校正数据与由时间平滑器360提供的平滑特性数据相混合。用户超驰操作可以是可选的(诸如当系统200以完全自动的方式操作时)。在一个示例中,用户超驰信息可不表示对校正曲线的形状的绝对控制,而可仅影响形状以及至少平滑信息。用户操纵的校正数据通常被提供给并保留在存储340中。
[0049] 时间平滑器360是被配置用于相对于视频的先前处理的帧中的特性(和/或其他特性)来平滑帧中的特性的方差的模块。如本文所使用的术语“平滑”通常是指相对于先前处理的帧的特性来减小帧的特性中的突然的改变。结合图7来描述用于平滑的示例方法。这种方法可由时间平滑器360执行。通常独立于帧的任何其它特性来平滑帧的一个特性。通常从存储340检索用于平滑来自当前和/或先前处理的帧的相关校正数据。时间平滑器360通常提供校正数据作为输出(232)并将输出提供给用户控制模块350。
[0050] 一种特定类型的帧分析器是抖动分析器,所述抖动分析器是被配置用于分析视频的帧以确定视频的至少一部分的抖动程度的模块。如本文所使用的术语“抖动”等通常是指主要由于不稳定性造成的无意移动(诸如当相机捕捉场景的同时被握持而没有足够的稳定性从而导致抖动的(多个)图像时)。抖动通常是捕捉设备和场景之间的无意的相对运动,而不是有意的运动(诸如平移、缩放及场景中的运动等)。在一个示例中,将抖动程度或抖动分数与阈值进行比较,并且如果超过阈值的话,则执行或推荐稳定性。结合图9描述用于确定抖动程度的示例方法。这种方法可由抖动分析器230执行。
[0051] 图4是示出用于在单遍过程中自动增强视频的质量的示例方法400的框图。方法400还可包括提供用户超驰并向用户提供增强的视频帧的基本上即时的预览。这样的方法可由系统200等执行。在一个示例中,在计算设备上执行方法400,该计算设备根据程序模块(例如软件)的计算机可执行指令来控制(诸如结合图1描述),当由该计算设备执行诸如结合图2描述的那些模块的至少一部分时,致使该计算设备执行方法400的一些或所有方面。
在其他示例中,结合图2描述的模块可被实现为固件、软件、硬件或其任何组合。作为补充或替换,模块可被实现为片上系统(“SoC”)的一部分。这样的(或类似的)可以是本文所描述的其它方法和/或模块的情况。
[0052] 步骤410通常指示解码视频的一个或多个帧。这样的解码可由帧解码器220执行。可从数据存储210等选择和/或提供(212)视频。在一个示例中,数据存储210可包括用户的媒体集合。系统200可处理来自这样的集合的一些或所有视频,选择一次处理一个或多个视频。解码通常产生至少一个解码的视频帧。解码可替换地或附加地产生至少一个解码的音频样本。如本文所使用的术语“视频帧”可附加地或替代地指代音频样本。在一个示例中,系统200一次仅解码和处理一个视频帧,以便最小化存储器消耗。在该示例中,虽然从处理产生的信息可被持久储存(诸如在存储340中),但是解码的和处理的视频帧可在解码另一个视频帧之前被丢弃。如果需要一个或多个先前的帧来解码特定的视频帧,则那些帧可被持久储存直到特定的视频帧已被解码,此时所需的帧可被丢弃(除非它们还需要解码下一个视频帧)。一旦视频帧被解码,解码的帧通常就被提供作为方法400的步骤420的输入。除非上下文或描述另有指示,否则本文中使用的术语“帧”通常指代经解码的帧或样本。一般地,由系统200进行的处理需要解码的帧等。
[0053] 步骤420通常指示为帧的一个或多个特性中的每一个生成校正曲线。结合图4提供了用于生成校正曲线的示例方法。这种生成可包括对帧进行分析,并且可由一个或多个帧分析器230执行。在一个示例中,步骤420的生成产生用于帧的特性的校正曲线,通常是优选校正曲线。此外,可为若干帧特性中的每一个生成单独的曲线。一旦生成校正曲线,通常就将其与指示其应用于的特定特性和帧的信息一起保留在存储器340中。此外,(多条)校正曲线通常被提供作为方法400的步骤430的输入。如本文所使用的术语“优选校正曲线”被定义成对于变换视频的单个帧(而非包括单个帧以及其相邻帧或视频的所有帧的一组帧)的特性而言最正确的函数。每条这样的校正曲线对于特定的帧特性(诸如亮度或对比度或一些其它的帧特性)而言在上下文中是优选的。
[0054] 步骤430通常指示接收对校正曲线的任何用户超驰。用户超驰操作可以是可选的(诸如当系统200以完全自动的方式操作时)。此外,可为任何帧特性的曲线提供单独的用户超驰信息。在一个示例中,用户可调整用户界面中的滑块(诸如高-低滑块或x-y滑块)以操纵控制点的位置,从而相应地改变校正曲线的形状。结合图6描述这样的控制点。任何用户超驰信息可与(多条)校正曲线一起作为方法400的步骤440的输入提供。
[0055] 步骤440通常指示平滑帧中的特性相对于先前处理的视频帧中的特性(和/或其它特性)的方差。通常独立于帧的任何其它特性来平滑帧的一个特性。在一个示例中,这种平滑包括基于先前帧的校正曲线的幅度和方向趋势以影响校正曲线的控制点。结合图7提供了用于平滑校正曲线的示例方法。这种平滑可由时间平滑器360执行。一般地,由平滑和任何用户超驰影响的(多条)校正曲线被提供作为方法400的步骤450的输入的(多条)最终校正曲线。
[0056] 步骤450通常指示将(多条)最终校正曲线应用于帧的(多个)特性。在一个示例中,通过应用其校正曲线来变换帧的特性。一般地,将曲线应用于解码的帧的特性数据,产生对应于解码的帧的校正帧的经变换的特性数据。通常独立于帧的任何其它特性来变换帧的一个特性。经变换的特定的特性可确定应用了校正曲线的任何特定的信道或色彩空间等,以便获得经变换的特性数据。这种应用通常由帧校正器240执行。在一个示例中,校正曲线以最终校正曲线的形式仅被应用一次。一旦基于(多个)经变换的特性生成了校正的帧,校正的帧通常就被提供作为方法400的步骤460的输入。
[0057] 步骤460通常指示向用户提供经校正的帧的预览。预览帧或任何特定帧可以是可选的(诸如当系统200以完全自动的方式操作时)。预览可包括向用户呈现原始解码的帧和/或该帧的校正版本。预览可由帧预览器250执行,并且可允许用户提供用户超驰信息(如步骤430中所描述的)。在预览期间提供的这种超驰信息可导致对帧的基本上实时的校正。换句话说,可基本上立即处理在预览期间提供的超驰信息,以便基本上立即调整帧的呈现,得到“实时预览”。一旦任何预览完成(通常如用户所指示的),方法400通常就在步骤470处继续。
[0058] 步骤470通常指示可选地向数据存储210添加原始视频的一些或所有已处理的帧或用原始视频的一些或所有已处理的帧替换原始视频。例如,可以将视频的校正版本添加(252)到数据存储210。在另一示例中,原始视频可用校正版本替换。在又一示例中,可仅添加或替换视频的一个或多个部分。一旦任何更新完成,方法400通常就完成了。
[0059] 图5是示出用于为帧的特定特性生成校正曲线的示例方法500的框图。这样的方法可由帧分析器230等执行。在方法500的一个示例中,生成的校正曲线是帧的特性的优选校正曲线。可以提供解码的帧和帧的特定特性的指示作为方法500的输入。此外,可根据需要对解码的帧进行变换,并且可以以适合于生成特定特性的校正曲线的格式来提供解码的帧。例如,可以以诸如(Y,Cb,Cr)格式的亮度/色度颜色空间、诸如RGB或sRGB格式的红-绿-蓝颜色空间或者以任何其它合适的格式提供帧。
[0060] 步骤510通常指示从帧中导出特定特性的特性数据C。在一个示例中,特性数据C通过对帧的每n个像素进行采样来导出。例如,对于亮度特性,帧可以以(Y,Cb,Cr)格式提供,并且亮度数据(Y)从帧的每n个像素导出。或者,如果以RGB格式提供帧并且亮度分量Y不是直接可用的,则可基于RGB值的组合来计算,其中在一个示例中,Y=0.299*R+0.587*G+0.114*B。一旦导出特性数据C,方法500通常就在步骤520处继续。
[0061] 步骤520通常指示从导出的特性数据C生成直方图H等。一旦生成直方图H,方法500通常就在步骤530处继续。
[0062] 步骤530通常指示根据直方图H计算最小和最大特性值(C min和C max)。在一个示例中,最小值和最大值分别被设置为来自直方图H的0.5%和99.5%百分比值。在其他示例中,可使用其他百分比值。一旦计算出C min和C max值,方法500通常就在步骤540处继续。
[0063] 步骤540通常指示基于最小和最大值根据直方图H计算新的特性数据。在该示例中,来自直方图H的低于最小值的每个特性值c被设置为最小值,并且来自直方图H的高于最大值的每个特性值c被设置为最大值。此外,计算新特性数据的每个新特性值,使得=(c-C min)/(C max-C min)。这些新的值可在0-1的范围内归一化。一旦计算出新的特性数据C′,方法500通常就在步骤550处继续。
[0064] 步骤550通常指示基于新的特性数据生成新的直方图。新的直方图可排除0和1。新直方图中的值可由最小值和最大值界定。一旦生成新的直方图H′,方法500通常就在步骤560处继续。
[0065] 步骤560通常指示基于新的直方图生成积分直方图∫H′,其中,对于递增的i,∫H′(i)=∫H′(i-1)+H′(i)。在一个示例中,i表示对特性值的数组的索引,并且可具有[0,256]的范围或一些其他范围。校正曲线通常在该积分直方图∫H′上建模。例如,基于积分直方图∫H′生成拟合的三次参数多项式:
[0066] x(t)-ax3t3+ax2t2+ax1t+ax0
[0067] y(t)=ay3t3+ay2t2+ay1t+ay0
[0068] 其中x是输入(未校正的)特性值,其中y是输出(校正的)特性值,其中t是对[0.0,1.0]范围内的校正曲线的索引,并且其中a值是多项式系数。
[0069] 可通过用户控制350对拟合的多项式和空多项式(例如,基于空校正曲线620)进行混合,从而使得用户能够削弱或放大该特性。对于三次多项式,空多项式系数可以是:
[0070] a3=a2=a0=0
[0071] a1=1
[0072] 在该示例中,如果用户希望相对于Q=1的优选值将特性的强度改变为Q,则新的(素)多项式系数将是:
[0073] a3′=Qa3
[0074] a2′=Qa2
[0075] a1′=(a1-1)Q+1
[0076] a0′=Qa0
[0077] 在该示例中,用户控制350可提供表示/控制特性的强度的单个滑块或机制。
[0078] 或者,拟合多项式可由三次贝塞尔(Bézier)控制图来表示,其四个控制点根据多项式系数计算得到:
[0079]
[0080] 在该替代示例中,用户控制350可使得用户能够直接或间接地重新定位这些点。
[0081] 为了有效地对帧进行校正,可将基于积分直方图∫H′建模的校正曲线表示为基于从积分直方图导出的参数多项式构建的查找表。在一个示例中,可通过在新直方图H′的每个索引处向后遍历x的多项式x(t)以浏览x的值从而获得t的值,并随后评估该t值处的y的多项式y(t)来构造查找表。在该示例中,以查找表的形式生成校正曲线。在其他示例中,校正曲线可以以任何其它合适的形式生成。一旦产生校正曲线,方法500通常就完成了。
[0082] 图6是示出在起始点(0,0)开始并在终止点(1,1)结束并且在0-1的范围内归一化的示例校正曲线610的图。介于(0,0)和(1,1)之间的直线620表示空校正曲线,其中输出值等于输入值。另一方面,不是空校正曲线的示例校正曲线610可被应用(例如,步骤450)来根据曲线610的形状变换输入特性数据。此外,可操纵控制点1和2(每个控制点在x和/或y方向上)以进一步修改曲线的形状。控制点的这种操纵可至少在步骤430和/或440中发生。例如,当操纵用于亮度特性的校正曲线时,将控制点向上(y轴)移动趋于使帧图像变亮,而向下移动控制点趋向于使帧图像变暗。此外,向左或向右(x轴)移动控制点控制是帧的较暗的部分还是较亮的部分受y轴移动影响。
[0083] 图7是示出用于平滑帧的特性值相对于视频的先前处理的帧中的特性值(和/或其他特性值)的方差的示例方法700的框图。这种方法可由时间平滑器360执行。例如,考虑亮度特性,可以采用平滑来消除或减少伪影,例如帧之间的亮度级(值)突然变化时的闪烁(如图8所示)。这种平滑可包括基于一组先前的帧{t-1,t-2,…t-n}的校正曲线的幅度和方向趋势来影响帧t的校正曲线的控制点。在一个示例中,n是相对小的数字(诸如在大约4与10之间的值)。
[0084] 步骤710通常指示从帧t的校正曲线(即要被平滑的曲线)开始。在一个示例中,该曲线是在步骤420处生成的优选校正曲线。在另一示例中,根据步骤430,校正曲线已受用户超驰信息影响。给定帧t的校正曲线(即要被平滑的曲线),方法700通常在步骤720处继续。
[0085] 步骤720通常指示在帧t之前检索帧{t-1,t-2,…t-n}的校正曲线的数据。这种先前的校正曲线数据可从系统200的存储340检索。在一个示例中,检索到的数据(诸如图8所述)包括每个帧{t-1,t-2,…t-n}的校正曲线的参数值。一旦检索到先前帧的校正曲线数据,方法700通常在步骤730处继续。
[0086] 步骤730通常指示对每个先前帧{t-1,t-2,…t-n}的校正曲线数据对于帧t的校正曲线(即要被平滑的曲线)的影响进行加权。在单遍操作的一个示例中,特定特性的影响权重被设置为:对于帧t而言为特性值的50%、对帧t-1为25%、对帧t-2为14%、对帧t-3为8%、以及对帧t-4为3%。在两遍操作的一个示例中,特定特性的影响权重被设置为:对于帧t而言为特性值的50%、对帧t-1和t+1为12.5%、对帧t-2和t+2为7%、对帧t-3和t+3为4%、以及对帧t-4和t+4为1.5%。在其他示例中,可使用其他数量的帧和其他影响百分比(权重)。一般地,选择百分比使得总计为100%,并且分配给更接近帧t的帧的权重大于分配给距离帧t更远的帧的权重。一旦建立了权重,方法700通常在步骤740处继续。
[0087] 步骤740通常指示根据建立的权重影响帧t的特性的校正。在一个示例中,根据建立的权重来影响用于建立特性的校正曲线的形状的每个参数。结合图8描述这样的参数的一个示例。这种影响通常导致平滑的校正曲线。一旦产生平滑的校正曲线,方法700通常就完成了。
[0088] 图8是对于示例视频的大约1500帧的示例图,其示出了塑造校正曲线的六个参数值的变化。在该示例中,被校正的特性是亮度特性。图中的每个帧的六个参数及其值如下:
[0089] 1.如在步骤530中计算的C min值,其中的每一个值在该示例中建立其帧的黑点;
[0090] 2.每个帧的控制点1的示例x轴值;
[0091] 3.每个帧的控制点2的示例x轴值;
[0092] 4.每个帧的控制点1的示例y轴值;
[0093] 5.如在步骤530中计算的C max值,其中的每一个值在该示例中建立其帧的白点;以及
[0094] 6.每个帧的控制点2的示例y轴值。
[0095] 图9是示出用于针对“抖动”(诸如跨视频的m个帧)来对视频的至少一部分进行分析以及用于确定该部分的抖动分数的示例方法900的图。这种方法可由抖动分析器230执行。在一个示例中,在计算设备上执行方法900,该计算设备根据程序模块(例如软件)的计算机可执行指令来控制(诸如结合图1描述),当由该计算设备执行诸如结合图2描述的那些模块的至少一部分时,致使该计算设备执行方法900的一些或所有方面。在其他示例中,结合图2描述的模块可被实现为固件、软件、硬件或其任何组合。作为补充或替换,模块可被实现为片上系统(“SoC”)的一部分。
[0096] 步骤910通常指示检测视频t和t+1的两个帧中的特征点。这样的帧可以是连续的帧,连续的I帧或两个其他帧。在每个帧中检测特征点。在一个示例中,亮度信道可被用来检测特征点。在其他示例中,除了亮度之外或者作为亮度的补充的特性可被用来检测特征点。一般地,帧t+1可能已经经历相对于帧t的2维(“2D”)或3维(“3D”)变换(诸如由捕捉设备在捕捉帧t和帧t+1之间的移动所导致的)。因此,系统200尝试检测先前在帧t中检测到的帧t+
1中的特征点,从而允许帧t和帧t+1之间的变换的计算。这种检测可基于帧t和帧t+1的下采样版本。一旦在每个帧中检测到特征点,方法900通常就在步骤920处继续。
[0097] 步骤920通常指示计算可应用于帧t+1的变换,使得两个帧t和t+1之间的特征点的最大数目重合。该计算的变换通常对可能已经在帧t和t+1之间发生的任何变换进行建模。在一个示例中,计算的变换可以以单应性变换矩阵的形式表示。一旦计算出帧的变换,方法
900通常在步骤930处继续。
[0098] 步骤930通常指示将变换应用于帧t+1的若干帧点,其中所述应用导致了帧t+1的每个帧点相对于帧t的位移。然后计算每个帧点的位移的距离。在一个示例中,该距离是欧氏距离。若干帧点可以是指示帧的四个和中心的五个点,其中所述四个角形成矩形。一旦应用变换并且计算帧的位移距离时,方法900通常在步骤940处继续。
[0099] 步骤940通常指示基于相对重要性来可选地偏置在步骤930中计算的帧t+1的每个位移距离。在一个示例中,对于每个距离,通过将位移距离乘以对应于其点相对于其他点的重要性的权重来实现偏置。在若干帧点是矩形的五个点的示例中,中心点的距离可被偏置成比各个角更为重要。一旦帧的位移距离被偏置,方法900通常在步骤950处继续。
[0100] 步骤950通常指示计算帧t+1相对于帧t的位移分数Di。在一个示例中,通过将在步骤940中计算的所有偏置距离值相加来计算分数。一旦计算出帧的位移分数,方法900通常在步骤960处继续。
[0101] 步骤960通常指示计算到目前为止已处理的视频的所有m个帧的移动平均位移分数Davg。在一个示例中,移动平均位移分数Davg基于先前帧的各个位移分数。该值Davg通常表示捕捉设备与场景之间的被认为是“有意运动”的长期相对运动,诸如平移、缩放、场景中的运动等,其中场景是在视频帧中捕捉到的。一旦计算了移动平均,方法900通常在步骤970处继续。
[0102] 步骤970通常指示计算帧t+1的抖动噪声Dnoise。在一个示例中,Dnoise被计算为帧的位移分数Di与移动平均位移分数Davg之间的差。该值Dnoise一般表示捕捉设备和场景之间的相对运动中的“抖动”或无意的短期噪声,而不是有意的运动。
[0103] 一旦针对帧t+1计算抖动噪声Dnoise,通常就对进行了抖动分析的视频的m个帧中的任何下一个帧t+2重复步骤910到970。一般地,步骤970的帧t+1变为重复的步骤910的帧t,并且任何下一帧t+2变为重复的步骤910的帧t+1。如果在被分析的视频的部分中没有下一帧t+2,则方法900通常在步骤980处继续。
[0104] 一旦已经分析了视频的该部分,步骤980通常就指示根据在步骤970中计算的每个Dnoise值计算该部分的平均抖动值。然后将平均抖动值与阈值进行比较。在一个示例中,如果平均抖动超过阈值,则视频被自动稳定。在另一个示例中,如果平均抖动超过阈值,则建议视频被稳定。一旦步骤980完成,方法900通常就完成了。
[0105] 鉴于可应用本发明和前述示例的许多可能的实施例,应当认识到,本文描述的示例仅仅是说明性的,并且不应认为是限制本发明的范围。因此,本文所述的本发明考虑了可落入所附权利要求及其任何等效物的范围内的所有这些实施例。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈