基于分量的数字图像同步的制作方法

文档序号:17377735发布日期:2019-04-12 23:29阅读:127来源:国知局
基于分量的数字图像同步的制作方法

随着计算技术的发展和计算机变得越来越普及,人们已经开始以各种不同的方式使用他们的计算机。一种这样的使用是利用他们的计算设备来编辑图像或其他内容。虽然用户可以享受利用他们的计算设备来编辑内容的能力,但是这样的编辑不是没有问题的。一个这样的问题是内容在大小上有时可能非常大。当计算设备至少部分地通过网络执行编辑技术时,诸如当内容被存储在“云”中时,或者当内容与外部位置处的副本同步时,这是特别麻烦的。

因此,已经开发了用于计算设备的同步技术,以标识已经从先前版本更改的内容的部分,并且仅将那些更改的部分同步到云。通过使用诸如“diff实用程序”的文件比较技术,文件可以由计算设备逐个字符或逐行地进行比较以定位差异。但是,当内容被压缩、加密、或具有复杂结构时,这不起作用。对诸如文档的用户可见内容的小改变可能引起整个对应文件的数据的重大更变和/或引起文件内大部分数据的移动。这样,传统的文件比较技术指出,当只有一小部分实际上被更改时,文件的大部分已被更改。因此,传统技术可能引起未改变内容的同步,降低效率,浪费带宽,并造成不必要的延迟。



技术实现要素:

描述了用于基于分量的数字图像同步的技术和系统。这些技术可由计算设备的同步模块(例如,本地或“云中”)使用,以仅同步数字图像的更改部分,由此节省带宽并且增加计算设备的效率。

计算设备例如可以利用在数字图像文档的编辑期间生成的指示符来定位已经被更改的对应的经压缩数字图像文件的特定分量。可以通过计算设备来定位这些更改分量而不执行解压缩过程,并且不将分量与先前的版本进行比较,从而提高操作效率并节省计算设备的计算、存储器和电池资源。然后由计算设备将更改分量传送到同步服务以与数字图像的远程表示同步。

此外,数字图像文件由计算设备作为具有多个分离压缩的个体分量的复合文件来存储。这样,对一个分量的改变不会影响任意其他分量的压缩或数据。因此,与压缩和比较完整图像文件的传统技术相比,由计算设备进行的经压缩分量的比较能够以一小部分计算开销在粒度级上检测差异。

本发明内容以简化的形式介绍了一些概念的选择,这些概念将在下面的具体实施方式中进一步描述。如此,本发明内容既不旨在标识要求保护的主题的基本特征,也不旨在用作确定所要求保护的主题的范围的辅助手段。

附图说明

参考附图描述了具体实施方式。图中表示的实体可以指示一个或多个实体,因此可以在讨论中对实体的单数或复数形式互换地进行参考。

图1是可操作来采用本文所述的基于分量的数字图像同步技术的示例实现中的环境的图示。

图2更详细地描绘了示出图1的图像编辑系统的图像处理流水线的示例系统。

图3描绘了示出示例同步处理流水线的示例系统。

图4描绘了示出示例同步处理流水线的示例系统。

图5描绘了其中图像文档的分离层被存储为图像文件的分离分量的示例实现。

图6描绘了其中图像文档的分离通道被存储为图像文件的分离分量的示例实现。

图7描绘了其中图像文档的分离块被存储为图像文件的分离分量的示例实现。

图8是描绘了其中指示符被用于形成包括更改分量的通信的示例实现中的过程的流程图。

图9是描绘了其中数字图像文件的压缩分量被标识为包括更改部分并且被用于形成包括更改分量的通信的示例实现中的过程的流程图。

图10是描绘了其中数字图像文档被编辑并存储为包含分量文件的合成数字图像文件的示例实现中的过程的流程图。

图11图示了包括示例设备的各种组件的示例系统,该示例设备可以被实现为如参考图1-10所描述和/或利用以实现本文描述的技术的实施例的任意类型的计算设备。

具体实施方式

概述

试图减少远程同步过程的带宽需求的传统同步技术依赖于二进制比较技术来标识相应文件之间的差异。然而,当内容被压缩、加密、或具有复杂结构时,二进制比较技术失败或具有过度的计算开销。例如,以压缩格式保存的文件开头的小变化可能会更改整个压缩数据。在文件的压缩版本上执行的二进制比较技术然后可以认为文件的整体已经被更改,并且传统的同步技术将开始同步整个文件或者以其他方式具有有限的效率和增加的计算开销。因此,传统的同步技术不能充分地标识压缩文件的更改部分。这具有与数字图像文件的同步的特别相关性,因为数字图像文件很少以非压缩格式被存储为原始图像数据。

附加地,数字图像文档的复杂结构可引起内容的小改变或结构的简单改变,以显著地更改对应数字图像文件的许多区域,并引起传统同步技术同步大部分或全部数字图像文件。例如,具有复杂结构的数字图像文档可以包括多个层。数字图像文件的结构的简单改变(诸如层的重新排序)显著地更改了对应的数字图像文件的许多区域。

因此,描述了基于分量的数字图像同步技术和系统。在下面描述的示例中,图像文件由计算设备作为具有多个分离压缩的分离分量的复合文件来存储。例如,个体分量可以与数字图像文档的个体层或通道、构成数字图像的个体层和通道的矩形子区域等相关联。应该理解的是,个体分量可以对应于任意大小、形状、类型或粒度等等。

