用于提供数字图像的可扩展编解码器体系结构的系统和方法

文档序号:6553653阅读:169来源:国知局
专利名称:用于提供数字图像的可扩展编解码器体系结构的系统和方法
技术领域
本发明一般涉及计算机系统,尤其涉及用于提供数字图像的可扩展编解码器 体系结构的改进的系统和方法。
背景技术
随着数字图像的普及度的增长,数字图像的图像格式持续发展。随着对数字 图像的应用的扩展,新图像格式和对特定图像格式的工业标准的扩展定期出现。此 外,诸如数码相机制造商等成像设备制造商可能提供特定成像设备专用的新图像格 式或对图像格式的扩展。然而,可能存在一般安装在计算机系统上的应用程序可用 的一组用于图像的固定的编译码器和像素格式。并且,被设置来对图像格式进行编 码和解码的该组编解码器仅提供为诸如标准图像类型等现有格式设计的固定实现。
当可能引入新图像格式或对图像格式的扩展时,必须为该新图像格式构建编解码器 中的编码器和解码器的实现或者必须更新这些实现来处理对图像格式的扩展。不幸 的是,用于更新编解码器的过程是昂贵且耗时的。
现有计算机系统体系结构不能无缝集成或自动安装用于标准或专有图像格式 的附加编解码器以便在计算机系统的成像流水线中使用。现有体系结构的另一问题 在于,计算机系统可能具有计算机系统中可用编解码器能够识别的固定数目的指定 像素格式。如果创建了在计算机系统中引入一图像类型的新像素格式的解码器,则 该计算机系统可能不能够识别该图像类型的新像素格式。而且,编解码器与特定图 像格式之间的紧耦合和依赖性阻止了对用于对多个图像的单个图像文件中所包括 的不同的图像格式编码和解码图像的可执行代码的简便重用。
需要一种使计算机系统能容易地适用于新图像格式的引入而不必发布编解码 器的新实现以支持新图像格式的方式。这一系统和方法也应能无缝地支持使用图像 格式和对现有图像格式的扩展的第三方实现的应用,并应允许将新像素图像格式自 动转换成可由计算机系统上安装的编解码器识别的像素格式。
发明概述
简要地,本发明提供一种用于数字图像的可扩展编解码器体系结构的改进的 系统和方法。为此,可执行软件代码可被操作上耦合至编解码器管理器以便请求对 数字图像执行成像操作。编解码器管理器可接收对数字图像执行成像操作的请求, 并可从计算机系统中所注册的一个或多个成像组件中选择诸如编解码器等一成像 组件以便对该数字图像执行成像操作。例如,编解码器管理器可包括各自可具有解 码器和编码器的一个或多个编解码器。编解码器管理器也可包括仲裁管理器和一个 或多个像素转换器。
仲裁管理器可包括用于在计算机系统中所注册的若干成像组件之中选择一成 像组件来执行所请求的操作的功能,且可请求每一成像组件枚举其可对特定数字图 像执行的操作。如果不存在计算机系统中所注册的可使用该图像文件的像素格式来 执行成像操作的成像组件,则可选择可对该数字图像类型的不同像素格式执行所请 求的成像操作的成像组件。然后可使用操作上耦合至该编解码器的一个或多个像素 格式转换器来执行像素格式转换以便将数字图像中的像素格式转换成被选择来对 数字图像执行所请求的成像操作的编解码器组件所支持的像素格式。
作为安装的一部分,成像组件可安装一个或多个像素格式转换器,包括用于 在该成像组件的像素格式和常见像素格式之间来回转换的像素格式转换器。而且, 成像组件可在安装期间在注册表中注册信息。在一个实施例中,系统注册表中的信 息可包括关于计算机系统中可用的成像组件和像素格式转换器的信息。通过使用由 安装在计算机系统中的成像组件所注册的信息,可在无需首先实例化成像组件的情 况下选择用于执行所请求的成像操作的适当的成像组件。
有利的是,该系统和方法可灵活地支持数字图像的新图像格式和新像素格式 的添加。所提供的框架也可无缝地支持使用图像格式和对现有图像格式的扩展的第 三方实现的应用。而且,该系统和方法可将新像素格式自动转换成可由安装在计算 机系统上的成像组件识别的像素图像格式。通过结合附图考虑以下详细描述,其它 优点将是显而易见的,附图中
附图简述


