图像捕获加速器的制造方法

文档序号:10628256阅读:394来源:国知局
图像捕获加速器的制造方法
【专利摘要】图像捕获加速器执行对图像数据的加速处理。在一个实施例中,图像捕获加速器包括加速器电路,该加速器电路包括预处理引擎和压缩引擎。预处理引擎被配置为对所接收的图像数据执行加速处理,并且压缩引擎被配置为对从预处理引擎接收的处理图像数据进行压缩。在一个实施例中,图像捕获加速器进一步包括解复用器,该解复用器被配置为接收由被实施在例如图像传感器芯片内的图像传感器阵列捕获的图像数据。当图像数据由处于普通捕获模式下的图像传感器阵列捕获时解复用器可以将所接收的图像数据输出到图像信号处理器,并且当图像数据由处于加速捕获模式下的图像传感器阵列捕获时解复用器可以将所接收的图像数据输出到加速器电路。
【专利说明】
图像捕获加速器
[0001] 相关申请的交叉引用
[0002] 本申请要求2013年10月1日提交的美国临时申请No.61/885,412和2014年9月17日 提交的美国专利申请No. 14/488,283的权益和优先权,其通过引用整体并入于此。本申请涉 及美国专利申请No. 13/940,215、美国专利申请No. 13/940,221、以及美国专利申请No. 14/ 189,973,其内容通过引用整体并入于此。
技术领域
[0003] 本公开总体上涉及图像捕获系统领域,并且具体而言涉及对图像捕获加速。
【背景技术】
[0004] 随着图像传感器技术的改善,图像传感器正在变得能够以越来越高的分辨率和帧 速率捕获图像和视频。然而,图像信号处理(ISP)ASIC通常受到带宽限制,从而阻止它们以 图像传感器帧被捕获的空间、时间、以及位深度分辨率和帧速率有效地处理图像传感器帧。 在数字相机系统中,这种ISP瓶颈可能阻碍相机性能。此外,即使ISP有能力跟上所关联的图 像传感器,ISP可能使用比典型相机电池所能提供的更多的功率。
【附图说明】
[0005] 所公开的实施例具有其它优势和特征,这些优势和特征将从【具体实施方式】、所附 权利要求、以及附图(或者图)更容易显而易见。下面是对附图的简介。
[0006] 图1图示了用于图像捕获加速的系统的一个实施例。
[0007] 图2图示了用于图像捕获加速的系统的备选实施例。
[0008] 图3图示了用于图像捕获加速的系统的备选实施例。
[0009] 图4图示了被配置为经由固件以加速方式处理图像数据而不需要专用图像捕获加 速器(ICA)的图像信号处理器(ISP)的一个实施例。
[0010]图5图示了将拜耳(Bayer)颜色阵列重新排序成YUV 4:2:2格式的示例。
[0011] 图6图示了用于图像捕获加速的系统的一个实施例。
[0012] 图7图示了用于同时产生拜耳模式图像数据的四个颜色分量的系统的实施例。
[0013] 图8图示了经由小波压缩的图像压缩的实施例。
[0014] 图9图示了通过组合多种图像压缩技术的图像压缩的实施例。
[0015] 图10图示了通过组合多种图像压缩技术的图像压缩的备选实施例。
[0016] 图11图示了生成用于存储的输出图像数据文件的实施例。
[0017] 图12图示了用于生成输出图像数据文件的系统的实施例。
[0018] 图13A至图13B图示了直接存储器访问引擎的实施例。
[0019] 图14图示了用于使用抽取图像数据的运动检测和估算的系统的实施例。
[0020] 图15图示了抽取图像数据的示例。
[0021] 图16图示了由图像捕获加速器执行的电子图像稳定化的示例。
[0022] 图17图示了具有两个熵编码器的图像捕获加速器的实施例。
[0023] 图18a图示了图像捕获加速器存储器共享架构的第一实施例。
[0024] 图18b图示了图像捕获加速器存储器共享架构的第二实施例。
[0025] 图19图示了具有芯片上转码功能的图像捕获加速器的实施例。
【具体实施方式】
[0026] 附图和以下描述仅通过图示的方式涉及优选实施例。应该注意,根据以下讨论,本 文中公开的结构和方法的备选实施例将容易被认作在不脱离所要求保护的原理的情况下 可以采用的可行备选方案。
[0027] 现在将详细参照若干实施例,这些实施例的示例在附图中图示。注意,只要可行, 相似或者相同的附图标记可以在图中使用,并且可以指示相似或者相同的功能。附图仅为 了图示目的描绘所公开系统(或者方法)的实施例。本领域技术人员将容易从以下描述意识 到,可以在不脱离本文中所描述的原理的情况下采用本文中说明的结构和方法的备选实施 例。
[0028] 配置概览
[0029]图像捕获加速器提供对图像数据的加速处理。
[0030] 在一个示例实施例中,图像捕获系统架构被配置为包含图像捕获加速器(ICA)。 ICA被配置为解决有限的ISP带宽和/或过量的系统功率使用问题,同时使得能够以高的帧 速率捕获图像。在一个示例实施例中,ICA是这样的设备,其避开图像捕获系统(诸如数码相 机)中的常规ISP图像处理,以便增加图像捕获系统的带宽和/或减少图像捕获系统的功率 使用。ICA可以是专用ASIC,可以被实施在图像传感器或者ISP芯片架构内,或者可以使用现 有硬件、固件、和/或软件实施。
[0031] 在一个实施例中,图像捕获加速器包括加速器电路,加速器电路包括预处理引擎 和压缩引擎。预处理引擎被配置为对所接收的图像数据执行加速处理,并且压缩引擎被配 置为将从预处理引擎接收的处理的图像数据进行压缩。在一个实施例中,图像捕获加速器 进一步包括解复用器,该解复用器被配置为接收由(例如在图像传感器芯片上的)图像传感 器阵列捕获的图像数据。当图像数据由处于第一捕获模式("标准模式")下的图像传感器阵 列捕获时,解复用器将所接收的图像数据输出到图像信号处理器(ISP),并且当图像数据由 处于第二捕获模式("加速模式")下的图像传感器阵列捕获时,解复用器将所接收的图像数 据输出到加速器电路。应该注意,ICA可以处理在如本领域技术人员所理解的附加模式(诸 如时间推移模式)下捕获的图像数据。
[0032] 在一个实施例中,标准捕获模式与以第一帧速率和第一分辨率捕获图像关联,且 加速捕获模式与以第二帧速率和第二分辨率捕获图像关联。在一些实施例中,第一帧速率 低于第二帧速率,和/或第一分辨率低于第二分辨率。因此,当期望以比ISP所能适应的更高 分辨率和/或帧速率捕获帧时,ICA可以在加速模式下操作,并且解复用器可以将所捕获的 图像数据输出到加速器电路。
[0033] 由ICA处理并且从ICA输出的图像数据可以不处于标准图像格式,而是可以处于需 要进一步解码(例如,以对由ICA执行的编码进行解码)和/或处理(例如,以将图像数据格式 化为标准图像格式,诸如JPEG或者PNG)的格式。这种后处理可以在相机内(例如,在捕获图 像数据之后)或者数字相机系统之外(例如,在计算机或者移动设备中离线)发生。此外,本 文中描述的图像捕获系统架构可以包括被配置为接收和处理从ICA输出的图像数据的附加 部件。在一个示例实施例中,ICA可以在加速模式下捕获和处理图像数据,可以存储经处理 的图像数据,并且可以在以后的时间将所存储的图像数据后处理成可查看的图像格式。 [0034]示例图像捕获加速系统
[0035] 现在转到图1,其图示了用于图像捕获加速的系统100,系统100包括传感器阵列 110、ICA 120、以及ISP 130。如图1所示,ICA 120耦合到传感器阵列110和ISP 130。通信总 线142将传感器阵列110耦合到ICA 120,并且第二通信总线144将ICA 120耦合到ISP 130。 在这一实施例和其它实施例中,通信总线142、144是基于图像捕获系统100的带宽要求来选 择的。例如,总线142可以被实施为使得总线142不抑制图像数据传送,否则的话会充当图像 捕获系统100的瓶颈。
[0036] 传感器阵列110被配置为捕获图像数据并且将图像数据输出到处理器,诸如ICA 120或者ISP 130。在一个实施例中,传感器阵列110是拜耳颜色滤波器阵列,并且传感器阵 列110输出原始拜耳模式数据。其它类型的图像传感器也可以在加速图像捕获系统100中使 用。传感器阵列110可以被配置为在相机处理器(未示出)或者ISP 130的控制下以(例如如 由用户指定的)一个或者多个帧速率和一个或者多个分辨率捕获图像数据。虽然未在图1中 示出,传感器阵列110可以被实施在图像传感器芯片内,例如电荷耦合设备("CCD")或者互 补金属氧化物半导体("CMOS"),被配置为将所捕获的入射在图像传感器芯片上的光转换为 表示所捕获的光的电信号(本文中为"图像数据")。
[0037] ISP 130处理从传感器阵列110接收的原始图像数据并且生成经处理的图像数据 用于输出到显示屏、存储器、或者外部计算设备。在一个实施例中,ISP 130执行包括清除拜 耳处理、去马赛克等在内的处理步骤,以及执行压缩以将原始图像数据格式化用于输出。在 各种实施例中,ISP 130可以被配置为处理图像数据以生成诸如JPEG、PNG、TIFF、AVI、或者 MPEG之类的标准格式的图像或者视频文件。
[0038] ICA 120在由传感器阵列110捕获的图像数据被输出到ISP 130之前将其截获。在 一个实施例中,ICA 120被配置为响应于用户请求来处理图像数据以加速图像处理。在另一 实施例中,ICA 120被配置为当图像传感器在标准捕获模式下(例如,以低帧速率和/或分辨 率)捕获图像时自动将图像数据提供到ISP 130,并且当图像传感器在加速捕获模式下(例 如,以更高的帧速率和/或分辨率)捕获图像时处理所接收的图像数据。例如,当以120帧每 秒(fps)和1080p分辨率捕获图像数据时,ICA 120可以将图像数据发送到ISP 130,而当以 240fps和4k分辨率捕获图像数据时,ICA 120可以(通过加速处理)处理图像数据。
[0039] 标准和加速捕获模式可以相对于阈值进行限定。特别地,当以阈值以上的帧速率 或者阈值以上的分辨率捕获图像数据时,可以实施加速捕获模式。在这种实例中,阈值可以 足够低以保证在阈值帧速率和/或分辨率以下捕获的图像数据可以由ISP 130处理。例如, 阈值可以被选择为使得低端ISP可以处理在标准捕获模式下捕获的图像数据。这允许通过 允许在图像捕获系统中实施更便宜的ISP,实现潜在的成本节约。此外,对于更高功率的图 像处理环境,可以通过使用ICA 120而非ISP 130实现潜在的功率节约。
[0040] 应该注意,在一个实施例中,当图像传感器在第一模式下捕获图像时,ICA 120可 以处理所接收的图像数据(而不是ISP 130)。例如,除了处理以阈值以上的帧速率和分辨率 捕获的图像数据之外,ICA 120可以处理以低帧速率和低分辨率(例如用于预览图像)、低帧 速率和高分辨率(例如用于时间推移摄影)、以及高帧速率和低分辨率(例如用于低带宽流 式传输)捕获的图像数据。图像数据可以备选地由ICA 120和ISP 130并行地处理。此外,当 ICA 120处理图像数据时,ISP 130可以保持空闲,或者可以同时处理经缩减的和/或帧速率 降低的图像数据(例如,从ICA 120接收的图像数据),从而允许ISP 130跟上所捕获的图像 数据的步伐同时将功率消耗最小化。例如,由图像传感器以60fps捕获的处于4K分辨率的图 像可以由ICA 120处理。同时,这些图像可以(由ICA 120或者ISP 130)缩减(例如,到WVGA分 辨率)在30fps,并且由ISP 130处理。这种实施例允许由ISP 130处理的图像数据被用于预 览由ICA 120以全分辨率和帧速率处理的图像,以经缩减的分辨率和帧速率存储,经由WiFi 或者其它低带宽流式传输来流式传输等。
[0041]传感器阵列110可以经由通信总线142传达优选的处理模式(例如,使用处于加速 捕获模式的ICA 120或者处于标准捕获模式的ISP 130来处理)。备选地,ICA 120可以接收 来自相机控制器的请求捕获模式的信息,并且作为响应,可以确定是将图像数据发送到ISP 130用于处理还是使用ICA 120的加速器电路处理图像数据。在一个实施例中,相机控制器 提供在标准模式或者加速模式下操作的指令,并且作为响应ICA 120配置解复用器121。 [0042]在图1所示的实施例中,ICA 120包括解复用器("demux")121、清除拜耳处理模块 122、预处理引擎123、压缩引擎124、以及一个或者多个输出接口 125。在其它实施例中,ICA 120可以包括比本文中所描述的那些部件更少的、附加的、或者不同的部件,诸如一个或者 多个CPU核和存储器(其可以被配置为在所有或者某些环境下用作ISP)、一个或者多个高动 态范围预处理器、加密引擎、元数据嵌入模块、线性化查找表等。
[0043]解复用器121被配置为接收由传感器阵列110捕获的图像数据,并且将图像数据输 出到ISP 130用于处理,或者将图像数据输出到ICA 120内的加速器电路用于处理。在一个 实施例中,解复用器121是模拟解复用器以减少ICA 120的功率消耗。在一个实施例中,在以 不需要加速图像处理或者大量的处理功率的帧速率和/或分辨率的图像捕获期间,解复用 器121将图像数据输出到ISP 130用于处理。在高帧速率或者高分辨率图像捕获模式期间或 者在任何其它时间期间(例如,在当由用户选择时的其它处理密集型捕获模式期间等),解 复用器121可以将图像数据输出到ICA 120的加速器电路。在一个实施例中,例如通过基于 期望的捕获模式传达控制信号,传感器阵列110控制解复用器121的控制线。备选地,传感器 阵列110可以将在做出图像数据处理决定中有用的各种信息(诸如图像捕获的帧速率和分 辨率)传达到解复用器121,并且解复用器121或者ICA 120可以将图像数据输出到ISP 130 或者基于所接收的信息在ICA 120处对图像数据进行处理。应该注意,在一些实施例中,解 复用器121可以在ICA 120外部。
[0044]图1所示的ICA 120的实施例的加速器电路包括清除拜耳处理模块122、预处理引 擎123、压缩引擎124、以及输出接口 125。在一个实施例中,清除拜耳处理模块122被配置为 对图像数据执行拜耳处理,诸如修复缺陷像素、校正颜色和照度、以及修复其它捕获错误。 预处理引擎123可以对图像数据执行一个或者多个图像处理操作,包括去马赛克操作、噪声 减少操作、图像锐化操作、分辨率调节、颜色校正和/或颜色空间转换、亮度调节、像素格式 化操作、量化、iHDR解析或者其它形式的解析等。在一些实施例中,预处理引擎123仅执行最 少的处理操作,并且不执行需要超过阈值量的时间和/或消耗超过阈值量的功率的处理操 作。压缩引擎124被配置为通过有损或者无损压缩将图像数据压缩成与原始图像数据相等 或者比其更小的尺寸的压缩数据格式。例如,压缩引擎124可以使用小波压缩算法(诸如VC-5或者CINEFORM?)压缩经处理的图像数据。使用小波压缩算法的优势是生成了缩减图像,在 一个实施例中,缩减图像可以由压缩引擎124输出到ISP 130或者相机的显示屏(例如,用于 用户预览图像)。
[0045] -个或者多个输出接口 125可以将经处理的图像数据输出到非瞬态计算机可读储 存介质(例如闪速存储器或者闪盘),或者可以将经处理的图像数据输出到另一部件(诸如 处理器)用于存储、后续处理、和/或格式化。在一个实施例中,输出接口 125包括耦合到储存 介质、处理器、或者其它部件的物理层接口。
[0046]在一个实施例中,输出的图像数据可以经由标准图像处理流水线被处理,以将图 像数据格式化为标准图像或者视频格式(诸如JPEG格式、PNG格式、或者MPEG格式)。这一图 像处理流水线可以位于相机外部,诸如在计算机或者其它移动设备中。通过将标准图像处 理流水线定位在相机外部的设备上,如果外部设备具有比相机更大的处理和功率资源和/ 或受到限制较少的时间约束,可以通过外部设备实现更高水平的图像处理质量。此外,通过 使外部设备执行标准图像处理,处理和功率负荷节约可以通过相机实现。
[0047] 如图1所示,ICA 120是传感器阵列110和ISP 130外部的专用1C。然而,在其它实施 例中,ICA 120以及传感器阵列110和ISP 130中的一个或者多个可以被实施为单个部件。例 如,图2图示了包括传感器阵列110和ICA 120的图像传感器芯片200,图像传感器芯片200将 图像数据输出到ISP 130或者另一外部设备,诸如相机内部或者外部的存储器或者外部处 理器。相似地,ISP 130可以将经处理的图像数据输出到内部或者外部存储器、另一处理器 等。图3图示了包括ICA 120和ISP 130的图像处理芯片300。图像处理芯片300接收来自传感 器阵列110的原始图像数据,并且将经处理的图像数据输出到例如相机内部或者外部的存 储器。应该注意,关于图1描述的ICA 120的部件可以被实施在本文中描述的其它实施例内; 例如,图2和图3的实施例可以在处理路径中包括解复用器121、清除拜耳处理模块122、预处 理引擎123、压缩引擎125、以及输出接口 125中的一个或者多个。
[0048]现在参照图4,所图示的是ISP 410的实施例,ISP 410被配置为经由固件以加速方 式处理图像数据,而不需要专用ICA<JSP 410接收来自图像传感器芯片405的所捕获的图像 数据,处理所接收的数据,并且将经处理的图像数据输出到存储器420。在图4的实施例中, ISP 410-般可以以标准模式(例如,当以不需要加速图像处理的帧速率和分辨率捕获所接 收的图像数据时)处理图像数据,并且可以以加速模式(例如,当需要或者请求加速图像数 据处理时)处理图像数据。备选地,ISP 410可以以加速模式处理图像数据,而无论图像数据 被捕获的模式。
[0049]在一个实施例中,ISP 410通过实施以下步骤中的一个或者多个步骤来处理图像 数据:1)执行清除拜耳处理412; 2)绕过去马赛克处理413; 3)执行位深度转换414; 4)执行颜 色空间转换415;以及5)执行图像数据编码416。操作412至416中的每个操作都可以通过专 用独立模块、通过通用处理模块、通过硬件、或者任何其它合适的模块实施。清除拜耳处理 操作412可以包括与由关于图1描述的清除拜耳处理模块122所执行的那些功能相似的功 能,并且在一个实施例中可以由清除拜耳处理模块122执行。
[0050]在标准处理模式下,ISP 410可以对图像数据执行去马赛克操作以将图像数据转 换为标准格式。然而,在加速处理模式下,在对从图像传感器芯片405接收的图像数据执行 清除拜耳处理412之后,标准去马赛克处理被绕过413以便将图像数据保持在拜耳颜色空间 或者原生传感器颜色空间中。绕过413标准去马赛克处理可以改善ISP 410的图像处理性 能,因为去马赛克步骤可以增加在后续步骤期间处理的数据量。附加的预处理操作也可以 被绕过,例如噪声减少操作和图像锐化操作。
[0051 ]在绕过413各种预处理操作之后,ISP 410(在加速模式下操作)可以使用查找表 (LUT)执行位深度转换414。任何合适的LUT可以被用于转换414图像数据的位深度,诸如线 性或者非线性域LUT、日志LUT、色调/灰度系数(gamma) LUT等。
[0052] ISP 410接着可以执行颜色空间转换415以将图像数据转换为YUV颜色空间的格 式。在一个实施例中,图像数据被转换到使用4:2:2比率的YUV空间中,这指示图像数据亮度 信息以U分量和V分量图像数据颜色信息的分辨率的两倍进行存储,虽然也可以使用其它 YUV比率(诸如4:1:1比率、4:4:4比率等)。
[0053]在一个实施例中,为了执行颜色空间转换415,ISP 410(通过重新设置用于图像数 据的矢量条目)将图像数据调配到YUV颜色空间中。特别地,ISP 410可以将图像数据的像素 位从拜耳颜色空间重新排序到YUV颜色空间中。将图像数据调配或者重新排序到YUV空间中 可以包含将YUV域的Y分量映射到图像数据的G拜耳分量、将YUV域的U分量映射到图像数据 的B拜耳分量、以及将YUV域的V分量映射到图像数据的R拜耳分量。例如,图5图示了拜耳颜 色阵列502到YUV 4:2:2格式504的示例转换。拜耳颜色阵列502包括红色子像素 R、蓝色子像 素8、以及两个绿色子像素6[?和68。15?410对像素位重新排序,以形成¥群4 :2:2格式504的 矢量[R Gr B Gb]。备选地,ISP 410可以应用颜色空间变换以将拜耳颜色阵列映射到YUV域。 应该注意,除了本文中所描述的那些之外,可以执行其它形式的调配,并且图像数据可以被 转换到除了拜耳颜色空间或者YUV颜色空间之外的颜色空间。
[0054] ISP 410使用例如H. 264或者H. 265编码或者任何其它合适的编码算法对YUV图像 数据进行编码416。经编码的YUV图像数据接着可以由ISP 410输出用于由存储器420存储。 在一个实施例中,存储器420是本地存储(例如相机内存储器)。在另一实施例中,存储器420 是外部存储器(例如相机外部的计算机中的存储器)。在后者的实施例中,压缩引擎可以对 图像数据编码以用于传输到外部存储器,例如通过对HDMI格式的YUV图像数据编码并且在 HDMI输出中输出编码数据。
[0055]所存储的编码YUV图像数据可以被后处理以撤销YUV调配。在对所存储的编码YUV 图像数据进行解码和解压缩之后,图像数据可以经由标准图像处理流水线被处理以将图像 数据格式化为标准图像或者视频格式用于存储或者显示。相似于关于图1描述的实施例,用 于撤销YUV调配的图像处理流水线可以位于相机外部,诸如在计算机或者其它移动设备中, 以实现更高水平的图像处理质量并且减少相机的处理和功率负荷。应该注意,使用图4的实 施例的方法,有效图像处理速率可以是标准ISP处理速率的两倍或者更多倍,并且在图像处 理中使用的功率量可以减少。
[0056] 经由波长压缩的图像捕获加速
[0057] 图6图示了用于图像捕获加速的系统的一个实施例。在图6的实施例中,ICA 120的 压缩引擎124包括抽取器600和熵编码器602JCA 120进一步包括分量变换块603、编码器 604、存储器606、以及解码器608。如上文所述,在备选实施例中,ICA 120可以包括附加的、 更少的、或者不同的部件。
[0058] 分量变换块603接收来自传感器阵列110的图像数据并且将数据变换为适合用于 压缩的格式。分量变换块603的一个实施例在图7中图示。如图7所示,分量变换块603包括四 个线存储缓冲器702、704、706和708、以及输出复用器710、715和720。分量变换块603被配置 为接收原始拜耳图像数据700,并且将每个像素的四个颜色分量(例如1?、6 1?、68、以及幻同时 输出到压缩引擎124。
[0059] 原始图像数据700被设置在像素阵列中,其中的每个像素具有被分割在两个数据 线上的四个子像素。为了提供对每个像素的四个子像素(分别对应于像素的四个颜色分量) 的同时访问,分量变换块603缓冲包含四个子像素的两个数据线。在一个实施例中,分量变 换块603将原始图像数据700解析到图像数据线中。在另一实施例中,分量变换块603顺序地 接收原始图像数据700线。如图7所示,两个线存储缓冲器(例如缓冲器702和704)每个都接 收原始图像数据700线的一个或者多个子像素。第二对线存储缓冲器(例如缓冲器706和 708)接收原始图像数据700的连续线的两个或者多个像素。复用器710和715每个都将来自 输入数据700的每个线的两个邻近的子像素组合,并且复用器720将复用器710和715的输出 组合。复用器720的输出是原始图像数据700的每个像素的四个颜色分量。
[0060] 参照图6,抽取器600和熵编码器602集体执行小波压缩的一个或者多个实施方式, 例如VC-5。抽取器600经由解复用器121或者分量变换块603接收来自传感器阵列110的图像 数据,并且抽取图像数据以形成图像子带分量。在一些实施例中,抽取器600包括水平高通 滤波器、水平低通滤波器、竖直高通滤波器、以及竖直低通滤波器。图像数据可以首先使用 水平高通和低通滤波器进行处理,从而产生水平滤波的子带图像数据分量。水平滤波的子 带分量随后可以使用竖直高通和低通滤波器进行处理,从而产生子带抽取图像数据分量。 在其它实施例中,抽取器通过按不同的顺序对图像数据滤波或者通过使用与本文中所描述 的那些不同的滤波器,产生子带抽取图像数据分量。
[0061] 抽取器600可以迭代地抽取图像数据,从而产生间隔尺寸增加的子带抽取图像分 量。在一些实施例中,仅某些子带抽取图像分量被迭代抽取,例如已经使用水平低通滤波器 和竖直低通滤波器两者(下文中称为"低/低子带分量")进行了处理的子带抽取图像分量。 在这种实施例中,由抽取器600产生的子带抽取图像数据分量具有变化的间隔尺寸。
[0062]熵编码器602对由抽取器600产生的抽取图像数据执行熵编码以创建编码图像数 据。在一些实施例中,抽取图像数据包括小波系数、表示图像像素或者其它图像性质的系数 等。熵编码器602可以将这些系数量化,可以使用系数查询一个或者多个色调映射查找表, 并且可以对经量化的系数执行熵编码以创建经熵编码的图像数据。
[0063] 在2011 年5 月 23 日提交的题目为"Encoding and Decoding Se 1 ect i vely Retrievable Representations of Video Content"的美国专利申请No. 13/113,950中更 详细地描述了小波压缩的一个实施例和实施方式,其内容整体并入于此。
[0064] 图8图示了经由小波压缩的图像压缩的实施例。在图8的实施例中,图像数据800由 抽取器600访问。抽取器600使用水平高通滤波器、水平低通滤波器、竖直高通滤波器、以及 竖直低通滤波器将图像数据800抽取到所产生的抽取图像数据809以创建子带分量。在一个 实施例中,抽取器600首先使用水平滤波器处理图像数据800,从而产生水平高通子带分量 和水平低通子带分量。继续这一实施例,抽取器600接着使用竖直高通滤波器处理水平高通 子带分量,从而产生高/高子带分量802。抽取器600还使用竖直低通滤波器处理水平高通子 带分量,从而产生高/低子带分量804。抽取器600接下来使用竖直高通滤波器处理水平低通 子带分量,从而产生低/高子带分量806。最后,抽取器600使用竖直低通滤波器处理水平低 通子带分量,从而产生低/低子带分量808。
[0065]应该注意,在图8的实施例中,由水平高通滤波器和水平低通滤波器输出的水平子 带分量的高度等于图像数据800的高度,并且水平子带分量的宽度等于图像数据800的宽度 的一半。此外,在图8的实施例中,子带分量802、804、806、以及808的宽度和高度分别等于图 像数据800的宽度和高度的一半。在各种实施例中,低/低子带分量808包括由图像数据800 以图像数据800的分辨率的四分之一表示的图像。例如,如果图像数据800是4k图像(3840像 素乘以2160像素),则低/低子带分量808可以是1080p图像(1920像素乘以1080像素)。
[0066]在图8的实施例中,抽取器600可以进一步在第二抽取迭代中抽取图像数据,以通 过抽取低/低子带分量808而创建抽取图像数据817。在这种实施例中,抽取器600使用如上 文描述的水平高通滤波器、水平低通滤波器、竖直高通滤波器、以及竖直低通滤波器处理 低/低子带分量808。抽取低/低子带抽取图像数据分量808产生第二高/高子带分量(H/H 810)、第二高-低子带分量(H/L 812)、第二低-高子带分量(L/H 814)、以及第二低-低子带 分量(L/L 816)。在第二抽取迭代时,低/低子带分量808在抽取图像数据809中使用H/H 810、H/L 812、L/H 814、以及L/L 816代替,以形成抽取图像数据817。抽取图像数据809和抽 取图像数据817两者都包括高/高子带分量802、高/低子带分量804、以及低/高子带分量 806 〇
[0067]可以对L/L子带分量816执行第三抽取迭代。还可以对后续的L/L子带分量执行附 加抽取迭代。L/L子带分量816包括由图像数据800以图像数据800的分辨率的十六分之一表 示的图像。例如,如果图像数据800是4k图像,则L/L子带分量816可以是960像素乘以540像 素的图像。
[0068]抽取图像数据集由熵编码器602访问,并且被编码以形成编码视频820。在一个实 施例中,抽取图像数据809由熵编码器602编码。备选地,抽取图像数据817可以由熵编码器 602编码。在一些实施例中,由熵编码器602编码的抽取图像数据集依赖于图像捕获系统的 性能或者存储器需要、用户选择的或者默认的图像捕获模式、或者基于任何其它合适的准 贝1J。应该注意,在一些实施例中,在使用熵编码器602对抽取图像数据集编码时,抽取器600 不执行其它抽取迭代。
[0069]回到图6的实施例,压缩引擎124可以被配置为将抽取图像数据分量输出到ISP 130。例如,压缩引擎124可以输出低/低子带抽取图像数据分量,诸如分量808或者分量816。 如上文所述,低/低子带抽取图像数据分量是由从传感器阵列110接收的图像数据表示的图 像的较低分辨率的版本。因此,通过输出由压缩引擎124执行的小波压缩的较低分辨率图像 副产物,ISP 130可以访问较低分辨率的图像数据而不需要由压缩引擎124执行附加的处 理。应该注意,压缩124可以在对子带分量执行熵编码之前或者之后将该子带分量输出到 ISP 130〇
[0070]在图6的实施例中,ISP 130包括至少两个输入:输入1和输入2JSP 130被配置为 在输入1处经由解复用器121接收来自传感器阵列110的全分辨率图像数据(例如,当ICA 120处于标准模式时KISP 130被配置为在输入2处接收来自压缩引擎124的处于比全分辨 率图像数据更低的分辨率的图像数据(下文中为"较低分辨率图像数据"),诸如一个或者多 个图像子带分量。在一些实施例中,ISP 130接收来自压缩引擎124的低/低子带分量、和/或 附加子带分量。在一些实施例中,ISP 130使用相同的处理部件处理在输入1和输入2处接收 的图像数据。备选地,ISP 130可以使用分立的专用处理部件处理在输入1处接收的全分辨 率图像数据和在输入2处接收的较低分辨率图像数据。
[0071] ISP 130可以对在输入2处接收的较低分辨率图像数据执行各种处理操作。在一个 实施例中,ISP 130可以将较低分辨率图像数据编码用于作为预览图像显示在例如相机显 示器或者智能设备上。通过将较低分辨率图像数据编码用于作为预览图像显示,用户可以 基于查看预览图像执行若干操作,而不需要ISP 130消耗需要用于编码全分辨率图像的功 率和资源。例如,响应于查看预览图像,用户可以调节用于后续图像捕获的相机设置,可以 识别用于在编码全分辨率图像中使用的一个或者多个图像编码选项,或者可以在编码全分 辨率图像之前将图像删除。
[0072] ISP 130可以传输所接收的较低分辨率图像数据。各种形式的数据传输(例如无线 传输)可以与有限的传输带宽关联或者受到有限的传输带宽。图像数据分辨率一般与图像 数据量/尺寸成比例。因此,通过传输较低分辨率图像数据,ISP 130可以更好地满足传输带 宽限制。在一些实施例中,对于在加速模式下捕获的图像数据,图像数据的较低分辨率版本 被提供到ISP 130并且被无线广播(例如向计算设备),而图像数据的高分辨率版本被存储, 直到相机物理耦合到计算设备。
[0073] ISP 130可以被配置为接收多个子带分量,并且可以基于所接收的子带分量的重 要性对传输带宽进行优先化。例如,ISP 130可以被配置为优先考虑低/低子带分量,使得 低/低子带分量首先被传输,而仅如果附加的传输带宽可用,才传输其它子带分量。在这种 实施例中,ISP 130可以通过在有限的带宽环境下优先考虑最能表示全分辨率图像数据的 子带分量,优化所传输图像数据的质量。在一些实施例中,ISP 130接收变化的抽取间隔尺 寸的多个低/低子带分量,并且基于低/低子带分量的间隔尺寸和检测到的可用带宽从低/ 低子带分量集中选择低/低子带分量。
[0074]在一些实施例中,ISP 130在输入2处接收较低分辨率图像数据,分析较低分辨率 图像数据,并且基于分析调节各种图像捕获设置。例如,ISP 130可以分析较低分辨率图像 数据,并且可以调节相机的自动曝光设置,从而改变传感器阵列110的曝光时间和设置。ISP 130可以调节由ICA 120处理的全分辨率图像数据中的白平衡水平,或者可以基于对较低分 辨率图像数据的白色水平分析,在图像捕获期间调节自动白平衡水平。ISP 130可以基于较 低分辨率图像数据中的所确定的聚焦水平,调节相机镜头的自动聚焦设置。ISP 130可以基 于对从ICA 120接收的较低分辨率图像数据的分析,调节任何合适的相机设置。
[0075]应该注意,在一些实施例中,压缩引擎124将其它抽取图像数据分量(诸如高/高子 带抽取图像数据分量)输出到ISP 130,并且可以基于对这些其它抽取图像数据分量的分 析,调节一个或者多个图像捕获设置(诸如自动聚焦)。在一些实施例中,ISP 130接收与连 续图像帧关联的高/高和低/低子带抽取图像数据分量,并且通过将高/高子带分量和低/低 子带分量的各种性质之间的比率最大化,来优化自动聚焦。相似地,ISP 130可以基于高/高 和低/低子带分量来估算所捕获的图像数据的锐度,并且可以基于所估算的锐度来调节相 机设置。
[0076]在其中ISP 130与被配置为捕获相同或者相似视场的多个相机关联的实施例中, ISP 130可以使用低/低子带抽取图像数据分量将多个相机的视场对准。在这种实施例中, ISP 130可以接收来自每个相机的低/低子带抽取图像数据分量,可以尝试将子带分量对准 (例如,使用对准算法),并且可以基于所尝试的子带分量的对准来调节相机的视场。
[0077] ISP 130可以被配置为当在输入1处经由解复用器接收来自传感器阵列110的原始 图像数据时(例如,当图像在标准模式下被捕获时),处理并且输出或者存储全分辨率图像 数据,例如4k分辨率图像数据。相似地,ISP 130可以被配置为当在输入2处接收来自压缩引 擎124的抽取图像数据时(例如,当图像在加速模式下被捕获时),处理并且输出或者存储更 低分辨率的图像数据,例如1080p分辨率图像数据。
[0078] 图6的实施例包括编码器604,编码器604被配置为对诸如从传感器阵列110接收的 图像数据或者从压缩引擎124接收的抽取图像数据之类的图像数据进行编码。编码器604是 被配置为使用一个或者多个编码算法或者方法对图像数据进行编码的编码器。如本文中描 述那样,编码器604使用Η. 264编码算法对图像数据进行编码,但是应该知道,在其它实施例 中,编码器604可以实施任何其它合适的图像或者视频编码算法。
[0079] 存储器606被配置为永久地或者暂时地存储图像数据。例如,压缩引擎124可以在 抽取迭代之间,或者在抽取和/或通过熵编码器602的编码之后,将图像数据存储在存储器 606中。在一些实施例中,编码图像数据在经由输出接口 125被输出到外部存储模块之前被 存储在存储器606处。在一些实施例中,存储在ICA 120外部的图像数据经由输出接口 125被 取回,并且被存储在存储器606中用于通过ICA 120的后续编码和/或解码。
[0080] 存储器606可以被用于编码操作(例如,通过压缩引擎124或者编码器604)和解码 操作(例如,通过如下文描述那样的解码器608)两者。典型的系统需要分立的存储器用于编 码和解码操作。然而,通过利用复用器和解复用器,单个存储器606可以被用于编码和解码 两者(虽然不是同时地)。例如,在编码模式下,复用器可以将存储器读/写和控制线耦合到 压缩引擎124或者编码器604,并且在解码模式下,复用器可以将存储器读/写和控制线耦合 到解码器608。通过利用用于编码和解码两者的单个存储器,存储器成本可以被减少,ICA占 地面积可以被减少,功率消耗和输入/输出线可以被减少等。在这种实施例中,压缩引擎 124、编码器604、和/或解码器608可以在编码和解码操作之前、期间、或者之后将图像数据 存储在存储器606中。
[0081] 解码器608被配置为对编码图像数据进行解码。在一些实施例中,ICA 120对原始 图像数据进行编码并且将图像数据存储在ICA 120外部的存储模块处。在这种实施例中, ICA 120随后可以取回编码数据,可以使用解码器608对编码数据进行解码以创建最初的原 始图像数据,并且可以将原始图像数据输出到ISP 130。例如,当相机在使用中时,ICA 120 可以以加速捕获模式对数据进行处理和编码,并且当相机不再处于使用中时,ICA 120可以 对编码数据进行解码并且将最初的原始数据输出到ISP 130。这种实施例可以通过存储所 捕获的图像数据而不将所捕获的图像数据完全处理成可查看格式,有益地允许相机以通常 禁止的帧速率和分辨率捕获图像数据,并且当相机不再处于使用中并且受到图像捕获速率 瓶颈时,允许相机随后将所捕获的图像数据完全处理成可查看格式。
[0082]在一些实施例中,由编码器604执行的Η.264编码比由压缩引擎124执行的小波压 缩时间效率更高,但是产生比小波压缩更大量的压缩图像数据。同样地,在一些实施例中, 由压缩引擎124执行的小波压缩产生比Η. 264编码更小量的压缩图像数据,但是效率更低。 因此,一些使用情形可能要求Η.264的效率和小波压缩的编码数据量大小。
[0083]图9图示了通过组合多个图像压缩技术的图像压缩的实施例。图9的压缩引擎124 包括将图像数据抽取为高/高子带分量900、高/低子带分量902、低/高子带分量904、以及 低/低子带分量906的抽取器600。抽取器600将高/高子带分量900、高/低子带分量902、以及 低-尚子带分量904输出到熵编码器602。熵编码器602对这些子带分量执行熵编码,并且将 经熵编码的分量输出到连结模块912。应该注意,虽然未在图6中图示,ICA 120可以包括连 结模块912,或者连结模块912的功能可以被实施在ICA 120的任何其它部件内。
[0084] 在图9的实施例中,抽取器600还将低/低子带分量906输出到Η.264编码器910。在 一些实施例中,Η. 264编码器910被实施在图6的编码器604内。Η. 264编码器910对低/低子带 分量906进行编码,并且将经Η. 264编码的分量输出到连结模块912。连结模块912将熵编码 分量和Η. 264编码分量组合以创建组合的编码图像数据,并且将该组合的编码图像数据输 出用于存储在例如存储器606中。在四个子带分量中,低/低子带分量906可以包括最大量的 图像数据,使得低/低子带分量理想地适合于Η. 264编码的效率。同样地,高/高子带分量 900、高/低子带分量902、以及低/高子带分量904可以包括相比之下较少的图像数据,使得 这些分量理想地适合于小波压缩的所产生的编码图像数据量益处。
[0085]在一些实施例中,在ICA 120处接收的图像数据首先由编码器604处理,并且接着 随后全部或者部分地由压缩引擎124处理。图10图示了通过组合多个图像压缩技术的图像 压缩的备选实施例。在图10的实施例中,原始图像数据1000由Η. 264编码器1002访问。如在 本领域中已知那样,Η. 264编码器1002将原始图像数据编码为包括I-帧、Β-帧、以及Ρ-帧的 编码图像数据。编码图像数据在帧解析器1004处被接收。帧解析器1004将I-帧1006输出到 VC-5编码器1010,并且将Β-帧和Ρ-帧1008输出到连结模块1012。在一些实施例中,VC-5编码 器1010被实施在压缩引擎124内。在其它实施例中,替代VC-5编码,实施了未在本文中进一 步讨论的其它形式的编码。
[0086] VC-5编码器1010对I-帧进行编码,并且将编码的I-帧输出到连结模块1012。如上 文所述,小波编码(虽然通常比Η. 264编码效率更低)产生更小量的编码图像数据。因此,通 过使用VC-5编码器1010对I-帧进行编码,编码图像数据的量可以比经Η.264编码的数据小 得多。连结模块1012将编码的I-帧与Β-和Ρ-帧1008组合以形成压缩图像数据1014。压缩图 像数据1014随后可以被存储在存储器606中。
[0087]本文中描述的编码图像数据可以不被编码成可查看/可显示格式。例如,已经使用 Η. 264编码进行部分编码并且使用小波压缩进行部分编码的图像数据在显示之前必须被解 码并且被编码成可查看格式。在这种实施例中,解码器608可以被配置为基于对图像数据编 码所使用的编码类型对编码图像数据进行解码。例如,如果原始图像数据的第一部分使用 小波压缩被编码,第二部分使用Η. 264编码被编码,并且两个部分被连结,则解码器608可以 被配置为将编码数据的部分分离,使用小波解压缩对第一部分解码,使用Η. 264解码对第二 部分解码,并且将经解码的第一和第二部分组合以形成最初的原始图像数据。
[0088]图11图示了被配置为输出压缩的打包的图像数据的熵编码器602的实施例。在图 11图示的实施例中,熵编码器包括位打包器1110,位打包器用于接收编码图像数据1105并 且生成用于由存储器606或者外部存储器存储的图像数据文件1115。在图像捕获加速器120 的各种实施例中,输入到位打包器1110的编码图像数据1105可以包括通过小波压缩、 H. 264、或者各种其它压缩技术编码的数据。
[0089] 在图12中示出了图示位打包器1110的实施例的框图。在一个实施例中,位打包器 1110被配置为并行地处理编码图像数据的子带。位打包器1110包括位打包逻辑块1210、当 前通道位打包状态寄存器1220、以及多个位打包状态寄存器1230。在一个实施例中,针对到 位打包器1110的每个颜色通道输入,位打包器1110包括一个位打包状态寄存器1230。每个 位打包状态寄存器1220、1230包括计数(指示由状态寄存器存储的位的数目)和移位寄存 器。
[0090] 位打包逻辑块1210接收输入数据、位数目、输入启用标志、通道识别符、通道开始 标志、通道结束标志、以及代码块结束标志。当输入启用被确立时,位打包逻辑块1210基于 传入位数目信号确定要连结的输入数据的位数目,并且将输入数据的对应数目的位与当前 通道位打包状态寄存器1220的移位寄存器位连结。位打包逻辑块1210将由当前通道位打包 状态寄存器1220存储的位的计数递增传入位数目。当由当前通道位打包状态寄存器1220存 储的数据的位的数目达到输出数据总线1240的宽度时,位打包逻辑块1210确立输出启用, 其指示新打包的字可用于输出(例如到存储器606)。在经由输出数据总线1240输出了新打 包的字之后,位打包逻辑块1210减少当前通道位打包状态寄存器1220的计数,并且将当前 通道位打包状态寄存器1220的移位寄存器位移位到零偏移状态。
[0091] 通道开始标志指示输入通道处的活跃数据的开始。当通道开始标志被确立时,位 打包逻辑块1210对通道识别符信号采样并且将其存储,并且将与由通道识别符信号识别的 通道关联的位打包状态寄存器1230的内容读取到当前通道位打包状态寄存器1220中。位打 包逻辑块1210基于存储位数目信号(指示存储在位打包状态寄存器1230中的位的数目)和 传入位数目信号,确定要连结的位数目,并且将传入位与当前通道位打包状态寄存器1220 中的位连结。如果由当前通道位打包状态寄存器1220存储的位的数目达到输出数据总线 1240的宽度,位打包逻辑块1210确立输出启用。当通道结束被确立时,如果由当前通道位打 包状态寄存器1220存储的位的数目小于输出数据总线1240的宽度,则当前通道位打包状态 寄存器1220的内容被拷贝到对应于由所存储的通道识别符识别的通道的位打包状态寄存 器1230。因此,位打包状态寄存器1230存储来自相应的输入通道的位,直到它们与传入位连 结并且经由输出数据总线1240被输出。最后,当代码块结束标志被确立时,位打包逻辑块 1210将任何剩余位从当前通道位打包寄存器1220清除,并且清除对应于所存储的通道识别 符的位打包寄存器1230的内容。
[0092] 在一个实施例中,位打包逻辑块1210接收单个通道活跃信号,而不是接收通道开 始标志和通道结束标志两者。在通道活跃信号的上升沿,位打包逻辑块1210对通道识别符 信号采样并且将其存储。在通道活跃信号的下降沿,位打包逻辑块1210将当前通道位打包 状态寄存器1220的内容拷贝到对应于所存储的通道识别符的位打包状态寄存器1230。在一 个实施例中,位打包逻辑块1210在通道活跃信号的下降沿处生成代码块结束标志。
[0093] 在一个实施例中,压缩小波子带被写入到帧缓冲器,压缩小波子带被存储在帧缓 冲器用于进一步处理或者传输。图13A至图13B图示了用于将小波子带存储在帧缓冲器中的 直接存储器访问(DMA)引擎1300。在一个实施例中,如图13A所图示,DMA引擎1300包括小波 压缩引擎1310、嵌入式存储器1320、以及小波解压缩引擎1330。小波压缩引擎1310接收来自 视频源1305(例如解复用器121)的小波子带并且将该子带压缩。例如,小波压缩引擎1310可 以包括如本文中关于各种实施例描述的压缩引擎124。在每个压缩子带生成时,小波压缩引 擎1310在每个数据包之前插入报头,从而指示子带的子带编号和通道编号、以及压缩数据 包的长度。
[0094] 在图13A所图示的DMA引擎1300的实施例中,小波压缩引擎1310将压缩子带写入到 存储帧缓冲器1325的嵌入式存储器1320。在图13B所图示的实施例中,小波压缩引擎1310将 压缩的子带发送到存储器控制器1350用于写入到存储帧缓冲器1365的外部存储器1360。每 个视频帧的压缩子带被无间隙地写入到帧缓冲器1325或者1365,并且存储器1320或者1360 保持识别视频数据的每个帧的开始地址的表。
[0095] 在一个实施例中,为了改善对压缩子带的随后解码的效率,小波压缩引擎1310针 对视频数据的每一行将压缩子带按照从最低阶子带到最高阶子带的顺序写入到存储器 1320或者1360。例如,如果小波压缩引擎1310通过VC-5压缩将输入视频数据压缩,并且生成 低-低、低-高、高-低、以及高-高子带,则小波压缩引擎1310可以将低-低子带写入到帧缓冲 器1325或者1365,之后是低-高子带、高-低子带、以及高-高子带。
[0096]小波解压缩引擎1330将存储在帧缓冲器1325或者1365中的子带解压缩并且将解 压缩的子带传递到视频汇集1340。例如,小波解压缩引擎1330可以包括如关于各种实施例 描述的解码器608,并且可以将解压缩的图像数据输出到ISP 130用于处理。在一个实施例 中,小波解压缩引擎1330以比图像数据被捕获的速率慢的速率解压缩子带。例如,如果图像 传感器110以120帧每秒捕获视频数据,则视频帧以120帧每秒的速率被写入到帧缓冲器 1325或者1365。如果ISP 130被配置为以30帧每秒的最大值处理视频帧,则小波解压缩引擎 1330解压缩每四帧中的一个帧,并且将解压缩的帧发送到ISP 130。
[0097]图像捕获加速器120的一个实施例对图像数据执行运动检测和估算。图14图示了 用于使用抽取图像数据的运动检测和估算的系统的实施例。在图14的实施例中,系统包括 运动检测电路1410和运动估算电路1420。在各种实施例中,运动检测电路1410和运动估算 电路1420是ICA 120、ISP 130的部件,或者相机系统的其它部件。
[0098] ICA 120的抽取器600将抽取图像数据输出到运动检测电路1410和运动估算电路 1420。例如,如图14所不,抽取器600将低-低子带分量、低-尚子带分量、以及尚-低子带分量 输出到运动检测电路1410。高-高子带分量被输出到运动估算电路1420。然而,抽取器600可 以将附加子带输出到运动检测电路1410和运动估算电路1420。例如,存储器600可以进一步 抽取低-低子带分量并且将得到的抽取分量输出到运动检测电路1410和/或运动估算电路 1420。
[0099] 如上文所描述那样,由抽取器600生成的低-低子带分量表示处于输入到抽取器 600的图像数据的四分之一分辨率的抽取图像。因此,对于输入到抽取器600的图像数据帧, 第一低-低子带分量表示处于该帧的四分之一分辨率的帧。第二低-低子带分量(通过进一 步抽取第一低-低子带分量生成)表示处于该帧的十六分之一分辨率的帧。相比之下,高-高 子带分量通过对图像数据执行水平和竖直高通滤波两者来生成。因此,高-高子带分量包含 抽取图像的边缘数据。
[0100] 运动检测电路1410使用视频帧的低-低子带分量生成运动映射1415。运动映射 1415识别两个视频帧之间的运动区域。例如,运动映射1415是针对帧的块或者像素的二进 制值集,其识别该块或者像素是否在当前帧和后续或者之前的帧之间移动。为了生成两个 视频帧之间的运动映射1415,运动检测电路1410以两个或者多个分辨率检验帧的图像分 量。在一个实施例中,运动检测电路1410接收来自抽取器600的针对每个帧的至少两个低-低子带分量。例如,运动检测电路1410针对每个帧接收以四分之一分辨率表不该帧的第一 低-低子带分量,和以十六分之一分辨率表示该帧的第二低-低子带分量。运动检测电路 1410使用最低分辨率的分量识别帧中的运动区域。例如,运动检测电路1410识别在视频帧 之间呈现运动的最低分辨率图像数据的像素或者块。
[0101] 如果在帧的区域中识别到运动,则运动检测电路1410使用更高分辨率的分量以便 更精确地识别帧中的运动区域。对于被确定为具有运动的最低分辨率图像数据的每个区 域,运动检测电路1410识别呈现运动的更高分辨率的帧的像素或者块。为了进一步细化运 动检测,运动检测电路1410可以以甚至更高的分辨率检验帧的分量。在每次迭代中,运动检 测电路1410检测来自被确定为具有运动的较低分辨率的帧的区域的块或者像素中的运动。 因此,运动检测电路1410不针对运动搜索整个更高分辨率的帧。运动检测电路1410可以选 择要检验的分辨率水平的数目,以实现针对各种应用的运动检测的期望精确度。
[0102] 作为示例,运动检测电路1410接收图15所示的已经被抽取两次的图像数据1500。 运动检测电路1410使用低-低子带分量1516识别运动区域。对于子带分量1516中的每个被 识别的运动区域,运动检测电路1410分析低/低子带分量1508(8卩,抽取图像的更高分辨率 表示)以更精确地识别图像中的运动区域。运动检测电路1410接着可以使用全分辨率图像 数据1500进一步细化运动检测。运动检测电路1410输出针对图像数据1500的运动映射,从 而识别被确定为呈现运动的图像数据的块或者像素。
[0103] 对于视频帧对,运动估算电路1420接收来自运动检测电路1410的运动映射1415和 该对中的一个或者两个帧的高-高子带分量。使用运动映射1415和高-高子带分量,运动估 算电路1420生成用于帧间或帧内预测的运动矢量1425。通过使用高-高子带分量生成运动 矢量1425,运动估算电路1420基于帧中的边缘数据而非整个帧来确定运动矢量1425。因此, 运动估算电路1420使用比基于全分辨率图像数据的整个帧生成运动矢量所需要的更少的 处理时间和功率生成运动矢量1425。此外,运动估算电路1420以比通过分析整个帧将提供 的更高的准确度预测运动矢量1425。因此,为了准确的视频重构,需要编码更少的错误。
[0104] 图像捕获加速器120可以针对各种不同应用使用运动映射1415和运动矢量1425。 图像捕获加速器120的一个实施例使用对抽取图像数据执行的运动检测和估算来生成不同 的帧以对图像或者视频数据进行编码。例如,图像捕获加速器120的一个实施例使用运动矢 量1425生成用于帧内预测的不同帧。
[0105] 在另一示例应用中,图像捕获加速器120的一个实施例使用估算的运动执行电子 图像稳定化。图16图示了由图像捕获加速器120执行的电子图像稳定化的示例。在相机系统 的用户捕获视频时,传感器阵列110捕获图像数据的帧。图16中所示的读取窗口 1602对应于 由传感器阵列110捕获的图像数据的全窗口,而保持窗口 1604的图像数据被存储为视频帧。 如果用户在捕获视频的同时少量地移动相机,则读取窗口 1602中的对象1606的相对位置改 变。一般地,图像捕获加速器120通过确定保持窗口 1604相对于读取窗口 1602的位置,执行 电子图像稳定化,以保持对象1606在每个视频帧中的相同相对位置。
[0106] 不是使用来自外部传感器(诸如陀螺仪)的输入或者对全分辨率图像数据执行计 算密集型运动补偿以确定保持窗口 1604的位置,图像捕获加速器120可以使用通过分析比 输入视频低的分辨率的图像数据检测到的运动。具体而言,图像捕获加速器120基于运动矢 量1425在帧与帧之间调节保持窗口 1604的位置。图像捕获加速器120使用运动映射1415和/ 或运动矢量1425识别从一个读取窗口 1602到下一读取窗口的全局运动的方向和幅度。图像 捕获加速器120接着在全局运动的相反方向上移动保持窗口 1604,从而有效地消除读取窗 口 1602中的运动。
[0107] 在对抽取图像数据执行的运动检测和估算的又一示例应用中,图像捕获加速器 120的一个实施例使用检测到的运动执行运动补偿时域滤波(MCTFhMCTF在压缩视频之前 补偿跨视频帧的时域噪声以改善压缩效率。为了执行MCTF,图像捕获加速器120使用运动矢 量1425确定跨视频帧的哪些改变是运动的结果以及哪些改变是时域噪声的结果,并且过滤 掉其是时域噪声的结果的改变。
[0108] 运动检测和估算的其它示例应用包括运动追踪和测距。例如,图像捕获加速器120 使用低-低子带分量追踪物体移动,并且使用高-高子带分量计算物体的移动。在一些实施 例中,抽取分量(诸如低-低子带分量)可以被用于识别或者辨识帧内的脸部或者物体(例 如,通过对抽取分量执行脸部检测或者物体辨识算法),并且可以使用其它抽取分量(诸如 高-高子带分量)计算帧之间的脸部或者物体的移动。
[0109] 图像捕获加速器120和/或抽取图像数据的各种应用依赖于从存储快速取回特定 子带。例如,如上文所述,图像捕获加速器120的一个实施例使用图像数据的所选择的子带 分量来检测和估算运动。作为另一示例,图像捕获加速器120的一个实施例将视频帧的子集 (例如,每四帧中的一个帧)发送到ISP 130用于处理。在又一示例中,图像捕获加速器120的 一个实施例将所选择的子带分量(例如低-低子带分量)传输到外部设备用于视频预览。为 了使得能够取回任何期望的子带分量,压缩引擎124的一个实施例被配置为存储对由抽取 器600生成的每个子带分量在存储中的位置的引用。在一个实施例中,压缩引擎124在存储 子带之前生成用于每个子带的报头。例如,报头识别从其生成子带的帧、帧的分量(例如,其 是否是低-低子带分量、高-高子带分量等)、以及所存储的数据包的长度。当子带从存储被 取回时,图像捕获加速器120使用报头识别子带。在另一实施例中,压缩引擎124存储识别每 个子带在存储中的位置的文件指针。
[0110] 通过生成和存储对每个子带在存储中的位置的引用,压缩引擎124使得能够取回 图像数据的任何子带。因此,压缩引擎124可以在子带生成时将子带写入到存储,而非将每 个子带存储为独有文件或者缓冲针对每个帧的子带以及将帧的图像数据存储在连续块中。
[0111] 如上文所述,图像捕获加速器120包括被配置为对抽取图像数据编码并且生成编 码视频的熵编码器602。为了改善处理时间,图像捕获加速器120的一个实施例包括并行操 作以对图像编码的多个熵编码器602。图17图示了具有两个熵编码器602A和602B的ICA 120 的实施例,每个熵编码器编码由抽取器600输出的抽取图像数据的一部分。ICA 120的其它 实施例可以包括附加编码器。
[0112]抽取器600抽取原始图像数据1700并且将抽取图像数据1702输出到熵编码器602A 和602B。抽取器600可以通过以下将图像帧分割成多个子帧:将帧竖直分割成两个不相等的 区段、将帧水平分割成两个不相等的区段、将帧竖直或者水平分割成多于两个的竖直区段、 或者将帧既竖直又水平地分割成各种宽度和高度的一系列长方形。熵编码器602A和602B每 个接收图像区段中的一个或者多个图像区段以用于编码。例如,熵编码器602A对视频数据 的每个帧的左半部分进行编码,而熵编码器602B对每个帧的右半部分进行编码。通过各自 编码每个视频帧的一部分,在ICA 120的这一实施例中并行操作的多个熵编码器602减少了 用于对视频进行编码的处理时间。
[0113]抽取器600向每个熵编码器602发送除了每个子帧的边缘之外的额外像素值。例 如,抽取器600将3840x 2160分辨率的图像竖直分成两个子帧,每个子帧具有1920x 2160个 像素,并且向每个熵编码器602发送除了两个子帧之间的边界之外的额外两个像素。即,每 个熵编码器602接收具有1922x 2160个像素的图像数据。因此,抽取图像数据1702的一部分 被发送到多个熵编码器602。抽取器600还可以向每个熵编码器602传递相对于整个帧的子 帧的位置的识别符。
[0114] 熵编码器602对从抽取器600接收的子帧进行编码。在一个实施例中,熵编码器602 对抽取图像数据1702的相应部分执行VC-5编码。一般地,熵编码器602将边界公式和内部公 式应用于抽取图像数据1702以生成编码图像数据。边界公式被应用于帧的顶部、底部、左 侦I以及右侧中的每个上的一个像素宽的边界,并且内部公式被应用于帧的其它像素。例 如,熵编码器602的一个实施例在图像数据的行的左侧列或者图像数据的列的顶部行处应 用以下小波变换公式:
[0115] Ho = ash(5X〇-llXi+4X2+4X3-X4-X5+4,3) (1)
[0116] 在图像数据的行的右侧列或者图像数据的列的底部行处,熵编码器602的一个实 施例应用以下小波变换公式:
[0117] Hn/2-1 = ash(5Xn-rllXn-2+4Xn-3+4Xn-4-Xn-5-Xn-6+4,3) (2)
[0118] 最后,由熵编码器602的一个实施例向行或者列的内部中的图像数据应用的内部 小波变换公式如下:
[0119]
[UUU」 如呆图傢数据骰分割成多个于帜开i田网个现有多个煱綱妈器602开仃处埋,贝lj 熵编码器602将内部公式(方程3)应用于子帧之间的边界,使得沿着边界产生与如果图像作 为单个帧被编码将产生的相同的小波变换值。每个熵编码器602使用除了子帧的边缘之外 的额外像素值,以使用内部小波变换公式对边界处的图像数据进行编码。熵编码器602因此 针对帧集体生成与如果图像作为单个帧被编码将生成的相同数目的小波系数。此外,熵编 码器602仅针对对应于整个帧的边界的子帧边界实现边界公式(方程1和方程2)。因此,如果 帧既被水平分割又被竖直分割三次或者更多次,则一些熵编码器602可以不使用边界公式 对其相应的子帧进行编码。
[0121] 图18a图示了图像捕获加速器存储器共享架构的第一实施例。在图18a的实施例 中,ICA 1810接收图像数据1805,并且将图像数据1805提供到ISP 1820,将图像数据1805存 储在通信耦合到ICA 1810的存储器1830中,或者处理图像数据1805。经处理的图像数据随 后可以被输出到ISP 1820或者存储在存储器1830中。
[0122] 在图18a的实施例中,存储在存储器1830处的图像数据1805或者经处理图像数据 经由ICA 1810由ISP 1820访问。在这种实施例中,ICA 1810和存储器1830之间的数据总线 可以具有比ISP 1820和存储器1830之间的数据总线更高的带宽。相似地,ICA 1810的I/O控 制器可以比ISP 1820的I/O控制器更快。在这种实施例中,ICA 1810可以接收图像数据1805 并且可以以第一数据速率将所接收的图像数据1805写入到存储器1830,并且ICA 1810可以 访问存储在存储器1830处的图像数据(所接收的图像数据1805或者由ICA 1810处理的图像 数据)并且可以以比第一数据速率慢的第二数据速率将所访问的图像数据输出到ISP 1820。这种实施例允许相机系统以比ISP 1820的处理速率更快的速率捕获图像数据。
[0123] 图18b图示了图像捕获加速器存储器共享架构的第二实施例。在图18b的实施例 中,ICA 1860可以接收图像数据1855,并且可以经由复用器1880将所接收的图像数据1855 提供到ISP 1870或者存储器189(ΚΙ5Ρ 1870可以接收来自ICA 1860的图像数据,或者可以 经由复用器1880访问存储在存储器1890处的图像数据。ICA 1860、ISP 1870、或者图18b中 未图示的外部控制器可以选择复用器输入(并且因此,ICA 1860或者ISP 1870)耦合到复用 器输出。图18b的实施例允许ICA 1860接收图像数据1855并且以第一数据速率将其写入到 存储器1890,并且允许ISP 1870以比第一数据速率慢的第二数据速率访问来自存储器1890 的图像数据1855。
[0124] 图19图示了具有诸如分辨率和帧速率缩减和分辨率放大之类的芯片上转码功能 的图像捕获加速器的实施例。ICA 1900包括缩减引擎1910、放大引擎1920、H. 264引擎1930、 以及VC-5引擎1940。缩减引擎1910可以通过输出抽取视频的低/低子带来缩减抽取视频的 分辨率。例如,对于抽取视频的低/低子带,缩减引擎1910可以替代地输出抽取视频的低/低 子带,从而对抽取视频解码以便以全分辨率产生视频。缩减引擎1910可以通过从抽取视频 移除帧来缩减抽取视频的帧速率。例如,缩减引擎1910可以通过输出每隔一个视频帧的低/ 低子带,将4k分辨率240fps视频缩减成1080p分辨率120fps视频。
[0125] 放大引擎1920可以使用被编码为H. 264视频的低/低子带并且使用被编码为VC-5 视频的高/低、低/高、以及高/高子带放大抽取视频的分辨率。在这种实施例中,低/低子带 包括4个颜色通道,每个颜色通道被编码为Η. 264视频。为了放大这种视频的分辨率,放大引 擎1920使用Η.264引擎1930对低/低子带的颜色通道进行解码,并且将解码颜色通道组合到 拜耳颜色空间中。放大引擎1920使用VC-5引擎1940对对应的高/低、低/高、以及高/高VC-5 编码的子带进行解码,并且将解码的低/低子带与解码的高/低、低/高、以及高/高子带组合 以创建分辨率放大的视频。例如,对于1080ρ分辨率低/低子带,低/低子带和对应的高/低、 低/高、以及高/高子带被解码并且被组合以创建4k分辨率视频。
[0126] 附加配置考虑
[0127] 本文中所描述的实施例提供用于加速图像捕获系统中的图像捕获和存储的系统 和方法。通过加速图像捕获和存储,图像捕获系统可以以高帧速率和分辨率捕获图像或者 视频,因为图像捕获系统不受图像信号处理器的能力限制。此外,加速捕获和存储可以减少 图像捕获系统的功率消耗,从而改善包括加速图像捕获系统的相机的电池寿命。
[0128] 贯穿这一说明书,一些实施例使用了表达方式"耦合"以及其衍生词。如本文中使 用的术语"耦合"不一定限于直接物理或者电接触的两个或者多个元件。更确切地说,术语 "耦合"还可以包含与彼此非直接接触但是还仍然与彼此合作或者交互的两个或者多个元 件。
[0129] 同样地,如本文中使用的,术语"包括"、"包含"、"具有"("comprises"、 "including"、"includes"、"including"、"has"、"having")或者其任何其它变化旨在覆盖 非排他性包含。例如,包括元件列表的过程、方法、物品、或者装置不一定仅限于那些元件, 而是可以包这种过程、方法、物品、或者装置未明确列出的或者非固有的其它元件。
[0130]此外,"一(a)"或者"一个(an)"的使用被采用用于描述本文中的实施例的元件和 部件。这么做仅为了方便并且给出本发明的一般意义。这一描述应该被解读为包括一个或 者至少一个,并且单数还包括多个,除非明显另有意指。
[0131]最后,如本文中使用的,对"一个实施例"或者"实施例"的任何提及意指联系该实 施例描述的特定元件、特征、结构、或者特性被包括在至少一个实施例中。说明书中的各种 地方出现的短语"在一个实施例中"不一定全部都指代相同的实施例。
[0132]在阅读本公开时,本领域技术人员将领会到还有针对如本文中从原理公开的图像 捕获加速器的附加的备选结构和功能设计。因此,虽然图示和描述了特定实施例和应用,要 理解的是,所公开的实施例不限于本文中公开的精确构造和部件。可以在不脱离所附权利 要求中限定的精神和范围的情况下,对本文中公开的方法和装置的设置、操作、以及细节做 出对本领域技术人员而言将显而易见的各种修改、改变、以及变化。
【主权项】
1. 一种相机系统,包括: 图像传感器,被配置为产生表示在捕获间隔期间入射在所述图像传感器上的光的图像 数据; 图像信号处理器("ISP"),具有第一输入和第二输入;以及图像捕获加速器("ICA"),耦 合在所述图像传感器和所述ISP之间, 所述图像捕获加速器包括: 输入,被配置为接收来自所述图像传感器的所述图像数据; 第一输出,被配置为输出图像数据,所述第一输出耦合到所述ISP的所述第一输入; 压缩引擎,被配置为将所接收的图像数据抽取到多个图像子带分量中;以及 第二输出,被配置为输出到图像子带分量,所述第二输出耦合到所述ISP的所述第二输 入。2. 根据权利要求1所述的相机系统,其中所述图像捕获加速器被配置为经由所述第一 输出来输出所接收的图像数据。3. 根据权利要求1所述的相机系统,其中所输出的图像子带分量是低/低子带分量,其 中所接收的图像数据包括处于第一分辨率的图像,并且其中所述低/低子带分量包括处于 低于所述第一分辨率的第二分辨率的所述图像。4. 根据权利要求3所述的相机系统,其中所述第二分辨率是所述第一分辨率的分辨率 的四分之一。5. 根据权利要求1所述的相机系统,其中所接收的图像数据包括原始拜耳图像数据。6. 根据权利要求5所述的相机系统,其中所述图像捕获加速器进一步包括: 变换引擎,被配置为将所接收的原始拜耳图像数据转换为红颜色分量、蓝颜色分量、第 一绿颜色分量、以及第二绿颜色分量。7. 根据权利要求1所述的相机系统,其中所述压缩引擎被进一步配置为对所述多个图 像子带分量中的一个或者多个图像子带分量执行熵编码。8. 根据权利要求1所述的相机系统,其中所述图像捕获加速器进一步包括: 解复用器,被配置为在第一配置中将所接收的图像数据提供到所述ISP的所述第一输 入,并且被配置为在第二配置中将所接收的图像数据提供到所述压缩引擎。9. 根据权利要求1所述的相机系统,其中所述ISP被配置为对经由所述第二输入接收的 图像数据进行编码以用于显示为预览图像。10. 根据权利要求1所述的相机系统,其中所述ISP被配置为对经由所述第一输入接收 的图像数据进行编码以用于存储在耦合到所述ISP的存储器中。11. 一种用于处理由相机系统捕获的图像的方法,包括: 通过图像传感器捕获入射在所述图像传感器上的光,以产生表示所捕获的光的图像数 据; 通过图像捕获加速器("ICA")接收来自所述图像传感器的所述图像数据; 通过所述ICA将所述图像数据输出到图像信号处理器("ISP")的第一输入; 通过所述ICA将所接收的图像抽取到多个图像子带分量中;以及 通过所述ICA将图像子带分量输出到所述ISP的第二输入。12. 根据权利要求11所述的方法,其中所输出的图像子带分量是低/低子带分量,其中 所接收的图像数据包括处于第一分辨率的图像,并且其中所述低/低子带分量包括处于低 于所述第一分辨率的第二分辨率的所述图像。13. 根据权利要求12所述的方法,其中所述第二分辨率是所述第一分辨率的分辨率的 四分之一。14. 根据权利要求11所述的方法,其中所述ISP被配置为对经由所述第二输入接收的图 像数据进行编码以用于显示为预览图像。15. 根据权利要求11所述的方法,其中所述ISP被配置为对经由所述第一输入接收的图 像数据进行编码以用于存储在耦合到所述ISP的存储器中。16. -种用于相机系统的加速器电路,包括: 输入,被配置为接收来自图像传感器的图像数据,所述图像数据表示在捕获间隔期间 入射在所述图像传感器上的光; 第一输出,被配置为输出图像数据,所述第一输出耦合到图像信号处理器("ISP")的第 一输入; 压缩引擎,被配置为将所接收的图像数据抽取到多个图像子带分量中;以及 第二输出,被配置为输出到图像子带分量,所述第二输出耦合到所述ISP的第二输入。17. 根据权利要求16所述的加速器电路,其中所输出的图像子带分量是低/低子带分 量,其中所接收的图像数据包括处于第一分辨率的图像,并且其中所述低/低子带分量包括 处于低于所述第一分辨率的第二分辨率的所述图像。18. 根据权利要求17所述的加速器电路,其中所述第二分辨率是所述第一分辨率的分 辨率的四分之一。19. 根据权利要求16所述的加速器电路,其中所述ISP被配置为对经由所述第二输入接 收的图像数据进行编码以用于显示为预览图像。20. 根据权利要求16所述的加速器电路,其中所述ISP被配置为对经由所述第一输入接 收的图像数据进行编码以用于存储在耦合到所述ISP的存储器中。
【文档编号】H04N19/85GK105993177SQ201480065644
【公开日】2016年10月5日
【申请日】2014年9月25日
【发明人】S·P·坎贝尔, P·莫布斯, B·C·亚德萨米利, S·乔拉
【申请人】高途乐公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1