由计算设备利用的用于标识已经被更改的数字图像文件的个体分量的过程可以采取各种形式。在一个示例中,在数字图像文档的编辑期间,由计算设备生成指示符。这些指示符参考已经被更改的数字图像文档的特定部分,并且可以被利用以定位已经被更改的相应数字图像文件的特定部分。可以通过计算设备来定位这些经更改分量,而不执行解压缩过程,并且不将分量与先前的版本进行比较,从而提高操作效率并节省计算设备的计算、存储器和电池资源。

一旦已经定位到更改分量,计算设备的同步模块形成包括更改分量的通信。然后将通信传送到同步服务,用于与数字图像文件的远程表示同步。该通信被配置为引起与数字图像文件的远程存储的实例的同步。通信可以由计算设备例如经由网络发送到外部同步系统。通信包括所标识的更改分量,但是不包含不对应于数字图像文件的任意更改的部分的任意分量。因此,通信被配置为引起经更改分量的同步,并且不引起未更改分量的同步。以这种方式,只有经更改分量被传送,减小了通信的大小,从而节省了带宽。

这些和其他示例的进一步讨论包括在下面的部分中并且在相应的附图中示出。

在以下讨论中,首先描述可采用本文描述的基于分量的数字图像同步技术的示例环境。还描述了可以在示例环境以及其他环境中执行的示例程序。因此,示例程序的执行不限于示例环境,并且示例环境不限于示例程序的执行。

术语示例

下面阐述如本文所使用的对某些术语的解释的示例描述。每个术语应用于本文呈现的一个或多个但不一定是全部的实现。使用一个或多个示例进一步描述一些术语。

“组合表示”是指多个文件的组合,包括多个分量文件(例如,分量1,...,分量n)和清单文件。清单文件标识包含在复合表示中的每个分量文件。可以以不同的方式(例如通过在清单文件中包括每个分量文件的文件名称)标识分量文件。例如,多个分量文件和清单文件可以被存储在通常被认为是单个“文件”的容器中,并且可以被格式化为使得它被计算设备的操作系统共同地视为单个文件。

“持久性存储器”是指用于存储数据结构使得即使在创建或最后修改它们的过程结束之后仍然可以使用存储器指令或存储器api来继续访问它们的任意方法或设备。持久的存储器能力超越了存储位的非易失性。例如,将虚拟地址转换为物理地址的元数据丢失会使持久位不持久。“非持久性存储”是指用于存储在最后创建或修改它们的过程结束之后不能被访问的数据结构的任意方法或装置。

“虚拟存储器”是指将由程序使用的存储器地址(例如虚拟地址)映射到与实际计算机存储器对应的物理地址的存储器管理技术。虚拟地址可以存在而不被映射到物理地址,和/或可以被映射到多个不同物理存储器的物理地址。作为示例,可以指派超过可用于计算设备的物理地址的量的虚拟地址的量。在另一示例中,由程序使用的虚拟地址的一部分可以被映射到第一物理存储器设备(例如,ram),而由相同程序使用的虚拟地址的另一部分可以被映射到第二物理存储器设备(例如,磁盘驱动器)。附加地,虚拟存储器可以利用分布式计算环境。例如,计算设备可以利用虚拟存储器技术以将虚拟地址映射到在另一计算设备中包含的存储器的物理地址。

“层”是指数字图像的不同级别。多个个体层可以被堆叠或合并,并且每个层被个体地定义。个体层可以包括允许其他层通过特定的个体层可见的透明区域。有些层本身可能不包含任意明显的内容,并且反而可能会影响其下的层。例如,层可以保存影响其他层的颜色或色调调整。不是直接编辑基本图像的像素,而是可以编辑层来更改数字图像而不改变基本图像的像素。层的类型可以包括但不限于背景层、像素层、调整层、填充层、矢量层、智能形状层、类型层、视频层、框架动画层、3d层、嵌入的智能对象层、链接智能对象层、库链接的智能对象层、图像堆栈层、层组、图板层等等。特定的层可以进一步划分成多个“通道”。例如,层可以包括根据rgb(红-绿-蓝)值指示符的像素的颜色值,rgb(红-绿-蓝)值指示符表示被用于为一个或多个像素创建颜色的三个附加原色中的每一个的量。可以针对每种类型的值创建通道,例如针对层中的所有红色值的通道,针对层中的所有绿色值的通道,以及针对层中的所有蓝色值的通道。一个特定的通道可以被进一步划分成多个“块”。块表示特定通道内的矩形区域。例如,包含层中的像素的绿色值的通道可以被划分成多个块,诸如包含层的左上象限中的像素的绿色值的块等等。

“数字图像文件”是指在持久性存储器中的数字图像内容的表示。数字图像文件可以包括与所存储的数字图像内容相关联的任意数据和/或数据结构。例如,数字图像文件可以是包括多个分量的数字图像内容的复合表示。

“数字图像文档”是指以能够将数字图像内容可视地显示给用户的格式的数字图像内容的表示。数字图像文档可以包括例如非持久性存储中的数据和/或数据结构。例如,数字图像文档可以包括以图像编辑系统可读的多个层、通道、块等结构化的数据。特定的数字图像文件对应于一个或多个数字图像文件。

示例环境

