CN110489057A - 键值固态驱动器和操作键值固态驱动器的方法 - Google Patents

键值固态驱动器和操作键值固态驱动器的方法 Download PDF

Info

Publication number
CN110489057A
CN110489057A CN201910384537.5A CN201910384537A CN110489057A CN 110489057 A CN110489057 A CN 110489057A CN 201910384537 A CN201910384537 A CN 201910384537A CN 110489057 A CN110489057 A CN 110489057A
Authority
CN
China
Prior art keywords
dimension
image
value
key
container
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910384537.5A
Other languages
English (en)
Inventor
大卫·施瓦德尔
颂蓬·保罗·奥莱瑞兹
詹森·马蒂诺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN110489057A publication Critical patent/CN110489057A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/797Processing of colour television signals in connection with recording for recording the signal in a plurality of channels, the bandwidth of each channel being less than the bandwidth of the signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/907Television signal recording using static stores, e.g. storage tubes or semiconductor memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Studio Circuits (AREA)
  • Image Processing (AREA)
  • Processing Or Creating Images (AREA)

Abstract

公开一种键值固态驱动器(KV‑SSD)和操作键值固态驱动器的方法。所述KV‑SSD可包括数据结构,所述数据结构包括由应用程序使用的多个图像值。所述数据结构可包括:多个第一维度容器,用于根据第一维度组织数据。所述多个第一维度容器中的每个可包括:至少一个值,以分辨率和色度子采样率存储图像对象的图像数据。

Description