图1是一般表示可在其中包括本发明的计算机系统的框图2是根据本发明的一方面一般表示数字图像的可扩展编解码器体系结构的 一个实施例中的各系统组件的示例性体系结构的框图3是根据本发明的一方面一般表示在可扩展编解码器体系结构的一个实施 例中用于对图像文件执行成像操作所采取的示例性步骤的流程图4是根据本发明的一方面一般表示在一个实施例中用于选择编解码器组件 以便对图像文件执行成像操作所采取的示例性步骤的流程图5是根据本发明的一方面一般表示在一个实施例中用于执行像素格式转换 所采取的示例性步骤的流程图;以及
图6是根据本发明的一方面一般表示在一个实施例中用于选择一个或多个像 素格式转换器以便执行像素格式转换所采取的示例性步骤的流程图。
详细描述
示纖凝縛裙
图1示出了可在其上实现本发明的合适的计算系统环境100的示例。计算系 统环境IOO只是合适的计算环境的一个示例,并不旨在对本发明的使用范围或功能 提出任何限制。也不应该把计算环境100解释为对示例性操作环境100中示出的任
一组件或其组合有任何依赖性或要求。
本发明可用众多其它通用或专用计算系统环境或配置来操作。适合在本发明
中使用的公知的计算系统、环境和/或配置的示例包括,但不限于个人计算机、
服务器计算机、手持或膝上型设备、图形输入板设备、无头服务器、多处理器系统、
基于微处理器的系统、机顶盒、可编程消费者电子产品、网络PC、小型机、大型
机、包含上述系统或设备中的任一个的分布式计算机环境等。
本发明可在诸如程序模块等由计算机执行的计算机可执行指令的通用语境中 描述。 一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行 特定任务或实现特定抽象数据类型。本发明也可以在分布式计算环境中实现,其中 任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可 以位于包括存储器存储设备在内的本地和/或远程计算机存储介质中。
参考图1,用于实现本发明的一个示例性系统包括计算机110形式的通用计算 设备。计算机110的组件可以包括,但不限于,处理单元120、系统存储器130和 将包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。系统 总线121可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制 器、外围总线和使用各种总线体系结构中的任一种的局部总线。作为示例,而非限 制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)
总线、扩展的ISA (EISA)总线、视频电子技术标准协会(VESA)局部总线和外 围部件互连(PCI)总线(也被称为Mezzanine总线)。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能够被计 算机110访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动
介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。 计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据
结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。 计算机存储介质包括,但不限于,RAM、 ROM、 EEPROM、闪存或其它存储器技 术;CD-ROM、数字多功能盘(DVD)或其它光盘存储;磁带盒、磁带、磁盘存 储或其它磁性存储设备;或能用于存储所需信息且可以由计算机110访问的任何其 它介质。通信介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计 算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。术语 "已调制数据信号"指的是这样一种信号,其一个或多个特征以在信号中编码信息 的方式被设定或更改。作为示例,而非限制,通信介质包括诸如有线网络或直接线 连接的有线介质,以及诸如声学、RF、红外线和其它无线介质的无线介质。上述 中任一个的组合也应包括在计算机可读介质的范围之内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,诸 如只读存储器(ROM) 131和随机存取存储器(RAM) 132。基本输入/输出系统 133(BIOS)包含有助于诸如启动时在计算机110中元件之间传递信息的基本例程, 它通常被存储在ROM 131中。RAM B2通常包含处理单元120可以立即访问和/ 或目前正在操作的数据和/或程序模块。作为示例,而非限制,图l示出了操作系 统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介 质。仅作为示例,图1示出了从不可移动、非易失性磁介质中读取或向其写入的硬 盘驱动器141,从可移动、非易失性磁盘152中读取或向其写入的磁盘驱动器151, 以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘156中读取或向其 写入的光盘驱动器155。可以在示例性操作环境下使用的其它可移动/不可移动、易 失性/非易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能 盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器141通常由诸如接口 140 等不可移动存储器接口连接至系统总线121,磁盘驱动器151和光盘驱动器155通 常由诸如接口 150等可移动存储器接口连接至系统总线121。
以上描述和在图1中示出的驱动器及其相关联的计算机存储介质为计算机 110提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在
图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块 146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程 序模块136和程序数据137相同或不同。操作系统144、应用程序145、其它程序 模块146和程序数据147在这里被给定了不同的标号是为了说明至少它们是不同的 副本。用户可以通过输入设备,诸如图形输入板或电子数字化仪164、麦克风163、 键盘162和定点设备161 (通常指鼠标、跟踪球或触摸垫)向计算机110输入命令 和信息。图1中未示出的其它输入设备可以包括操纵杆、游戏垫、圆盘式卫星天线、 扫描仪、或包括含有生物测定传感器、环境传感器、位置传感器或其它类型的传感 器的设备在内的其它设备。这些和其它输入设备通常由耦合至系统总线的用户输入 接口 160连接至处理单元120,但也可以由其它接口或总线结构,诸如并行端口、 游戏端口或通用串行总线(USB)连接。监视器191或其它类型的显示设备也经由 接口,诸如视频接口 190连接至系统总线121。监视器191也可与经由触摸屏接口 192连接至系统总线121的触摸屏面板等集成。注意到,监视器和/或触摸屏面板可 物理耦合至其中包括计算设备110的外壳,诸如在图形输入板类型个人计算机中那 样。此外,诸如计算设备110的计算机也可包括其它外围输出设备,诸如扬声器 194和打印机195,它们可以通过输出外围接口 193等连接。
计算机110可使用至一个或多个远程计算机,诸如远程计算机180的逻辑连 接在网络化环境下操作。远程计算机180可以是个人计算机、服务器、路由器、网 络PC、对等设备或其它常见的网络节点,且通常包括上文相对于计算机IIO描述 的许多或所有元件,尽管在图1中只示出存储器存储设备181。图1中所示逻辑连 接包括局域网(LAN) 171和广域网(WAN) 173,但也可以包括其它网络。这样 的连网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。当在 LAN连网环境中使用时,计算机IIO通过网络接口或适配器170连接至LAN 171。 当在WAN连网环境中使用时,计算机IIO通常包括调制解调器172或用于通过诸 如因特网等WAN 173建立通信的其它装置。调制解调器172可以是内置或外置的, 它可以通过用户输入接口 160或其它合适的机制连接至系统总线121。在网络化环 境中,相对于计算机IIO描述的程序模块或其部分可以存储在远程存储器存储设备 中。作为示例,而非限制,图1示出了远程应用程序185驻留在存储器设备181 上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链
路的其它手段。
教字層游#展编麟器沐微称
本发明一般针对一种用于提供数字图像的可扩展编解码器体系结构的系统和 方法。该系统和方法可有利地允许安装和发现可枚举其用于对数字图像执行成像操 作的能力的新成像组件。通过在安装期间注册成像组件信息,可发现适当的成像组 件以便执行所请求的成像操作而不必实例化该成像组件。如可见到的,该系统和方 法可灵活地支持数字图像的新图像格式和新像素格式的添加,且还可将新像素图像 格式自动转换成可由安装在计算机系统上的成像组件识别的像素图像格式。如可以 理解的,此处所述的各个框图、流程图和情形仅是示例,且存在本发明可应用的众 多其它情形。
转向附图的图2,它示出了一般表示数字图像的可扩展编解码器体系结构的一 个实施例中的各系统组件的示例性体系结构。本领域的技术人员可以理解,在附图 中所示的框内实现的功能可被实现为单独的组件,或者若干或所有框的功能可在单
个组件内实现。作为示例,编解码器仲裁器208可在与编解码器管理器206分开的 组件中实现。
图2中所示的可执行软件202可请求要对图像文件执行的任何数目的操作, 包括从图像文件中解码图像数据和将图像数据编码成图像文件。可执行软件202 可操作上耦合至成像应用程序编程接口 (API) 204以便请求从图像文件中解码图 像以及请求将图像编码成图像文件。成像API又可操作上耦合至编解码器管理器 206,后者发现并枚举计算机系统中所注册的可用编解码器,并实例化所选编解码 器以便对图像文件执行所请求的操作。
编解码器管理器206可包括操作上耦合的成像组件,诸如编解码器仲裁器 208、 一个或多个像素格式转换器210、以及一个或多个编解码器212。编解码器管 理器206、编解码器仲裁器208、像素格式转换器210、和编解码器212各自可以 是任何可执行软件代码,包括内核组件、应用程序或应用组件、链接库组件、对象 等。可能存在诸如编解码器212等为计算机系统所支持的每一图像文件类型设置的 编解码器。例如,可能有用于GIF、 JPEG、 PNG、 TIFF和其它图像文件格式的编 解码器。每一编解码器可包括用于对图像编码的编码器214和用于对图像解码的解 码器218。编码器214例如可包括用于将像素写入诸如图像文件242等图像文件的 图像块中的块写入器216。解码器218可包括用于从诸如图像文件242等图像文件
中解码图像块的块读取器220。图像文件242也可包括可描述一个或多个图像数据 块246中所编码的图像的元数据块244。
诸如编解码器212等成像组件可使用诸如注册表224等注册表在计算机系统 中安装并注册。注册表224可以是文件、可执行对象、数据库或其它持久数据结构。 注册表224可包括用于计算机系统中所注册的编解码器的编解码器信息234、和用 于计算机系统中所注册的像素格式转换器的像素格式转换器信息226以及其它系
统信息。注册这样的成像组件可提供选择适当的成像组件以便执行所请求的成像操 作而无需首先对其进行实例化的一种方式。在一个实施例中,编解码器可在注册表 中写入关于自身的信息。编解码器信息234可包括例如,编解码器名236、可用于 唯一地标识编解码器的全局唯一标识符(GUID) 238、以及其它属性240,诸如编 解码器作者姓名、对该编解码器的描述、制造商名、图像格式等。例如,可能存在 如由参考标号260、 262、 264所示的用于图2中所示的每一编解码器212的编解码 器信息。在各个实施例中,也可通过提供诸如编码器名、编码器标识符、和编码器 的其它属性等信息来在注册表224中注册编码器;且类似地,可通过提供诸如解码 器名、解码器标识符、和解码器的其它属性等信息来在注册表224中注册解码器。
在运行时,可使用注册表中的信息来找到这样一种编解码器,它可在无需首 先实例化该编解码器的情况下对图像文件解码。在一实施例中,在编解码器为它可 解码的图像所注册的的模式与图像文件之间进行比较。编解码器可提供任何类型的 模式以便在与图像文件进行比较时使用,包括掩码。在一个实施例中,可在编解码 器所注册的模式与图像文件中的首部信息之间进行比较。
模式匹配可导致发现计算机系统中所注册的可提供用于特定图像文件的各种 操作的若干不同的编解码器。编解码器仲裁器208然后可提供用于在可各自被实例 化且可各自枚举它可对特定图像文件执行的操作的若干编解码器之中选择一编解 码器来执行所请求的操作的功能。在一实施例中,解码器例如可通过指示属性和/ 或它可对图像执行的操作来枚举其能力。这些属性和操作可包括,解码器是否由对 该图像编码的编码器的同一厂商提供、解码器是否可对图像文件中的所有图像解 码、解码器是否可对图像文件中的某些图像解码、解码器是否可枚举图像文件中的 元数据、以及解码器是否可对图像文件中的縮略图解码。在各个实施例中,编解码 器仲裁器208可对解码器可执行的每一操作分配权重,然后选择其表示所分配权重 的总和的得分最高的编解码器。
可处理一图像类型的每一编解码器可支持该图像类型的众多像素格式。然而,
如果不存在计算机系统中所注册的可对特定图像的一像素格式解码的任何编解码 器,则可找到可对该类型图像的一不同像素格式解码的编解码器,且可使用像素格 式转换器来将图像中的该像素格式转换成计算机系统中所注册的解码器可解码的 像素格式。从而,编解码器管理器206可包括一个或多个操作上耦合的像素格式转
换器210。这些像素格式转换器210中的每一个也可在计算机系统中注册。注册表 224可包括用于所注册的每一像素格式转换器的像素格式转换器信息226。例如, 可能存在如由参考标号248、 250、 252所示的用于图2中所示的每一像素格式转换 器210的像素格式信息。在一个实施例中,注册表中每一像素格式转换器的信息可 包括转换器名228、可用于唯一标识转换器的GUID 230、以及可各自表示诸如由 对图2中所示的每一像素格式222的引用254、 256和258所示的各个像素格式的 标识符的像素格式GUID232的列表。在各个其它实施例中,可与每一像素格式转 换器的信息一起包括其它属性,包括厂商名、像素格式转换器的可执行代码的标识 符等。
本领域的技术人员可以理解图2中所示的可扩展编解码器体系结构仅是用于 实现本发明的一个示例性实施例,且可使用其它计算系统配置来实现本发明。例如, 可提供应用程序的解码器而不提供编码器,它可对图像文件中的图像解码但不将信 息编码成图像文件。作为另一示例,为了便于对编解码器创建的任何图像像素格式 解码和编码,可由每一编解码器提供像素格式转换器来在该编解码器的像素格式和 诸如32位PARGB或128位PABGR等一个或多个规范格式之间来回转换。
图3呈现了一般表示在可扩展编解码器体系结构的一个实施例中用于对图像 文件执行成像操作而采取的示例性步骤的流程图。本领域的技术人员可以理解一种 实现可选择以不同的顺序来执行这些步骤或可为效率或灵活性起见选择仅执行这 些步骤中的某一些,而同时达到相同的效果且不背离本发明的范围。在步骤302 处,可安装编解码器组件。在各个实施例中,可在计算机系统上安装编解码器、解 码器和/或编码器。如此处所使用的,编解码器组件可以指的是编解码器、解码器 或编码器。作为安装的一部分,编解码器组件可安装一个或多个像素格式转换器, 包括用于在该编解码器组件的像素格式与诸如32位PARGB或128位PABGR等 常见像素格式之间来回转换的像素格式转换器。
接着,在步骤304中,编解码器组件可在注册表中注册。在一个实施例中, 编解码器组件可对自身进行注册来作为安装的一部分。在注册期间,编解码器组件 可提供关于自身的信息,包括它可对其执行操作的任何图像格式和像素格式。编解
码器组件信息可包括例如,编解码器组件名、用于唯一标识该编解码器组件的标识 符、以及诸如编解码器组件的作者姓名、对该编解码器组件的描述、制造商名、图 像格式等的其它属性。在各个实施例中,编解码器组件也可提供可用于标识它对其 执行操作的图像文件的一个或多个模式。例如,编解码器组件可注册可与图像文件 首部中的信息进行比较的一个或多个模式。在一个实施例中,可在编解码器组件所 注册的模式与图像文件中的首部信息之间进行比较。
在步骤306处,可接收对图像文件执行成像操作的请求。该请求可用于编解 码器组件所支持的任何成像操作,诸如对图像编码或对图像解码。接着,在步骤
308处,可发现可对图像文件执行所请求的成像操作的编解码器组件。在各个实施
例中,编解码器组件所注册的信息可用于发现计算机系统中所注册的可对图像文件 执行所请求的成像操作的编解码器组件。例如,编解码器组件所注册的一个或多个 模式可与图像文件进行匹配来标识是否存在编解码器组件可对图像文件执行的任 何操作。这样的操作可包括,对图像文件中的一些图像解码、对图像文件中的图像 编码、枚举图像文件中的元数据、对图像文件中的元数据编码、对图像文件中的縮 略图解码等。如此处所使用的,成像操作指的是成像组件提供的包括操纵描述数字 图像的元数据在内的用于操纵数字图像的任何操作。
然后可在步骤310中从所标识的可对图像文件执行操作的编解码器组件中选 择一编解码器组件。在一个实施例中,可请求使用来自注册表的信息发现的编解码 器组件枚举各自可对图像文件执行的操作。然后,可基于每一编解码器组件可对图 像文件执行的操作的类型来选择编解码器组件。图4可更详细地表示一个这样的实 施例中所采取的步骤。在另一实施例中,可向诸如应用程序等可执行码提供所标识 的可对图像文件执行操作的编解码器组件的列表,且可执行码可选择要用于对图像 文件执行操作的编解码器组件。
然后,在步骤312处,可确定编解码器组件是否需要像素格式转换来对图像 文件执行成像操作。如果步骤310处所选的编解码器组件支持该图像文件的像素格 式,则编解码器组件可对图像文件执行所请求的操作而无需像素格式转换。然而, 可能不存在计算机系统中所注册的可使用图像文件的像素格式来执行成像操作的 编解码器组件,而可在步骤310处选择可对该类型的图像的不同像素格式执行所请 求的成像操作的编解码器组件。在这种情况中,可在步骤312处确定编解码器组件 需要像素格式转换来对图像文件执行成像操作,且在步骤314处可执行像素格式转 换。在一个实施例中,可使用像素格式转换器来将图像中的像素格式转换成步骤
310处所选的编解码器组件所支持的像素格式以便对图像文件执行所请求的成像
操作。图5可更详细地表示一个这样的实施例中所采取的步骤。
如果在步骤312处确定编解码器组件不需要像素格式转换来对图像文件执行 成像操作,则在步骤316处编解码器组件可对图像文件执行成像操作。当在步骤 318处编解码器组件对图像文件执行了成像操作之后,可结束处理。
在各个实施例中,应用程序可使用应用程序接口来安装和发现诸如编解码器 等成像组件以便选择来对图像文件执行成像操作。这可允许应用程序使用可扩展元 数据体系结构而不必公布(makepublic)诸如编解码器组件等成像组件。而且,当 应用程序退出时,成像组件可被卸载,使得成像组件不能供另一应用程序使用。
图4是一般表示在一个实施例中用于选择编解码器组件来对图像文件执行成 像操作所采取的示例性步骤的流程图。在步骤402处,可实例化在图3中的步骤 308处通过使用来自注册表的信息标识的编解码器组件。在步骤404处,如果在成 像操作请求中指示了优选编解码器厂商,则然后可实例化优选编解码器厂商所提供 的编解码器组件。在步骤406处,可请求每一编解码器组件可对图像文件执行的属 性和/或操作的枚举。在一个实施例中,编解码器组件可调用接口来枚举编解码器 组件可执行的操作。
在步骤408处,可对每一编解码器组件所枚举的它可对图像文件执行的每一 操作分配权重。在一个实施例中,诸如解码器等编解码器组件可响应,它可对一个 帧解码、或者它可对元数据解码、或者它可对縮略图解码等。这些操作中的每一个 将被分配一权重。例如,可对能够对图像文件中的所有图像解码分配权重8;可对 能够对图像文件中的某些图像解码分配权重4;可对能够对縮略像解码分配权 重2;以及可对能够对元数据解码分配权重1 。
在对每一编解码器组件所枚举的它可对图像文件执行的每一操作分配了权重 之后,在步骤410处可选择具有分配给所枚举的可对图像文件执行的操作的权重的 最大总和的编解码器组件。在选择了编解码器组件之后,可结束处理。
图5呈现了一般表示一个实施例中用于执行像素格式转换所采取的示例性步 骤。例如,可执行像素格式转换来将图像中的像素格式转换成诸如图3中步骤310 处所选的可对该类型图像的不同像素格式执行所请求的成像操作的编解码器等编 解码器组件所支持的像素格式。在步骤502处,可对一列像素格式转换器列表搜索 可执行从数字图像的像素格式到另一像素格式的转换的一个或多个像素格式转换 器。在一个实施例中,注册表可包括关于安装在计算机系统中的每一像素格式转换
器的信息,包括与该像素格式转换器一起注册的该转换器可转换的像素格式列表。 对像素格式转换器可转换成的每一像素格式,也可生成可从该像素格式转换成另一 像素格式的像素格式转换器列表。在一个实施例中,可能存在一个或多个规范像素 格式,每一成像组件可对其安装用于在这些规范像素格式与成像组件所支持的像素 格式之间转换的一个或多个像素格式转换器。这可提供从源像素格式转换成一个或 多个中间像素格式然后再转换成目标像素格式的一种方式。
在步骤504处,可选择用于将数字图像的像素格式转换成成像组件所支持的
像素格式的一个或多个像素格式转换器的组合。在一个实施例中,如果存在计算机 系统中安装并注册的将图像中的像素格式转换成成像组件所支持的像素格式的单 个像素格式转换器,则可使用这一单个像素格式转换器。否则,可使用若干像素格 式转换器将图像中的像素格式转换成一个或多个中间像素格式,之后中间像素格式
可被转换成成像组件所支持的像素格式。图6可更详细地呈现一个这样的实施例中
所采取的步骤。
一旦选择了用于执行转换的一个或多个像素格式转换器的组合,在步骤506 处可使用被选择来将数字图像的像素格式转换成成像组件所支持的像素格式的该 一个或多个像素格式转换器的组合来执行一个或多个像素格式转换。在执行了像素 转换之后,可结束处理。
图6呈现了一般表示在一个实施例中用于选择一个或多个像素格式转换器以 便执行像素格式转换所采取的示例性步骤的流程图。在步骤602处,可确定在一像 素格式转换器列表中是否存在可将数字图像的像素格式转换成成像组件所支持的 像素格式的像素格式转换器。如果是,则可在步骤608处选择该像素格式转换器以 便执行像素格式转换。如果否,则可在步骤604处确定在该像素格式转换器列表中 是否存在可将数字图像的像素格式转换成中间像素格式的像素格式转换器,以及在 该像素格式转换器列表中是否存在可将图像从该中间像素格式转换成成像组件所 支持的像素格式的另一像素格式转换器。如果是,则可在步骤608处选择这两个像 素格式转换器以便执行像素格式转换。
如果否,则可在步骤606处确定是否存在可被选择以便首先将数字图像的像 素格式转换成中间像素格式然后再转换成常见像素格式的两个像素转换器,以及是 否可能存在可被选择以便从该常见像素格式转换成成像组件所支持的像素格式的 第三像素格式转换器。如果是,则可在步骤608处选择这三个像素格式转换器以便 执行像素格式转换。在一个实施例中,每一成像组件可安装一个或多个像素格式转
换器以便在规范像素格式与成像组件所支持的像素格式之间转换。这可允许将图像 格式转换成常见像素格式然后再从该常见像素格式转换成成像组件所支持的像素 格式。当选择中间规范格式时,可首先选择具有最高保真度的规范格式。例如,在 一个实施例中,枚举转换器可支持的规范格式的列表可指示位深度的保真度,诸如 128位。以此方式,该系统和方法可支持所引入的新图像格式可用的最高保真度。
如从前述详细描述可见到的,本发明提供一种用于数字图像的可扩展编解码 器体系结构的改进的系统和方法。该系统和方法可有利地允许安装并发现可枚举其
对数字图像执行成像操作的能力的新成像组件。该系统和方法可因此灵活地支持数 字图像的新图像格式和新像素格式的添加。所提供的框架也可无缝地支持使用图像 格式和对现有格式的扩展的第三方实现的应用。而且,该系统和方法可自动将新像 素图像格式转换成可由安装在计算机系统上的成像组件识别的像素图像格式。如现 在所理解的,该系统和方法因此提供当代计算中所需的显著优点和好处。
尽管本发明易于作出各种修改和替换构造,但其某些示出的实施例在附图中 示出并在以上详细描述。然而,应理解不旨在将本发明限于所公开的特定形式,而 是相反,旨在覆盖落入本发明的精神和范围内的所有修改、替换构造和等效方案。
权利要求
1.一种用于对数字图像执行成像操作的计算机系统,包括可执行软件代码,用于请求对数字图像执行成像操作;操作上耦合至所述可执行软件代码的编解码器管理器,用于接收所述对数字图像执行成像操作的请求以及从所述计算机系统中所注册的一个或多个成像组件中选择一用于对所述数字图像执行所请求的成像操作的成像组件;以及操作上耦合至所述编解码器管理器的成像组件,所述成像组件在所述计算机系统中注册了可指示所述成像组件可对所述数字图像执行成像操作的信息。
2. 如权利要求1所述的系统,其特征在于,还包括操作上耦合至所述可执行 软件代码的成像应用程序编程接口,用于接收所述对数字图像执行成像操作的请 求。
3. 如权利要求1所述的系统,其特征在于,还包括操作上耦合至所述编解码 器管理器的编解码器仲裁器,用于请求所述成像组件枚举所述成像组件可对所述数 字图像执行的成像操作。
4. 如权利要求1所述的系统,其特征在于,还包括操作上耦合至所述编解码 器管理器的像素格式转换器,用于将所述数字图像的像素格式转换成另一像素格 式。
5. 如权利要求1所述的系统,其特征在于,还包括操作上耦合至所述编解码 器管理器的注册表,用于提供关于所述计算机系统中所注册的成像组件的信息。
6. 如权利要求l所述的系统,其特征在于,所述操作上耦合至编解码器管理 器的成像组件包括编解码器。
7. —种具有构成如权利要求1所述的系统的计算机可执行组件的计算机可读 介质。
8. —种在计算机系统中用于对数字图像执行成像操作的方法,包括 在所述计算机系统中安装成像组件;在所述计算机系统中注册所述成像组件,使得所述成像组件可被发现供在执 行成像操作时使用;接收对数字图像执行成像操作的请求;发现用于对所述数字图像执行所述成像操作的所述成像组件; 选择用于对所述数字图像执行所述成像操作的所述成像组件;以及 使用用于对所述数字图像执行所述成像操作的所述成像组件。
9. 如权利要求8所述的方法,其特征在于,还包括确定是否要对所述数字图 像的像素格式执行像素格式转换,如果是,则对所述数字图像执行所述像素格式转 换。
10. 如权利要求8所述的方法,其特征在于,所述在计算机系统中安装成像 组件包括安装可用于将所述数字图像从一个像素格式转换成另一像素格式的一个 或多个像素格式转换器。
11. 如权利要求8所述的方法,其特征在于,所述在计算机系统中注册成像 组件包括注册所述成像组件可对其执行操作的一个或多个像素格式。
12. 如权利要求8所述的方法,其特征在于,所述在计算机系统中注册成像 组件包括,注册可用于确定所述成像组件是否可对所述数字图像执行所述成像操作 的一个或多个模式。
13. 如权利要求8所述的方法,其特征在于,所述发现用于对数字图像执行 成像操作的成像组件包括使用所述成像组件在注册表中注册的信息。
14. 如权利要求8所述的方法,其特征在于,所述选择用于对数字图像执行 成像操作的成像组件包括请求所述成像组件枚举所述成像组件可对所述数字图像 执行的所述成像操作。
15. 如权利要求8所述的方法,其特征在于,所述选择用于对数字图像执行 成像操作的成像组件包括-实例化所述成像组件;请求枚举所述成像组件可对所述数字图像执行的操作; 向可由所述成像组件执行的每一操作分配权重;以及选择其对可由成像组件执行的每一操作分配的权重总和大于对可由另一成像 组件执行的每一操作分配的权重总和的所述成像组件。
16. 如权利要求9所述的方法,其特征在于,所述确定是否要对数字图像的 像素格式执行像素格式转换包括确定被选择来对所述数字图像执行所述成像操作 的所述成像组件包括可对所述数字图像的图像类型的不同像素格式执行所请求的 成像操作的成像组件。
17. 如权利要求9所述的方法,其特征在于,所述对数字图像执行像素格式 转换包括对一像素格式转换器列表搜索可将所述数字图像的所述像素格式转换成另一 像素格式的一个或多个像素格式转换器;选择用于将所述数字图像的所述像素格式转换成所述被选来对所述数字图像 执行所述成像操作的成像组件所支持的像素格式的一个或多个像素格式转换器的 组合;以及使用所述一个或多个像素格式转换器的组合来执行一个或多个像素格式转 换,以便将所述数字图像的所述像素格式转换成所述被选来对所述数字图像执行所 述成像操作的成像组件所支持的像素格式。
18.如权利要求17所述的方法,其特征在于,所述选择用于将数字图像的像 素格式转换成被选来对数字图像执行成像操作的成像组件所支持的像素格式的一 个或多个像素格式转换器的组合包括确定在所述像素格式转换器列表中是否存在可将所述数字图像的所述像素格 式转换成所述被选来对所述数字图像执行所述成像操作的成像组件所支持的像素 格式的像素格式转换器,如果是,则选择所述像素格式转换器作为用于将所述数字 图像的所述像素格式转换成所述被选来对所述数字图像执行所述成像操作的成像 组件所支持的像素格式的所述一个或多个像素格式转换器的组合;如果否,则确定在所述像素格式转换器列表中是否存在可将所述数字图像的 所述像素格式转换成第一中间像素格式的第一像素格式转换器,以及在所述像素格 式转换器列表中是否存在可将所述第一中间像素格式转换成所述被选来对数字图 像执行成像操作的成像组件所支持的像素格式的第二像素格式转换器,如果是,则 选择所述第一像素格式转换器和所述第二像素格式转换器作为用于将所述数字图 像的所述像素格式转换成所述被选来对所述数字图像执行所述成像操作的成像组 件所支持的像素格式的所述一个或多个像素格式转换器的组合;以及如果否,则确定在所述像素格式转换器列表中是否存在可将所述数字图像的 所述像素格式转换成第一中间像素格式的第一像素格式转换器,在所述像素格式转 换器列表中是否存在可将所述第一中间像素格式转换成第二中间像素格式的第二 像素格式转换器,以及是否存在用于将所述第二中间像素格式转换成所述被选来对 数字图像执行成像操作的成像组件所支持的像素格式的第三像素格式转换器,如果 是,则选择所述第一像素格式转换器、所述第二像素格式转换器和所述第三像素格 式转换器作为用于将所述数字图像的所述像素格式转换成所述被选来对所述数字 图像执行所述成像操作的成像组件所支持的像素格式的所述一个或多个像素格式 转换器的组合。
19. 如权利要求8所述的方法,其特征在于,所述使用用于对数字图像执行 成像操作的成像组件包括使用用于对所述数字图像执行所述成像操作的编解码器。
20. —种含有用于执行如权利要求8所述的方法的计算机可执行指令的计算 机可读介质。
全文摘要
提供了一种用于数字图像的可扩展编解码器体系结构的改进的系统和方法。可执行软件代码可被操作上耦合至编解码器管理器以便请求对数字图像执行成像操作。编解码器管理器可接收对数字图像执行成像操作的请求,并可从计算机系统中所注册的一个或多个成像组件中选择诸如编解码器等一成像组件以便对该数字图像执行成像操作。仲裁管理器可包括用于请求枚举成像组件可对特定数字图像执行的操作的功能。一个或多个像素格式转换器然后可将数字图像中的像素格式转换成安装在系统上的成像组件所支持的像素格式。
文档编号G06K9/46GK101116088SQ200580048035
公开日2008年1月30日 申请日期2005年7月28日 优先权日2005年2月17日
发明者A·J·胡德森, C·S·理查德森, D·阿尔伯特, E·凡登伯格, F·A·克鲁格, P·A·格尔维奇, R·A·沃德瑞扎克, R·C·玛格里特, R·E·辛克莱尔二世, R·S·小特纳, R·V·帕特里, R·高尔, T·W·奥尔森 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1