图1是在可操作来采用本文描述的基于分量的数字图像同步技术的示例实现中的数字媒体环境100的图示。所示的环境100包括经由网络106(例如互联网)彼此通信地耦合的计算设备102和外部同步系统104。实现计算设备102和外部同步系统104的计算设备可以以各种方式来配置。

例如,计算设备可以被配置为台式计算机、膝上型计算机、移动设备(例如,假定诸如如所图示的平板计算机或移动电话的手持式配置)等等。因此,计算设备可以从具有大量存储器和处理器资源的全资源设备(例如,个人计算机、游戏控制台)到具有有限存储器和/或处理资源的低资源设备(例如移动设备)。附加地,虽然示出了单个计算设备,但是计算设备可以表示多个不同的设备,诸如由企业利用的用于执行“在云上”的操作的多个服务器,如针对外部同步系统104所图示的以及进一步如关于图11所述的。

数字媒体环境100进一步被图示为包括作为计算设备102的一部分的图像编辑系统108,其被配置为编辑与数字图像文件112相对应的数字图像文档110。数字图像文件112被图示为被存储在存储装置114(例如,计算机可读存储介质、数据库等)中。数字图像文件112可以以任意合适的格式(例如jpeg、tiff、psd等等)被压缩或编码。

此外,数字图像文件112可以作为包括多个个体分量116的复合表示来被存储。个体分量116可以例如与数字图像文档110的个体层或通道、构成数字图像文档110的个体层和通道的矩形子区域、等等相关。应该理解的是,个体分量116可以对应于任意大小、类型、形状或粒度等等。作为示例,单独分量116可以对应于个体几何形状或图案、个体几何形状或图案的分组、嵌套图像文档、嵌套图像文档的部分等。嵌套文档是放置在另一文档中的文档。例如,嵌套的图像文档是嵌入在主机图像文档中的图像文档,并且嵌套的图像文档具有与主机图像文档的结构不同的层、通道、块等的其自己的结构。在这样的实施例中,第一分量可以对应于主图像文档的块,第二分量可以对应于嵌套的图像文档的块等等。

图像编辑系统108表示允许用户诸如通过查看、创建、组装、编辑、压缩等等与数字图像文档进行交互的功能。提供可以被包括在数字图像编辑系统108中的功能的应用的示例包括adobephotoshoptm、adobeillustratortm、adobeindesigntm等等。此外,图像编辑系统108可以使得计算机设备能够经由网络106诸如通过提供、访问和编辑数字图像文档例如作为基于订阅的服务的一部分与数字图像文档交互。

为了促进数字图像文档的编辑,图像编辑系统108可以包括工具套件,诸如使得用户能够创建并布置包括点、线、基本形状、用户定义的形状、个体像素等等的各种对象的工具。图像编辑系统108还可以包括允许用户改变这些对象的属性的功能,诸如对象的颜色、透明度、填充类型(例如、实体、梯度、图案、纹理等)、相对于其他对象(例如,前方或后方)的深度、对象是否投射阴影等等。这些对象和/或属性中的每一个可以与数字图像文档的特定层或通道相关联。在一个或多个实现中,图像编辑系统108呈现允许用户选择这种工具的用于显示的用户界面。用户界面还包括工作区,其中用户可以通过利用工具创建或编辑数字图像文档。用户界面的这一部分呈现由用户创建、布置和修改的对象。

图像编辑系统108包括用于存储与数字图像文档110相关联的图像数据120的非持久性存储功能118。非持久性存储装置118可以包括例如虚拟存储器机构、ram、临时存储高速缓存等,其被配置为在图像编辑系统108的执行期间可访问,如关于图2更详细地描述的。

计算设备102包括同步模块122。同步模块122表示至少部分地以计算设备102的硬件实现的用于管理数字图像文件112与外部同步系统104内数字图像文件112的表示的同步的功能。同步模块122被配置为经由网络106与外部同步系统104进行通信。当同步模块122检测到对数字图像文件112进行的更改时,同步模块122确定哪些分量116已经被更改并且将对应的更改分量124传送到外部同步系统104。以这种方式,当数字图像文档110被编辑并且对应的数字图像文件112被更改112时,只有更改分量124被传送到外部同步系统104以便保持同步。这提高了操作效率并节省了计算设备102的计算、存储器、和电池资源。此外,相对于网络106的带宽使用被减少,因为分量116的未更改分量不被发送。

外部同步系统104存储数字图像文件112的至少一个表示。数字图像文件112的至少一个表示可以包括数字图像文件112的一个或多个单个文件表示,和/或数字图像文件112的一个或多个复合表示。例如,外部同步系统104可以存储数字图像文件112的多个不同版本。同步模块122和外部同步系统104可以利用诸如数字复合技术(“dcx”)框架的技术以便于保持内容的同步。

通常,关于上面和下面的示例描述的功能、特征和概念可以在本部分中描述的示例程序的上下文中被采用。此外,关于本文档中的不同附图和示例描述的功能、特征和概念可以彼此互换,并且不限于在特定图或程序的上下文中的实现。此外,与本文不同的代表性程序和对应的附图相关联的块可以以不同的方式一起和/或组合应用。因此,关于本文中的不同示例环境、设备、组件、图和程序描述的个体的功能、特征、和概念可以以任意合适的组合使用,并且不限于在本说明书中由列举的示例所表示的特定组合。