键值固态驱动器和操作键值固态驱动器的方法
本申请要求于2018年5月15日提交的第62/672,043号美国临时专利申请和于2018年8月6日提交的第16/056,515号美国专利申请的权益,所述专利申请出于所有目的通过引用包含于此。
技术领域
本发明构思涉及存储装置,更具体地讲,涉及将色度子采样的图像文件存储在键值固态驱动器(KV-SSD)中。
背景技术
计算系统越来越多地存储用于各种应用的图像。这样的图像消耗大量存储。由于各种应用出于不同的目的访问图像,因此,存储系统以各种分辨率存储图像,使存储管理过程和应用开发/处理复杂化。
色度子采样是一种用于对视觉信息进行编码的机制,该机制利用偏爱图像亮度(明度)信息超过颜色(色度)信息的人类视觉特性。具体地讲,为了执行色度子采样,需要将图像亮度(黑白图像)信息与色度(颜色)信息分离,在此分离之后,可仅使用特定颜色或亮度子样本来存储图像,以减小图像存储大小。
传统系统将文件管理留给使用图像文件的每个应用。这种方法可导致同一文件的多个副本以相同的分辨率和相同的色度子采样率存储在存储装置上(在由不同的应用选择的不同位置中)。此外,这种处理可导致生成相关的(因为它们源自于相同的原始图像)但仅在分辨率或色度子采样方法上不同的许多图像。这种方法也可使应用难以定位特定的图像文件:假设应用花费时间搜索期望的分辨率/色度子采样率的文件的任何潜在存在的副本,应用可能必须扫描整个文件系统来定位具有期望的分辨率/色度子采样率的文件。
仍然需要一种改进跨应用的包括色度子采样信息的图像文件的管理的方法。
发明内容
本公开的示例实施例可提供用于针对图像检索提高处理速度并缩短响应时间的KV-SSD及其操作方法。
示例实施例提供一种可包括数据结构的KV-SSD。数据结构可被存储在KV-SSD上,并包括由应用程序使用的多个图像值。所述数据结构可包括:多个第一维度容器、存储图像数据的至少一个图像值。所述多个第一维度容器可根据第一维度组织图像对象中的数据。在所述多个第一维度容器中的每个内,所述至少一个图像值可以以分辨率和色度子采样方案存储图像对象的图像数据。
另一实施例提供一种KV-SSD,所述KV-SSD可包括:第一数据结构、第二数据结构、第三数据结构。第一数据结构可被存储在所述KV-SSD上,并且存储第二键并根据第一维度组织图像对象的值。第一数据结构可通过所述KV-SSD与第一键相关联。第二数据结构(710-1、710-2、710-3)可被存储在所述KV-SSD上,存储第三键,并根据第二维度组织图像对象的值。第二数据结构(710-1、710-2、710-3)可通过所述KV-SSD与第二键相关联。第三数据结构可被存储在所述KV-SSD上,并存储由应用程序使用的图像值。第三数据结构可通过所述KV-SSD与第三键相关联。图像对象可至少使用分辨率和色度子采样方案存储图像的图像数据。
另一示例实施例提供一种方法,所述方法可包括:在键值固态驱动器(KV-SSD)从应用程序接收信息;使用所述信息中的容器尝试辨识在KV-SSD上的图像对象中的包含至少一个图像值的维度容器,所述至少一个图像值存储使用色度子采样的分辨率的图像,维度容器根据第一维度(315、310、305)存储图像对象中的数据的子集;使用所述信息中的键来辨识KV-SSD(120)上的图像对象中的所述至少一个图像值中的期望值;以及如果期望值被存储在KV-SSD上的图像对象中,则:从KV-SSD上的图像对象检索期望值;并且将期望值从KV-SSD返回到应用程序。图像对象包括:多个维度容器,用于根据第一维度组织所述至少一个图像值。图像对象不被返回到应用程序。
本公开的有益效果
本发明可在图像对象中查找期望的图像文件,而不必搜索所有的存储来查找图像文件。因此,根据本发明的实施例,应用程序的处理负荷可被减小,并且存储装置的存储空间可被节省。
附图说明
图1示出根据本发明构思的实施例的支持键值固态驱动器(KV-SSD)中的色度子采样图像值的集中存储的机器。
图2示出图1的机器的附加细节。
图3示出可在本发明构思的实施例中使用的包括分辨率和色度子采样率的各种维度。
图4至图7示出根据本发明构思的实施例的可在图像对象中组织图像值的各种方法。
图8示出向图1的KV-SSD中的图4至图7的图像对象请求图像数据并接收结果的应用程序。
图9至图11示出根据本发明构思的实施例的可在图4至图7的图像对象中组织图4至图7的图像值的其他方式。
图12示出图1的KV-SSD的细节。
图13A至图13B示出根据本发明构思的实施例的图1的KV-SSD响应针对图1的KV-SSD中的图4至图5和图9的图像对象中的图像数据的请求的示例过程的流程图。
图14示出根据本发明构思的实施例的图1的KV-SSD将新图像值存储在图4至图5和图9的图像对象中的示例过程的流程图。
图15示出根据本发明构思的实施例的图1的KV-SSD将新图像值存储在图4至图5和图9的图像对象中的示例过程的流程图。
图16A至图16B示出根据本发明构思的实施例的图1的KV-SSD响应针对图1的KV-SSD中的图6和图10的图像对象中的图像数据的请求的示例过程的流程图。
图17示出根据本发明构思的实施例的图1的KV-SSD将新图像值存储在图6和图10的图像对象中的示例过程的流程图。
图18A至图18B示出根据本发明构思的实施例的图1的应用程序向图1的KV-SSD请求图7和图11的图像对象中的图像数据的示例过程的流程图。
图19示出根据本发明构思的实施例的图1的应用程序更新图7的数据结构以将新图像值存储在图1的KV-SSD中的图7和图11的图像对象中的示例过程的流程图。
具体实施方式
现在将详细参考本发明构思的实施例,其中,本发明构思的示例在附图中示出。在下面的具体实施方式中,阐述大量具体细节以能够透彻理解本发明构思。然而,本领域的普通技术人员应理解,可在没有这些具体细节的情况下实践本发明构思。在其他实例中,公知的方法、过程、组件、电路和网络未被详细描述,以免不必要地使实施例的方面模糊。
将理解,尽管在此可使用术语第一、第二等来描述各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于将一个元件与另一元件区分开来。例如,在不脱离本发明构思的范围的情况下,第一模块可被称为第二模块,并且类似地,第二模块可被称为第一模块。
这里,在本发明构思的描述中使用的术语仅用于描述特定实施例的目的,并不意在限制本发明构思。除非上下文明确另有指示,否则如在本发明构思的描述和所附权利要求中所使用的,单数形式也意在包括复数形式。还将理解,如在此所使用的术语“和/或”表示并包含相关所列项中的一个或多个的任意和所有可能的组合。还将理解,当在本说明书中使用术语“包括”和/或“包含”时,指定存在叙述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。附图的组件和特征不必按比例绘制。
尽管人脑不需要编程(除了经验之外)来处理图像数据,但是使用计算机存储和操纵图像数据可能是一个复杂的处理。图像中包括的细节(诸如,图像格式中支持的颜色的数量)越多,图像文件可变得越大越复杂。
早期图像文件格式以相对简单的格式存储图像。例如,每个像素可被单独地表示,存储像素中的红色信号、绿色信号和蓝色信号的强度的值。但是,即使针对每种颜色使用相对少量的每像素位数也可导致大的图像文件。例如,640×480像素的图像总共包含307,200个像素。如果8位(一个字节)用于存储每个像素的颜色信息,则该图像需要307,200字节的存储。将每像素位数增加到24(针对红色、绿色和蓝色的每个值的8位),图像需要大约1MB的存储。如果每种颜色的每像素位数增加,或图像的大小增加,则空间需求进一步增大。
其他图像文件格式可通过以各种方式“欺骗”来改善这些存储需求。例如,YUV编码利用了人眼对亮度(明度)比对颜色更敏感的事实,并且可存储比原始图像中的所有事物少的颜色信息。因此,虽然亮度(Y)可被完全存储,但是色度数据(U和V)可以以各种方式被采样,使得当图像被人眼看到时,大脑不会注意到丢失的数据,或者毫不困难地容忍缺少丢失的数据。
存在产生类似的结果的若干色度分离方法。尽管本发明构思的实施例集中于称为YCbCr的色度分离方法,但是其他色度分离方法也是类似的并且也可被使用。
为了将RGB图像的像素转换为YCbCr图像像素,每个像素的Y分量值表示像素的亮度分量,Cb值和Cr值表示色度分量。例如,如果ER、EB和EG是分别表示像素中存在多少红色、绿色和蓝色的在0与1之间的模拟值,则下面的等式可用于将RGB值转换为YCbCr值:
EY=0.299·ER+0.587·EG+0.114·EB
ECb=–0.169·ER–0.331·EG+0.500·EB
ECr=0.500·ER–0.419·EG–0.081·EB
总的来说,转换的像素值表示使随后的色度子采样压缩方法能够提供不同的压缩结果的另一种格式的图像内容。一些常见的色度子采样方法包括算法上丢弃在指定像素位置的色度值的被称为4:0:0、4:2:0、4:2:2等的方法。更一般地说,子采样策略可被称为4:N:M,其中,N和M通常具有相同的值并从集合{0,2,4}得到;然而,本发明构思的实施例可支持具有不同值并且具有除了仅0、2或4之外的值的N和M。随后使用压缩的图像的应用简单地替换它们位置中的剩余的色度值。同时,图像在被存储在存储装置上时享受色度子采样压缩。
实际上,不同的应用具有变化的图像分辨率和色度信息要求。因此,可使用各种色度子采样方案和分辨率将相同的图像存储为多个YUV格式图像。
传统的解决方案没有组织这些YUV格式图像的存储。应用可随意将图像存储在它们期望的任何地方,而不需要与其他应用协调或共享信息。结果,尽管图像可被存储在方便的地方,但是使用相同的色度子采样方案和相同的分辨率的同一图像可被不同的应用存储多次,或者应用可能无法定位使用特定的色度子采样方案和分辨率的特定图像。此外,应用使用的这种多样性可导致生成相关的(因为它们源自于相同的原始图像)但仅在分辨率或色度子采样方法上不同的许多图像。除了定位特定图像文件的困难以及相同图像的冗余存储的可能性之外,由于即使图像文件已被存储在存储装置上,应用也可能无法定位(或以另外了解)它们需要的图像文件,因此它们可遭受与生成它们需要的图像文件相关联的延迟。
将与色度子样本信息相关联的所有生成的分辨率存储在单个图像对象内简化存储、加速应用开发和后续应用处理。实现这个好处的一种方式是通过在存储对象中使用层级表或容器来组织各种图像值。
当对象包含多种图像分辨率和/或色度子采样方案时,随后访问对象的应用在应用需要重新调整图像大小时享受自然应用处理加速。这个好处是因为对象中的各种图像值可具有包含较少的需要重新调整大小、重新采样或另外重新处理的图像数据的减小大小的图像。因此,应用可选择对象内最合适的重新调整大小的图像作为应用输入。也就是说,如果可找到具有与期望的结果更接近的分辨率和/或色度子采样的预先存在的图像,则生成新图像的应用不需要总使用用户指定的基本图像。作为结果的减少的处理活动加速了应用,减少响应时间以及降低基础设施设备资金、电力和冷却成本。
在图1中,示出机器105。机器105可包括处理器110。处理器110可以是任何种类的处理器:例如,Intel Xeon、Celeron、Itanium或Atom处理器、AMD Opteron处理器、ARM处理器等。虽然图1示出机器105中的单个处理器110,但是机器105可包括任何数量的处理器,其中,任何数量的处理器中的每个处理器可以是单核处理器或多核处理器,并且任何数量的处理器可以以任何期望的组合进行混合。处理器110可运行装置驱动器115,其中,装置驱动器115可支持对被示出作为键值固态驱动器(KV-SSD)的存储装置120的访问:不同的装置驱动器可支持对机器105的其他组件的访问。KV-SSD 120使用键值接口来访问数据:应用或操作系统可向KV-SSD 120提供键,其中,KV-SSD 120然后可将键映射到KV-SSD 120上的位置。然后,KV-SSD 120可访问并返回存储在KV-SSD 120上的该位置的值。与由传统存储装置上的传统文件系统提供的复杂命令集不同,KV-SSD 120通常提供相当小的命令集,诸如:GET(用于检索与提供的键相关联的值)、PUT(用于将提供的值存储在KV-SSD上,与提供的键相关联或与可返回的KV-SSD生成的键相关联)和ERASE(用于从KV-SSD删除与提供的键相关联的值,并从KV-SSD表去除键值关联),(KV-SSD 120也可支持其他命令,并且可使用与所示命令名称不同的命令名称,但原理通常如所描述的那样)。KV-SSD 120还可用支持如下面的本发明的实施例中描述的对象存储的任何其他存储装置代替。处理器110还可运行应用程序125,其中,应用程序125可处理使用色度子采样技术存储的图像数据。
机器105还可包括存储器控制器130,其中,存储器控制器130可用于管理对主存储器135的访问。存储器135可以是任何种类的存储器,诸如,闪存、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、持久随机存取存储器、铁电随机存取存储器(FRAM)或非易失性随机存取存储器(NVRAM)(诸如,磁阻随机存取存储器(MRAM)等)。存储器135也可以是不同的存储器类型的任何期望的组合。
虽然图1将机器105描绘为服务器(可以是独立服务器或机架服务器),但是本发明构思的实施例可包括任何期望类型的机器105而没有限制。例如,机器105可使用台式计算机或膝上型计算机或可受益于本发明构思的实施例的任何其他机器来代替。机器105还可包括专用的便携式计算机器、平板计算机、智能电话和其他计算机器。此外,虽然图1将机器105示出为包括KV-SSD 120和应用程序125二者,但是本发明构思的实施例可在单独的机器中具有这些组件:例如,KV-SSD 120可被安装在经由遍历一个或多个任何类型(有线、无线、全球等)的网络的网络连接连接到机器105(和应用程序125)的服务器上。
图2示出图1的机器的附加细节。在图2中,典型地,机器105包括一个或多个处理器110,其中,一个或多个处理器110可包括可用于协调机器105的组件的操作的时钟205和存储器控制器130。处理器110还可连接到存储器135,其中,作为示例,存储器135可包括随机存取存储器(RAM)、只读存储器(ROM)或其他状态保存介质。处理器110还可连接到存储装置120,并连接到网络连接器210,其中,网络连接器210可以是例如以太网连接器或无线连接器。处理器110还可连接到总线215,其中,总线215可附连到其他组件之中的可使用输入/输出引擎225管理的输入/输出接口端口和用户接口220。
图3示出包括可在本发明构思的实施例中使用的分辨率和色度子采样率的各种维度。回想一下,色度子采样方案可被表示为4:N:M,其中,N和M通常是(但不一定总是)0、2或4。通常,N和M的值反映图像的水平方向和垂直方向上的相对色度分辨率。因此,例如,色度子采样方案4:0:0表示没有颜色数据的黑白图像,而色度子采样方案4:4:4表示全彩色图像(具有从每个像素获取的颜色数据)。
在图3中,三维(分辨率,N,M)空间由具有变化的分辨率和色度子样本策略的可能转码的图像的网格(lattice)组成。虽然分辨率(沿着轴305)通常以离散水平(诸如,25%、50%和100%)来表示,但分辨率维度是具有任何可能值的分辨率连续体(resolutioncontinuum)。另一方面,色度子样本维度仅针对任何给定的分辨率提供离散的色度子采样方案。
此外,虽然图3将维度N(沿着轴310)和维度M(沿着轴315)示出为分离的维度,但是本发明构思的实施例可将这些维度组合成单个维度。也就是说,代替表示分离的维度的N和M,色度子采样方案的数量在数量上是有限的,并可被单独地列出。因此,例如,对于N和M的可接受值,单个维度可用于表示每个可能的色度子采样方案4:N:M。
在进入示出可用于存储图像数据的数据结构的本发明构思的实施例之前,初步的主题有助于理解。除了存储数据对象之外,KV-SSD还可存储容器。“容器”是功能地存储多个KV数据对象(或通过多个数据对象的键(key)链接到多个数据对象)的KV数据结构。实质上,容器可成为它自己的迷你KV存储,容纳键和相关联的数据,或者可选地仅容纳将指针(其他键)引用到其他地方的键的列表。从非严格意义上讲,容器执行针对KV-SSD的类似于文件系统存储装置中的文件夹(或目录)的功能:容器提供一种机制,通过该机制可将相关的KV对组合在一起。注意,由于KV-SSD中的数据对象是纯数据,而没有任何外部施加的结构、要求或格式,所以容器可存在于单独的数据对象内和/或可将多个数据对象组合在一起。
术语“容器”不意在将权利要求的范围仅限于“容器”。术语“容器”意在包含可用于组织存储在图像对象405内的各种值和其他图像数据的任何数据结构。例如,如下面的图7中所示,表可用于组织图像值,其中,表由沿着一个维度的值索引,表中的条目指向沿着一个或多个附加维度组织数据的其他表或图像值。因此,例如,图像对象405可以可选地包括第一表,其中,第一表包含针对100%、50%和25%的分辨率的条目;这些条目可指向包括指向图像值410-1至410-6、415-1至415-6和420的指针的附加表。
图4至图11示出根据本发明构思的实施例的可在图像对象中组织图像值的各种方式。在图4中,图像对象405被示出,其中,图像对象405存储名为“MyCat”的图像的图像数据。使用作为第一维度的分辨率和作为第二维度的色度子采样方案来在图像对象405内组织图像值。因此,例如,容器425-1、425-2和425-3分别存储分辨率为100%、50%和25%的图像。
100%、50%和25%的分辨率表示原始图像的可能缩放的分辨率,并且可使用任何可选的标签来代替:例如,通过使用特定像素分辨率。因此,例如,如果原始图像包括640像素乘480像素(通常表示为“640×480”),则可使用“640×480”代替100%标签,可使用“320×240”代替50%标签,并且可使用“160×120”代替25%标签。
在每个第一维度容器内,附加容器可用于将数据存储在第二维度中。因此,例如,第一维度容器425-1和425-2均包括用于分别使用色度子采样方案4:0:0、4:2:2和4:4:4来存储图像的第二维度容器430-1、430-2和430-3,并且第一维度容器425-3包括用于使用色度子采样方案4:4:4存储图像的第二维度容器430-3。
在图4中存在值得注意的若干点。首先,注意,在图4中,第二维度容器430-1、430-2和430-3主要被示出为分别存储亮度和色度数据。例如,容器430-1存储亮度数据值410-1和色度数据值415-1,容器430-2存储亮度数据值410-2和色度数据值415-2等。这是可选的:亮度数据和色度数据不需要被分离。例如,第一维度容器425-3中的第二维度容器430-3通过以单个值存储整个图像,而不是将亮数据度和色度数据分离来存储图像值420。将亮度和色度数据分离具有优点:如果图1的应用程序125仅需要处理例如色度数据415-1,则亮度数据410-1不需要被检索。另一方面,如果图1的应用程序125想要整个图像,则亮度数据410-1和色度数据415-1二者被检索并被返回到图1的应用程序125。根据图1的应用程序125的期望,这可需要将亮度数据和色度数据重新组合成单个图像文件。
第二,注意,色度子采样方案4:0:0是消色差图像:图像不包括颜色数据。在这样的图像中,UV数据可能不存在(因为UV数据表示图像的颜色部分)。因此,因为色度数据值415-1和415-4没有存储数据,所以色度数据值415-1和415-4可不存在。为了描述的完整性,色度数据值415-1和415-4在图4中被表示出,并不是因为这些值必须存储在图像对象405中。
第三,由于亮度数据对于相同分辨率的所有图像是相同的,因此亮度数据值410-1、410-2和410-3是冗余的:实际上仅一个副本需要被存储。存在可消除亮度数据值410-1、410-2和410-3的冗余副本的许多方法。例如,亮度数据值可被直接存储在第一维度容器425-1内,而不是存储在第二维度容器430-1、430-2和430-3中的每个内。或者,使用存储指向亮度数据值的指针的第二维度容器430-2和430-3,亮度数据值可被存储一次(例如,在第二维度容器430-1内)。本发明构思的实施例可扩展到包括用于消除亮度数据的冗余副本的其他技术。
第四,虽然图像对象405被设计为优化色度图像值的存储和管理,但是没有理由图像对象405可不以其他格式存储相关图像数据值。例如,原始图像文件可能是640×480分辨率的RGB格式(或JPEG/JPG格式,或GIF格式,或任何其他格式,无论是有损还是无损):这个图像值也可被存储在图像对象405内。通过将原始图像值存储在图像对象405中,如果图1的应用程序125出于某种原因(与100%分辨率的4:4:4色度子采样方案相比)需要原始数据文件,则原始图像也可被容易地定位和检索。
第五,尽管图4示出针对100%和50%分辨率的图像的4:0:0、4:2:2和4:4:4子采样方案的色度数据,但是以25%分辨率(第一维度容器425-3)仅存储针对色度子采样方案4:4:4的图像数据。因此,不需要图像对象405包括每种可能的分辨率的每个可能的色度子采样方案。实际上,由于分辨率连续体可被认为基本上连续,因此要求或期望图像对象405存储每种可能的分辨率的针对每个可能的色度子采样方案的图像数据不仅不现实,而且很可能是不可行的。但是存储分辨率和色度子采样方案的所有可能组合的子集(根据图1的应用程序125使用或生成图像的需要)是完全现实和可行的。
按照推论,注意,当图1的应用程序125以新的分辨率和/或色度子采样方案生成图像数据时,图像对象405可增长。例如,假设图1的应用程序125需要使用色度子采样方案4:4:4来处理75%分辨率的图像数据。如从图4可知,还没有容器存在,以将该分辨率的数据存储在图像对象405中。当请求该分辨率的图像数据时,图1的应用程序125可获知不存在这样的图像数据。然后,在图1的应用程序125生成所需要的图像数据(将在下面讨论这如何发生)之后,针对75%分辨率,新的第一维度容器与嵌入的新的第二维度容器可被添加到图像对象405,其中,嵌入的新的第二维度容器用于存储针对色度子采样方案4:4:4的数据,由图1的应用程序125生成的一个或多个图像值可被存储在图像对象405中。当图1的应用程序125以现有分辨率而新的色度子采样方案生成新图像数据时,相同的原理适用;唯一的区别在于:这样的情况下不会添加新的第一维度容器(因为现有的第一维度容器表示生成的分辨率)。(当针对图像生成第一色度数据时,本构思甚至可扩展到创建图像对象405。)
在图1的应用程序125请求尚不以图像对象405存在的分辨率和色度子采样的组合的图像数据的情况下,图1的应用程序125将需要生成所需的图像数据。例如,在图像对象405中,不存在针对25%分辨率和色度子采样方案4:0:0的组合的图像数据。因此,如果图1的应用程序125需要这个分辨率和色度子采样方案的图像数据,则图1的应用程序125将需要生成这样的图像数据。
由于传统的应用程序可不假设所需的图像数据已经存在,并且传统的应用程序也不需要被修改为支持这样的数据生成,所以传统的应用程序已经能够实现这样的图像生成。但是,尽管图1的应用程序125可从原始图像数据(例如,可以是表示使用YCbCr编码的全色分辨率的图像数据的图像值410-3和415-3,或RGB图像值)开始生成,但是针对图1的应用程序125可足够以使用色度子采样方案4:0:0的50%分辨率的图像数据(即,图像值410-4和415-4)开始,并将它们缩小到25%分辨率将以被存储在第一维度容器425-3中(在针对色度子采样方案4:0:0的新的第二维度容器内)。可选地,图1的应用程序125可请求存储在第一维度容器425-3中的将处于正确的分辨率的任何图像值(诸如,图像值420),并且处理图像值以从该图像仅提取亮度数据,其中,该图像可被再次存储在第一维度容器425-3中(再次,在针对色度子采样方案4:0:0的新创建的第二维度容器内)。在这种方式下,当由图1的应用程序125(或者也对图像对象405进行操作的其他应用程序)生成新版本的图像时,图像对象405可增长,这需要较少的整体处理和数据移动。
当图1的应用程序125需要不是消色差的图像文件时,可采取类似的方法。图1的应用程序125可选择已经存在的适当的图像值并相应地修改它。例如,如果图1的应用程序125需要50%分辨率的图像的4:2:4子采样方案下的色度数据,则图1的应用程序125可以以色度值415-6(50%分辨率以及全4:4:4色度子采样)开始并适当地对数据进行采样以生成4:2:4子采样方案下的图像文件。然后,图1的应用程序125可将生成的图像值存储在第一维度容器425-2的新的第二维度容器中。
如上所述,在图4中示出一些冗余数据。具体地讲,针对给定分辨率的Y(亮度)数据不随着色度子采样方案而改变。换句话说,图像值410-1、410-2和410-3都是相同的值。在图4中,这样的冗余存在一个小的好处:给定的容器层级(诸如,维度容器425-1和430-1)可包括所有相关数据。但是,可通过将独立于色度子采样方案的数据存储在始终可找到它的地方(例如,在维度容器425-1中)或者通过仅存储数据一次并且包括从各个维度容器指向实际存储数据的位置的指针来消除这种冗余。例如,图像值425-1可以是真实数据,并且图像值425-2和425-3可以仅是指向图像值425-1的指针。本发明构思的其他实施例(诸如,图6至图7中示出的那些),提供对冗余数据的可能性的其他解决方案。
在图4中,首先沿着分辨率维度组织图像数据,然后沿着色度子采样维度组织图像数据。但是,本发明构思的实施例可以以其他方式组织图像数据。图5示出首先沿着色度子采样维度组织图像数据,然后沿着分辨率维度组织图像数据。
在图5中,分别针对色度子采样方案4:0:0、4:2:2和4:4:4示出第一维度容器430-1、430-2和430-3。在第一维度容器430-1、430-2和430-3中的每个内,第二维度容器425-1、425-2和425-3用于根据分辨率组织图像数据。与图4一样,图5中的图像对象405不必存储表示分辨率和色度子采样方案的每种组合的容器。因此,例如,第一维度容器430-1和430-2不包括仅存储在第一维度容器430-3内的第二维度容器425-3。这个组织反映图像对象405仅存储使用4:4:4色度子采样方案的25%的分辨率的图像数据。
在如图4至图5所示的本发明构思的实施例中(以及也在本发明构思的其他实施例中),图1的应用程序125可提供帮助图1的KV-SSD 120辨识特定图像值的键/容器来检索。例如,假设图像对象405包含针对名为“MyCat”的图像的图像值。图1的应用程序125可使用键“MyCat4:2:250Chroma”提供KV请求。图1的KV-SSD 120可将这个信息解析为一系列“内部”键/容器:“MyCat”(辨识图像数据对象405的键/容器),“4:2:2”(辨识期望的色度子采样方案的第一键/容器),“50”(辨识期望的分辨率的第二个键/容器)以及“Chroma”(针对期望的特定图像值的键)。使用该解析,图1的KV-SSD 120可例如定位图5的图像对象405(在本发明构思的一些实施例中,可被视为容器本身),然后定位图像对象405内的容器430-2,然后定位容器430-2内的容器425-2,最后定位容器425-2内的图像值415-5。注意,虽然这个示例将确定一条提供的信息在哪里结束而另一信息在哪里开始留给图1的KV-SSD 120,但是本发明构思的实施例可使用明确的字符来将提供的信息的多个部分分开。例如,如果“/”被认为是用于解析目的的特殊字符,并且没有出现在任何键或容器名称中,则图1的应用程序125可提供“MyCat/4:2:2/50/Chroma”来明确地指示如何解析提供的信息。
尽管提供的特定信息(以及如何解析特定信息)可依赖于所使用的本发明构思的实施例,但是图1的应用程序125还可提供在下面的图6至图7以及图9至图11中所示的本发明构思的实施例中那样的信息。例如,在上面的图4至图5中所示的本发明构思的实施例中,期望的分辨率和期望的色度子采样方案二者可以是用于隔离期望图像值的容器;在下面的图6中所示的本发明构思的实施例中,这些指示符之一可以是用于定位期望的图像值的键的部分。
在本发明构思的其他实施例中,图1的应用程序125可分别地提供键和容器信息,而不是期望图1的KV-SSD 120解析提供的信息。因此,继续上面的示例,为了访问50%分辨率和色度子采样方案4:2:2的文件“MyCat”的色度值,应用程序125可提供键“MyCatChroma”和容器“50/4:2:2(或“4:2:2/50”)(作为单独的输入)。通过将容器与键分离,KV-SSD 120可更高效地搜索期望的图像值(因为KV-SSD 120将不需要解析输入信息来试图辨识一个或多个容器)。
虽然图4至图5(以及下面的图6和图9至图10)示出图像对象405内所有的维度容器425-1、425-2、425-3、430-1、430-2和430-3,但是本发明构思的实施例可使用其他机制来组织图像数据。例如,第一维度容器425-1可包括全(100%)分辨率的所有图像数据(或者,可选地,特定像素分辨率(诸如,640×480)的所有图像数据);在第一维度容器425-1内,第二维度容器430-1可将使用4:0:0色度子采样方案的(100%分辨率的)所有图像值组合在一起。因此,为了图1的应用程序125检索使用色度子采样方案4:0:0的100%分辨率的图像数据(UV数据415-1),图1的应用程序125可指定期望的分辨率(100%)和期望的色度子采样方案(4:0:0)来辨识特定容器以搜索与特定键相关联的值。应该容易地清楚,图4至图5(以及下面的图6至图7和图9至图11)可如何被概括为使用容器425-1、425-2和425-3来存储所有图像的图像值,而不是仅存储被认为是图像对象405的部分的那些。
还值得注意的是,由于对容器强加的隔离,因此在本发明构思的一些实施例中,键可以是局部唯一而不是跨KV-SSD 120全局唯一。例如,再次考虑图4和图5,容器425-1、425-2、425-3、430-1、430-2和430-3组织图像对象405内的图像值。考虑到特定图像对象405和隔离特定的期望的图像值的容器的特定集合,用于检索图像值的键可被减少为仅“Luma(色度)”或“Chroma(亮度)”。例如,在图4中,如果图1的应用程序125指定图像对象405和容器425-1和430-1,则应用程序已经将图像值的集合减少为仅图像值410-1和415-1。通过提供键“亮度”或“色度”,KV-SSD 120可在这两个图像值之间进行选择。注意,相同的键(“亮度”或“色度”)可区分在其他第二维度容器430-2和430-3中的每个中的多个文件。因此,键本身仅在容器430-1内局部唯一,并且不是跨图1的KV-SSD 120全局唯一,或者甚至在图像对象405内唯一:但是由于容器层级防止键冲突,所以图1的KV-SSD 120可仍然返回期望的图像值。
图6示出本发明构思的另一实施例。在图6中,如图4中那样,首先沿着分辨率维度组织图像数据。但是,键可用于辨识期望的特定图像值,而不是在第一维度容器425-1、425-2和425-3内组织数据。因此,第一维度容器425-1直接包含图像值410-1、410-2、410-3、415-1、415-2和415-3,而不是间接地(如图4中那样,通过第二维度容器430-1、430-2和430-3)包含图像值410-1、410-2、410-3、415-1、415-2和415-3。为了选择特定图像值(诸如,针对100%分辨率的图像的亮度数据),图1的应用程序125可指定第一维度容器425-1以及从第一维度容器425-1唯一地辨识期望值的键。
例如,为了选择针对100%分辨率的名为“MyCat”的图像的亮度数据,图1的应用程序125可提供信息“100MyCatLuma”(“MyCat100Luma”,或任何其他期望的顺序的期望的图像值键和容器信息:只要图1的KV-SSD 120可解析信息,特定顺序就可无关紧要)。如链接605所示,这个信息唯一地辨识期望的图像值。以类似的方式,提供信息“50MyCat4:4:4Chroma”将唯一地辨识针对50%分辨率的图像“MyCat”的全色度子采样数据。注意,通过改变图像的名称(例如,改变为“MyDog”)将检索使用相同的维度容器层级的相同类型但针对不同图像的数据。
当图6被所示组织时,存在隐含的附加级别的层级:图像对象405本身。也就是说,容器425-1、425-2和425-3对于图1的KV-SSD 120的整体不是全局的,但是是图像对象405的“部分”—实质上,图像对象405可被构造为容器本身。在那个意义上,容器425-1、425-2和425-3特定于图像对象405,并且在不同的图像对象中的具有相同标签的任何容器可被认为是不同的容器。由于图像数据会首先由图像对象组织,然后由维度容器组织,因此即使具有(在不同的图像对象中)相同地标记的不同容器,各个图像值仍被唯一地辨识。在本发明构思的其他实施例中,图6可被组织,使得容器425-1、425-2和425-3处于最高级别(高于任何单独的图像对象)。这样的组织减少了图1的KV-SSD 120上的容器(它们本身是数据对象)的数量,然而,键将需要指定图像对象405以对在可表示相同的分辨率和/或色度子采样方案的相同的容器中但针对不同图像的图像值进行区分。
还可以将图像数据存储在图1的KV-SSD 120上,而不使用任何“容器”。术语“容器”被引用,因为可仍然存在组织图像值的数据结构,但是在图7中,图1的应用程序125可负责检索这个数据结构,访问它的数据,以及向图1的KV-SSD 120作出附加请求,而不是图1的KV-SSD 120处理指定期望的图像值和组织期望的图像值的任何层级结构二者的信息。(如果图1的KV-SSD 120负责接收层级信息以及期望的图像值的键,则图7可被认为展示图4至图6中所示的容器的结构,但是实施方式与图4至图6中所示的本发明构思的实施例保持不变。)
在图7中,图1的应用程序125可向表示图像数据的所有存储的变型的图像对象提供键,而不管分辨率或色度子采样方案如何。这个键实际上不返回图像数据;代替,这个键访问存储表705的对象,其中,表705类似于图4的第一维度容器425-1:表705存储关于存储在KV-SSD 120上的图像的不同分辨率的信息。每个不同的分辨率与另一键相关联:例如,100%分辨率与key1相关联,50%分辨率与key2相关联,25%分辨率与key3相关联。
然后,图1的应用程序125可向KV-SSD 120提供与期望的分辨率相关联的键。例如,key1可辨识存储表710-1的对象,key2可辨识存储表710-2的对象,key3可辨识存储表710-3的对象。表710-1、表710-2和表710-3与图4的第二维度表430-1、第二维度表430-2和第二维度表430-3类似之处在于它们进一步缩小了可被期望的图像值的集合。然后,图1的应用程序125可使用检索到的表中的信息来选择期望的特定图像值。例如,如果图1的应用程序125期望存储针对100%分辨率的图像的亮度数据的图像值,则图1的应用程序125可向KV-SSD120提供key1,检索表710-1,定位key4,向KV-SSD 120提供key4给,并接收图像值410-1。
图7相对于本发明构思的其他实施例的优点和缺点应该是清楚的。在图1的应用程序125从图1的KV-SSD 120接收到表705、710-1、710-2和/或710-3的情况下,图1的应用程序125确切地知道什么图像值被存储在图1的KV-SSD 120上,因此,可避免请求当前未存储在图1的KV-SSD 120上的图像值。因此,图1的应用程序125不需要提及从图1的KV-SSD 120接收“无值”消息(下面参照图8所述)的可能性。
图7中所示的本发明构思的实施例的缺点在于:在最终接收到期望的图像值之前,图1的应用程序125可需要作出KV-SSD 120的多次读取请求。例如,执行如上所述的三个读取请求表示图1的应用程序125由于(由SSD存储装置执行以恢复擦除的数据块以供重复使用的)一个或多个垃圾回收操作而被延迟的可能性是三倍。根据KV-SSD 120的延迟、KV-SSD120可需要执行垃圾回收的时间以及图1的应用程序125被期望运行的速度,执行KV-SSD120的多个读取请求会不可接受地慢。
如上所述,上面的图5表示与图4中的信息相同的信息,但是使用图3的维度315、310和305以不同的顺序组织。虽然未示出图6至图7中所示的信息的可选的组织,但是本发明构思的实施例可扩展为包括图6至图7上的信息沿着各个维度315、310和305以不同的顺序组织的变型。
当图1的应用程序125需要图像文件时,图1的应用程序125显然可请求图4至图7的整个图像对象405,然后定位相关的图像值。但是该方法需要发送图1的应用程序125根本不需要的大量的数据。例如,如果图1的应用程序125仅对针对使用色度子采样方案4:2:2的50%分辨率的图像的色度数据感兴趣,则图1的应用程序125不需要任何其他图像值:发送它们会浪费(在图1的KV-SSD 120、图1的应用程序125和图1的机器105以及连接图1的应用程序125与图1的KV-SSD 120的任何通信路径内的)资源和能量。因此,本发明构思的实施例可受益于能够在图1的KV-SSD 120隔离期望的图像值,并且仅发送图1的应用程序125实际需要的那些图像值。
图8示出图1的应用程序125向图1的KV-SSD中的图4至图7的图像对象405请求图像数据并接收结果。在图8中,应用程序125可发出发送到KV-SSD 120的读取请求805。请求805可包括信息810,其中,信息810可指定键815和/或容器820。键815可指定图4至图7的图像对象405,很像任何键值对中的键可用于辨识存储期望的数据的特定对象。容器820可用于隔离图4至图7的图像对象405内的特定容器,使得仅存储在那个容器中的图像值被检索并返回。
注意,根据本发明构思的实施例,信息810可仅由键815或容器820组成,或者信息810可包括键815和容器820二者。虽然图8显示信息810可被相等地划分为键815和容器820,但是本发明构思的实施例可使键815和容器820在信息810中“混合”在一起,将信息810留给KV-SSD 120以从信息810解析键815和容器820。例如,如上面参照图4至图5所述,信息810可以是“MyCat 4:2:250Chroma”,其中,“MyCat 4:2:250Chroma”可包括作为容器820的容器“4:2:2”和“50”(分别为色度子采样方案和分辨率)以及表示键815的“MyCatChroma”。
例如,再次考虑图4。假设键“0x1234”辨识图像对象405。图8的应用程序125可将图8的信息810发送为“0x1234/100%/4:4:4”。键0x1234可映射到图像对象405,容器“100%/4:4:4”可首先辨识容器425-1,然后辨识容器425-1内的容器430-3。然后,图8的KV-SSD 120可辨识图1的应用程序125具体想要图像值410-3和415-3(如下所述,假设它们存在)。
返回到图8,KV-SSD 120然后可检索图像值410-3和415-3。这些图像值然后可被准备为图像数据825,其中,图像数据825可以以结果830返回到应用程序125。
现在,如果图4至图7的图像对象405没有存储请求的图像值怎么办?例如,如果键815仍为“0x1234”,但容器820被指定为例如“50%/4:2:4”怎么办?对图4的图像对象405的一瞥示出没有标记为4:2:4的容器。在这种情况下,KV-SSD 120可将“无值”消息835返回到应用程序125,以报告不能找到与提供的信息810匹配的值。在这种情况下,应用程序125可使用另一信息810请求图像值。例如,应用程序125可能够用不同的分辨率或色度子采样(或两者)的图像进行工作,或者应用程序125可能够从可选的图像值生成请求的图像数据。其他可选的方案将是返回原始图像值,或返回所有的图像值:在任意一种情况下,允许应用程序125(以某种方式)以期望的分辨率和色度子采样方案生成图像文件。
还要注意,在本发明构思的一些实施例中(例如,图7(以及下面的图11)中所示的实施例),图1的应用程序125可具有足够的信息来知道分辨率和色度子采样方案的什么组合是可用的,从而使图1的应用程序125能够确定什么可用的图像值是生成期望的图像文件(或者,可选地,直接使用而无需生成新图像文件)的最佳起始点。本发明构思的实施例可包括图1的KV-SSD 120将关于可用的图像值的信息(诸如,存储在图4至图7的图像对象405中的每个容器中的信息)返回到图1的应用程序125,图1的KV-SSD 120是否返回“无值”消息835,向图1的应用程序125提供存储在图1的KV-SSD 120上的图像值的更完整的图片以供其自己使用。
注意,一旦应用程序125已经向来自KV-SSD 120的图4至图7的图像对象405请求数据,则KV-SSD 120可期望应用程序125将使用图4至图7的图像对象405做其他事情。当KV-SSD 120返回“无值”消息835时,这尤其(尽管不是完全地)如此:KV-SSD 120可期望应用程序125使用另一信息810来请求数据,并且同样,应用程序125可将新图像值写入到图4至图7的图像对象405。因此,KV-SSD 120可保持图4至图7的图像对象405准备好来自应用程序125的进一步请求:例如,通过将图像对象存储在KV-SSD 120内的动态随机存取存储器(DRAM)中。通过将图4至图7的图像对象405保持就绪,KV-SSD 120可加快来自应用程序125的未来请求,允许应用程序125更快地开始处理图像数据。
在以上描述中,请求805被描述为读取请求。但是应用程序125还可发出写入请求,以将新图像值写入到图4至图7的图像对象405。当应用程序发出请求805作为写入请求时,KV-SSD 120可如之前那样使用键815来辨识图4至图7的图像对象405,使用容器820辨识图4至图7的图像对象405内的特定容器以存储新图像值。KV-SSD 120还可使用容器820在图4至图7的图像对象405内创建新容器来存储新图像值(如果在图4至图7的图像对象405中已经不存在指定的容器组合)。
传统的KV-SSD被设计为返回与键815相关联的整个对象(“值”)。KV-SSD 120可被修改为支持从图4至图7的图像对象405提取期望的数据,而无需以任何期望的方式返回图4至图7的整个图像对象405。例如,KV-SSD 120可被修改为使得仅期望的(如容器820所辨识的)数据从KV-SSD 120中的存储装置读取。或者,KV-SSD可使用传统的键值读取机制来检索图4至图7的整个图像对象405,但是然后,将图4至图7的图像对象405存储在与存储内计算处理器相关联的本地存储装置中,然后使用存储内计算处理器来提取期望的数据,其中,期望的数据然后返回到应用程序125(而无需返回图4至图7的图像对象405的其余部分)。注意,图4至图7的图像对象405可被保留在KV-SSD 120内的本地存储装置中,期望应用程序125可能需要(通过读取其他图像数据或写入新图像值)进一步访问图4至图7的图像对象405。
上面的图4至图7示出图像值可被组织的各种不同方式。但是可能发生图1的不同的应用程序125均想要访问图像对象405中的图像值,但是期望容器以不同的方式被组织。例如,一个应用程序可能期望如图4中那样组织的图像值,而另一应用程序可能期望如图5中那样组织的图像值。如果图4至图7的图像对象405被锁定为一种或另一种组织方式,则一个或另一应用程序可能无法从图4至图7的图像对象405访问图像值。
一种可行的解决方案将是允许KV-SSD 120重新组织容器820。例如,如果图像对象405被如图5中那样组织,但是应用程序125将容器820提供为“100%/4:0:0”,则KV-SSD 120可将容器的顺序改为“4:0:0/100%”,其中,“4:0:0/100%”可用于定位图5的图像值410-1和415-1。基本上,KV-SSD 120可从信息810解析键815和/或容器820以确定信息810内表示的各种维度,然后重建适合于用于存储图像值的特定结构的信息810。风险在于:允许KV-SSD 120如应用程序125所提供的那样改变容器820可导致不正确的重新排列,使得KV-SSD120不能满足请求805。
代替,本发明构思的实施例可包括将被组合在单个图像对象中的图4至图7中所示的两个组织。例如,考虑图9(表示相对于图4至图5二者大大减少的图示,但是足以理解)。如图4中所示,图像对象405包括第一维度容器425-1和第二维度容器430-1,其中,第一维度容器425-1和第二维度容器430-1可唯一地定位图像值410-1和图像值415-1。这个布置允许图8的应用程序125将图8的容器820提供为“100%/4:0:0”。但是此外,图9将图像对象405示出为还包括第三容器905-1和第四容器910-1。第三容器905-1和第四容器910-1本质上分别是图5的第一维度容器430-1和第二维度容器425-1。此外,第四容器910-1可包括指向图像值410-1和415-1的指针,使得看起来好像图像值410-1和415-1也位于第四容器910-1内。因此,图8的应用程序125可将图8的容器820提供为“4:0:0/100%”,并且仍然定位图像值410-1和图像值415-1。
注意,容器425-1和905-1都是第一维度容器,但是使用不同的维度,容器430-1和910-1都是第二维度容器,但是(又)使用不同的维度。实际上,图9的图像对象405结合了来自图4至图5的两种数据结构。以这种方式,图8的应用程序125不需要担心图8的容器820被指定的特定顺序。
图10类似于图9,但是图10示出图6中所示的发明构思的实施例的变型。与图9类似,图10是足以理解的简化表示。在图10中,两个第一维度容器425-1和1005被示出:第一维度容器425-1使用分辨率作为第一维度,而第一维度容器1005使用色度子采样方案作为第一维度。第一维度容器425-1和第一维度容器1005二者辨识图像值410-1和图像值415-1。然而键“MyCatLuma”将与第一维度容器425-1配对以唯一地辨识图像值410-1(注意,键“MyCatLuma”包括关于什么色度子采样方案数据被请求作为键的部分的信息),键“MyCatLuma100”将与第一维度容器1005配对,以使用链接1010来访问图像值410-1。用于使用链接1010的键仍然需要包括“亮度”的原因是因为即使针对给定的色度子采样方案,色度数据也可包括多个不同的色度文件:如图6中所示,亮度和色度数据可被存储为单独的图像值。类似地,为了使用第一维度容器1005访问图像值415-1,将需要键“MyCatChroma100”来指定针对100%分辨率的图像,色度数据被期望。
图11也类似于图9,但是图11示出图7中所示的本发明构思的实施例的变型。与图6至图9类似,图11是足以理解的简化表示。在图11中,表705可包括沿着多于一个维度的条目。图1的应用程序125可定位表705中的表示针对感兴趣的维度的期望值的条目,并使用相关联的键来访问附加信息。因此,例如,如果图1的应用程序125首先使用分辨率,则图1的应用程序125可从表705访问Key1;否则,图1的应用程序125可从表705访问Key13。无论哪种方式,图1的应用程序125可向KV-SSD 120提供选择的键,并且作为响应接收表710-1或表1105。但是注意,在表710-1和表1105二者中,用于图像对象410-1和415-1的键是相同的,使图1的应用程序125能够使用任何期望的顺序的维度访问图像对象410-1和415-1。
图12示出图1的KV-SSD 120的细节。在图12中,示出大大简化的KV-SSD 120,省略了关于数据如何被存储在KV-SSD 120中的闪存芯片上的细节、与图1的机器105的接口以及相对于传统的KV-SSD没有变化的其他这些细节。
在图12中,KV-SSD 120可包括数据1205。数据1205可被存储在闪存芯片中或者可以以与KV-SSD 120一起使用的任何其他期望的格式存储:数据1205可包括图4至图7以及图9至图11的图像对象405。KV-SSD 120还可包括接收器1210、对象辨识器1215、数据访问器1220、DRAM 1225、数据提取器1230和发送器1235。接收器1210可从图1的应用程序125接收请求(诸如,图8的请求805)。如上面参照图8所述,请求805可以是读取请求或写入请求,并且可包括信息810和图像数据(如果新图像值将被写入到图4至图7以及图9至图11的图像对象405)。对象辨识器1215可从信息810获取图8的键815并将图8的键815映射到存储在数据1205中的对象。然后,数据访问器1220可从数据1205访问如由对象辨识器1215辨识的图4至图7以及图9至图11的图像对象405。DRAM 1225可用于以更快的存储形式存储图4至图7以及图9至图11的图像对象405的副本,期望图4至图7以及图9至图11的图像对象405将被再次使用。虽然图12示出DRAM 1225,但是本发明构思的实施例可以以除了DRAM之外的其他存储形式存储图4至图7以及图9至图11的图像对象405:如所期望,任何其他存储形式可被使用。数据提取器1230可从图4至图7以及图9至图11的图像对象405提取特定图像值:例如,如果图8的容器820是“100%/4:0:0”,则数据提取器1230可提取图像值410-1和415-1。最后,发送器1235可将任何提取的图像值(或者,如果适当,图4至图7以及图9至图11的整个图像对象405)发送到图8的应用程序125。
图13A至图13B示出根据本发明构思的实施例的图1的KV-SSD 120响应针对图1的KV-SSD中的图4至图5和图9的图像对象405中的图像数据的请求的示例过程的流程图。在图13A中,在块1305,图12的接收器1210可从图8的应用程序125接收图8的请求805,其中,图8的请求805可包括图8的信息810。在图13A至图13B中,请求805意在是读取请求:写入请求在图14中被描述。在块1310,图1的KV-SSD 120可解析图8的信息810以辨识图8的信息810内的图8的键815。在块1315,图1的KV-SSD 120可解析图8的信息810以辨识图8的信息810内的图8的容器820。注意,块1310和块1315不是独有的:根据本发明构思的实施例,块1310和块1315中的任何一个可被执行,或者块1310和块1315二者可被执行并以任何顺序。在块1320,图12的对象辨识器1215可使用来自图8的信息810的图8的键815来辨识图4至图5和图9的图像对象405。在块1325,图12的数据访问器1220可使用来自图8的信息810的图8的容器820来辨识图4至图5和图9的图像对象405中的包含期望的图像数据的特定容器。
在块1330(图13B),图8的KV-SSD 120可确定期望的图像值是否存在:例如,如果期望的图像值的容器不存在,则期望的图像值可能不存在。如果期望的图像值存在,则在块1335,图12的数据访问器1220访问图像值,并且在块1340,图12的发送器1235可将访问的图像值发送到图8的应用程序125。如果期望的图像值不存在,则在块1345,图12的发送器1235可将“无值”消息发送到图8的应用程序125。
图14示出根据本发明构思的实施例的图1的KV-SSD 120将新图像值存储在图4至图5和图9的图像对象405中的示例过程的流程图。在图14中,在块1405,图12的接收器1210可从图8的应用程序125接收图8的请求805以及图8的信息810和新图像文件(或多于一个的新图像文件)。在块1410,图12的对象辨识器1215可使用来自图8的信息810的图8的键815来辨识图4至图5和图9的图像对象405。在块1415,图12的数据访问器1220可使用来自图8的信息810的图8的容器820来辨识图4至图5和图9的图像对象405中的目标第一维度容器。在块1420,图12的数据访问器1220可使用来自图8的信息810的图8的容器820来辨识图4至图5和图9的图像对象405中的目标第二维度容器。在图14的剩余讨论中,假设目标第一维度容器和目标第二维度容器存在;如果不存在,则图8的KV-SSD 120可根据需要在图4至图5和图9的图像对象405内创建这些容器以继续。
在块1425,图8的KV-SSD 120可将一个或多个新图像值存储在目标第二维度容器中,其中,在这之后处理可结束(如虚线箭头1430所示)。但是,如果图4至图5和图9的图像对象405包括如上面参照图9所述的多个重叠的容器结构,则在块1435,图8的KV-SSD 120可定位应该包含新图像值的另一第一维度容器(例如,通过改变来自图8的信息810的图8的容器820内的容器的顺序),并且在块1440,图8的KV-SSD 120可定位应该包含新图像值的另一第二维度容器。最后,在块1445,图8的KV-SSD 120可将新图像值存储在附加的第二维度容器中(或者可能使用指针将存储在块1425中的图像值链接到附加的第二维度容器中)。虽然图14如所示地在该点完成处理,但是如果适当,则控制也可再次返回到块1435,来重复该处理以按另一容器路径存储新图像值。
图15示出根据本发明构思的实施例的图1的KV-SSD 120将新图像值存储在图4至图5和图9的图像对象405中的示例过程的流程图。在图15中,在块1505,图12的数据提取器1230可从新图像文件提取亮度数据,并且在块1510,图12的数据提取器1230可从新图像文件提取色度数据。在块1515,图8的KV-SSD 120可将提取的亮度数据存储在图12的数据1205中的一个值中,在块1520,图8的KV-SSD 120可将提取的色度数据存储在图12的数据1205中的另一值中。
图16A至图16B示出根据本发明构思的实施例的图1的KV-SSD 120响应针对图1的KV-SSD 120中的图6和图9的图像对象405中的图像数据的请求的示例过程的流程图。在图16A中,在块1605,图1的KV-SSD 120可从图1的应用程序125接收图8的信息810。在块1610,图1的KV-SSD 120可解析图8的信息810以辨识图8的信息810内的图8的键815。在块1615,图1的KV-SSD 120可解析图8的信息810以辨识图8的信息810内的图8的容器820。注意,块1610和块1615不是独有的:根据本发明构思的实施例,块1610和块1615中的任何一个可被执行,或者块1610和块1615二者可被执行并以任何顺序。在块1620,图1的KV-SSD 120可使用图8的信息810中的图8的容器820来辨识图6的第一维度容器425-1、425-2或425-3。在块1625,图1的KV-SSD 120可使用图8的信息810中的图8的键815来试图在辨识的第一维度容器中辨识图6的期望的图像值410-1、410-4、415-1、415-2、415-3、415-4、415-5、415-6或420。
在块1630(图16B),图1的KV-SSD 120可确定是否在辨识的第一维度容器中找到期望的图像值。如果是,则在块1635,图1的KV-SSD 120可检索期望的图像值,并且在块1640,图1的KV-SSD 120可将期望的图像值发送到图1的应用程序125。否则,在块1645,图1的KV-SSD 120可将图8的“无值”消息835发送到图1的应用程序125,指示在辨识的第一维度容器中没有找到期望的图像值。
图17示出根据本发明构思的实施例的图1的KV-SSD 120将新图像值存储在图6和图9的图像对象405中的示例过程的流程图。在图17中,在块1705,图1的KV-SSD 120可从图1的应用程序125接收新图像文件。在块1710,图1的KV-SSD 120可辨识图6的第一维度容器425-1、425-2或425-3,其中,在图6的第一维度容器425-1、425-2或425-3内,新图像文件将被存储为新图像值。注意,如果辨识的第一维度容器不存在,则它可被创建。例如,如果新图像文件是25%分辨率,并且图6的第一维度容器425-3不存在,则图6的第一维度容器425-3可被首先创建。然后,在块1715,图1的KV-SSD 120可将新图像值存储在辨识的第一维度容器中。
在块1720,图1的KV-SSD 120可辨识图10的第二维度容器1005,其中,在图10的第二维度容器1005内,新图像文件也将被存储为新图像值。注意,如果辨识的第二维度容器不存在,则它可被创建。例如,如果新图像文件使用图10的4:0:0色度子采样方案并且第二维度容器1005不存在,则图10的第二维度容器1005可被首先创建。然后,在块1725,图1的KV-SSD 120可将新图像值存储在辨识的第二维度容器中。如由虚线1730所示,块1720和块1725可被跳过。
图18A至图18B示出根据本发明构思的实施例的图1的应用程序125向图1的KV-SSD120请求图7和图11的图像对象405中的图像数据的示例过程的流程图。在图18A中,在块1805,图1的应用程序125可将第一键发送到图1的KV-SSD 120。这个第一键可以是图4至图7以及图9至图11的图像对象405的键。在块1810,图1的应用程序125可接收可根据第一维度组织图像值的图7的表705。在块1815,图1的应用程序125可从表705确定第二键。根据表705中的可用的数据,图1的应用程序125可使用针对被寻找的图像值的期望的分辨率或色度子采样方案来选择第二键。注意,如果寻找的特定分辨率或色度子采样方案在图1的KV-SSD120上不可用,则图1的应用程序125可选择可选的分辨率或色度子采样方案,并且潜在地使用接收的图像值来以期望的分辨率和色度子采样方案生成的新图像文件。
在块1820,图1的应用程序125可将第二键发送到图1的KV-SSD 120。在块1825,图1的应用程序125可接收可根据第二维度来组织图像值的图7的表710-1、710-2或710-3。在块1830,图1的应用程序125可从接收的表确定第三键。图1的应用程序125可根据接收的表中可用的数据使用针对被寻找的图像值的期望的分辨率或色度子采样方案来选择第三键。
在块1835,图1的应用程序125可将第三键发送到图1的KV-SSD 120。在块1840,图1的应用程序125可从图1的KV-SSD 120接收图7的期望的图像值410-1、410-4、415-1、415-2、415-3、415-4、415-5、415-6或420。
在块1845(图18B),图1的应用程序125可生成新图像文件。在块1850,图1的应用程序125可将新图像文件发送到图1的KV-SSD 120。在块1855,图1的应用程序125可从图1的KV-SSD 120接收新图像值的新键。在块1860,图1的应用程序125可使用新键来更新图7的表705、710-1、710-2和/或710-3以反映新图像值的存储。注意,在本发明构思的一些实施例中,如果图1的KV-SSD 120具有足够的信息来确定图1的KV-SSD 120上的哪些数据结构与新图像文件是新分辨率/色度子采样方案的图像对象有关,则块1855和块1860可由图1的KV-SSD 120执行。此外,如果没有新图像文件需要生成,则如由虚线1865所示,块1845至块1860可被跳过。
图19示出根据本发明构思的实施例的图1的应用程序125更新图7的数据结构705、710-1、710-2和/或710-3以将新图像值存储在图1的KV-SSD 120中的图7和图9的图像对象405中的示例过程的流程图。在图19中,在块1905,图1的应用程序125可确定图7的适当的第二维度表710-1、710-2或710-3是否存在。如果存在,则在块1910,图1的应用程序125可将新条目添加到适当的第二维度表以反映新图像值/新键对。否则,在块1915,图1的应用程序125可指示图1的KV-SSD 120创建新的第二维度表对象。在块1920,图1的应用程序125可从图1的KV-SSD 120接收新的第二维度表的键。在块1925,图1的应用程序125可将条目添加到新的第二维度表对象以反映新图像值/新键对。最后,在块1930,图1的应用程序125可更新图7的第一维度表705以反映新的第二维度表/新的第二维度表键对。注意,图7的第一维度表705必须存在,否则图1的KV-SSD 120根本不存储图4的图像对象405。还注意,在本发明构思的一些实施例中,如果图1的KV-SSD 120具有足够的信息来确定图1的KV-SSD 120上的数据结构与新图像文件是新分辨率/色度子采样方案的图像对象有关,则图19中所示的流程图可由图1的KV-SSD 120执行。
在图13A至图19中,示出了本发明构思的一些实施例。但是,本领域技术人员将认识到,通过改变块的顺序、通过省略块,或者通过包括附图中未示出的链接,本发明构思的其他实施例也是可行的。无论是否被明确描述,流程图的所有这样的变型被认为是本发明构思的实施例。
本发明构思的实施例提供优于现有技术的若干技术优点。首先,图4至图7以及图9至图11的图像对象405可存储任何数量的分辨率的和/或使用色度子采样方案的图像的数据。通过将所有的数据存储在图4至图7以及图9至图11的单个图像对象405中,数据被组织为使得:怀着查找使用特定的色度子采样方案的特定分辨率的图像文件的希望,任何应用程序可查找图4至图7以及图9至图11的图像对象405中的期望的图像数据,而不必搜索所有可用的存储。由于相同的图像数据的冗余副本不需要由每个应用程序在存储中的不同位置独立地管理,所以这个优点还有助于节省存储空间。
按照推论,当图1的应用程序125生成新图像数据时,新图像数据也可被存储在允许其他应用程序查找新图像数据的图4至图7以及图9至图11的图像对象405中。
第三,使用图1的KV-SSD 120存储图4至图7以及图9至图11的图像对象405还允许利用图4至图7以及图9至图11的图像对象405的键值存储的功率。而传统文件系统单独地存储并管理每个文件(造成图像数据文件管理的复杂性,其中,本发明构思的实施例被设计以解决图像数据文件管理的复杂性),对象允许数据被分组并被存储为一个单元,而不管对象中的数据的实际结构如何。将键映射到图1的KV-SSD 120上的存储位置也趋于快速,允许更快地访问图像数据。并且可用于对存储在图1的KV-SSD 120上的对象施加(各种)结构的容器允许图4至图7以及图9至图11的图像对象405中的数据的组织,实现图4至图7以及图9至图11的图像对象405内的特定图像数据的快速定位。
第四,图1的KV-SSD 120可接收图8的键815和图8的容器820二者。然后,图1的KV-SSD 120可使用图8的容器820来从图4至图7以及图9至图11的图像对象405定位并返回特定图像数据,而不是返回图4至图7以及图9至图11的全部图像对象405。由于图1的应用程序125不需要等待图4至图7以及图9至图11的所有图像对象405从图1的KV-SSD 120返回,或者提取期望的图像数据(并丢弃图4至图7以及图9至图11的其余图像对象405),因此这也加快了图1的应用程序125的操作。
第五,本发明构思的实施例可与其他发明构思组合以进一步加强图1的KV-SSD120的整体操作。例如,通过将本发明构思的实施例与诸如以下专利申请公开的支持多流(multi-streaming)的KV-SSD进行组合,涉及图4至图7以及图9至图11的图像对象405的所有请求可被分配给单个流,从而保持存储在图1的KV-SSD 120上的相关擦除块中的所有图像数据:于2016年5月4日提交的第15/146,708号美国专利申请,现在是2018年2月20日发布的第9,898,202号美国专利,其中,该美国专利是于2016年2月17日提交的第15/046,439号美国专利申请,现在是2018年1月30日发布的第9,880,780号美国专利的部分继续申请,其中,该部分继续申请要求于2016年3月1日提交的第62/302,162号美国临时专利申请的权益,所有这些专利都出于所有目的通过引用包含于此。由于图4至图7以及图9至图11的图像对象405的数据可(部分地或完全地)填充更可能被有效数据填充或者几乎同时无效的擦除块,因此这反过来可提高图1的KV-SSD 120上的垃圾回收性能。本发明构思的实施例还可与其他构思(诸如,擦除块目标机制和通道目标机制)组合,以再次尝试保持存储在常见擦除块中的图4至图7以及图9至图11的图像对象405,使得擦除块可能被填充无效数据(因此可在不需要在垃圾回收期间编程任何数据的情况下被擦除:垃圾回收的好的选择)或填充有效数据(因此垃圾回收的差的选择)。
第六,通过使用图8的键815和图8的容器820二者来辨识由图1的应用程序125所期望的特定图像值,图1的KV-SSD 120可避免返回图4至图7以及图9至图11的整个图像对象405。由于图1的应用程序125可能想要特定分辨率并使用特定的色度子采样方案的图像数据,因此,返回图4至图7以及图9至图11的整个图像对象405需要发送比图1的应用程序125实际想要的数据更多的数据,这花费额外的时间。此外,图1的应用程序125然后将必须在图4至图7以及图9至图11的图像对象405内定位期望的数据(再次花费时间),然后从图4至图7以及图9至图11的图像对象405丢弃所有不期望的数据(使用临时存储)。修改图1的KV-SSD120以在向图1的应用程序125发送任何内容之前将期望的数据与图4至图7以及图9至图11的图像对象405隔离,使图1的应用程序125不必进行不期望的数据滤波并减少发送时间。图1的KV-SSD 120可以以任何期望的方式(例如,如果存在图1的KV-SSD 120的存储内计算能力,则通过使用图1的KV-SSD 120的存储内计算能力)从图4至图7以及图9至图11的图像对象405执行该数据提取。
以下讨论意在提供可实现本发明构思的特定方面的合适的一个机器或多个机器的简要、总体描述。一个机器或多个机器可至少部分地通过来自传统输入装置(诸如,键盘、鼠标等)的输入以及通过从另一机器接收的指令、与虚拟现实(VR)环境的交互、生物辨识反馈或其他输入信号来控制。如在此所使用的,术语“机器”意在广泛地包含单个机器、虚拟机或通信连接的机器、虚拟机或一起操作的装置的系统。示例性机器包括计算装置(诸如,个人计算机、工作站、服务器、便携式计算机、手持装置、电话、平板电脑等)以及交通装置(诸如,私人或公共交通工具(例如,汽车、火车、出租车等))。
一个机器或多个机器可包括嵌入式控制器,诸如,可编程或不可编程逻辑装置或阵列、专用集成电路(ASIC)、嵌入式计算机、智能卡等。一个机器或多个机器可利用诸如通过网络接口、调制解调器或其他通信连接连接到一个或多个远程机器的一个或多个连接。多个机器可通过物理和/或逻辑网络(诸如,内联网、因特网、局域网、广域网等)的方式互连。本领域技术人员将理解,网络通信可利用各种有线和/或无线短程或远程载波和协议,其中,各种有线和/或无线短程或远程载波和协议包括:射频(RF)、卫星、微波、电气和电子工程师协会(IEEE)802.11、光学、红外、线缆、激光等。
本发明构思的实施例可通过参考或结合包括功能、过程、数据结构、应用程序等的相关联的数据来描述,其中,当由机器访问相关联的数据时导致机器执行任务或定义抽象数据类型或低级别的硬件上下文。相关联的数据可被存储在例如易失性存储器和/或非易失性存储器(例如,RAM、ROM等)中,或者存储在其他存储装置及其相关联的存储介质(包括硬盘驱动器、软盘、光盘存储、磁带、闪存、记忆棒、数字视频盘、生物存储等)中。相关联的数据可以以包、串行数据、并行数据、传播信号等的形式通过传输环境(包括物理网络和/或逻辑网络)传送,并且可以以压缩的或加密的格式使用。相关联的数据可在分布式环境中使用,并被局部和/或远程存储以用于机器访问。
本发明构思的实施例可包括包含能够由一个或多个处理器执行的指令的有形的、非暂时性机器可读介质,所述指令包括用于执行如在此描述的本发明构思的元素的指令。
上述方法的各种操作可由能够执行操作的任何合适的装置(诸如,各种硬件和/或软件组件、电路和/或模块)执行。该软件可包括用于实现逻辑功能的可执行指令的有序列表,并且可在由指令执行系统、设备或装置(诸如,单个处理器或多核处理器或包含处理器的系统)使用或与指令执行系统、设备或装置结合使用的任何“处理器可读介质”中实现。
结合在此公开的实施例描述的方法或算法的块或步骤以及功能可以以硬件、以由处理器执行的软件模块或以两者的组合来直接实现。如果以软件实现,则功能可作为一个或多个指令或代码被存储在有形的非暂时性计算机可读介质上或者可通过有形的非暂时性计算机可读介质发送。软件模块可驻留在随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可移动盘、CDROM中,或本领域已知的任何其他形式的存储介质。
已经参照示出的实施例描述并示出本发明构思的原理,将认识到,示出的实施例可在不脱离这些原理的情况下在布置和细节上被修改,并且可以以任何期望的方式进行组合。并且尽管前面的讨论集中于特定实施例,但是其他配置被预期。具体地讲,即使在此使用诸如“根据本发明构思的实施例”等的表述,但是这些短语通常表示参考实施例的可能性,并且不意在将本发明构思限制于特定的实施例配置。如在此所使用的,这些术语可参考可组合为其他实施例的相同或不同的实施例。
前面说明性实施例不应被解释为限制其发明构思。尽管已经描述了一些实施例,但是本领域技术人员将容易理解,在实质上不脱离本公开的新颖教导和优点的情况下,可以对那些实施例进行许多修改。因此,所有这样的修改意在包括在如权利要求中所限定的本发明构思的范围内。
本发明构思的实施例可扩展到以下声明,但不限于:
声明1、本发明构思的实施例包括一种用于存储用于由在机器上执行的应用程序访问的图像对象的键值固态驱动器(KV-SSD),包括:
存储在KV-SSD上的数据结构,所述数据结构包括由应用程序使用的多个图像值并包括:
多个第一维度容器,用于根据第一维度组织数据;
多个第二维度容器,在所述多个第一维度容器中的每个内,用于根据第二维度组织数据;以及
至少一个图像值,在所述多个第二维度容器中的每个内,以分辨率和色度子采样方案存储图像对象的图像数据。
声明2、本发明构思的实施例包括根据声明1的KV-SSD,其中:
第一维度是分辨率维度和色度子采样方案维度中的一个,以及
第二维度是分辨率维度和色度子采样方案维度中的另一个。
声明3、本发明构思的实施例包括根据声明2的KV-SSD,其中,所述数据结构还包括:
多个第三维度容器,用于根据第二维度组织数据;
多个第四维度容器,在所述多个第三维度容器中的每个内,用于根据第一维度组织数据;以及
至少一个指针,在所述多个第四维度容器中的每个内,指向存储分辨率和色度子采样方案的图像对象的所述至少一个图像值。
声明4、本发明构思的实施例包括根据声明1的KV-SSD,还包括:
接收器,用于从应用程序接收信息;
对象辨识器,用于使用来自所述信息的键来辨识所述数据结构;
数据访问器,用于使用所述信息中的容器访问所述数据结构中的所述至少一个图像值;以及
发送器,用于将所述至少一个图像值发送到应用程序。
声明5、本发明构思的实施例包括根据声明4的KV-SSD,其中,如果所述至少一个图像值不包括期望的分辨率和色度子采样的图像数据,则发送器操作为将无值消息发送到应用程序。
声明6、本发明构思的实施例包括根据声明1的KV-SSD,还包括:数据提取器,用于从新图像值提取亮度数据或色度数据以存储在图像对象中。
声明7、本发明构思的实施例包括根据声明1的KV-SSD,其中,所述至少一个图像值仅存储分辨率和色度子采样方案的图像的亮度数据。
声明8、本发明构思的实施例包括根据声明1的KV-SSD,其中,所述至少一个图像值仅存储分辨率和色度子采样方案的图像的色度数据。
声明9、本发明构思的实施例包括一种用于存储用于由在机器上执行的应用程序访问的图像对象的键值固态驱动器(KV-SSD),包括:
存储在KV-SSD上的数据结构,所述数据结构包括由应用程序使用的多个图像值,所述数据结构包括:
多个第一维度容器,用于根据第一维度组织图像对象中的数据;
至少一个图像值,在所述多个第一维度容器中的每个内,存储分辨率和色度子采样方案的图像对象的图像数据。
声明10、本发明构思的实施例包括根据声明9的KV-SSD,其中:
所述多个第一维度容器中的每个包括用于根据第二维度组织图像对象中的数据的多个第二维度容器;以及
所述多个第二维度容器中的每个包括以分辨率和色度子采样方案存储图像对象的图像数据的所述至少一个图像值中的至少一个。
声明11、本发明构思的实施例包括根据声明9的KV-SSD,其中,第一维度是分辨率维度和色度子采样方案维度中的一个。
声明12、本发明构思的实施例包括根据声明9的KV-SSD,其中,所述数据结构还包括:
多个第三维度容器,用于根据第二维度组织图像对象中的数据;
至少一个指针,在所述多个第三维度容器中的每个内,指向以分辨率和色度子采样方案存储图像对象的所述至少一个图像值,
其中,第二维度与第一维度不同。
声明13、本发明构思的实施例包括根据声明9的KV-SSD,其中,所述至少一个图像值中的每个与辨识第二维度的键相关联。
声明14、本发明构思的实施例包括根据声明9的KV-SSD,还包括:
接收器,用于从应用程序接收信息;
对象辨识器,用于使用来自所述信息的键来辨识图像对象;
数据访问器,用于使用所述信息中的容器访问所述数据结构中的所述至少一个图像值;以及
发送器,用于将所述至少一个图像值发送到应用程序。
声明15、本发明构思的实施例包括根据声明14的KV-SSD,其中,如果所述至少一个图像值不包括期望的分辨率和色度子采样的图像数据,则发送器操作为将无值消息发送到应用程序。
声明16、本发明构思的实施例包括根据声明9的KV-SSD,还包括:数据提取器,用于从新图像值提取亮度数据或色度数据,以作为新的值存储在图像对象中。
声明17、本发明构思的实施例包括根据声明9的KV-SSD,其中,所述至少一个图像值仅存储分辨率和色度子采样方案的图像的亮度数据。
声明18、本发明构思的实施例包括根据声明9的KV-SSD,其中,所述至少一个图像值仅存储分辨率和色度子采样方案的图像的色度数据。
声明19、本发明构思的实施例包括一种用于存储用于由在机器上执行的应用程序的访问的图像对象的键值固态驱动器(KV-SSD),包括:
存储在所述KV-SSD上的第一数据结构,第一数据结构存储第二键,第一数据结构根据第一维度组织图像对象的值,第一数据结构通过所述KV-SSD与第一键相关联,
存储在所述KV-SSD上的第二数据结构(710-1、710-2、710-3),第二数据结构(710-1、710-2、710-3)存储第二键,第二数据结构(710-1、710-2、710-3)根据第二维度组织图像对象的值,第二数据结构(710-1、710-2、710-3)通过所述KV-SSD与第二键相关联;以及
存储在KV-SSD上的第三数据结构,第三数据结构存储由应用程序使用的图像值,第三数据结构通过所述KV-SSD与第三键相关联,
其中,图像对象至少使用分辨率和色度子采样方案存储图像的图像数据。
声明20、本发明构思的实施例包括根据声明19的KV-SSD,所述KV-SSD操作为响应于图像对象的对象键而返回与多个第一数据结构相关联的多个第一键。
声明21、本发明构思的实施例包括根据声明19的KV-SSD,其中,第一数据结构存储包括第二键的第一多个键,所述第一多个键中的每个根据第一维度组织图像对象的图像数据。
声明22、本发明构思的实施例包括根据声明21的KV-SSD,其中,第二数据结构(710-1、710-2、710-3)存储包括第三键的第二多个键,所述第二多个键中的每个辨识由应用程序使用的不同的图像值,所述第二多个键根据第一维度和第二维度二者组织图像对象的图像数据。
声明23、本发明构思的实施例包括根据声明19的KV-SSD,其中,第一维度是分辨率维度和色度子采样方案维度中的一个。
声明24、本发明构思的实施例包括根据声明19的KV-SSD,其中,图像对象还包括:
存储在所述KV-SSD上的第四数据结构,第四数据结构存储第五键,第一数据结构根据第二维度组织图像对象的值,第四数据结构通过所述KV-SSD与第四键相关联,
存储在所述KV-SSD上的第五数据结构(710-1、710-2、710-3),存储第三键的第五数据结构(710-1、710-2、710-3),第五数据结构(710-1、710-2、710-3)根据第一维度组织图像对象的值,第五数据结构(710-1、710-2、710-3)通过所述KV-SSD与第五键相关联。
声明25、本发明构思的实施例包括根据声明24的KV-SSD,所述KV-SSD操作为响应于图像对象的对象键而返回与多个第四数据结构相关联的多个第四键。
声明26、本发明构思的实施例包括根据声明24的KV-SSD,其中,第四数据结构存储包括第五键的第三多个键,所述第三多个键中的每个根据第一维度组织图像对象的图像数据。
声明27、本发明构思的实施例包括根据声明26的KV-SSD,其中,第五数据结构(710-1、710-2、710-3)存储包括第三键的第四多个键,所述第四多个键中的每个辨识由应用程序使用的不同的图像值,所述第四多个键根据第二维度和第一维度二者组织图像对象的图像数据。
声明28、本发明构思的实施例包括根据声明19的KV-SSD,还包括:
接收器,用于从应用程序接收对象键和新图像文件;以及
数据提取器,用于从新图像文件提取亮度数据或色度数据,以作为新图像值存储在图像对象中。
声明29、本发明构思的实施例包括根据声明19的KV-SSD,其中,所述至少一个图像值仅存储分辨率和色度子采样方案的图像的亮度数据。
声明30、本发明构思的实施例包括根据声明19的KV-SSD,其中,所述至少一个图像值仅存储分辨率和色度子采样方案的图像的色度数据。
声明31、本发明构思的实施例包括一种方法,所述方法包括:
在键值固态驱动器(KV-SSD)从应用程序接收信息;
使用所述信息中的键来辨识KV-SSD上的图像对象,图像对象包括使用色度子采样以分辨率存储图像的至少一个图像值;
使用所述信息中的容器来尝试辨识KV-SSD上的图像对象中的所述至少一个图像值的期望值;以及
如果期望值被存储在KV-SSD上的图像对象中,则:
从KV-SSD上的图像对象检索期望值;以及
将期望值从KV-SSD返回到应用程序,
其中,图像对象包括用于根据第一维度组织所述至少一个图像值的至少一个第一维度容器,所述至少一个第一维度容器包括用于根据第二维度组织所述至少一个图像值的至少一个第二维度容器,
其中,整个图像对象不被返回到应用程序。
声明32、本发明构思的实施例包括根据声明31的方法,其中,如果期望值未被存储在图像对象中,则将无值消息返回到应用程序。
声明33、本发明构思的实施例包括根据声明31的方法,其中:
第一维度是分辨率维度和色度子采样方案维度中的一个,以及
第二维度是分辨率维度和色度子采样方案维度中的另一个。
声明34、本发明构思的实施例包括根据声明31的方法,其中,图像对象还包括用于根据第二维度组织所述至少一个图像值的至少一个第三维度容器,所述至少一个第三维度容器包括用于根据第一维度组织所述至少一个图像值的至少一个第四维度容器。
声明35、本发明构思的实施例包括根据声明31的方法,还包括:
在KV-SSD从应用程序接收新图像文件,新图像文件包括生成的分辨率和生成的色度子采样的新图像数据;
根据生成的分辨率和生成的色度子采样中的第一维度,辨识KV-SSD上的图像对象中的所述至少一个第一维度容器的目标第一维度容器;
根据生成的分辨率和生成的色度子采样中的第二维度,辨识KV-SSD上的图像对象中的目标第一维度容器中的目标第二维度容器;以及
将新图像文件作为新图像值存储在KV-SSD上的目标第二维度容器中。
声明36、本发明构思的实施例包括根据声明35的方法,其中:
所述方法还包括:
根据生成的分辨率和生成的色度子采样中的第二维度,辨识所述至少一个第三维度容器中的目标第三维度容器;以及
根据生成的分辨率和生成的色度子采样中的第一维度,辨识目标第三维度容器中的目标第四维度容器;以及
将新图像文件作为新图像值存储在目标第二维度容器中的步骤包括:将指向新图像值的指针存储在目标第四维度容器中。
声明37、本发明构思的实施例包括根据声明35的方法,其中,将新图像文件作为新图像值存储在目标第二维度容器中的步骤包括:
从新图像文件提取亮度数据;
从新图像文件提取色度数据;
将亮度数据存储在目标第二维度容器中的第一值中;以及
将色度数据存储在目标第二维度容器中的第二值中。
声明38、本发明构思的实施例包括根据声明35的方法,根据生成的分辨率和生成的色度子采样中的第一维度辨识KV-SSD上的图像对象中的所述至少一个第一维度容器中的目标第一维度容器的步骤包括:如果目标第一维度容器不存在于KV-SSD上的图像对象中,则在KV-SSD上的图像对象中创建目标第一维度容器。
声明39、本发明构思的实施例包括根据声明35所述的方法,根据生成的分辨率和生成的色度子采样中的第二维度辨识KV-SSD上的图像对象中的目标第一维度容器中的目标第二维度容器的步骤包括:如果目标第二维度容器不存在于KV-SSD上的图像对象中,则在KV-SSD上的图像对象中的目标第一维度容器中创建目标第二维度容器。
声明40、本发明构思的实施例包括一种方法,所述方法包括:
在键值固态驱动器(KV-SSD)从应用程序接收信息;
使用所述信息中的容器来尝试辨识KV-SSD上的图像对象中的包含至少一个图像值的维度容器,所述至少一个图像值存储使用色度子采样的分辨率的图像,维度容器根据第一维度(315、310、305)存储图像对象中的数据的子集;
使用所述信息中的键来辨识KV-SSD#(120)上的图像对象中的所述至少一个图像值中的期望值;以及
如果期望值被存储在KV-SSD上的图像对象中,则:
从KV-SSD上的图像对象检索期望值;以及
将期望值从KV-SSD返回到应用程序,
其中,图像对象包括:多个维度容器,用于根据第一维度组织所述至少一个图像值,
其中,整个图像对象不被返回到应用程序。
声明41、本发明构思的实施例包括根据声明40的方法,其中,如果期望值未被存储在图像对象中,则将无值结果返回到应用程序。
声明42、本发明构思的实施例包括根据声明40的方法,其中:
第一维度是分辨率维度和色度子采样方案维度中的一个。
声明43、本发明构思的实施例包括根据声明40的方法,其中,图像对象还包括:至少一个第二维度容器,用于根据第二维度组织所述至少一个图像值。
声明44、本发明构思的实施例包括根据声明40的方法,还包括:
在KV-SSD从应用程序接收新图像文件,新图像文件包括生成的分辨率和生成的色度子采样的新图像数据;
根据生成的分辨率和生成的色度子采样中的第一维度,辨识KV-SSD上的图像对象中的所述多个维度容器中的目标维度容器;以及
将新图像文件作为新图像值存储在KV-SSD上的目标维度容器中。
声明45、本发明构思的实施例包括根据声明44的方法,其中:
所述方法还包括:根据生成的分辨率和生成的色度子采样中的第二维度,辨识多个第二维度容器中的目标第二维度容器;以及
将新图像文件作为新图像值存储在目标第二维度容器中的步骤包括:将指向新图像值的指针存储在目标第二维度容器中。
声明46、本发明构思的实施例包括根据声明44的方法,其中,将新图像值存储在目标第二维度容器中的步骤包括:
从新图像值提取亮度数据;
从新图像值提取色度数据;
将亮度数据存储在目标第二维度容器中的第一值中;以及
将色度数据存储在目标第二维度容器中的第二值中。
声明47、本发明构思的实施例包括根据声明44的方法,根据生成的分辨率和生成的色度子采样的第一维度辨识KV-SSD上的图像对象中的所述多个维度容器的目标维度容器的步骤包括:如果目标维度容器不存在于KV-SSD上的图像对象中,则在KV-SSD上的图像对象中创建目标维度容器。
声明48、本发明构思的实施例包括一种方法,所述方法包括:
将图像对象的第一键从应用程序发送到KV-SSD;
响应于第一键,在应用程序从KV-SSD接收第一维度表;
从第一维度表确定第二键;
将第二键从应用程序发送到KV-SSD;
响应于第二键,在应用程序从KV-SSD接收第二维度表;
从第二维度表确定第三键;
将第三键从应用程序发送到KV-SSD;以及
响应于第三键,在应用程序从KV-SSD接收图像值。
声明49、本发明构思的实施例包括根据声明48的方法,其中:
第一分辨率表根据第一维度组织图像值,第一维度是分辨率维度和色度子采样方案维度中的一个;
第二分辨率表根据第二维度组织图像值,第二维度是分辨率维度和色度子采样方案维度中的另一个。
声明50、本发明构思的实施例包括根据声明48的方法,其中:
从第一维度表确定第二键的步骤包括:响应于期望的分辨率,从第一维度表选择第二键;
从第二维度表确定第三键的步骤包括:响应于期望的色度子采样方案,从第二维度表选择第三键。
声明51、本发明构思的实施例包括根据声明48的方法,其中:
从第一维度表确定第二键的步骤包括:响应于期望的色度子采样方案,从第一维度表选择第二键;
从第二维度表确定第三键的步骤包括:响应于期望的分辨率,从第二维度表选择第三键。
声明52、本发明构思的实施例包括根据声明48的方法,还包括:响应于第三键,在应用程序从自KV-SSD接收的图像值生成期望的分辨率和期望的色度子采样方案的新图像文件。
声明53、本发明构思的实施例包括根据声明52的方法,还包括:
将新图像文件从应用程序发送到KV-SSD;
从KV-SSD在应用程序接收新键;以及
更新第二维度表以包括用于与新键配对的期望的分辨率和期望的色度子采样方案的新图像文件的条目。
声明54、本发明构思的实施例包括根据声明53的方法,其中,更新第二维度表以包括用于与新键配对的期望的分辨率和期望的色度子采样方案的新图像文件的条目的步骤包括:
在KV-SSD上创建新的第二维度表,新的第二维度表包括用于与新键配对的期望的分辨率和期望的色度子采样方案的新图像文件的条目;
从KV-SSD在应用程序接收新的第二维度表键;以及
更新第一维度表以包括用于与新的第二维度表键配对的新的第二维度表的第二条目。
声明55、本发明构思的实施例包括一种物品,所述物品包括非暂时性存储介质,所述非暂时性存储介质具有存储在其上的指令,其中,当由机器执行所述指令时,导致:
在键值固态驱动器(KV-SSD)从应用程序接收信息;
使用所述信息中的键来辨识KV-SSD上的图像对象,图像对象包括存储使用色度子采样的分辨率的图像的至少一个图像值;
使用所述信息中的容器来尝试辨识KV-SSD上的图像对象中的所述至少一个图像值中的期望值;以及
如果期望值被存储在KV-SSD上的图像对象中,则:
从KV-SSD上的图像对象检索期望值;以及
将期望值从KV-SSD返回到应用程序,
其中,图像对象包括用于根据第一维度组织所述至少一个图像值的至少一个第一维度容器,所述至少一个第一维度容器包括用于根据第二维度组织所述至少一个图像值的至少一个第二维度容器,
其中,整个图像对象不被返回到应用程序。
声明56、本发明构思的实施例包括根据声明55的物品,其中,如果期望值未被存储在图像对象中,则将无值消息返回到应用程序。
声明57、本发明构思的实施例包括根据声明55的物品,其中:
第一维度是分辨率维度和色度子采样方案维度中的一个,
第二维度是分辨率维度和色度子采样方案维度中的另一个。
声明58、本发明构思的实施例包括根据声明55的物品,其中,图像对象还包括用于根据第二维度组织所述至少一个图像值的至少一个第三维度容器,所述至少一个第三维度容器包括用于根据第一维度组织所述至少一个图像值的至少一个第四维度容器。
声明59、本发明构思的实施例包括根据声明55的物品,非暂时性存储介质具有存储在其上的进一步的指令,当由机器执行所述进一步的指令时,导致:
在KV-SSD从应用程序接收新图像文件,新图像文件包括生成的分辨率和生成的色度子采样的图像数据;
根据生成的分辨率和生成的色度子采样中的第一维度,辨识KV-SSD上的图像对象中的所述至少一个第一维度容器中的目标第一维度容器;
根据生成的分辨率和生成的色度子采样中的第二维度,辨识KV-SSD上的图像对象中的目标第一维度容器中的目标第二维度容器;以及
将新图像文件作为新图像值存储在KV-SSD上的目标第二维度容器中。
声明60、本发明构思的实施例包括根据声明59的所述物品,其中:
非暂时性存储介质具有存储在其上的进一步的指令,当由机器执行所述进一步的指令时,导致:
根据生成的分辨率和生成的色度子采样中的第二维度,辨识所述至少一个第三维度容器的目标第三维度容器;以及
根据生成的分辨率和生成的色度子采样的第一维度,辨识目标第三维度容器中的目标第四维度容器;以及
将新图像文件作为新图像值存储在目标第二维度容器中的步骤包括:将指向新图像值的指针存储在目标第四维度容器中。
声明61、本发明构思的实施例包括根据声明59的物品,其中,将新图像存储在目标第二维度容器中的步骤包括:
从新图像文件提取亮度数据;
从新图像文件提取色度数据;
将亮度数据存储在目标第二维度容器中的第一值中;以及
将色度数据存储在目标第二维度容器中的第二值中。
声明62、本发明构思的实施例包括根据声明59的物品,根据生成的分辨率和生成的色度子采样中的第一维度辨识KV-SSD上的图像对象中的所述至少一个第一维度容器中的目标第一维度容器的步骤包括:如果目标第一维度容器不存在于KV-SSD上的图像对象中,则在KV-SSD上的图像对象中创建目标第一维度容器。
声明63、本发明构思的实施例包括根据声明59的物品,根据生成的分辨率和生成的色度子采样中的第二维度辨识KV-SSD上的图像对象中的目标第一维度容器中的目标第二维度容器的步骤包括:如果目标第二维度容器不存在于KV-SSD上的图像对象中,则在KV-SSD上的图像对象中的目标第一维度容器中创建目标第二维度容器。
声明64、本发明构思的实施例包括一种物品,所述物品包括非暂时性存储介质,所述非暂时性存储介质具有存储在其上的指令,当由机器执行所述指令时,导致:
在键值固态驱动器(KV-SSD)从应用程序接收信息;
使用所述信息中的容器来尝试辨识KV-SSD上的图像对象中的包含至少一个图像值的维度容器,所述至少一个图像值存储使用色度子采样的分辨率的图像,维度容器根据第一维度(315、310、305)存储图像对象中的数据的子集;
使用所述信息中的键来辨识KV-SSD#(120)上的图像对象中的所述至少一个图像值中的期望值;以及
如果期望值被存储在KV-SSD上的图像对象中,则:
从KV-SSD上的图像对象检索期望值;以及
将期望值从KV-SSD返回到应用程序,
其中,图像对象包括:多个维度容器,用于根据第一维度组织所述至少一个图像值,
其中,整个图像对象不被返回到应用程序。
声明65、本发明构思的实施例包括根据声明64的物品,其中,如果期望值未被存储在图像对象中,则将无值结果返回到应用程序。
声明66、本发明构思的实施例包括根据声明所述的物品,其中:
第一维度是分辨率维度和色度子采样方案维度中的一个。
声明67、本发明构思的实施例包括根据声明64所述的物品,其中,图像对象还包括:至少一个第二维度容器,用于根据第二维度组织所述至少一个图像值。
声明68、本发明构思的实施例包括根据声明64的物品,非暂时性存储介质具有存储在其上的进一步的指令,当由机器执行所述进一步的指令时,导致:
在KV-SSD从应用程序接收新图像文件,新图像文件包括生成的分辨率和生成的色度子采样的新图像数据;
根据生成的分辨率和生成的色度子采样中的第一维度,辨识KV-SSD上的图像对象中的所述多个维度容器中的目标维度容器;以及
将新图像文件作为新图像值存储在KV-SSD上的目标维度容器中。
声明69、本发明构思的实施例包括根据声明68所述的物品,其中:
非暂时性存储介质上具有存储在其上的进一步的指令,当由机器执行所述进一步的指令时,导致:根据生成的分辨率和生成的色度子采样中的第二维度,辨识多个第二维度容器中的目标第二维度容器;以及
将新图像文件作为新图像值存储在目标第二维度容器中的步骤包括:将指向新图像值的指针存储在目标第二维度容器中。
声明70、本发明构思的实施例包括根据声明68的物品,其中,将新图像值存储在目标第二维度容器中的步骤包括:
从新图像值提取亮度数据;
从新图像值提取色度数据;
将亮度数据存储在目标第二维度容器中的第一值中;以及
将色度数据存储在目标第二维度容器中的第二值中。
声明71、本发明构思的实施例包括根据声明68的物品,根据生成的分辨率和生成的色度子采样中的第一维度辨识KV-SSD上的图像对象中的所述多个维度容器中的目标维度容器的步骤包括:如果目标维度容器不存在于KV-SSD上的图像对象中,则在KV-SSD上的图像对象中创建目标维度容器。
声明72、本发明构思的实施例包括一种物品,所述物品包括非暂时性存储介质,所述非暂时性存储介质具有存储在其上的指令,当由机器执行所述指令时,导致:
将图像对象的第一键从应用程序发送到KV-SSD;
响应于第一键,在应用程序从KV-SSD接收第一维度表;
从第一维度表确定第二键;
将第二键从应用程序发送到KV-SSD;
响应于第二键,在应用程序从KV-SSD接收第二维度表;
从第二维度表确定第三键;
将第三键从应用程序发送到KV-SSD;以及
响应于第三键,在应用程序从KV-SSD接收图像值。
声明73、本发明构思的实施例包括根据声明72的物品,其中:
第一分辨率表根据第一维度组织图像值,第一维度是分辨率维度和色度子采样方案维度中的一个;
第二分辨率表根据第二维度组织图像值,第二维度是分辨率维度和色度子采样方案维度中的另一个。
声明74、本发明构思的实施例包括根据声明72的物品,其中:
从第一维度表确定第二键的步骤包括:响应于期望的分辨率,从第一维度表选择第二键;
从第二维度表确定第三键的步骤包括:响应于期望的色度子采样方案,从第一维度表选择第三键。
声明75、本发明构思的实施例包括根据声明72的物品,其中:
从第一维度表确定第二键的步骤包括:响应于期望的色度子采样方案从第一维度表选择第二键;
从第二维度表确定第三键的步骤包括:响应于期望的分辨率从第一维度表选择第三键。
声明76、本发明构思的实施例包括根据声明72的物品,所述非暂时性存储介质上具有存储在其上的进一步的指令,当由机器执行所述进一步的指令时,导致:响应于第三键,在应用程序从自KV-SSD接收的图像值生成期望的分辨率和期望的色度子采样方案的新图像文件。
声明77、本发明构思的实施例包括根据声明76的物品,所述非暂时性存储介质上具有存储在其上的进一步的指令,当由机器执行所述进一步的指令时,导致:
将新图像文件从应用程序发送到KV-SSD;
从KV-SSD在应用程序接收新键;以及
更新第二维度表以包括用于与新键配对的期望的分辨率和期望的色度子采样方案的新图像文件的条目。
声明78、本发明构思的实施例包括根据声明77的物品,其中,更新第二维度表以包括用于与新键配对的期望的分辨率和期望的色度子采样方案的新图像文件的条目的步骤包括:
在KV-SSD上创建新的第二维度表,新的第二维度表包括用于与新键配对的期望的分辨率和期望的色度子采样方案的新图像文件的条目;
从KV-SSD在应用程序接收新的第二维度表键;以及
更新第一维度表以包括用于与新的第二维度表键配对的新的第二维度表的第二条目。
因此,鉴于对在此描述的实施例的各种各样的排列,该具体实施方式和所附材料意图仅是说明性的,不应被视为限制本发明构思的范围。因此,作为本发明构思要求保护的是可落入所附权利要求及其等同物的范围和精神内的所有这样的修改。

