微视频系统、格式和生成方法与流程

文档序号:19952670发布日期:2020-02-18 10:53阅读:575来源:国知局
微视频系统、格式和生成方法与流程

本公开总体涉及对包括视频在内的影像的捕获和表示(例如回放)。更具体地,本公开涉及根据新颖的微视频图像格式使用和/或生成图像文件的系统和方法,并且还涉及用于修剪微视频的技术。



背景技术:

图像捕获设备是能够捕获影像(例如,以图像帧的形式)的设备。图像捕获设备包括相机、记录器、传感器和/或其他设备。在某些情况下,图像捕获设备可以具有捕获影像之外的主要目的。例如,图像捕获设备可以包括“启用相机”的设备或者具有嵌入在设备内的图像捕获系统的设备,诸如,例如某些智能手机、膝上型电脑、智能家电、智能扬声器、家庭管理器设备、安全系统等。在某些情况下,图像捕获设备可以是能够移动的移动图像捕获设备和/或能够穿戴的图像捕获设备。此外,本身不明确捕获影像的计算系统仍然可以用于查看、编辑或显示由图像捕获设备捕获的影像。

某些现有的图像捕获设备可以包括以下功能:当用户操作设备捕获影像时使设备能够捕获移动图像短片(即,“影片”)。特别地,短影片可以包括在用户操作设备捕获影像之前和之后的预定时间量(例如,1.5秒)内捕获的影像(例如,通过选择物理或虚拟按钮来指示设备捕获影像)。然而,该短影片通常包括降低移动图像质量的无关影像。例如,影片可能包括与掏口袋(out-of-pocket)运动(例如,当用户从其口袋中取出设备时所捕获的运动)、突然的亮度变化和/或不期望的相机缩放和旋转相对应的影像。

某些形式的图像捕获设备(例如,移动图像捕获设备和/或能够被穿戴的图像捕获设备)的设计和使用所面临的另一个挑战是它们在其中操作的环境资源有限。特别地,图像捕获设备的设计和使用通常受到以下限制:将用于相当长时间段内的图像存储的存储量有限;连续处理影像的处理力或处理能力有限;可用于在很长时间段内操作的能量有限;和/或可以被耗散的热能量有限(即,不应超过设备温度,以防止设备过热或使在某些情况下穿戴该移动图像捕获设备的用户不舒服)。



技术实现要素:

本公开的实施例的方面和优点将在以下描述中部分地阐述,或者可以从描述中获知,或者可以通过实施例的实践获知。

本公开的示例方面针对根据新颖的微视频图像格式使用和/或生成图像文件的系统和方法。例如,微视频可以是包含静止图像和简短视频两者的文件。微视频可以包括多个轨道,诸如,例如单独的视频轨道、音频轨道和/或一个或多个元数据轨道。作为一个示例轨道,微视频可以包括运动数据轨道,其存储可用于(例如,在文件运行时)稳定视频帧的运动数据。图像捕获设备中包括的微视频生成系统可以在图像捕获设备捕获微视频时即时地确定对视频的修剪。

参考以下描述和所附权利要求,将更好地理解本公开的各种实施例的这些和其他特征、方面和优点。结合在本说明书中并构成其一部分的附图说明了本公开的示例实施例,并且与描述一起用于解释相关原理。

附图说明

参考附图在说明书中阐述了针对本领域普通技术人员的实施例的详细讨论,其中:

图1描绘了根据本公开的示例实施例的示例图像捕获设备的框图。

图2描绘了根据本公开的示例实施例的示例微视频格式的框图。

图3描绘了根据本公开的示例实施例的一对图像帧之间的单应矩阵的图表。

图4描绘了根据本公开的示例实施例的示例文件轨道的图表。

图5描绘了根据本公开的示例实施例的示例微视频生成系统的框图。

图6描绘了根据本公开的示例实施例的示例微视频修剪过程的图表。

图7描绘了根据本公开的示例实施例的相机速度和运动阈值之间的示例关系的图表。

图8描绘了根据本公开的示例实施例的示例计算系统的框图。

具体实施方式

一般地,本公开针对根据新颖的微视频图像格式使用和/或生成图像文件的系统和方法。例如,微视频可以是包含静止图像和简短视频两者的文件。图像捕获设备可以包括根据微视频图像格式生成微视频文件的微视频生成系统。同样,各种类型的计算系统——包括那些本身不捕获影像的计算系统——可以包括一个或多个图像查看器,该图像查看器可以打开或以其他方式访问微视频文件以向用户显示微视频。

因此,根据一个方面,本公开提供了一种新颖的微视频图像文件格式,该格式使得单个微视频文件能够包含静止图像和简短视频两者。例如,视频信息可以与静止图像信息串接或者以其他方式附加到静止图像信息上。在一些实施方式中,视频部分可以被包括在与静止图像部分相关联的容器(例如,jpeg容器)中。

支持静止图像格式或视频格式的查看器可以打开或以其他方式访问微视频文件。这样,微视频格式可以使用户能够查看静止图像或视频(例如,以循环方式)。作为一个示例,静止图像可以是jpeg图像,视频可以是mp4格式视频。然而,也可以使用其他格式。

根据另一方面,微视频可以包括多个轨道,诸如,例如单独的视频轨道、音频轨道和/或一个或多个元数据轨道。作为一个示例轨道,微视频可以包括运动数据轨道,其存储可用于(例如,在文件运行时)稳定视频帧的运动数据。例如,运动数据轨道可以存储可用于稳定视频的一个或多个单应矩阵(例如,每帧一个或多个矩阵)。