图2更详细地示出了示出图像编辑系统108的图像处理流水线的示例系统200。图像处理流水线开始于从持久性存储装置204取回数字图像文件202。持久性存储装置204可以是例如计算设备102的存储装置114、作为外部同步系统104的一部分而被包括的存储装置等等。数字图像文件202被存储为包括多个分量206的容器,但是数字图像文件202可以被配置为向计算设备102的操作系统呈现为单个对象。数字图像文件202以压缩的图像格式被存储。在一些实现中,每个个体分量206以压缩格式被存储,而容器本身未被压缩。

当图像编辑系统108取回数字图像文件202时,数字图像文件202由解压缩模块208处理。解压缩模块208代表至少部分地在计算设备102的硬件实现的用于解压缩数字图像文件202的数据和/或将数字图像文件202的数据转换为由图像编辑系统108可读的格式(诸如数字图像文档210)的功能。与数字图像文档210相关联的解压缩数据作为图像数据212存储在非持久性存储装置118中。非持久性存储装置118能够存储可以使用来自图像编辑系统108的存储器指令来访问的数据结构。然而,在创建数据结构的过程已经结束之后,非持久性存储装置118不能被访问。非持久性存储118可以包括例如用于在与图像编辑系统108相关联的特定处理的执行期间临时存储数据的虚拟存储器机构或ram。

图像数据212可以例如根据层、层的通道、通道的块等来被组织或分段。层的类型可以包括但不限于背景层、像素层、调整层、填充层、矢量层、智能形状层、类型层、视频层、框架动画层、3d层、嵌入的智能对象层、链接智能对象层、库链接的智能对象层、图像堆栈层、层组、图板层等等。特定的层可以被进一步划分成多个通道。例如,层可以包括根据rgb(红-绿-蓝)值指示符的像素的颜色值,rgb(红-绿-蓝)值指示符表示用于为一个或多个像素创建颜色的三个附加原色中的每一个的量。可以针对每种类型的值创建通道,例如针对层中的所有红色值的通道、针对层中的所有绿色值的通道、以及针对层中的所有蓝色值的通道。特定的通道可以被进一步划分成多个块。块表示特定通道内的矩形区域。例如,包含层中的像素的绿色值的通道可以被划分成多个块,诸如包含层的左上象限中的像素的绿色值的块等等。

图像编辑系统108的编辑模块214代表至少部分地以计算设备102的硬件实现的、用于实现对数字图像文档210的更改的功能。编辑模块214响应于定义对数字图像文档210的编辑的输入,编辑非持久性存储装置118内的图像数据212。

当图像编辑系统108接收到发起数字图像文档210的存储(例如,“保存”文档)的输入时,图像数据212由压缩模块216处理。压缩模块216代表至少部分地以计算设备102的硬件实现的、用于将图像数据212压缩和/或转换成输出图像文件218的功能,该输出图像文件218被适当地格式化用于存储在持久性存储装置204中和/或用于经由网络106进行通信。以这种方式,当存储在持久性存储装置204中时,输出图像文件218的大小被最小化,同时仍允许图像编辑系统108经由非持久性存储装置118访问和编辑未压缩的数据。

图3描绘了示出示例同步处理流水线的系统300。同步处理流水线开始于输入数字图像文件202变得由计算设备102的图像编辑系统108处理,如关于图2所描述的。数字图像文件202由图像编辑系统108转换成数字图像文档210并存储在非持久性存储装置118中。当图像编辑系统108接收到定义对数字图像文档210的编辑302的输入时,图像编辑系统108更改数字图像文档210以实现编辑。

图像编辑系统108可以将与数字图像文档210相关联的数据分段或组织成小段。例如,图像编辑系统108可以根据层、层的通道或、通道的块来将数字图像文档210组织在非持久性存储装置118中。此外,图像编辑系统可以根据这些段存储改变。例如,对单个像素的更改可以反映为对与该像素相关联的块的改变。当对数字图像文档210进行改变时,图像编辑系统创建参考被改变的数字图像文档210的部分的指示符304。例如,每当改变与块相关联时,可以参考该特定块来生成指示符。

作为示例,图像编辑系统108可以利用虚拟存储器功能来向数字图像文档210的每一个块指派虚拟存储器引用。然而,在该示例中,图像编辑系统108不向虚拟存储器引用指派物理存储器,直到对虚拟存储器进行改变。以这种方式,图像编辑系统108可以监视从虚拟存储器到物理存储器的进行的任意连接,并且可以利用这些连接来创建指示符304。

当图像编辑系统108接收到用于发起存储数字图像文档210的输入时,与数字图像文档210相关联的图像数据212被转换成包括分量220的输出图像文件218。此外,图像编辑系统108将指示符304输出到同步模块122。

同步模块122被图示为接收输出图像文件218和指示符304两者。同步模块122将指示符304关联为对应于分量220中的特定的一些。基于这种相关性,使用指示符304以将特定分量标识为被更改分量306。通过接收到的指示符304,同步模块122可以确定更改分量306,而不在数字图像文件202和输出图像文件218之间执行任意比较。以这种方式,更改分量可以被标识而不需要分量的直接比较。这提高了操作效率并节省了计算设备102的计算、存储器和电池资源。