Claims (20)

1.一种用于存储由应用程序访问的图像对象的键值固态驱动器,包括:
存储在所述键值固态驱动器上的数据结构,所述数据结构包括:
多个第一维度容器,用于根据第一维度组织图像对象中的数据,
其中,所述多个第一维度容器中的每个包括由应用程序使用的至少一个图像值,以分辨率和色度子采样方案中的一个存储图像对象的图像数据。
2.根据权利要求1所述的键值固态驱动器,其中,第一维度是分辨率维度和色度子采样方案维度中的一个。
3.根据权利要求1所述的键值固态驱动器,其中,所述数据结构还包括:
多个第二维度容器,用于根据第二维度组织图像对象中的数据,
其中,所述多个第二维度容器中的每个包括:至少一个指针,指向以分辨率和色度子采样方案中的另一个存储图像对象的所述至少一个图像值,
其中,第二维度与第一维度不同。
4.根据权利要求1所述的键值固态驱动器,其中,所述至少一个图像值中的每个与辨识第二维度的键相关联。
5.根据权利要求1所述的键值固态驱动器,还包括:
接收器,用于从应用程序接收信息;
对象辨识器,用于使用来自所述信息的键来辨识图像对象;
数据访问器,用于使用所述信息中的容器访问所述数据结构中的所述至少一个图像值;以及
发送器,用于将所述至少一个图像值发送到应用程序。
6.根据权利要求5所述的键值固态驱动器,其中,发送器操作为:如果所述至少一个图像值不包括在期望的分辨率和色度子采样方案下的图像数据,则将无值消息发送到应用程序。
7.一种用于存储由应用程序访问的图像对象的键值固态驱动器,包括:
存储在所述键值固态驱动器上的第一数据结构,第一数据结构存储第二键,第一数据结构根据第一维度组织图像对象的值,第一数据结构与第一键相关联,
存储在所述键值固态驱动器上的第二数据结构,第二数据结构存储第三键,第二数据结构根据第二维度组织图像对象的值,第二数据结构与第二键相关联;以及
存储在所述键值固态驱动器上的第三数据结构,第三数据结构存储由应用程序使用的图像值,第三数据结构与第三键相关联,
其中,图像对象至少使用分辨率和色度子采样方案存储图像的图像数据。
8.根据权利要求7所述的键值固态驱动器,其中,第一数据结构存储包括第二键的第一多个键,所述第一多个键中的每个根据第一维度组织图像对象的图像数据。
9.根据权利要求8所述的键值固态驱动器,其中,第二数据结构存储包括第三键的第二多个键,所述第二多个键中的每个辨识由应用程序使用的不同的图像值,所述第二多个键根据第一维度和第二维度二者组织图像对象的图像数据。
10.根据权利要求7所述的键值固态驱动器,其中,第一维度是分辨率维度和色度子采样方案维度中的一个。
11.根据权利要求7所述的键值固态驱动器,其中,图像对象包括:
存储在所述键值固态驱动器上的第四数据结构,第四数据结构存储第五键,第四数据结构根据第二维度组织图像对象的值,第四数据结构与第四键相关联,
存储在所述键值固态驱动器上的第五数据结构第五数据结构存储第三键,第五数据结构根据第一维度组织图像对象的值,第五数据结构通过与第五键相关联。
12.根据权利要求11所述的键值固态驱动器,其中,第四数据结构存储包括第五键的第三多个键,所述第三多个键中的每个根据第一维度组织图像对象的图像数据。
13.根据权利要求12所述的键值固态驱动器,其中,第五数据结构存储包括第三键的第四多个键,所述第四多个键中的每个辨识由应用程序使用的不同的图像值,所述第四多个键根据第二维度和第一维度二者组织图像对象的图像数据。
14.根据权利要求7所述的键值固态驱动器,还包括:
接收器,用于从应用程序接收对象键和新图像文件;以及
数据提取器,用于从新图像文件提取亮度数据或色度数据,以作为新图像值存储在图像对象中。
15.一种操作键值固态驱动器的方法,包括:
在键值固态驱动器从应用程序接收信息;
使用所述信息中的容器来辨识键值固态驱动器上的图像对象中的包含至少一个图像值的维度容器,所述至少一个图像值使用色度子采样方案以分辨率存储图像,维度容器根据第一维度存储图像对象中的数据的子集;
使用所述信息中的键来辨识键值固态驱动器上的图像对象中的所述至少一个图像值中的期望值;以及
如果期望值被存储在键值固态驱动器上的图像对象中,则:
从键值固态驱动器上的图像对象取得期望值;以及
将期望值从键值固态驱动器返回到应用程序,
其中,图像对象包括:多个维度容器,用于根据第一维度组织所述至少一个图像值,
其中,图像对象不被返回到应用程序。
16.根据权利要求15所述的方法,其中,如果期望值未被存储在图像对象中,则将无值结果返回到应用程序。
17.根据权利要求15所述的方法,其中:
第一维度是分辨率维度和色度子采样方案维度中的一个。
18.根据权利要求15所述的方法,还包括:
在键值固态驱动器从应用程序接收新图像文件,新图像文件包括生成的分辨率和生成的色度子采样方案的新图像数据;
根据生成的分辨率和生成的色度子采样方案中的第一维度,辨识键值固态驱动器上的图像对象中的所述多个维度容器的目标维度容器;以及
将新图像文件作为新图像值存储在键值固态驱动器上的目标维度容器中。
19.根据权利要求18所述的方法,其中:
所述方法还包括:根据生成的分辨率和生成的色度子采样方案中的第二维度,辨识多个第二维度容器中的目标第二维度容器;
将新图像文件作为新图像值存储在目标第二维度容器中的步骤包括:将指向新图像值的指针存储在目标第二维度容器中。
20.根据权利要求18所述的方法,根据生成的分辨率和生成的色度子采样方案中的第一维度辨识键值固态驱动器上的图像对象中的所述多个维度容器中的目标维度容器的步骤包括:如果目标维度容器不存在于键值固态驱动器上的图像对象中,则在键值固态驱动器上的图像对象中创建目标维度容器。
CN201910384537.5A 2018-05-15 2019-05-09 键值固态驱动器和操作键值固态驱动器的方法 Pending CN110489057A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862672043P 2018-05-15 2018-05-15
US62/672,043 2018-05-15
US16/056,515 US10949087B2 (en) 2018-05-15 2018-08-06 Method for rapid reference object storage format for chroma subsampled images
US16/056,515 2018-08-06