在一些实施方式中,每个单应矩阵可以根据从一个或多个传感器、图像传感器和/或图像信号处理器(isp,imagesignalprocessor)接收的运动数据来计算或以其他方式推导(例如,当生成微视频时)。例如,一个或多个传感器可以包括一个或多个陀螺仪、加速度计、惯性测量单元(imu,inertialmeasurementunits)或提供指示图像传感器和/或图像捕获设备整体的运动的传感器数据的其他运动感测传感器。作为运动数据的另一示例源,图像传感器和/或isp可以提供关于影像的统计或其他数据,包括曝光信息、亮度信息、缩放信息、聚焦信息、光学图像稳定(ois,opticalimagestabilization)镜头位置或描述图像帧的其他数据。

根据本公开的另一方面,图像捕获设备中包括的微视频生成系统可以在图像捕获设备捕获微视频时即时地确定对视频的修剪。特别地,微视频生成系统可以确定最佳的起始帧和结束帧,并提高视频质量。例如,通过修剪视频,系统可以移除与掏口袋运动(例如,当用户从其口袋中取出设备时所捕获的运动)、突然的亮度变化、不期望的相机缩放和旋转、模糊图像相对应的影像、和/或其他不期望的影像,从而提高视频质量。

更具体地,在一些实施方式中,微视频生成系统可以包括缓冲器,该缓冲器存储由设备捕获的图像帧和运动数据的滚动窗口。在一些实施方式中,在接收到用户控制输入(例如,用户激活“快门”控制)时,微视频生成系统可以开始在缓冲器中存储的图像帧内搜索起始帧。例如,微视频生成系统可以从在接收到用户控制输入时捕获的“快门帧”向后搜索。

可选地或附加地,在一些实施方式中,微视频生成系统可以操作为以自动方式生成微视频。例如,可以在特定触发事件发生时自动选择快门帧。例如,特定对象的出现(例如,由对象检测器检测到的);场景内一定的运动量;或者可以被图像捕获设备检测到并触发微视频的自动生成的其他事件。

在一些实施方式中,微视频生成系统可以通过应用一个或多个标准来识别起始帧。作为一个示例,一个或多个标准可以包括运动标准,该运动标准确定受检查的当前帧和快门帧之间的运动距离是否大于运动阈值。例如,可以基于图像捕获设备的运动速度来动态确定运动阈值,这使得微视频生成系统能够以不同于静态拍摄的方式处理对平移拍摄(例如,全景)的修剪。

作为另一示例,一个或多个标准可以包括总灵敏度变化标准,该总灵敏度变化标准确定当前帧和快门帧之间的总灵敏度变化是否超过灵敏度阈值。例如,总灵敏度可以是传感器灵敏度和曝光时间的函数,例如,其可以从isp中检索。作为又一示例,一个或多个标准可以包括缩放标准,该缩放标准确定缩放变化是否大于缩放阈值。

作为另一示例,一个或多个标准可以包括运动模糊标准,该运动模糊标准分析与当前帧相关联的运动模糊量。该运动模糊标准可用于移除或以其他方式开始或结束在由相机运动引起的模糊帧处的微视频或邻近该模糊帧的微视频。作为又一示例,一个或多个标准可以包括聚焦标准,该聚焦标准分析与当前帧相关联的自动聚焦数据。该聚焦标准可用于移除或以其他方式开始或结束在由镜头失焦引起的模糊帧处的微视频或邻近该模糊帧的微视频。

在一些实施方式中,微视频生成系统可以选择满足一个或多个标准(例如,上述三个示例标准)中的某一数量(例如,一个、两个、全部等)的标准的第一帧作为起始帧。在一些实施方式中,如果缓冲器中没有帧满足该某一数量的标准,则缓冲器中最早的帧可以被选择作为起始帧。

在一些实施方式中,一旦确定了起始帧,微视频生成系统就可以指示或操作编码器从起始帧开始编码微视频。在这种编码开始之前或之后,微视频生成系统可以开始搜索结束帧。

在一些实施方式中,微视频生成系统可以在每个新帧被捕获时或以其他方式可用于微视频生成系统进行分析时对每个新帧进行分析,以确定这种帧是否应该被指定为结束帧。例如,为了识别结束帧,微视频生成系统可以应用与上述相对于起始帧的选择相同或相似的标准过程。可以使用相同的标准,也可以使用不同的标准。如果使用相同的标准,则可以使用相同或不同的阈值。在一些实施方式中,如果在用户控制事件的时间之后的某一预定时间段(例如,1.5秒)内捕获到的新帧不满足某一数量的标准,则可以选择快门帧之后预定时间段的新帧作为结束帧。

编码器可以对图像帧进行编码,直到到达结束帧。因此,微视频的持续时间可以是从起始帧到结束帧。

在一些实施方式中,由于用户可能不期望微视频非常短和不太协调(jarring),所以微视频生成系统可以对照最小持续时间阈值(例如,1秒)来检查微视频持续时间。在一些实施方式中,如果微视频持续时间小于最小持续时间阈值,则系统可以取消微视频。例如,可以存储静止照片,而不存储微视频。在其他实施方式中,持续时间小于最小持续时间阈值的微视频仍然可以被保存。在其他实施方式中,可以向微视频的开头和/或结束添加附加的帧,直到达到最小持续时间阈值。在一些实施方式中,可以向用户提供对微视频生成系统如何处理持续时间小于最小持续时间阈值的微视频的控制。

在一些实施方式中,快门帧可以用作微视频的静止照片。在其他实施方式中,各种算法可以用来从视频中将质量最高、最能代表整个视频、最期望和/或最独特的图像帧识别为微视频的静止照片。

在一些实施方式中,微视频生成系统可以并行生成多个微视频文件。例如,微视频生成系统的多个并行实例可以响应于用户以快速、重复的方式(诸如,收集一连串图像)提供用户控制输入来实施。在至少一些实施方式中,由于起始和结束修剪决策是基于快门帧的特性,所以这些微视频修剪和生成的多个并行实例可以导致不同持续时间、不同起始帧、不同结束帧的微视频,并且因此导致不同内容的微视频。