同步模块122形成包括经更改分量306的通信308,并且经由网络106向外部同步系统104发送通信308。通信308被配置为引起与在外部同步系统104中的数字图像文件202的远程存储的实例同步。通信308不包括不是被更改分量306的分量220中的任意一个。以这种方式,只有被经更改分量被传送到外部同步系统104,减小通信308的大小,从而保留带宽。

此外,外部同步系统104被配置为仅同步与所接收的通信308中的更改分量306相对应的分量,并且因此不对与更改分量306不对应的分量220执行同步过程。提高操作效率并节省外部同步系统104的计算、存储和电池资源。

在一些实现中,通信308还包括更新的清单。在同步过程期间,外部同步系统104将保持数字图像文件202的原始分量以及更改分量306两者。外部同步系统104不同步清单,直到所有更改分量306已经被同步之后。以这种方式,在同步过程期间尝试从外部同步系统104访问数字图像文件202的用户将接收原始清单和原始分量,并且将不会接收到没有全部更新分量的更新清单。

图4描绘了示出示例同步处理流水线的系统400。同步处理流水线开始于输入数字图像文件202变得由计算设备102的图像编辑系统108处理,如关于图2所描述的。数字图像文档210由图像编辑系统108编辑,并且图像编辑系统108将包括多个经压缩分量220的输出图像文件218输出到同步模块122。在一些实现中,每个个体分量220被分离地压缩,而输出图像218的容器本身不被压缩。

同步模块122接收数字图像文件202和输出图像文件218。同步模块122被配置为检测数字图像文件202和输出图像文件218之间的差异。在一些实现中,通过利用指示符来检测差异,如关于图3所描述的。然而,任意合适的方法可以被利用诸如通过本地同步模块122对数字图像文件202以及输出图像文件218执行二进制比较技术来标识数字图像文档的编辑部分。在这样的示例中,同步模块122将数字图像文件202的个体分量与输出图像文件218的对应个体分量进行比较。该比较可以例如通过二进制、字符、或行比较技术来对数字图像文件202和输出图像文件218的对应分量来执行。因为数字图像文件202和输出图像文件218各自被存储为多个分量,对一个分量的改变不影响任意其他分量的压缩或数据。这允许经压缩分量之间的数据比较能够以与传统技术相比以更高的粒度级别并且以更便宜的计算开销来执行。

在标识更改分量402之后,同步模块122形成发送到包括更改分量402的外部同步系统104的通信404。通信404被配置为引起与在外部同步系统104中的数字图像文件202的远程存储实例的同步。通信404不包括不是被更改分量402的任意分量220。以这种方式,只有更改分量被传送到外部同步系统104,减小通信404的大小从而保留带宽。

此外,外部同步系统104被配置为仅同步与所接收的通信404中的更改分量402相对应的分量,并且因此不对与更改分量402不对应的分量220执行同步处理。这提高了操作效率并节省了外部同步系统104的计算、存储和电池资源。

在一些实现中,通信404还包括经更新清单。在同步过程期间,外部同步系统104将保持数字图像文件202的原始分量以及更改分量402两者。外部同步系统104并不同步该清单,直到所有更改分量402已经被同步之后。以这种方式,在同步过程期间尝试从外部同步系统104访问数字图像文件202的用户将接收原始清单和原始分量,并且将不接收到没有所有对应经更新分量的更新清单。

图5描绘了其中图像编辑系统108中的图像文档502被转换成输出图像文件504的示例实现500。图像文档502包括未压缩数据,并且可以包括例如图1的非持久性存储装置118中的图像数据120。图像文档502包括根据层分段的数据,包括对应于第一层506、第二层508和第三层510的数据。

图像文档502可以例如由图2的压缩模块216转换成输出图像文件504。输出图像文件504是复合表示,并且是包括多个个体分量的容器。复合表示是多个文件的组合,包括多个分量文件(例如,分量1,...,分量n)和清单文件。清单文件标识在复合表示中包括的分量文件中的每一个。可以以不同的方式(例如通过在清单文件中包括分量文件中的每一个的文件名称)标识分量文件。

对应于图像文档502的第一层506的数据被转换成输出图像文件504的第一分量512。对应于图像文档502的第二层508的数据被转换成输出图像文件504的第二分量514。对应于图像文档502的第三层506的数据被转换成输出图像文件504的第三分量516。第一分量512、第二分量514和第三分量516中的每一个可以是压缩、编码和/或分离地加密。以这种方式,输出图像文件变成包括对应于对应数字图像文档中的层的多个分离分量的复合表示。通过分离地压缩每个分量,对一个分量的改变不会影响任意其他分量的压缩或数据。这允许在压缩分量之间的数据比较以与传统技术相比在更高的粒度级别处并且以更便宜的计算开销来执行。

图6描绘了其中图像编辑系统108中的图像文档602被转换成输出图像文件604的示例实现600。图像文档602包括未压缩的数据,并且可以包括例如图1的非持久性存储装置118中的图像数据120。图像文档602包括根据层(包括层606)分段的数据。每一层包括进一步分段成多个通道的数据。层606包括第一通道608和第二通道610。

图像文档602可以例如由图2的压缩模块216转换成输出图像文件604。输出图像文件604是复合表示,并且是包括多个单独分量的容器。复合表示是多个文件的组合,包括多个分量文件(例如,分量1,...,分量n)和清单文件。清单文件标识在复合表示中包括的分量文件中的每一个。可以以不同的方式(诸如通过在清单文件中包括分量文件中的每一个的文件名称)标识分量文件。

与图像文档602的层606的第一通道608相对应的数据被转换成输出图像文件604的第一分量612。与图像文档602的层606的第二通道610相对应的数据被转换成输出图像文件604的第二分量614。第一分量612和第二分量614可以各自分离地被压缩、编码和/或加密。以这种方式,输出图像文件变成包括与对应数字图像文档中的层的通道相对应的多个分离分量的复合表示。通过分离地压缩每个分量,对一个分量的改变不会影响任意其他分量的压缩或数据。这允许经压缩分量之间的数据比较以与传统技术相比在更高的粒度级别处并且以更便宜的计算开销来执行。

图7描绘了其中图像编辑系统108中的图像文档702被转换成输出图像文件704的示例实现700。图像文档702包括未压缩数据,并且可以包括例如图1的非持久性存储装置118的图像数据120。图像文档702包括根据层(包括层706)分段的数据。每个层包括进一步被分段成多个通道的数据。层706至少包括第一通道708和第二通道710。每个通道包括进一步被分段成多个块的数据。第一通道708至少包括第一块712和第二块714。第二通道710至少包括第三块716和第四块718。

图像文档702可以例如由图2的压缩模块216转换成输出图像文件704。输出图像文件704是复合表示,并且是包括多个个体分量的容器。复合表示是多个文件的组合,包括多个分量文件(例如,分量1,...,分量n)和清单文件。清单文件标识在复合表示中包括的分量文件中的每一个。可以以不同的方式(诸如通过在清单文件中包括分量文件中的每一个的文件名称)标识分量文件。

与图像文档702的层706的第一通道708的第一块712相对应的数据被转换成输出图像文件704的第一分量720。与图像文档702的层706的第一通道708的第二块714相对应的数据被转换成输出图像文件704的第二分量722。与图像文档702的层706的第二信道710的第三块716相对应的数据转换成输出图像文件704的第三分量724。与图像文档702的层706的第二通道710的第四块718相对应的数据被转换成输出图像文件704的第四分量726。分量720-726可以各自被分离地压缩、编码和/或加密。以这种方式,输出图像文件变成包括与对应的数字图像文档中的层的通道的块相对应的多个分离的分量的复合表示。通过分离地压缩每个分量,对一个分量的改变不会影响任意其他分量的压缩或数据。这允许经压缩分量之间的数据比较以与传统技术相比在更高的粒度级别处并且以更便宜的计算开销来执行。

应当理解的是,可以利用图像文档702的任意合适的分段来形成输出图像文件704的各种分量。例如,输出图像文件704的分量可以被创建为对应于比图示的块712-718的范围更大或更小的范围。在一些实现中,输出图像文件704的各种分量在范围上不一致。例如,第一分量720可以包括与图像文档的特定层的特定通道的特定块相对应的数据,而第二分量722可以包括与图像文档的多个不同层相对应的数据。以这种方式,分量可以被创建,诸如通过将大的层分成多个更小的分量、通过将多个小层组合成单个更大的分量等等以保持相对一致的大小。

示例过程

以下讨论描述了可以利用先前描述的系统和设备来实现的技术。该过程的方面可以用硬件、固件、软件或其组合来实现。该过程被示出为指定由一个或多个设备执行的操作的块集合,并且不一定限于所示的用于执行相应块的操作的顺序。在以下讨论的部分中,将参考图1-7。

图8描绘了基于分量的数字图像同步的示例实现中的过程800。数字图像文件的本地实例存储在非持久性存储装置中。与数字图像文件的本地实例相对应的数字图像文档在非持久性存储装置内被编辑(框802)。这可能涉及例如在数字图像编辑应用(例如,adobephotoshoptm)中打开的作为数字图像文档的数字图像文件(诸如jpeg、tiff、psd等)。数字图像编辑应用可以是例如图1的图像编辑系统108。如关于图2所描述的,这可以发起图像处理流水线的执行,包括例如将与数字图像文件相关联的数据解压缩到非持久性存储装置中,接收用户输入以编辑数字图像文档,并根据用户输入来更改非持久性存储装置中的数字图像文档。

生成引用已被编辑的数字图像文档的一部分的指示符(框804)。该指示符可以例如由图1的图像编辑系统108生成。这可以涉及针对如关于图3所描述的解压缩数据的个体层、信道和块中的变化来监视非持久性存储装置。在确定已经对解压缩数据进行改变时,解压缩数据的特定部分被识别为包含改变,并且引用特定部分的指示符被生成。

接收输入以发起数字图像文档的存储(框806)。例如,这可以是接收的用于发起图像编辑系统108内的“保存”的功能的显式的用户输入。在其它实现中,输入可以是引起数据被自动周期性地保存或存储的“自动保存”功能。

为了存储数字图像文档,数字图像文档的部分被压缩成复合数字图像文件的分离的分量。例如,数字图像文档的每个层、通道或块可以被分离地压缩成表示数字图像文档的复合数字图像文件的个体分量。由指示符指示的解压缩数据的特定部分被压缩成数字图像文件的分量(框808)。特定部分可以被压缩成个体分量,或者可以与其他部分组合并被压缩成更大的分量。例如,特定部分可以是数字图像文档的通道的块,而该分量可以包括与数字图像文档的整个相关联通道相对应的数据。

形成包括压缩的分量的通信(框810)。该通信被配置为引起与数字图像文件的远程存储实例的同步。通信可以例如经由网络106被发送到外部同步系统104。通信包括与数字图像文档的编辑部分相对应的压缩分量,但是不包含不对应于数字图像文档的任意编辑部分的任意分量。因此,通信被配置为引起更改分量的同步,并且不引起未更改分量的同步。以这种方式,只有更改分量被传送到外部同步系统104,减小了通信的大小,从而保留了带宽。

形成通信可以包括确定哪些分量与指示符相关联。例如,图1的同步模块122除了接收数字图像文件的每个压缩分量之外,还可以接收数字图像文档的更改部分的一个或多个指示符。然而,不是每个经压缩分量对应于已经被更改的图像数据的部分。因此,一个或多个指示符与特定经压缩分量相关。通过这种相关性,可以标识更改分量,而不需要分量的直接比较。这提高了操作效率,并节省了计算设备102的计算、存储器和电池资源。

图9描绘了基于分量的数字图像同步的示例实现中的进程900。数字图像文件的本地实例由图像编辑应用更改(框902)。图像编辑应用可以是例如图1的图像编辑系统108。如关于图2所描述的,这可以发起图像处理流水线的执行,包括例如将与数字图像文件相关联的数据解压缩到非持久性存储装置中,接收用户输入以编辑数字图像文档,以及根据用户输入来更改非持久性存储装置中的数字图像文档。

经编辑图像文件被存储为包括多个压缩分量的复合表示(框904)。为了存储数字图像文档,数字图像文档的部分被压缩成复合数字图像文件的分离的分量。例如,数字图像文档的每个层、通道或块可以分离地压缩成表示数字图像文档的相关联的复合数字图像文件的个体分量。

至少一个经压缩分量被标识为对应于数字图像文档的编辑部分(框906)。这可以包括接收标识数字图像文档的特定部分的指示符。该指示符可以从图1的图像编辑系统108接收,并且例如可以如关于图4的框804所描述的那样生成。然而,可以使用任何合适的方法来标识数字图像文档的编辑部分,诸如通过将多个压缩的分量与原始输入数字图像文件的相应部分进行比较。在这样的示例中,包括与输入数字图像文件的相应部分不匹配的部分的任意分量被标识为被更改分量。

形成包括所识别的更改分量的通信(框908)。该通信被配置为引起与数字图像文件的远程存储实例的同步。通信可以例如经由网络106被发送到外部同步系统104。通信可以包括所标识的更改分量,但是不包含不对应于数字图像文档的任意编辑的部分的任意分量。因此,通信被配置为引起更改分量的同步,并且不引起未更改分量的同步。以这种方式,只有更改分量被传送到外部同步系统104,减小了通信的大小,从而保留了带宽。

图10描绘了基于分量的数字图像同步的示例实现中的过程1000。数字图像文件的本地实例由图像编辑应用更改(框1002)。图像编辑应用可以是例如图1的图像编辑系统108。如关于图2所描述的,这可以发起图像处理流水线的执行,包括例如将与数字图像文件相关联的数据解压缩成在非持久性存储中的数字图像文档,接收用户输入以编辑数字图像文档,并且根据用户输入来更改非持久性存储装置中的解压缩数据。

编辑的数字图像文档的多个部分被压缩成数字图像文件的多个单独的分量文件(框1004)。例如,数字图像文档的每个层、通道或者块可以被分离地压缩成数字图像文件的个体分量。编辑的图像被存储为包含多个个体分量文件的复合数字图像文件(框1006)。复合表示是多个文件的组合,包括多个分量文件(例如,分量1,...,分量n)和清单文件。清单文件标识在复合表示中包括的分量文件中的每一个。可以以不同的方式标识分量文件,诸如通过在清单文件中包括每个分量文件的文件名称。例如,多个分量文件和清单文件可以被存储在通常被认为是单个“文件”的容器中,并且可以被格式化为使得它被计算设备102的操作系统共同地视为单个文件。

已经讨论了一些示例过程,现在考虑根据一个或多个实现的对示例系统和设备的讨论。

示例系统和设备

图11图示了一般在1100处的示例系统,其包括示例计算设备1102,该示例计算设备1102代表可以实现本文描述的各种技术的一个或多个计算系统和/或设备。这通过包括图像编辑系统108和同步模块122来说明。计算设备1102可以是例如服务提供商的服务器、与客户端相关联的设备(例如客户端设备)、片上系统、和/或任意其他合适的计算设备或计算系统。

所图示的示例计算设备1102包括彼此通信地耦合的处理系统1104、一个或多个计算机可读介质1106、以及一个或多个i/o接口1108。虽然未示出,但是计算设备1102还可以包括系统总线或将各种组件彼此耦合的其他数据和命令传输系统。系统总线可以包括不同总线结构中的任意一个或组合,诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线体系结构中的任一个的处理器或本地总线。也设想了各种其他示例,例如控制和数据线。

处理系统1104代表使用硬件来执行一个或多个操作的功能。因此,处理系统1104被图示为包括可以被配置为处理器、功能块等的硬件元件1110。这可以包括在硬件中作为专用集成电路或使用一个或多个半导体形成的其他逻辑器件的实现。硬件元件1110不受形成其的材料或其中采用的处理机构的限制。例如,处理器可以包括半导体和/或晶体管(例如电子集成电路(ic))。在这种上下文中,处理器可执行指令可以是电子可执行指令。

计算机可读存储介质1106被图示为包括存储器/存储装置1112。存储器/存储装置1112表示与一个或多个计算机可读介质相关联的存储器/存储装置容量。存储器/存储装置组件1112可以包括易失性介质(诸如随机存取存储器(ram))和/或非易失性介质(诸如只读存储器(rom)、闪存、光盘、磁盘等)。存储器/存储装置组件1112可以包括固定介质(例如,ram、rom、固定硬盘驱动器等)以及可移动介质(例如,闪存、可移动硬盘驱动器、光盘等等)。计算机可读介质1106可以以下面进一步描述的各种其他方式来配置。

输入/输出接口1108代表允许用户向计算设备1102输入命令和信息、并且还允许使用各种输入设备/输出设备将信息呈现给用户和/或其他组件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如鼠标)、麦克风、扫描仪、触摸功能(例如,电容或被配置为检测物理触摸的其他传感器)、相机(例如其采用的可见或不可见波长(诸如红外频率)来将移动识别为不涉及触摸的手势)等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备等等。因此,计算设备1102可以以如下面进一步描述的各种方式配置,以支持用户交互。

本文可以在软件、硬件元件或程序模块的一般上下文中描述各种技术。通常,这样的模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元素、分量、数据结构等等。本文使用的术语“模块”、“功能”和“分量”通常表示软件、固件、硬件或其组合。本文描述的技术的特征是独立于平台的,意味着可以在具有各种处理器的各种商业计算平台上实现这些技术。

所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或者跨某种形式的计算机可读介质来传输。计算机可读介质可以包括可以被计算设备1102访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质“。

“计算机可读存储介质”可以指的是与单纯的信号传输、载波或信号本身相反的能够实现信息的持久和/或非暂时性存储的介质和/或设备。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括以适合于存储诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据等信息的方法或技术实现的诸如易失性和非易失性、可移除和不可移除介质和/或存储设备的硬件。计算机可读存储介质的示例可以包括但不限于ram、rom、eeprom、闪存或其它存储器技术、cd-rom、数字多功能盘(dvd)或其他光存储装置、硬盘、磁带盒、磁带、磁盘存储器或其他磁存储设备或其他存储设备、有形介质或适于存储所需信息并可由计算机访问的制品。

“计算机可读信号介质”可以指被配置为诸如经由网络将指令发送到计算设备1102的硬件的信号承载介质。信号介质通常可以实施诸如载波、数据信号或其他传输机制的调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据。信号介质也包括任意信息传递介质。术语“调制数据信号”是指具有以将信息编码到信号中的方式设置或改变的一个或多个其特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质、以及诸如声学、rf、红外线和其它无线介质的无线介质。

如前所述,硬件元件1110和计算机可读介质1106代表以硬件形式实现的模块、可编程设备逻辑和/或固定设备逻辑,其可以在一些实施例中用于实现本文描述的技术的至少一些方面,诸如执行一个或多个指令。硬件可以包括集成电路或片上系统、专用集成电路(asic)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)以及以硅或其他硬件的其他实现的组件。在这种上下文中,硬件可以作为执行由硬件实施的指令和/或逻辑定义的程序任务的处理设备以及用于存储用于执行的指令的硬件(例如之前描述的计算机可读存储介质)来操作。

前述的组合也可以被采用以实现本文所述的各种技术。因此,可以将软件、硬件或可执行模块实现为在某种形式的计算机可读存储介质上和/或通过一个或多个硬件元件1110实施的一个或多个指令和/或逻辑。计算设备1102可以被配置为实现对应于软件和/或硬件模块的特定指令和/或功能。因此,例如通过计算机可读存储介质和/或处理系统1104的硬件元件1110的使用,可以至少部分地以硬件实现可由计算设备1102执行的作为软件的模块的实现。指令和/或功能可以由一个或多个制品(例如,一个或多个计算设备1102和/或处理系统1104)执行/操作以实现本文描述的技术、模块和示例。

本文描述的技术可以由计算设备1102的各种配置来支持,并且不限于本文描述的技术的具体示例。这个功能还可以全部或部分地通过分布式系统的使用诸如通过如下所述的平台1116在“云”1114上实现。

云1114包括和/或代表用于资源1118的平台1116。平台1116抽象云1114的硬件(例如,服务器)和软件资源的底层功能。资源1118可以包括可以在计算机处理在远离计算设备1102的服务器上执行时被利用的应用和/或数据。资源1118还可以包括通过因特网和/或通过诸如蜂窝或wi-fi网络的订户网络提供的服务。

平台1116可以抽象资源和功能以将计算设备1102与其他计算设备连接。平台1116还可以用于抽象资源的缩放以向针对资源1118遇到的需求提供对应的缩放级别,该资源1118是经由平台1116实现的。因此,在互连的设备实施例中,本文描述的功能的实现可以分布在整个系统1100。例如,功能可以部分地在计算设备1102上以及经由抽象云1114的功能的平台1116来实现。

结论

尽管已经用结构特征和/或方法动作专用的语言描述了本发明,但是应该理解,在所附权利要求中限定的本发明不一定限于所描述的具体特征或动作。相反,具体特征和动作被公开为实现要求保护的发明的示例形式。

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