Publications (1)

Publication Number Publication Date
CN110489057A true CN110489057A (zh) 2019-11-22

Family

ID=68533702

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910384537.5A Pending CN110489057A (zh) 2018-05-15 2019-05-09 键值固态驱动器和操作键值固态驱动器的方法

Country Status (3)

Country Link
US (1) US10949087B2 (zh)
KR (1) KR102481009B1 (zh)
CN (1) CN110489057A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230059239A (ko) * 2021-10-26 2023-05-03 삼성전자주식회사 스토리지 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1520682A (zh) * 2001-06-29 2004-08-11 皇家菲利浦电子有限公司 抽样率变换期间的色键保存
CN1653513A (zh) * 2002-05-13 2005-08-10 创世纪微芯片公司 用于显示设备的多分辨率色彩映射的装置和方法
JP2012134585A (ja) * 2010-12-20 2012-07-12 Nikon Corp カメラ
CN102971732A (zh) * 2010-07-02 2013-03-13 华为技术有限公司 键/值存储器的集成分级查询处理的系统结构

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006235960A (ja) 2005-02-24 2006-09-07 Fujitsu Ltd ガーベッジコレクション高速化方法
US20080199084A1 (en) 2007-02-19 2008-08-21 Seiko Epson Corporation Category Classification Apparatus and Category Classification Method
EP2455865B1 (en) 2009-07-17 2020-03-04 Toshiba Memory Corporation Memory management device
WO2011042898A1 (en) * 2009-10-05 2011-04-14 I.C.V.T Ltd. Apparatus and methods for recompression of digital images
US20130138915A1 (en) 2010-08-11 2013-05-30 Nec Corporation Data processing system, data processing method, and program
JP5723812B2 (ja) 2012-03-16 2015-05-27 株式会社 日立産業制御ソリューションズ ファイルサーバ、データ入出力方法、i/oフックモジュールプログラム及びi/o代行デーモンプログラム
GB2501535A (en) 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
KR101400639B1 (ko) * 2012-06-29 2014-05-29 인텔렉추얼디스커버리 주식회사 서브 이미지 쉐어링을 위한 이미지 처리 장치 및 방법
AU2012232992A1 (en) 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
US9025868B2 (en) 2013-02-27 2015-05-05 Sony Corporation Method and system for image processing to determine a region of interest
US20160196076A1 (en) 2013-07-08 2016-07-07 Wilus Institute Of Standards And Technology Inc. Memory system and method for controlling same
US10291827B2 (en) 2013-11-22 2019-05-14 Futurewei Technologies, Inc. Advanced screen content coding solution
KR20170113713A (ko) 2013-12-13 2017-10-12 브이아이디 스케일, 인크. 보간을 이용하는 루마 및 크로마의 위상 정렬을 위한 컬러 색역 스케일러블 비디오 코딩 디바이스 및 방법
US8874835B1 (en) 2014-01-16 2014-10-28 Pure Storage, Inc. Data placement based on data properties in a tiered storage device system
AU2014202921B2 (en) 2014-05-29 2017-02-02 Canon Kabushiki Kaisha Method, apparatus and system for de-blocking a block of video samples
US9438426B2 (en) 2014-10-03 2016-09-06 Seagate Technology Llc Key-value data storage device with hybrid architecture
US10097839B2 (en) 2014-12-19 2018-10-09 Qualcomm Incorporated Palette mode for subsampling format
US9883187B2 (en) 2015-03-06 2018-01-30 Qualcomm Incorporated Fast video encoding method with block partitioning
WO2016154336A1 (en) * 2015-03-25 2016-09-29 Dolby Laboratories Licensing Corporation Chroma subsampling and gamut reshaping
AU2015275320A1 (en) 2015-12-23 2017-07-13 Canon Kabushiki Kaisha Method, apparatus and system for determining a luma value
WO2018142159A1 (en) * 2017-02-03 2018-08-09 Tv One Limited Method of video transmission and display
US20190034734A1 (en) 2017-07-28 2019-01-31 Qualcomm Incorporated Object classification using machine learning and object tracking
US10719744B2 (en) 2017-12-28 2020-07-21 Intel Corporation Automated semantic inference of visual features and scenes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1520682A (zh) * 2001-06-29 2004-08-11 皇家菲利浦电子有限公司 抽样率变换期间的色键保存
CN1653513A (zh) * 2002-05-13 2005-08-10 创世纪微芯片公司 用于显示设备的多分辨率色彩映射的装置和方法
CN102971732A (zh) * 2010-07-02 2013-03-13 华为技术有限公司 键/值存储器的集成分级查询处理的系统结构
JP2012134585A (ja) * 2010-12-20 2012-07-12 Nikon Corp カメラ