本公开的系统和方法提供了许多技术效果和益处。例如,微视频图像格式可以允许只存储单个文件,从该单个文件中可以独立查看静止图像和视频,而在传统的文件格式中,可能需要两个文件来实现这一点。与存储两个单独的文件相比,存储允许查看静止图像和视频两者的单个文件可能需要更少的存储容量。注意,静止图像可以不作为缩略图(或者另一压缩版本的视频帧之一)来查看,而是以与视频帧相同或更高的分辨率来查看。

作为另一示例,微视频格式能够将运动数据存储在单独的轨道中,以便稍后用于稳定视频(例如,在运行时)。这与在初始处理和存储时使用运动数据来稳定视频的替代技术形成对比。这使得总体处理要求得以降低,因为许多用户并不查看他们捕获的每一个图像/视频(或者甚至不查看他们捕获的大部分图像/视频)。因此,对于用户最终没有查看的每个微视频,避免了执行稳定技术的成本。

从单独的运动数据轨道得到的另一示例技术效果和益处特别适用于具有资源约束操作环境的图像捕获设备。例如,用户可以使用图像捕获设备来捕获微视频,但是通常在具有更少资源约束的不同设备上查看微视频。在这种情况下,对微视频执行稳定过程的资源需求可以从图像捕获设备转移到具有更少资源约束的另一设备,从而提高图像捕获设备的性能。

除了以上技术效果和益处之外,在具有资源约束操作环境的图像捕获设备中,将稳定处理需求从初始捕获时间转移到稍后的时间点使得更多资源能够在捕获时间专用于设备的图像捕获组件,捕获时间通常需要大量资源,例如电力。此外,设备可以简单地将图像数据流式传输到编码器,并且不需要在图像捕获组件正在操作的同时在不同格式之间呈现(surface)数据或转换数据。

作为技术效果和益处的另一示例,保持单独的运动轨道能够保留运动数据,以便稍晚用于开发出提高的稳定技术的情况。

作为另一示例技术效果和益处,因为原始运动数据(例如,原始传感器数据)可以特定于具体设备和/或传感器类型,所以将原始运动数据转换成单应矩阵提高了运动数据的一致性,并且提供了能够进行通用处理的标准化运动度量。此外,将原始运动数据转换成单应矩阵可以提高用户隐私。

作为另一示例技术效果和益处,在一些实施方式中,本文描述的微视频修剪技术不需要完整视频来开始修剪过程。相反,微视频生成系统可以即时地操作。特别是,系统只需要过去的缓冲的帧,并且可以在接收到用户控制输入之后立即启动。结果,微视频生成系统可以提高计算过程的速度,并在减少的时间帧内生成微视频。作为另一相关结果,微视频生成系统不需要大的缓冲器来缓冲整个视频,而是仅缓冲用户控制输入之前的部分。因此,本文描述的微视频修剪技术降低了设备的存储需求。

作为另一示例技术效果和益处,在一些实施方式中,本文描述的微视频修剪技术使用传感器和/或isp数据,而不是对图像本身执行分析。结果,修剪技术具有相对较低的计算复杂度,从而降低了对处理资源的需求,并提高了该技术的执行速度。特别地,由于使用传感器和/或isp数据而导致低计算复杂度使该过程能够比使用图像分析的方法运行得快得多。事实上,复杂度足够低,系统可以实现实时性能。

作为另一示例技术效果和益处,在一些实施方式中,微视频生成系统对于静态拍摄和平移拍摄进行不同的修剪。例如,微视频可以在平移情况下保留更多内容,并对静态场景进行更严格的修剪。该系统可以处理平移情况和静态场景情况两者,并且可以在这两种情况之间执行平滑的操作过渡。因此,可以提高图像捕获设备对图像捕获的环境的响应性。此外,该系统可以丢弃(drop)修剪后过短的微视频或将其延伸至最小长度。

作为进一步的示例,示例微视频生成系统的实验测试提供了以下示例结果:修剪器将微视频平均持续时间从3s剪辑到2.4s,这节省了20%的存储和电力。此外,修剪后过短的微视频会被丢弃。日志记录显示,系统在修剪后丢弃了33%的短微视频,从而又节省了18%的存储空间。

现在参考附图,将进一步详细讨论本公开的示例实施例。

图1描绘了根据本公开的示例实施例的示例图像捕获设备102的框图。图像捕获设备102可以包括图像传感器120和图像信号处理器122,它们一起操作以生成影像的帧。可操作图像传感器120来捕获原始图像数据。图像信号处理器122可以处理原始图像数据以形成图像帧。在一些实施方式中,图像信号处理器122可以包括专用数字信号处理器。

在一些实施方式中,图像信号处理器122可以包括一个或多个硬件块,可操作这些硬件块来促成图像帧的形成。可以被包括在图像信号处理器122中的示例硬件块包括:原始滤波器块;坏像素校正块;原始去噪块;黑电平(闪光)校正块;镜头阴影校正块;白平衡块;去马赛克器块;bayer转换块;去马赛克块;颜色校正块;伽马校正块;色调映射块;和/或颜色空间转换块。图像信号处理器122还可以包括促成基于由图像传感器120捕获的原始图像数据来形成(多个)图像的各种其他组件、块和/或子系统。

图像传感器120和/或图像信号处理器122可以至少部分地基于例如由图像传感器120捕获的原始图像数据或处理器122内的中间图像数据来生成各种信息或统计(包括由硬件块生成的一个或多个硬件生成的统计)。特别地,根据本公开的一个方面,这些统计仅花费少量的边际能量就可容易地获得,因此非常轻便并且计算成本低廉。作为示例,统计可以包括自动曝光统计、自动白平衡统计、自动聚焦统计、缩略图、颜色直方图和/或高频图。除了这些统计之外还可以使用其他近乎自由信号(near-freesignal)(诸如元数据、设置、ois镜头位置和/或传感器数据)和/或可以从这些统计中推导其他近乎自由信号。

图像捕获设备102还可以包括一个或多个传感器128。作为示例,(多个)传感器128可以包括一个或多个陀螺仪、加速度计、磁力计、惯性测量单元(imu)或提供指示图像传感器128的和/或以图像捕获设备102作为整体的运动的传感器数据的其他运动感测传感器。传感器128可以是测量和报告被施加到图像捕获设备102或以其他方式与图像捕获设备102相关联的速度、朝向和重力中的一个或多个的电子设备。在一些实施方式中,来自一个或多个传感器128的数据或从其推导的运动数据(例如,单应矩阵)可以被附加到在传感器128生成这种数据时(例如,在单独的运动数据轨道中)所捕获的图像上,或者可以被用于修剪微视频,这将在下面进一步讨论。这种信息也可由下游过程使用,例如,在选择(或拒绝)由于归因于图像捕获设备102的意外移动、推挤或其他物理干扰(例如,由用户的步态而导致的物理干扰)的模糊、运动或其他不期望的属性而导致的特定图像时。因此,图像捕获定时可以是基于来自传感器128的数据。

在一些实施方式中,本公开的各方面还可以使用从传感器128、图像传感器120和/或图像信号处理器122生成的近乎自由信号。特别地,通常这些近乎自由信号(诸如硬件生成的统计)无论如何都是为了在图像形成阶段执行自动曝光、自动白平衡和/或自动聚焦而生成的。

可以由图像捕获设备102使用的示例近乎自由信号包括可从图像捕获参数自由获得的元数据或设置。示例元数据包括处理管道元数据和传感器元数据。示例设置包括曝光时间、模拟增益和数字增益。附加的近乎自由数据包括传感器数据,诸如惯性运动单元(imu)信号(例如,由一个或多个imu描述的角速度)。

附加的示例硬件生成的统计包括缩略图、颜色直方图、亮度直方图和/或高频图,它们仅花费少量的边际能量就可容易地获得。自动曝光、自动白平衡和/或自动聚焦统计可以包括自动聚焦斑点滤波器总和、自动白平衡斑点像素总和等。

图像捕获设备还可以包括快门控制器130。快门控制器130可以控制何时收集、存储和/或处理图像数据。例如,快门控制器130可以响应于用户控制输入来操作以控制图像捕获设备102。例如,用户控制输入可以包括选择物理或虚拟的快门控制按钮。

根据本公开的方面,图像捕获设备还可以包括生成微视频的微视频生成系统124。微视频生成系统124可以根据本文描述的新颖的微视频图像格式来生成图像文件。例如,微视频可以是包含静止图像和简短视频两者的文件。将参照图5更详细地讨论一个示例微视频生成系统124。参考图2-图4描述了一个示例微视频格式。

由微视频生成系统124生成的微视频可以存储在一个或多个存储设备126中。存储设备126可以包括各种不同类型的存储器中的一种或多种,包括易失性和/或非易失性存储器。示例存储设备126包括ram、rom、eeprom、eprom、闪存设备、磁盘等,以及它们的组合。

图2描绘了根据本公开的示例实施例的示例微视频格式的框图。在一些实施方式中,微视频可以具有以下格式<jpeg_bytes><mp4_bytes>,其扩展名为.jpg。在一些实施方式中,mp4字节可以直接附加到压缩的jpeg的末尾。在一些实施方式中,可以使用下面描述的xmp标签和文件名格式。

在一些实施方式中,xmp标签可以包括以下示例字段中的一些或全部:

在一些实施方式中,微视频可以遵循特定的文件名格式,以被某些系统识别为微视频。例如,照片存储应用可以快速识别微视频并显示适当的标记。在某些情况下,如果文件名格式与规范不匹配,则客户端可能不会尝试从文件解析xmp,而是将其视为简单的jpeg。一个示例文件名格式如下:mvimg_[a-za-z0-9_]+.(jpg|jpg|jpeg|jpeg)。

在一些实施方式中,微视频可以包括视频轨道,并且可选地包括音频轨道。可选地,mpeg4数据还可以包括指定如何稳定视频帧的回放的两个附加元数据轨道。例如,这些元数据轨道可以是mett轨道(例如,mpeg4atommoov.trak.mdia.hdlr.handlertype=”mett”)。

提供关于如何渲染帧的转换信息的轨道可以具有mime类型的“应用/微视频-元数据-流”。这可以经由isobmff的第12.3.3.2节中定义的textmetadatasampleentry来指定,以发信令通知元数据的mime格式。该轨道中的每个帧可以对应于视频帧,并且可以包含由以下示例protobuf(googleprotocolbuffer,谷歌协议缓冲器)定义指定的序列化协议缓冲器:

data.homography_data中的每个单应矩阵可以表示从前一帧到当前帧的转换。对于当前帧上的像素(x1,y1),前一帧上的匹配像素(x0,y0)可以满足单应变换[x1,y1,1]t=h*[x0,y0,1]t

在一些实施方式中,每个帧被分成多个部分。例如,这些部分可以是沿着扫描线方向的带(band)。在一个示例中,为每个帧定义了12个带。每个部分(例如,带)可以具有单应变换。因此,在沿着扫描线方向使用12个带的示例实施方式中,存在12个单应矩阵h1到h12,如图3所示。具体地,图3描绘了根据本公开的示例实施例的一对图像帧之间的示例单应矩阵的图表。

图4描绘了根据本公开的示例实施例的示例文件轨道的图表。

在一些实施方式中,尽管视频轨道可以具有无序的帧(例如,b帧),但是元数据轨道必须是有序的,并且具有递增顺序的时间戳。对于视频轨道中的每个时间戳,元数据轨道中可以存在具有相同时间戳的帧。

在一些实施方式中,proto中有一个is_key_frame字段来指示帧本身是否是关键帧。关键帧也可以被称为“i帧”(或“内部帧(intraframe)”)。该信息可以来自编码器(例如,如果使用mediacodec进行编码,则bufferinfo.flags可以为关键帧设置buffer_flag_key_frame)。在一些实施方式中,该信息可以用于帮助修剪。例如,如果期望在不转码的情况下修剪初始帧,则剪辑可以被限制在关键帧上进行。

另一示例元数据轨道可以包含关于视频是否应当在后端被稳定的信息,以及在循环回到开头并继续视频循环之前视频应当在该处开始回放动画的帧的时间戳。该轨道可以具有mime类型的“应用/微视频-图像-元数据”,并且可以包含具有与任何视频帧相对应的呈现时间戳(例如,第一视频帧的时间戳)的单个帧。在一些实施方式中,仅有的限制是时间戳必须具有在第一个和最后一个视频帧时间戳之间的值(包括第一个和最后一个视频帧时间戳)。帧数据可以包含序列化协议缓冲器,例如,如下例所示:

作为一个示例,当微视频文件被上传到照片应用后端时,它可能经受附加的图像稳定。do_not_stabilize字段允许开发者指定视频内容不应当经受任何附加的稳定处理。

图5描绘了根据本公开的示例实施例的示例微视频生成系统500的框图。微视频生成系统500可以包括环形缓冲器502、修剪器504和编码器506。微视频生成系统500可以生成微视频508。

更具体地,在一些实施方式中,可以假设在快门前最多m秒和快门后最多n秒处捕获微视频。在一些实施方式中,作为一个示例,m=1.5,n=1.5。也可以使用其他值(例如,2秒、3秒等),m不必等于n。图5是修剪方法的高级图,在一些实施方式中,该修剪方法包括以下步骤。来自传感器120、处理器122和(多个)传感器128的视频帧和传感器/isp数据可以首先被馈送到环形缓冲器502中。修剪器504可以由快门控制器130触发(例如,响应于快门按压)。修剪器504可以确定微视频的起始帧/结束帧,并将它们的时间戳发送到编码器/复用器506,以在该范围内创建微视频508。

在一些实施方式中,在预览期间,视频帧和传感器/isp数据可以一直在环形缓冲器502中缓冲m秒。缓冲器502可以包括或实施在一种或多种不同类型的计算机可读存储装置中,包括例如ram。

每当快门控制器130指示接收到用户控制输入(例如,快门按钮按压)时,当前帧可以被选择为快门帧,其可以被表示为f_shutter。

如图6所示,快门之前的m秒内的所有帧和传感器/isp数据都已经在环形缓冲器中,使得可以立即访问(例如,由修剪器504访问)它们。用户控制事件之后的所有帧和传感器/isp数据尚不可用。

在一些实施方式中,在快门控制器130指示接收到用户输入之后,微视频生成系统500可以立即启动修剪器504的新实例,以确定最佳起始帧。多个修剪器504可以同时运行(例如,如果快门按钮在短时间段期间被点击多次,诸如按钮混搭(buttonmashing)的情况)。起始帧f_start应当总是在快门帧之上或之前(f_start<=f_shutter)。

在一些实施方式中,修剪器504可以将当前帧从快门帧向后移动,以寻找微视频508的最佳起始帧。如果被表示为f_current的当前帧满足一个或多个标准中的某一数量(例如,一个、两个、全部等)的标准,则它可以被设置为起始帧。可以选择使用的三个标准示例如下。

示例标准1:该标准检查从当前帧到快门帧的相机运动距离是否大于阈值t_motion。这个标准可以用来修剪掉不想要的相机运动,诸如把手机从口袋里拿出来或者放回去。大的平移运动或旋转运动都会导致大的运动距离,因此会被修剪。

示例标准1可以根据以下式子进行评估:max_i||(x_i(f_current),y_i(f_current))-(x_i(f_shutter),y_i(f_shutter))||>t_motion,其中||.||是l2距离。(x_i(f_shutter),y_i(f_shutter)),i=1...4,表示快门帧的4个角。它们可以是(0,0)、(宽度-1,0)、(高度-1,0)、(宽度-1,高度-1)。(x_i(f_current),y_i(f_current)),i=1...4,表示快门帧的坐标中当前帧的4个角。它们可以通过当前帧和快门帧之间的转换来计算,该转换可以从传感器数据和isp数据中推导。

在一些实施方式中,阈值t_motion可以基于快门帧附近的相机运动速度v来自适应地确定。速度v可以从以上表达式中描述的相机运动距离除以当前帧和快门帧之间的时间来计算。在一些实施方式中,对于最接近快门帧的k个帧,可以对速度进行平均。作为一个示例,k=6。

在一些实施方式中,自适应阈值t_motion可以是相机运动速度v的分段线性函数,如图7所示。因此,作为一个示例,如果v<v1,则t_motion=t_small;如果v>v2,则t_motion=t_large;如果t_motion=t_small+(v-v1)*(t_large-t_small)/(v2-v1)。这种分段线性函数可能导致以下结果:如果相机运动速度慢,则很可能是静态拍摄,并且阈值t_motion可以被设置为小的数值。由于阈值t_motion小,所以修剪器504将仅保持从快门帧移动不多的帧,以产生良好的静态微视频。相比之下,如果相机运动速度快,则很可能是平移拍摄,并且阈值t_motion可以被设置为大的数值。由于阈值t_motion大,则即使相机移动远离快门帧很多,修剪器也会保持帧,以产生良好的平移微视频。这两种情况之间也有平滑的过渡。

分段线性函数仅作为一个示例提供。也可以使用其他的相机运动速度v和运动阈值t_motion之间的关系,包括线性关系、对数关系和/或指数关系。

示例标准2:该标准检查当前帧和快门帧之间的总灵敏度变化是否大于阈值。该标准可用于消除微视频中突然的亮度变化。

示例标准2可以根据以下式子进行评估:abs(total_sensitivity_current-total_sensitivity_shutter)>t_total_sensitivity。总灵敏度可以被定义为total_sensitivity=sensor_sensitivity*exposure_time。sensor_sensitivity和exposure_time都可以从直接能够从相机硬件检索到的isp数据中获得。

示例标准3:该标准检查当前帧和快门帧之间的相机缩放因子变化是否大于阈值。该标准可用于移除微视频中不想要的缩放。

示例标准3可以根据以下式子进行评估:abs(zoom_current-zoom_shutter)>t_zoom。

示例标准4:一个或多个标准可以包括运动模糊标准,运动模糊标准分析与当前帧相关联的运动模糊量。该运动模糊标准可用于移除或以其他方式开始或结束在由相机运动引起的模糊帧处的微视频或邻近该模糊帧的微视频。

示例标准4可以根据以下式子来评估:motion_blur>t_motion_blur,其中t_motion_blur是运动模糊阈值。motion_blur可以被定义为:motion_blur=v_current*exposure_time,其中,v_current是当前帧的相机运动的当前速度。v_current可以从例如陀螺仪传感器数据和/或isp数据中推导。

示例标准5:一个或多个标准可以包括聚焦标准,聚焦标准分析与当前帧相关联的自动聚焦数据。该聚焦标准可用于移除或以其他方式开始或结束在由镜头失焦引起的模糊帧处的微视频或邻近该模糊帧的微视频。每个帧的自动聚焦数据可以从isp获得。例如,自动聚焦数据可以包括自动聚焦状态。在一些实施方式中,在当前帧的自动聚焦状态为“未聚焦”时,可以满足该标准。

在一些实施方式中,如果修剪器504到达快门帧之前m秒的帧,同时不满足一个或多个标准中的某一数量的标准或任一标准,则起始帧可以被设置为快门帧之前m秒的帧,即,f_start=f_shutter–m。

在一些实施方式中,一旦确定了最佳起始帧,编码器506就将从起始帧开始编码微视频508。然后,修剪器504需要确定最佳结束帧以停止编码器506。

在一些实施方式中,对于快门控制器130指示用户输入之后到来的每个新帧,修剪器504可以检查微视频是否应当在该帧处结束。修剪器504可以将新帧设置为当前帧,并使用与用于确定起始帧相同或相似的过程。例如,可以使用相同或相似的标准。如果使用相同的标准,则可以使用相同或不同的阈值。必须满足的标准的某一数量可以相同也可以不同。如果当前帧满足一个或多个标准中的某一数量的标准,则修剪器504可以将当前帧设置为结束帧。

在一些实施方式中,如果修剪器504到达快门帧之后n秒的帧,同时不满足标准中的某一数量的标准或任一标准,则修剪器504可以将该帧设置为结束帧,即,f_end=f_shutter+n

在一些实施方式中,一旦确定了结束帧,系统500就可以在结束帧处停止编码器506。微视频508的持续时间将从起始帧到结束帧,即持续时间=f_end-f_start。

通常用户不想要看到非常短的微视频,因为它们看起来不太协调。因此系统500可以对照最小持续时间阈值t_minduration来检查微视频持续时间。作为一个示例,t_minduration可以是1秒。如果持续时间>=t_minduration,则系统500可以储存微视频508。然而,如果持续时间<t_minduration,则系统500可以继续许多不同的选项。在第一个选项中,微视频可以被取消:没有微视频被保存,只有静止照片被保存。在第二个选项中,f_end可以被设置为等于f_start+t_minduration。即使修剪不是最佳的,也可以保存具有t_minduration的微视频。在第三个选项中,可以将帧添加到开头和/或结尾,直到满足t_minduration阈值。可以向用户提供控制,以根据他们的偏好来决定使用哪个选项(没有微视频或利用非最佳修剪的微视频)。

图8描绘了根据本公开的示例实施例的示例图像捕获、管理(curation)和编辑系统100。系统100仅作为一个示例系统提供。除了示例性系统100之外或作为示例性系统100的替代,本公开的系统、方法、技术和原理可以用于和应用于许多不同的系统。例如,在一些实施方式中,图像捕获设备102不加入用户计算设备135和/或服务器计算设备150的网络180。

示例系统100包括至少一个图像捕获设备102和用户计算设备135。在一些实施方式中,图像捕获设备102可以是移动的和/或能被穿戴的。例如,图像捕获设备102可以是智能手机、平板电脑或其他类似设备。作为另一示例,图像捕获设备102可以是嵌入式设备和/或智能设备(例如,智能电器、智能扬声器、家庭管理器设备、辅助设备、安全系统等)。系统100还可以包括一个或多个附加的图像捕获设备和/或服务器计算设备150。

图像捕获设备102包括一个或多个处理器112和存储器114。一个或多个处理器112可以是任何合适的处理设备,并且可以是可操作地连接的一个处理器或多个处理器。在一些实施方式中,处理器112包括专用视觉处理平台,该平台在电力受限的环境中提供高性能机器视觉和可视感知。例如,处理器112可以是为高性能、低功耗计算成像而设计的片上系统(soc,system-on-a-chip)。在一些实施方式中,处理器112包括硬件、软件和/或固件,其选择性地可用于在芯片上执行完整的图像处理流程。在一些实施方式中,处理器112包括为视觉处理工作负载优化的多个矢量处理器。

存储器114可以包括一个或多个非暂时性计算机可读介质,诸如ram、rom、eeprom、eprom、闪存设备、磁盘等,以及它们的组合。在一些示例实施方式中,存储器114至少包括第一易失性(例如,dram)存储器和第二非易失性存储器。例如,第一易失性存储器可以用于各种类型图像数据的临时存储,而第二非易失性存储器可以用于各种类型图像数据的非临时存储。例如,第一易失性存储器可以包括临时图像缓冲器。在一些实施方式中,非易失性存储器包括闪存卡。在一些实施方式中,闪存卡是安全数字(sd,securedigital)卡。

示例图像捕获设备102还可以包括镜头盖116、一个或多个镜头118和图像传感器120。图像传感器120可以是检测入射光或其他电磁辐射并输出足以生成场景图像的数据的传感器。例如,图像传感器120可以是cmos传感器或ccd传感器。在一些实施方式中,一个或多个镜头118可以包括广角镜头,使得由图像传感器120输出的数据产生的图像是广角图像。

如上所述,图像传感器120可以输出足以生成由图像传感器120查看的场景图像的数据。图像捕获设备102可以包括各种附加组件以用于处理来自图像传感器120的这种数据以生成这种图像。作为一个示例,图像捕获设备102可以包括图像信号处理器122。图像信号处理器122可以包括一个或多个图像处理组件,其可操作为处理来自图像传感器120的原始数据以形成图像帧。

如参考图1所述,图像捕获设备102还包括微视频生成系统124、一个或多个存储设备126、一个或多个传感器128和快门控制器130。

图像捕获设备102还包括网络接口132。网络接口132可以包括任意数量的组件以提供网络化通信(例如,收发器、天线、控制器、卡等)。在一些实施方式中,图像捕获设备102包括可操作为使用短程无线协议(诸如,例如蓝牙和/或蓝牙低能量)进行通信的第一网络接口,并且还包括可操作为使用其他无线网络协议(诸如,例如wi-fi)进行通信的第二网络接口。在一个示例中,图像捕获设备可操作为使用短程无线协议(例如,蓝牙低能量)彼此通信。此外,图像捕获设备102可操作为使用短程无线协议(例如,发送捕获可视化)或wi-fi或其他更健壮的网络协议(例如,用于传送捕获的图像)与用户计算设备135通信。

图像捕获设备102还可以包括电源134。作为一个示例,电源134可以是车载电池,诸如车载锂离子电池。图像捕获设备102还可以电连接(例如,经由微型usb端口或其他电端口和/或数据连接端口)到墙壁插座或其他公用电源或其他适当额定功率的源。将图像捕获设备102插入墙壁插座可以给车载电池再充电。在一些实施方式中,图像捕获设备102被配置成仅当图像捕获设备102连接到外部电源(诸如墙壁插座)时,才通过网络180将图像传送到用户计算设备135或者执行其他高能耗任务。

系统100还可以包括用户计算设备135和服务器计算设备150。在一些实施方式中,图像捕获设备102通过网络180的局域网部分通信连接到用户计算设备135,而用户计算设备135通过网络180的广域网部分通信连接到服务器计算设备150。在其他实施方式中,图像捕获设备102直接通过广域网通信连接到服务器计算设备150。

在一些实施方式中,用户计算设备135可以执行图像管理,并允许用户编辑图像。特别地,在一些实施方式中,当被连接到图像捕获设备102时(例如,在捕获会话已经完成之后),用户计算设备135可以选择存储在图像捕获设备中的某些图像以传送到用户计算设备135。用户计算设备135还可以提供用户界面,该用户界面使得用户能够选择性地编辑要传送的图像。特别地,用户界面可以启用各种高级图像编辑技术,诸如计算摄影、相机重定位等。

用户计算设备135可以是例如具有处理器136和存储器137的计算设备,诸如无线移动设备、个人数字助理(pda,personaldigitalassistant)、智能手机、平板电脑、膝上型电脑、台式计算机、启用计算的手表、启用计算的眼镜或其他这种设备/系统。简言之,用户计算设备135可以是能够与图像捕获设备102交互并且(例如,通过发送和接收数据)以实施本公开的任何计算机、设备或系统。

用户计算设备135的处理器136可以是任何合适的处理设备,并且可以是可操作地连接的一个处理器或多个处理器。存储器137可以包括任意数量的计算机可读指令139或其他存储的数据138。特别地,存储在存储器137中的指令139可以包括一个或多个应用。当被处理器136实施时,一个或多个应用可以分别使得或指示处理器136执行与本公开一致的操作,诸如,例如执行图像存储、管理、编辑和共享应用。存储器137还可以存储由图像捕获设备102和/或用户计算设备135捕获的任意数量的图像。

用户计算设备135还可以包括显示器。显示器可以是用于向用户显示信息的许多不同技术中的任何一种,包括触敏显示技术。

在一些实施方式中,用户计算设备135还包括传送控制器140。特别地,在一些实施方式中,当被连接到图像捕获设备102时(例如,在捕获会话已经完成之后),传送控制器140可以选择存储在图像捕获设备102中的某些图像以传送到用户计算设备135。例如,这种选择可以由在图像捕获设备120分别为所存储的图像提供的各种元数据注释中所反映的各种图像属性来引导。

在一些实施方式中,传送控制器140可以执行优化算法,以选择请求传送被存储在图像捕获设备102的存储器114中的哪些图像。优化算法可以具有多个相关联的目标,这些目标包括例如至少多种设置和多种描绘的人,同时仍然请求传送最期望的图像。在一些实施方式中,传送控制器140可以实现子模块功能,以选择请求传送哪些图像。在一些实施方式中,传送控制器140可以考虑从硬件生成统计中为图像生成的一个或多个度量。

在一些实施方式中,用户计算设备135还包括最佳拍摄选择器142。最佳拍摄选择器142可以被实施为从一组图像中选择至少一个高亮图像(例如,对于映像内每个时刻,至少一个高亮图像)。例如,最佳拍摄选择器142可以基于每个图像包括的注释或其他元数据来选择高亮图像。在一些实施方式中,最佳拍摄选择器142在执行高亮选择之前,相对于这种微视频内的对等图像,将微视频中的每个图像标准化。因此,为每个微视频选择高亮图像可以至少部分地基于将在该时刻中包括的每个图像的注释相对于在该时刻中包括的至少一个其他图像的注释进行比较。在一些实施方式中,最佳拍摄选择器142可以考虑从硬件生成的统计中为图像生成的一个或多个度量。

用户计算设备135还包括用户界面控制器144。用户界面控制器144可以被实施为提供用户界面,该用户界面使得用户能够在时间和/或空间上探索映像内的图像。特别地,用户界面控制器144可以被实施为利用适当的用户界面交互来检测和响应某些用户输入。

传送控制器140、最佳拍摄选择器142和用户界面控制器144中的每一个都可以包括用于提供期望功能的计算机逻辑。因此,传送控制器140、最佳拍摄选择器142和用户界面控制器144中的每一个可以用控制通用处理器的硬件、固件和/或软件来实施。在一些实施方式中,传送控制器140、最佳拍摄选择器142和用户界面控制器144中的每一个都包括程序代码文件,程序代码文件被存储在存储设备上、加载到存储器137中并由处理器136执行,或者可以从计算机程序产品中提供,例如存储在有形计算机可读存储介质(诸如ram盘或卡或其他计算机可读光学或磁性介质)中的计算机可执行指令139。

服务器计算设备150可以使用一个或多个服务器计算设备来实施,并且可以包括处理器152和存储器154。在服务器计算设备150由多个服务器设备组成的情况下,这种服务器设备可以根据任何计算架构来操作,包括并行计算架构、分布式计算架构、或他们的组合。

处理器152可以是任何合适的处理设备,并且可以是可操作地连接的一个处理器或多个处理器。存储器154可以存储使得处理器152执行实施本公开的操作的指令158。

网络180可以是任何类型的通信网络,诸如局域网(例如,内联网)、广域网(例如,互联网)或它们的某种组合,并且可以包括任何数量的有线或无线链路。一般地,服务器计算设备150和用户计算设备135之间的通信可以经由任何类型的有线和/或无线连接,使用各种通信协议(例如,tcp/ip、http、smtp、ftp)、编码或格式(例如,html、xml)和/或保护方案(例如,vpn、安全http、ssl)来进行。服务器计算设备150可以通过发送和接收数据在网络180上与用户计算设备135通信。

此外,被描述为存储在服务器计算设备150处或由服务器计算设备150执行的任何过程、操作、程序、应用或指令可以全部或部分地存储在用户计算设备135处或由用户计算设备135执行,反之亦然。特别地,在一些实施方式中,图像捕获设备102可以直接通信连接到服务器计算设备150,并且服务器计算设备150可以(例如,经由网络应用)在本公开的其他地方执行归属于用户计算设备135的图像管理、编辑、存储和共享功能。同样,被描述为存储在图像捕获设备102处或由图像捕获设备102执行的任何过程、操作、程序、应用或指令可以全部或部分地存储在用户计算设备135处或由用户计算设备135执行,反之亦然。例如,在一些实施方式中,传送控制器140可以位于图像捕获设备102而不是用户计算设备135。

本文所讨论的技术涉及服务器、数据库、软件应用和其他基于计算机的系统,以及所采取的动作与发送到这些系统和从这些系统接收的信息。基于计算机的系统固有的灵活性允许各种可能的配置、组合以及在组件之间和当中对任务和功能进行划分。例如,本文所讨论的过程可以使用单个设备或组件或者协同工作的多个设备或组件来实施。数据库和应用可以在单个系统上实施,也可以分布在多个系统上。分布式组件可以顺序或并行操作。

尽管已经针对本主题的各种具体示例实施例详细描述了本主题,但是每个示例都是当作解释提供的,而不是对本公开的限制。本领域技术人员在理解前述内容后,可以容易地产生对这些实施例的变更、变化和等同物。因此,本主题公开并不排除包括对本主题的这种修改、变化和/或添加,这对本领域普通技术人员来说是显而易见的。例如,作为一个实施例的一部分示出或描述的特征可以与另一实施例一起使用,以产生又一个实施例。因此,本公开旨在覆盖这些变更、变化和等同物。

本文描述为被包括在图像捕获设备中或由图像捕获设备执行的任何动作、操作、组件、方法、技术或其他方面也可以被包括在不捕获图像而是简单地处理图像或基于图像做出决定的设备或系统中或由这种设备或系统执行。

尽管出于说明和讨论的目的,附图描绘了以特定顺序执行的步骤或过程,但是本公开的方法不限于特定示出的顺序或布置。在不脱离本公开的范围的情况下,可以以各种方式省略、重新布置、组合和/或调整本文描述的方法的各个步骤。

微视频生成系统124、快门控制器130、修剪器504和编码器506中的每一个都可以包括用于提供所期望功能的计算机逻辑。微视频生成系统124、快门控制器130、修剪器504和编码器506中的每一个都可以在控制通用处理器的硬件、固件和/或软件中实施。例如,在一些实施方式中,微视频生成系统124、快门控制器130、修剪器504和编码器506中的每一个都包括存储在存储设备上、加载到存储器中并由一个或多个处理器执行的程序文件。在其他实施方式中,微视频生成系统124、快门控制器130、修剪器504和编码器506中的每一个都包括存储在诸如ram硬盘或光学或磁性介质的有形计算机可读存储介质中的一组或多组计算机可执行指令。

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