Also Published As

Publication number Publication date
KR102481009B1 (ko) 2022-12-23
US10949087B2 (en) 2021-03-16
KR20190130959A (ko) 2019-11-25
US20190354287A1 (en) 2019-11-21

Similar Documents

Publication Publication Date Title
AU2010313045B2 (en) Image file generation device, image processing device, image file generation method, image processing method, and data structure for image files
CN104471554B (zh) 共享虚拟存储器
US8571338B2 (en) Image file generation device, image processing device, image file generation method, and image processing method
CN107273301A (zh) 数据处理系统
EP0588243A1 (en) Method and apparatus for storing and retrieving generalized image data
US9442960B2 (en) High performance data layout and processing
US20180308284A1 (en) Portable Globe Creation for a Geographical Information System
CN105933708B (zh) 一种数据压缩和解压缩的方法和装置
JP5368254B2 (ja) 画像ファイル生成装置、画像処理装置、画像ファイル生成方法、画像処理方法、および画像ファイルのデータ構造
CN101520817A (zh) 一种海量医学图像三维可视化处理系统
CN104952087A (zh) Mipmap压缩
Hill Jr et al. Interactive image query system using progressive transmission
CN101562005A (zh) 文字显示装置
CN110489057A (zh) 键值固态驱动器和操作键值固态驱动器的方法
US20160147860A1 (en) System and method for hierarchical synchronization of a dataset of image tiles
CN104268169B (zh) 一种基于ps软件的遥感影像数据快速处理方法
WO2022052884A1 (zh) 含有图标图像的dicomdir文件生成方法及系统
JP6323461B2 (ja) サーバ装置、クライアント装置、情報処理方法および記録媒体
CN104050611B (zh) 信息处理装置、信息处理方法和程序
CN115965736A (zh) 图像处理方法、装置、设备及存储介质
CN105900413A (zh) 图像处理程序、显示程序、图像处理方法、显示方法、图像处理装置以及信息处理装置
US10405005B1 (en) Methods and systems for video compression based on dynamic vector wave compression
CN116737852A (zh) 一种基于矢量瓦片数据的矢量绘图方法、装置和电子设备
CN105745930B (zh) 用于图像比特流处理的技术
Khan HDR image encoding using reconstruction functions based on piecewise linear approximations

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination